diff --git "a/assets/index-Dlp4W1Zl.js" "b/assets/index-Dlp4W1Zl.js" new file mode 100644--- /dev/null +++ "b/assets/index-Dlp4W1Zl.js" @@ -0,0 +1,3906 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/default-BiDUV3xY.js","assets/HeaderLink-Dg_3MlXg.js","assets/HeaderLink-DsxHr3rn.css","assets/index-CgcZzzI2.js","assets/live2d-zip-loader-C5j9stxV.js","assets/speech-DU07zXBj.js","assets/providers-BRCa7xUS.js","assets/queue-DW8o1RLT.js","assets/queues-CJq1hDiQ.js","assets/Model.vue_vue_type_script_setup_true_lang-CSqfK4Nz.js","assets/TransitionVertical.vue_vue_type_script_setup_true_lang-Dch7MbTT.js","assets/Collapsable.vue_vue_type_script_setup_true_lang-DB9y2Oef.js","assets/consciousness-CnU1Bi0O.js","assets/index-YJa3XIzO.js","assets/route-block-B_A1xBdJ.js","assets/index-B6DQ8quC.css","assets/image-CD6Zjbv1.js","assets/image-BhuwcwI9.css","assets/queue-CHfe46kZ.js","assets/index-Rz4v4VGO.js","assets/IconAnimation.vue_vue_type_script_setup_true_lang-D7WFDasI.js","assets/index-_olT-Lql.css","assets/index-ebWEHfej.js","assets/Section.vue_vue_type_script_setup_true_lang-Ju8FFDso.js","assets/useIconAnimation-DMJpspm5.js","assets/index-BYyZqaKb.css","assets/index-exdkhaXa.js","assets/index-Db_5cqsO.css","assets/index-CWukm1n3.js","assets/IconStatusItem-BxiCMDHT.js","assets/IconStatusItem-CA5Z6Ako.css","assets/consciousness-iz2nv6B3.js","assets/RadioCardDetailManySelect-rPQeY4V8.js","assets/Input.vue_vue_type_script_setup_true_lang-BOLdlSh_.js","assets/RadioCardDetailManySelect-DElBmhgy.css","assets/speech-BzDSuaZq.js","assets/TestDummyMarker.vue_vue_type_script_setup_true_lang-DUVC_k0v.js","assets/TestDummyMarker-D7SLWeDD.css","assets/FieldInput.vue_vue_type_script_setup_true_lang-Dgm67C-D.js","assets/speech-Hr-CnTW2.css","assets/index-CTgzm8SA.js","assets/cloudflare-workers-ai-DV3XjoGA.js","assets/ProviderApiKeyInput.vue_vue_type_script_setup_true_lang-CJEkoqPm.js","assets/ProviderSettingsContainer.vue_vue_type_script_setup_true_lang-BmvtPoIO.js","assets/ProviderSettingsLayout.vue_vue_type_script_setup_true_lang-BiW-Rh6S.js","assets/deepseek-CjDfnLNQ.js","assets/ProviderBaseUrlInput.vue_vue_type_script_setup_true_lang-ByRjZiEm.js","assets/elevenlabs-3ONCU5wo.js","assets/SpeechVoiceSettings.vue_vue_type_script_setup_true_lang-CgsOdTr3.js","assets/fireworks-ai-BpaEuc1J.js","assets/microsoft-speech-BPOz5ZLq.js","assets/mistral-ai-C7perH7S.js","assets/moonshot-ai-CZlBN-5-.js","assets/novita-ai-BTL9go8K.js","assets/ollama-qKIKZqA2.js","assets/openai-BtuP56e_.js","assets/openrouter-ai-CCt-Li_l.js","assets/together-ai-BSofzTUT.js","assets/xai-BtPhk-ua.js","assets/delays-Cwu4yMJH.js","assets/emotions-D6mNjsWQ.js","assets/messages-CT9yvwKz.js"])))=>i.map(i=>d[i]); +var GA=Object.defineProperty;var WA=(n,e,t)=>e in n?GA(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var fi=(n,e,t)=>WA(n,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();const XA="modulepreload",$A=function(n){return"/"+n},cv={},ut=function(e,t,i){let r=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),a=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));r=Promise.allSettled(t.map(l=>{if(l=$A(l),l in cv)return;cv[l]=!0;const c=l.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${u}`))return;const f=document.createElement("link");if(f.rel=c?"stylesheet":XA,c||(f.as="script"),f.crossOrigin="",f.href=l,a&&f.setAttribute("nonce",a),document.head.appendChild(f),c)return new Promise((h,d)=>{f.addEventListener("load",h),f.addEventListener("error",()=>d(new Error(`Unable to preload CSS for ${l}`)))})}))}function s(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return r.then(o=>{for(const a of o||[])a.status==="rejected"&&s(a.reason);return e().catch(s)})};/** +* @vue/shared v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function f0(n){const e=Object.create(null);for(const t of n.split(","))e[t]=1;return t=>t in e}const vt={},da=[],Ki=()=>{},qA=()=>!1,zh=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&(n.charCodeAt(2)>122||n.charCodeAt(2)<97),h0=n=>n.startsWith("onUpdate:"),nn=Object.assign,d0=(n,e)=>{const t=n.indexOf(e);t>-1&&n.splice(t,1)},YA=Object.prototype.hasOwnProperty,St=(n,e)=>YA.call(n,e),ze=Array.isArray,pa=n=>wc(n)==="[object Map]",Oa=n=>wc(n)==="[object Set]",uv=n=>wc(n)==="[object Date]",je=n=>typeof n=="function",Ut=n=>typeof n=="string",Ni=n=>typeof n=="symbol",It=n=>n!==null&&typeof n=="object",DM=n=>(It(n)||je(n))&&je(n.then)&&je(n.catch),OM=Object.prototype.toString,wc=n=>OM.call(n),jA=n=>wc(n).slice(8,-1),NM=n=>wc(n)==="[object Object]",p0=n=>Ut(n)&&n!=="NaN"&&n[0]!=="-"&&""+parseInt(n,10)===n,gl=f0(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Vh=n=>{const e=Object.create(null);return t=>e[t]||(e[t]=n(t))},KA=/-(\w)/g,ai=Vh(n=>n.replace(KA,(e,t)=>t?t.toUpperCase():"")),ZA=/\B([A-Z])/g,Fr=Vh(n=>n.replace(ZA,"-$1").toLowerCase()),Hh=Vh(n=>n.charAt(0).toUpperCase()+n.slice(1)),pf=Vh(n=>n?`on${Hh(n)}`:""),Yn=(n,e)=>!Object.is(n,e),mf=(n,...e)=>{for(let t=0;t{Object.defineProperty(n,e,{configurable:!0,enumerable:!1,writable:i,value:t})},Pf=n=>{const e=parseFloat(n);return isNaN(e)?n:e},JA=n=>{const e=Ut(n)?Number(n):NaN;return isNaN(e)?n:e};let fv;const Gh=()=>fv||(fv=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Si(n){if(ze(n)){const e={};for(let t=0;t{if(t){const i=t.split(eC);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function Na(n){let e="";if(Ut(n))e=n;else if(ze(n))for(let t=0;tyo(t,e))}const kM=n=>!!(n&&n.__v_isRef===!0),oC=n=>Ut(n)?n:n==null?"":ze(n)||It(n)&&(n.toString===OM||!je(n.toString))?kM(n)?oC(n.value):JSON.stringify(n,BM,2):String(n),BM=(n,e)=>kM(e)?BM(n,e.value):pa(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((t,[i,r],s)=>(t[ap(i,s)+" =>"]=r,t),{})}:Oa(e)?{[`Set(${e.size})`]:[...e.values()].map(t=>ap(t))}:Ni(e)?ap(e):It(e)&&!ze(e)&&!NM(e)?String(e):e,ap=(n,e="")=>{var t;return Ni(n)?`Symbol(${(t=n.description)!=null?t:e})`:n};/** +* @vue/reactivity v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let On;class zM{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=On,!e&&On&&(this.index=(On.scopes||(On.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e0)return;if(vl){let e=vl;for(vl=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let n;for(;_l;){let e=_l;for(_l=void 0;e;){const t=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){n||(n=i)}e=t}}if(n)throw n}function WM(n){for(let e=n.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function XM(n){let e,t=n.depsTail,i=t;for(;i;){const r=i.prevDep;i.version===-1?(i===t&&(t=r),b0(i),aC(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=r}n.deps=e,n.depsTail=t}function qm(n){for(let e=n.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&($M(e.dep.computed)||e.dep.version!==e.version))return!0;return!!n._dirty}function $M(n){if(n.flags&4&&!(n.flags&16)||(n.flags&=-17,n.globalVersion===Hl))return;n.globalVersion=Hl;const e=n.dep;if(n.flags|=2,e.version>0&&!n.isSSR&&n.deps&&!qm(n)){n.flags&=-3;return}const t=Dt,i=Oi;Dt=n,Oi=!0;try{WM(n);const r=n.fn(n._value);(e.version===0||Yn(r,n._value))&&(n._value=r,e.version++)}catch(r){throw e.version++,r}finally{Dt=t,Oi=i,XM(n),n.flags&=-3}}function b0(n,e=!1){const{dep:t,prevSub:i,nextSub:r}=n;if(i&&(i.nextSub=r,n.prevSub=void 0),r&&(r.prevSub=i,n.nextSub=void 0),t.subs===n&&(t.subs=i,!i&&t.computed)){t.computed.flags&=-5;for(let s=t.computed.deps;s;s=s.nextDep)b0(s,!0)}!e&&!--t.sc&&t.map&&t.map.delete(t.key)}function aC(n){const{prevDep:e,nextDep:t}=n;e&&(e.nextDep=t,n.prevDep=void 0),t&&(t.prevDep=e,n.nextDep=void 0)}let Oi=!0;const qM=[];function xs(){qM.push(Oi),Oi=!1}function Ms(){const n=qM.pop();Oi=n===void 0?!0:n}function hv(n){const{cleanup:e}=n;if(n.cleanup=void 0,e){const t=Dt;Dt=void 0;try{e()}finally{Dt=t}}}let Hl=0;class lC{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Xh{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(e){if(!Dt||!Oi||Dt===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==Dt)t=this.activeLink=new lC(Dt,this),Dt.deps?(t.prevDep=Dt.depsTail,Dt.depsTail.nextDep=t,Dt.depsTail=t):Dt.deps=Dt.depsTail=t,YM(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){const i=t.nextDep;i.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=i),t.prevDep=Dt.depsTail,t.nextDep=void 0,Dt.depsTail.nextDep=t,Dt.depsTail=t,Dt.deps===t&&(Dt.deps=i)}return t}trigger(e){this.version++,Hl++,this.notify(e)}notify(e){v0();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&t.sub.dep.notify()}finally{y0()}}}function YM(n){if(n.dep.sc++,n.sub.flags&4){const e=n.dep.computed;if(e&&!n.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)YM(i)}const t=n.dep.subs;t!==n&&(n.prevSub=t,t&&(t.nextSub=n)),n.dep.subs=n}}const If=new WeakMap,fo=Symbol(""),Ym=Symbol(""),Gl=Symbol("");function Mn(n,e,t){if(Oi&&Dt){let i=If.get(n);i||If.set(n,i=new Map);let r=i.get(t);r||(i.set(t,r=new Xh),r.map=i,r.key=t),r.track()}}function yr(n,e,t,i,r,s){const o=If.get(n);if(!o){Hl++;return}const a=l=>{l&&l.trigger()};if(v0(),e==="clear")o.forEach(a);else{const l=ze(n),c=l&&p0(t);if(l&&t==="length"){const u=Number(i);o.forEach((f,h)=>{(h==="length"||h===Gl||!Ni(h)&&h>=u)&&a(f)})}else switch((t!==void 0||o.has(void 0))&&a(o.get(t)),c&&a(o.get(Gl)),e){case"add":l?c&&a(o.get("length")):(a(o.get(fo)),pa(n)&&a(o.get(Ym)));break;case"delete":l||(a(o.get(fo)),pa(n)&&a(o.get(Ym)));break;case"set":pa(n)&&a(o.get(fo));break}}y0()}function cC(n,e){const t=If.get(n);return t&&t.get(e)}function ko(n){const e=ct(n);return e===n?e:(Mn(e,"iterate",Gl),_i(n)?e:e.map(Sn))}function $h(n){return Mn(n=ct(n),"iterate",Gl),n}const uC={__proto__:null,[Symbol.iterator](){return cp(this,Symbol.iterator,Sn)},concat(...n){return ko(this).concat(...n.map(e=>ze(e)?ko(e):e))},entries(){return cp(this,"entries",n=>(n[1]=Sn(n[1]),n))},every(n,e){return ar(this,"every",n,e,void 0,arguments)},filter(n,e){return ar(this,"filter",n,e,t=>t.map(Sn),arguments)},find(n,e){return ar(this,"find",n,e,Sn,arguments)},findIndex(n,e){return ar(this,"findIndex",n,e,void 0,arguments)},findLast(n,e){return ar(this,"findLast",n,e,Sn,arguments)},findLastIndex(n,e){return ar(this,"findLastIndex",n,e,void 0,arguments)},forEach(n,e){return ar(this,"forEach",n,e,void 0,arguments)},includes(...n){return up(this,"includes",n)},indexOf(...n){return up(this,"indexOf",n)},join(n){return ko(this).join(n)},lastIndexOf(...n){return up(this,"lastIndexOf",n)},map(n,e){return ar(this,"map",n,e,void 0,arguments)},pop(){return qa(this,"pop")},push(...n){return qa(this,"push",n)},reduce(n,...e){return dv(this,"reduce",n,e)},reduceRight(n,...e){return dv(this,"reduceRight",n,e)},shift(){return qa(this,"shift")},some(n,e){return ar(this,"some",n,e,void 0,arguments)},splice(...n){return qa(this,"splice",n)},toReversed(){return ko(this).toReversed()},toSorted(n){return ko(this).toSorted(n)},toSpliced(...n){return ko(this).toSpliced(...n)},unshift(...n){return qa(this,"unshift",n)},values(){return cp(this,"values",Sn)}};function cp(n,e,t){const i=$h(n),r=i[e]();return i!==n&&!_i(n)&&(r._next=r.next,r.next=()=>{const s=r._next();return s.value&&(s.value=t(s.value)),s}),r}const fC=Array.prototype;function ar(n,e,t,i,r,s){const o=$h(n),a=o!==n&&!_i(n),l=o[e];if(l!==fC[e]){const f=l.apply(n,s);return a?Sn(f):f}let c=t;o!==n&&(a?c=function(f,h){return t.call(this,Sn(f),h,n)}:t.length>2&&(c=function(f,h){return t.call(this,f,h,n)}));const u=l.call(o,c,i);return a&&r?r(u):u}function dv(n,e,t,i){const r=$h(n);let s=t;return r!==n&&(_i(n)?t.length>3&&(s=function(o,a,l){return t.call(this,o,a,l,n)}):s=function(o,a,l){return t.call(this,o,Sn(a),l,n)}),r[e](s,...i)}function up(n,e,t){const i=ct(n);Mn(i,"iterate",Gl);const r=i[e](...t);return(r===-1||r===!1)&&x0(t[0])?(t[0]=ct(t[0]),i[e](...t)):r}function qa(n,e,t=[]){xs(),v0();const i=ct(n)[e].apply(n,t);return y0(),Ms(),i}const hC=f0("__proto__,__v_isRef,__isVue"),jM=new Set(Object.getOwnPropertyNames(Symbol).filter(n=>n!=="arguments"&&n!=="caller").map(n=>Symbol[n]).filter(Ni));function dC(n){Ni(n)||(n=String(n));const e=ct(this);return Mn(e,"has",n),e.hasOwnProperty(n)}class KM{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,i){if(t==="__v_skip")return e.__v_skip;const r=this._isReadonly,s=this._isShallow;if(t==="__v_isReactive")return!r;if(t==="__v_isReadonly")return r;if(t==="__v_isShallow")return s;if(t==="__v_raw")return i===(r?s?nS:tS:s?eS:QM).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const o=ze(e);if(!r){let l;if(o&&(l=uC[t]))return l;if(t==="hasOwnProperty")return dC}const a=Reflect.get(e,t,Pt(e)?e:i);return(Ni(t)?jM.has(t):hC(t))||(r||Mn(e,"get",t),s)?a:Pt(a)?o&&p0(t)?a:a.value:It(a)?r?xi(a):bi(a):a}}class ZM extends KM{constructor(e=!1){super(!1,e)}set(e,t,i,r){let s=e[t];if(!this._isShallow){const l=bo(s);if(!_i(i)&&!bo(i)&&(s=ct(s),i=ct(i)),!ze(e)&&Pt(s)&&!Pt(i))return l?!1:(s.value=i,!0)}const o=ze(e)&&p0(t)?Number(t)n,nu=n=>Reflect.getPrototypeOf(n);function vC(n,e,t){return function(...i){const r=this.__v_raw,s=ct(r),o=pa(s),a=n==="entries"||n===Symbol.iterator&&o,l=n==="keys"&&o,c=r[n](...i),u=t?jm:e?Km:Sn;return!e&&Mn(s,"iterate",l?Ym:fo),{next(){const{value:f,done:h}=c.next();return h?{value:f,done:h}:{value:a?[u(f[0]),u(f[1])]:u(f),done:h}},[Symbol.iterator](){return this}}}}function iu(n){return function(...e){return n==="delete"?!1:n==="clear"?void 0:this}}function yC(n,e){const t={get(r){const s=this.__v_raw,o=ct(s),a=ct(r);n||(Yn(r,a)&&Mn(o,"get",r),Mn(o,"get",a));const{has:l}=nu(o),c=e?jm:n?Km:Sn;if(l.call(o,r))return c(s.get(r));if(l.call(o,a))return c(s.get(a));s!==o&&s.get(r)},get size(){const r=this.__v_raw;return!n&&Mn(ct(r),"iterate",fo),Reflect.get(r,"size",r)},has(r){const s=this.__v_raw,o=ct(s),a=ct(r);return n||(Yn(r,a)&&Mn(o,"has",r),Mn(o,"has",a)),r===a?s.has(r):s.has(r)||s.has(a)},forEach(r,s){const o=this,a=o.__v_raw,l=ct(a),c=e?jm:n?Km:Sn;return!n&&Mn(l,"iterate",fo),a.forEach((u,f)=>r.call(s,c(u),c(f),o))}};return nn(t,n?{add:iu("add"),set:iu("set"),delete:iu("delete"),clear:iu("clear")}:{add(r){!e&&!_i(r)&&!bo(r)&&(r=ct(r));const s=ct(this);return nu(s).has.call(s,r)||(s.add(r),yr(s,"add",r,r)),this},set(r,s){!e&&!_i(s)&&!bo(s)&&(s=ct(s));const o=ct(this),{has:a,get:l}=nu(o);let c=a.call(o,r);c||(r=ct(r),c=a.call(o,r));const u=l.call(o,r);return o.set(r,s),c?Yn(s,u)&&yr(o,"set",r,s):yr(o,"add",r,s),this},delete(r){const s=ct(this),{has:o,get:a}=nu(s);let l=o.call(s,r);l||(r=ct(r),l=o.call(s,r)),a&&a.call(s,r);const c=s.delete(r);return l&&yr(s,"delete",r,void 0),c},clear(){const r=ct(this),s=r.size!==0,o=r.clear();return s&&yr(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{t[r]=vC(r,n,e)}),t}function qh(n,e){const t=yC(n,e);return(i,r,s)=>r==="__v_isReactive"?!n:r==="__v_isReadonly"?n:r==="__v_raw"?i:Reflect.get(St(t,r)&&r in i?t:i,r,s)}const bC={get:qh(!1,!1)},xC={get:qh(!1,!0)},MC={get:qh(!0,!1)},SC={get:qh(!0,!0)},QM=new WeakMap,eS=new WeakMap,tS=new WeakMap,nS=new WeakMap;function EC(n){switch(n){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function TC(n){return n.__v_skip||!Object.isExtensible(n)?0:EC(jA(n))}function bi(n){return bo(n)?n:Yh(n,!1,pC,bC,QM)}function iS(n){return Yh(n,!1,gC,xC,eS)}function xi(n){return Yh(n,!0,mC,MC,tS)}function q9(n){return Yh(n,!0,_C,SC,nS)}function Yh(n,e,t,i,r){if(!It(n)||n.__v_raw&&!(e&&n.__v_isReactive))return n;const s=r.get(n);if(s)return s;const o=TC(n);if(o===0)return n;const a=new Proxy(n,o===2?i:t);return r.set(n,a),a}function Cr(n){return bo(n)?Cr(n.__v_raw):!!(n&&n.__v_isReactive)}function bo(n){return!!(n&&n.__v_isReadonly)}function _i(n){return!!(n&&n.__v_isShallow)}function x0(n){return n?!!n.__v_raw:!1}function ct(n){const e=n&&n.__v_raw;return e?ct(e):n}function M0(n){return!St(n,"__v_skip")&&Object.isExtensible(n)&&UM(n,"__v_skip",!0),n}const Sn=n=>It(n)?bi(n):n,Km=n=>It(n)?xi(n):n;function Pt(n){return n?n.__v_isRef===!0:!1}function et(n){return rS(n,!1)}function De(n){return rS(n,!0)}function rS(n,e){return Pt(n)?n:new wC(n,e)}class wC{constructor(e,t){this.dep=new Xh,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:ct(e),this._value=t?e:Sn(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,i=this.__v_isShallow||_i(e)||bo(e);e=i?e:ct(e),Yn(e,t)&&(this._rawValue=e,this._value=i?e:Sn(e),this.dep.trigger())}}function Ot(n){return Pt(n)?n.value:n}function it(n){return je(n)?n():Ot(n)}const AC={get:(n,e,t)=>e==="__v_raw"?n:Ot(Reflect.get(n,e,t)),set:(n,e,t,i)=>{const r=n[e];return Pt(r)&&!Pt(t)?(r.value=t,!0):Reflect.set(n,e,t,i)}};function sS(n){return Cr(n)?n:new Proxy(n,AC)}class CC{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new Xh,{get:i,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=i,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function S0(n){return new CC(n)}function oS(n){const e=ze(n)?new Array(n.length):{};for(const t in n)e[t]=lS(n,t);return e}class RC{constructor(e,t,i){this._object=e,this._key=t,this._defaultValue=i,this.__v_isRef=!0,this._value=void 0}get value(){const e=this._object[this._key];return this._value=e===void 0?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return cC(ct(this._object),this._key)}}class PC{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function aS(n,e,t){return Pt(n)?n:je(n)?new PC(n):It(n)&&arguments.length>1?lS(n,e,t):et(n)}function lS(n,e,t){const i=n[e];return Pt(i)?i:new RC(n,e,t)}class IC{constructor(e,t,i){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Xh(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Hl-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&Dt!==this)return GM(this,!0),!0}get value(){const e=this.dep.track();return $M(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function LC(n,e,t=!1){let i,r;return je(n)?i=n:(i=n.get,r=n.set),new IC(i,r,t)}const ru={},Lf=new WeakMap;let Js;function DC(n,e=!1,t=Js){if(t){let i=Lf.get(t);i||Lf.set(t,i=[]),i.push(n)}}function OC(n,e,t=vt){const{immediate:i,deep:r,once:s,scheduler:o,augmentJob:a,call:l}=t,c=v=>r?v:_i(v)||r===!1||r===0?br(v,1):br(v);let u,f,h,d,p=!1,_=!1;if(Pt(n)?(f=()=>n.value,p=_i(n)):Cr(n)?(f=()=>c(n),p=!0):ze(n)?(_=!0,p=n.some(v=>Cr(v)||_i(v)),f=()=>n.map(v=>{if(Pt(v))return v.value;if(Cr(v))return c(v);if(je(v))return l?l(v,2):v()})):je(n)?e?f=l?()=>l(n,2):n:f=()=>{if(h){xs();try{h()}finally{Ms()}}const v=Js;Js=u;try{return l?l(n,3,[d]):n(d)}finally{Js=v}}:f=Ki,e&&r){const v=f,E=r===!0?1/0:r;f=()=>br(v(),E)}const g=Wh(),m=()=>{u.stop(),g&&g.active&&d0(g.effects,u)};if(s&&e){const v=e;e=(...E)=>{v(...E),m()}}let y=_?new Array(n.length).fill(ru):ru;const b=v=>{if(!(!(u.flags&1)||!u.dirty&&!v))if(e){const E=u.run();if(r||p||(_?E.some((T,S)=>Yn(T,y[S])):Yn(E,y))){h&&h();const T=Js;Js=u;try{const S=[E,y===ru?void 0:_&&y[0]===ru?[]:y,d];l?l(e,3,S):e(...S),y=E}finally{Js=T}}}else u.run()};return a&&a(b),u=new VM(f),u.scheduler=o?()=>o(b,!1):b,d=v=>DC(v,!1,u),h=u.onStop=()=>{const v=Lf.get(u);if(v){if(l)l(v,4);else for(const E of v)E();Lf.delete(u)}},e?i?b(!0):y=u.run():o?o(b.bind(null,!0),!0):u.run(),m.pause=u.pause.bind(u),m.resume=u.resume.bind(u),m.stop=m,m}function br(n,e=1/0,t){if(e<=0||!It(n)||n.__v_skip||(t=t||new Set,t.has(n)))return n;if(t.add(n),e--,Pt(n))br(n.value,e,t);else if(ze(n))for(let i=0;i{br(i,e,t)});else if(NM(n)){for(const i in n)br(n[i],e,t);for(const i of Object.getOwnPropertySymbols(n))Object.prototype.propertyIsEnumerable.call(n,i)&&br(n[i],e,t)}return n}/** +* @vue/runtime-core v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Ac(n,e,t,i){try{return i?n(...i):n()}catch(r){jh(r,e,t)}}function Ui(n,e,t,i){if(je(n)){const r=Ac(n,e,t,i);return r&&DM(r)&&r.catch(s=>{jh(s,e,t)}),r}if(ze(n)){const r=[];for(let s=0;s>>1,r=Un[i],s=Wl(r);s=Wl(t)?Un.push(n):Un.splice(UC(e),0,n),n.flags|=1,uS()}}function uS(){Df||(Df=cS.then(hS))}function FC(n){ze(n)?ma.push(...n):ts&&n.id===-1?ts.splice(ra+1,0,n):n.flags&1||(ma.push(n),n.flags|=1),uS()}function pv(n,e,t=Wi+1){for(;tWl(t)-Wl(i));if(ma.length=0,ts){ts.push(...e);return}for(ts=e,ra=0;ran.id==null?n.flags&2?-1:1/0:n.id;function hS(n){try{for(Wi=0;Wi{i._d&&Av(-1);const s=Of(e);let o;try{o=n(...r)}finally{Of(s),i._d&&Av(1)}return o};return i._n=!0,i._c=!0,i._d=!0,i}function Y9(n,e){if(Qt===null)return n;const t=Qh(Qt),i=n.dirs||(n.dirs=[]);for(let r=0;rn.__isTeleport,yl=n=>n&&(n.disabled||n.disabled===""),mv=n=>n&&(n.defer||n.defer===""),gv=n=>typeof SVGElement<"u"&&n instanceof SVGElement,_v=n=>typeof MathMLElement=="function"&&n instanceof MathMLElement,Zm=(n,e)=>{const t=n&&n.to;return Ut(t)?e?e(t):null:t},_S={name:"Teleport",__isTeleport:!0,process(n,e,t,i,r,s,o,a,l,c){const{mc:u,pc:f,pbc:h,o:{insert:d,querySelector:p,createText:_,createComment:g}}=c,m=yl(e.props);let{shapeFlag:y,children:b,dynamicChildren:v}=e;if(n==null){const E=e.el=_(""),T=e.anchor=_("");d(E,t,i),d(T,t,i);const S=(x,M)=>{y&16&&(r&&r.isCE&&(r.ce._teleportTarget=x),u(b,x,M,r,s,o,a,l))},R=()=>{const x=e.target=Zm(e.props,p),M=vS(x,e,_,d);x&&(o!=="svg"&&gv(x)?o="svg":o!=="mathml"&&_v(x)&&(o="mathml"),m||(S(x,M),gf(e,!1)))};m&&(S(t,T),gf(e,!0)),mv(e.props)?Dn(()=>{R(),e.el.__isMounted=!0},s):R()}else{if(mv(e.props)&&!n.el.__isMounted){Dn(()=>{_S.process(n,e,t,i,r,s,o,a,l,c),delete n.el.__isMounted},s);return}e.el=n.el,e.targetStart=n.targetStart;const E=e.anchor=n.anchor,T=e.target=n.target,S=e.targetAnchor=n.targetAnchor,R=yl(n.props),x=R?t:T,M=R?E:S;if(o==="svg"||gv(T)?o="svg":(o==="mathml"||_v(T))&&(o="mathml"),v?(h(n.dynamicChildren,v,x,r,s,o,a),R0(n,e,!0)):l||f(n,e,x,M,r,s,o,a,!1),m)R?e.props&&n.props&&e.props.to!==n.props.to&&(e.props.to=n.props.to):su(e,t,E,c,1);else if((e.props&&e.props.to)!==(n.props&&n.props.to)){const L=e.target=Zm(e.props,p);L&&su(e,L,null,c,0)}else R&&su(e,T,S,c,1);gf(e,m)}},remove(n,e,t,{um:i,o:{remove:r}},s){const{shapeFlag:o,children:a,anchor:l,targetStart:c,targetAnchor:u,target:f,props:h}=n;if(f&&(r(c),r(u)),s&&r(l),o&16){const d=s||!yl(h);for(let p=0;p{n.isMounted=!0}),wS(()=>{n.isUnmounting=!0}),n}const hi=[Function,Array],yS={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:hi,onEnter:hi,onAfterEnter:hi,onEnterCancelled:hi,onBeforeLeave:hi,onLeave:hi,onAfterLeave:hi,onLeaveCancelled:hi,onBeforeAppear:hi,onAppear:hi,onAfterAppear:hi,onAppearCancelled:hi},bS=n=>{const e=n.subTree;return e.component?bS(e.component):e},zC={name:"BaseTransition",props:yS,setup(n,{slots:e}){const t=wn(),i=BC();return()=>{const r=e.default&&SS(e.default(),!0);if(!r||!r.length)return;const s=xS(r),o=ct(n),{mode:a}=o;if(i.isLeaving)return fp(s);const l=vv(s);if(!l)return fp(s);let c=Jm(l,o,i,t,f=>c=f);l.type!==Fn&&Xl(l,c);let u=t.subTree&&vv(t.subTree);if(u&&u.type!==Fn&&!io(l,u)&&bS(t).type!==Fn){let f=Jm(u,o,i,t);if(Xl(u,f),a==="out-in"&&l.type!==Fn)return i.isLeaving=!0,f.afterLeave=()=>{i.isLeaving=!1,t.job.flags&8||t.update(),delete f.afterLeave,u=void 0},fp(s);a==="in-out"&&l.type!==Fn?f.delayLeave=(h,d,p)=>{const _=MS(i,u);_[String(u.key)]=u,h[ns]=()=>{d(),h[ns]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{p(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return s}}};function xS(n){let e=n[0];if(n.length>1){for(const t of n)if(t.type!==Fn){e=t;break}}return e}const VC=zC;function MS(n,e){const{leavingVNodes:t}=n;let i=t.get(e.type);return i||(i=Object.create(null),t.set(e.type,i)),i}function Jm(n,e,t,i,r){const{appear:s,mode:o,persisted:a=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:h,onLeave:d,onAfterLeave:p,onLeaveCancelled:_,onBeforeAppear:g,onAppear:m,onAfterAppear:y,onAppearCancelled:b}=e,v=String(n.key),E=MS(t,n),T=(x,M)=>{x&&Ui(x,i,9,M)},S=(x,M)=>{const L=M[1];T(x,M),ze(x)?x.every(F=>F.length<=1)&&L():x.length<=1&&L()},R={mode:o,persisted:a,beforeEnter(x){let M=l;if(!t.isMounted)if(s)M=g||l;else return;x[ns]&&x[ns](!0);const L=E[v];L&&io(n,L)&&L.el[ns]&&L.el[ns](),T(M,[x])},enter(x){let M=c,L=u,F=f;if(!t.isMounted)if(s)M=m||c,L=y||u,F=b||f;else return;let V=!1;const X=x[ou]=te=>{V||(V=!0,te?T(F,[x]):T(L,[x]),R.delayedLeave&&R.delayedLeave(),x[ou]=void 0)};M?S(M,[x,X]):X()},leave(x,M){const L=String(n.key);if(x[ou]&&x[ou](!0),t.isUnmounting)return M();T(h,[x]);let F=!1;const V=x[ns]=X=>{F||(F=!0,M(),X?T(_,[x]):T(p,[x]),x[ns]=void 0,E[L]===n&&delete E[L])};E[L]=n,d?S(d,[x,V]):V()},clone(x){const M=Jm(x,e,t,i,r);return r&&r(M),M}};return R}function fp(n){if(Kh(n))return n=ds(n),n.children=null,n}function vv(n){if(!Kh(n))return gS(n.type)&&n.children?xS(n.children):n;const{shapeFlag:e,children:t}=n;if(t){if(e&16)return t[0];if(e&32&&je(t.default))return t.default()}}function Xl(n,e){n.shapeFlag&6&&n.component?(n.transition=e,Xl(n.component.subTree,e)):n.shapeFlag&128?(n.ssContent.transition=e.clone(n.ssContent),n.ssFallback.transition=e.clone(n.ssFallback)):n.transition=e}function SS(n,e=!1,t){let i=[],r=0;for(let s=0;s1)for(let s=0;sNf(p,e&&(ze(e)?e[_]:e),t,i,r));return}if(ga(i)&&!r){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&Nf(n,e,t,i.component.subTree);return}const s=i.shapeFlag&4?Qh(i.component):i.el,o=r?null:s,{i:a,r:l}=n,c=e&&e.r,u=a.refs===vt?a.refs={}:a.refs,f=a.setupState,h=ct(f),d=f===vt?()=>!1:p=>St(h,p);if(c!=null&&c!==l&&(Ut(c)?(u[c]=null,d(c)&&(f[c]=null)):Pt(c)&&(c.value=null)),je(l))Ac(l,a,12,[o,u]);else{const p=Ut(l),_=Pt(l);if(p||_){const g=()=>{if(n.f){const m=p?d(l)?f[l]:u[l]:l.value;r?ze(m)&&d0(m,s):ze(m)?m.includes(s)||m.push(s):p?(u[l]=[s],d(l)&&(f[l]=u[l])):(l.value=[s],n.k&&(u[n.k]=l.value))}else p?(u[l]=o,d(l)&&(f[l]=o)):_&&(l.value=o,n.k&&(u[n.k]=o))};o?(g.id=-1,Dn(g,t)):g()}}}Gh().requestIdleCallback;Gh().cancelIdleCallback;const ga=n=>!!n.type.__asyncLoader,Kh=n=>n.type.__isKeepAlive;function HC(n,e){TS(n,"a",e)}function GC(n,e){TS(n,"da",e)}function TS(n,e,t=cn){const i=n.__wdc||(n.__wdc=()=>{let r=t;for(;r;){if(r.isDeactivated)return;r=r.parent}return n()});if(Zh(e,i,t),t){let r=t.parent;for(;r&&r.parent;)Kh(r.parent.vnode)&&WC(i,e,t,r),r=r.parent}}function WC(n,e,t,i){const r=Zh(e,n,i,!0);tr(()=>{d0(i[e],r)},t)}function Zh(n,e,t=cn,i=!1){if(t){const r=t[n]||(t[n]=[]),s=e.__weh||(e.__weh=(...o)=>{xs();const a=Lc(t),l=Ui(e,t,n,o);return a(),Ms(),l});return i?r.unshift(s):r.push(s),s}}const kr=n=>(e,t=cn)=>{(!Kl||n==="sp")&&Zh(n,(...i)=>e(...i),t)},XC=kr("bm"),Hn=kr("m"),$C=kr("bu"),qC=kr("u"),wS=kr("bum"),tr=kr("um"),YC=kr("sp"),jC=kr("rtg"),KC=kr("rtc");function ZC(n,e=cn){Zh("ec",n,e)}const T0="components",JC="directives";function Z9(n,e){return w0(T0,n,!0,e)||n}const AS=Symbol.for("v-ndc");function QC(n){return Ut(n)?w0(T0,n,!1)||n:n||AS}function J9(n){return w0(JC,n)}function w0(n,e,t=!0,i=!1){const r=Qt||cn;if(r){const s=r.type;if(n===T0){const a=VR(s,!1);if(a&&(a===e||a===ai(e)||a===Hh(ai(e))))return s}const o=yv(r[n]||s[n],e)||yv(r.appContext[n],e);return!o&&i?s:o}}function yv(n,e){return n&&(n[e]||n[ai(e)]||n[Hh(ai(e))])}function eR(n,e,t,i){let r;const s=t,o=ze(n);if(o||Ut(n)){const a=o&&Cr(n);let l=!1;a&&(l=!_i(n),n=$h(n)),r=new Array(n.length);for(let c=0,u=n.length;ce(a,l,void 0,s));else{const a=Object.keys(n);r=new Array(a.length);for(let l=0,c=a.length;ljl(e)?!(e.type===Fn||e.type===jt&&!CS(e.children)):!0)?n:null}function Q9(n,e){const t={};for(const i in n)t[pf(i)]=n[i];return t}const Qm=n=>n?KS(n)?Qh(n):Qm(n.parent):null,bl=nn(Object.create(null),{$:n=>n,$el:n=>n.vnode.el,$data:n=>n.data,$props:n=>n.props,$attrs:n=>n.attrs,$slots:n=>n.slots,$refs:n=>n.refs,$parent:n=>Qm(n.parent),$root:n=>Qm(n.root),$host:n=>n.ce,$emit:n=>n.emit,$options:n=>IS(n),$forceUpdate:n=>n.f||(n.f=()=>{E0(n.update)}),$nextTick:n=>n.n||(n.n=Ss.bind(n.proxy)),$watch:n=>MR.bind(n)}),hp=(n,e)=>n!==vt&&!n.__isScriptSetup&&St(n,e),nR={get({_:n},e){if(e==="__v_skip")return!0;const{ctx:t,setupState:i,data:r,props:s,accessCache:o,type:a,appContext:l}=n;let c;if(e[0]!=="$"){const d=o[e];if(d!==void 0)switch(d){case 1:return i[e];case 2:return r[e];case 4:return t[e];case 3:return s[e]}else{if(hp(i,e))return o[e]=1,i[e];if(r!==vt&&St(r,e))return o[e]=2,r[e];if((c=n.propsOptions[0])&&St(c,e))return o[e]=3,s[e];if(t!==vt&&St(t,e))return o[e]=4,t[e];eg&&(o[e]=0)}}const u=bl[e];let f,h;if(u)return e==="$attrs"&&Mn(n.attrs,"get",""),u(n);if((f=a.__cssModules)&&(f=f[e]))return f;if(t!==vt&&St(t,e))return o[e]=4,t[e];if(h=l.config.globalProperties,St(h,e))return h[e]},set({_:n},e,t){const{data:i,setupState:r,ctx:s}=n;return hp(r,e)?(r[e]=t,!0):i!==vt&&St(i,e)?(i[e]=t,!0):St(n.props,e)||e[0]==="$"&&e.slice(1)in n?!1:(s[e]=t,!0)},has({_:{data:n,setupState:e,accessCache:t,ctx:i,appContext:r,propsOptions:s}},o){let a;return!!t[o]||n!==vt&&St(n,o)||hp(e,o)||(a=s[0])&&St(a,o)||St(i,o)||St(bl,o)||St(r.config.globalProperties,o)},defineProperty(n,e,t){return t.get!=null?n._.accessCache[e]=0:St(t,"value")&&this.set(n,e,t.value,null),Reflect.defineProperty(n,e,t)}};function A0(){return RS().slots}function eG(){return RS().attrs}function RS(){const n=wn();return n.setupContext||(n.setupContext=JS(n))}function $l(n){return ze(n)?n.reduce((e,t)=>(e[t]=null,e),{}):n}function tG(n,e){const t=$l(n);for(const i in e){if(i.startsWith("__skip"))continue;let r=t[i];r?ze(r)||je(r)?r=t[i]={type:r,default:e[i]}:r.default=e[i]:r===null&&(r=t[i]={default:e[i]}),r&&e[`__skip_${i}`]&&(r.skipFactory=!0)}return t}function nG(n,e){return!n||!e?n||e:ze(n)&&ze(e)?n.concat(e):nn({},$l(n),$l(e))}let eg=!0;function iR(n){const e=IS(n),t=n.proxy,i=n.ctx;eg=!1,e.beforeCreate&&bv(e.beforeCreate,n,"bc");const{data:r,computed:s,methods:o,watch:a,provide:l,inject:c,created:u,beforeMount:f,mounted:h,beforeUpdate:d,updated:p,activated:_,deactivated:g,beforeDestroy:m,beforeUnmount:y,destroyed:b,unmounted:v,render:E,renderTracked:T,renderTriggered:S,errorCaptured:R,serverPrefetch:x,expose:M,inheritAttrs:L,components:F,directives:V,filters:X}=e;if(c&&rR(c,i,null),o)for(const ee in o){const Q=o[ee];je(Q)&&(i[ee]=Q.bind(t))}if(r){const ee=r.call(t,t);It(ee)&&(n.data=bi(ee))}if(eg=!0,s)for(const ee in s){const Q=s[ee],de=je(Q)?Q.bind(t,t):je(Q.get)?Q.get.bind(t,t):Ki,be=!je(Q)&&je(Q.set)?Q.set.bind(t):Ki,re=Se({get:de,set:be});Object.defineProperty(i,ee,{enumerable:!0,configurable:!0,get:()=>re.value,set:ye=>re.value=ye})}if(a)for(const ee in a)PS(a[ee],i,t,ee);if(l){const ee=je(l)?l.call(t):l;Reflect.ownKeys(ee).forEach(Q=>{fs(Q,ee[Q])})}u&&bv(u,n,"c");function Z(ee,Q){ze(Q)?Q.forEach(de=>ee(de.bind(t))):Q&&ee(Q.bind(t))}if(Z(XC,f),Z(Hn,h),Z($C,d),Z(qC,p),Z(HC,_),Z(GC,g),Z(ZC,R),Z(KC,T),Z(jC,S),Z(wS,y),Z(tr,v),Z(YC,x),ze(M))if(M.length){const ee=n.exposed||(n.exposed={});M.forEach(Q=>{Object.defineProperty(ee,Q,{get:()=>t[Q],set:de=>t[Q]=de})})}else n.exposed||(n.exposed={});E&&n.render===Ki&&(n.render=E),L!=null&&(n.inheritAttrs=L),F&&(n.components=F),V&&(n.directives=V),x&&ES(n)}function rR(n,e,t=Ki){ze(n)&&(n=tg(n));for(const i in n){const r=n[i];let s;It(r)?"default"in r?s=En(r.from||i,r.default,!0):s=En(r.from||i):s=En(r),Pt(s)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>s.value,set:o=>s.value=o}):e[i]=s}}function bv(n,e,t){Ui(ze(n)?n.map(i=>i.bind(e.proxy)):n.bind(e.proxy),e,t)}function PS(n,e,t,i){let r=i.includes(".")?WS(t,i):()=>t[i];if(Ut(n)){const s=e[n];je(s)&&Xe(r,s)}else if(je(n))Xe(r,n.bind(t));else if(It(n))if(ze(n))n.forEach(s=>PS(s,e,t,i));else{const s=je(n.handler)?n.handler.bind(t):e[n.handler];je(s)&&Xe(r,s,n)}}function IS(n){const e=n.type,{mixins:t,extends:i}=e,{mixins:r,optionsCache:s,config:{optionMergeStrategies:o}}=n.appContext,a=s.get(e);let l;return a?l=a:!r.length&&!t&&!i?l=e:(l={},r.length&&r.forEach(c=>Uf(l,c,o,!0)),Uf(l,e,o)),It(e)&&s.set(e,l),l}function Uf(n,e,t,i=!1){const{mixins:r,extends:s}=e;s&&Uf(n,s,t,!0),r&&r.forEach(o=>Uf(n,o,t,!0));for(const o in e)if(!(i&&o==="expose")){const a=sR[o]||t&&t[o];n[o]=a?a(n[o],e[o]):e[o]}return n}const sR={data:xv,props:Mv,emits:Mv,methods:hl,computed:hl,beforeCreate:Pn,created:Pn,beforeMount:Pn,mounted:Pn,beforeUpdate:Pn,updated:Pn,beforeDestroy:Pn,beforeUnmount:Pn,destroyed:Pn,unmounted:Pn,activated:Pn,deactivated:Pn,errorCaptured:Pn,serverPrefetch:Pn,components:hl,directives:hl,watch:aR,provide:xv,inject:oR};function xv(n,e){return e?n?function(){return nn(je(n)?n.call(this,this):n,je(e)?e.call(this,this):e)}:e:n}function oR(n,e){return hl(tg(n),tg(e))}function tg(n){if(ze(n)){const e={};for(let t=0;t1)return t&&je(e)?e.call(i&&i.proxy):e}}function Cc(){return!!(cn||Qt||ho)}const DS={},OS=()=>Object.create(DS),NS=n=>Object.getPrototypeOf(n)===DS;function uR(n,e,t,i=!1){const r={},s=OS();n.propsDefaults=Object.create(null),US(n,e,r,s);for(const o in n.propsOptions[0])o in r||(r[o]=void 0);t?n.props=i?r:iS(r):n.type.props?n.props=r:n.props=s,n.attrs=s}function fR(n,e,t,i){const{props:r,attrs:s,vnode:{patchFlag:o}}=n,a=ct(r),[l]=n.propsOptions;let c=!1;if((i||o>0)&&!(o&16)){if(o&8){const u=n.vnode.dynamicProps;for(let f=0;f{l=!0;const[h,d]=FS(f,e,!0);nn(o,h),d&&a.push(...d)};!t&&e.mixins.length&&e.mixins.forEach(u),n.extends&&u(n.extends),n.mixins&&n.mixins.forEach(u)}if(!s&&!l)return It(n)&&i.set(n,da),da;if(ze(s))for(let u=0;un[0]==="_"||n==="$stable",C0=n=>ze(n)?n.map(qi):[qi(n)],dR=(n,e,t)=>{if(e._n)return e;const i=pS((...r)=>C0(e(...r)),t);return i._c=!1,i},BS=(n,e,t)=>{const i=n._ctx;for(const r in n){if(kS(r))continue;const s=n[r];if(je(s))e[r]=dR(r,s,i);else if(s!=null){const o=C0(s);e[r]=()=>o}}},zS=(n,e)=>{const t=C0(e);n.slots.default=()=>t},VS=(n,e,t)=>{for(const i in e)(t||i!=="_")&&(n[i]=e[i])},pR=(n,e,t)=>{const i=n.slots=OS();if(n.vnode.shapeFlag&32){const r=e._;r?(VS(i,e,t),t&&UM(i,"_",r,!0)):BS(e,i)}else e&&zS(n,e)},mR=(n,e,t)=>{const{vnode:i,slots:r}=n;let s=!0,o=vt;if(i.shapeFlag&32){const a=e._;a?t&&a===1?s=!1:VS(r,e,t):(s=!e.$stable,BS(e,r)),o=e}else e&&(zS(n,e),o={default:1});if(s)for(const a in r)!kS(a)&&o[a]==null&&delete r[a]},Dn=CR;function HS(n){return gR(n)}function gR(n,e){const t=Gh();t.__VUE__=!0;const{insert:i,remove:r,patchProp:s,createElement:o,createText:a,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:h,setScopeId:d=Ki,insertStaticContent:p}=n,_=(I,D,w,j=null,G=null,q=null,P=void 0,N=null,z=!!D.dynamicChildren)=>{if(I===D)return;I&&!io(I,D)&&(j=W(I),ye(I,G,q,!0),I=null),D.patchFlag===-2&&(z=!1,D.dynamicChildren=null);const{type:A,ref:C,shapeFlag:B}=D;switch(A){case Ic:g(I,D,w,j);break;case Fn:m(I,D,w,j);break;case _f:I==null&&y(D,w,j,P);break;case jt:F(I,D,w,j,G,q,P,N,z);break;default:B&1?E(I,D,w,j,G,q,P,N,z):B&6?V(I,D,w,j,G,q,P,N,z):(B&64||B&128)&&A.process(I,D,w,j,G,q,P,N,z,le)}C!=null&&G&&Nf(C,I&&I.ref,q,D||I,!D)},g=(I,D,w,j)=>{if(I==null)i(D.el=a(D.children),w,j);else{const G=D.el=I.el;D.children!==I.children&&c(G,D.children)}},m=(I,D,w,j)=>{I==null?i(D.el=l(D.children||""),w,j):D.el=I.el},y=(I,D,w,j)=>{[I.el,I.anchor]=p(I.children,D,w,j,I.el,I.anchor)},b=({el:I,anchor:D},w,j)=>{let G;for(;I&&I!==D;)G=h(I),i(I,w,j),I=G;i(D,w,j)},v=({el:I,anchor:D})=>{let w;for(;I&&I!==D;)w=h(I),r(I),I=w;r(D)},E=(I,D,w,j,G,q,P,N,z)=>{D.type==="svg"?P="svg":D.type==="math"&&(P="mathml"),I==null?T(D,w,j,G,q,P,N,z):x(I,D,G,q,P,N,z)},T=(I,D,w,j,G,q,P,N)=>{let z,A;const{props:C,shapeFlag:B,transition:U,dirs:H}=I;if(z=I.el=o(I.type,q,C&&C.is,C),B&8?u(z,I.children):B&16&&R(I.children,z,null,j,G,dp(I,q),P,N),H&&Ds(I,null,j,"created"),S(z,I,I.scopeId,P,j),C){for(const he in C)he!=="value"&&!gl(he)&&s(z,he,null,C[he],q,j);"value"in C&&s(z,"value",null,C.value,q),(A=C.onVnodeBeforeMount)&&Hi(A,j,I)}H&&Ds(I,null,j,"beforeMount");const Y=_R(G,U);Y&&U.beforeEnter(z),i(z,D,w),((A=C&&C.onVnodeMounted)||Y||H)&&Dn(()=>{A&&Hi(A,j,I),Y&&U.enter(z),H&&Ds(I,null,j,"mounted")},G)},S=(I,D,w,j,G)=>{if(w&&d(I,w),j)for(let q=0;q{for(let A=z;A{const N=D.el=I.el;let{patchFlag:z,dynamicChildren:A,dirs:C}=D;z|=I.patchFlag&16;const B=I.props||vt,U=D.props||vt;let H;if(w&&Os(w,!1),(H=U.onVnodeBeforeUpdate)&&Hi(H,w,D,I),C&&Ds(D,I,w,"beforeUpdate"),w&&Os(w,!0),(B.innerHTML&&U.innerHTML==null||B.textContent&&U.textContent==null)&&u(N,""),A?M(I.dynamicChildren,A,N,w,j,dp(D,G),q):P||Q(I,D,N,null,w,j,dp(D,G),q,!1),z>0){if(z&16)L(N,B,U,w,G);else if(z&2&&B.class!==U.class&&s(N,"class",null,U.class,G),z&4&&s(N,"style",B.style,U.style,G),z&8){const Y=D.dynamicProps;for(let he=0;he{H&&Hi(H,w,D,I),C&&Ds(D,I,w,"updated")},j)},M=(I,D,w,j,G,q,P)=>{for(let N=0;N{if(D!==w){if(D!==vt)for(const q in D)!gl(q)&&!(q in w)&&s(I,q,D[q],null,G,j);for(const q in w){if(gl(q))continue;const P=w[q],N=D[q];P!==N&&q!=="value"&&s(I,q,N,P,G,j)}"value"in w&&s(I,"value",D.value,w.value,G)}},F=(I,D,w,j,G,q,P,N,z)=>{const A=D.el=I?I.el:a(""),C=D.anchor=I?I.anchor:a("");let{patchFlag:B,dynamicChildren:U,slotScopeIds:H}=D;H&&(N=N?N.concat(H):H),I==null?(i(A,w,j),i(C,w,j),R(D.children||[],w,C,G,q,P,N,z)):B>0&&B&64&&U&&I.dynamicChildren?(M(I.dynamicChildren,U,w,G,q,P,N),(D.key!=null||G&&D===G.subTree)&&R0(I,D,!0)):Q(I,D,w,C,G,q,P,N,z)},V=(I,D,w,j,G,q,P,N,z)=>{D.slotScopeIds=N,I==null?D.shapeFlag&512?G.ctx.activate(D,w,j,P,z):X(D,w,j,G,q,P,z):te(I,D,z)},X=(I,D,w,j,G,q,P)=>{const N=I.component=FR(I,j,G);if(Kh(I)&&(N.ctx.renderer=le),kR(N,!1,P),N.asyncDep){if(G&&G.registerDep(N,Z,P),!I.el){const z=N.subTree=pn(Fn);m(null,z,D,w)}}else Z(N,I,D,w,G,q,P)},te=(I,D,w)=>{const j=D.component=I.component;if(wR(I,D,w))if(j.asyncDep&&!j.asyncResolved){ee(j,D,w);return}else j.next=D,j.update();else D.el=I.el,j.vnode=D},Z=(I,D,w,j,G,q,P)=>{const N=()=>{if(I.isMounted){let{next:B,bu:U,u:H,parent:Y,vnode:he}=I;{const Ae=GS(I);if(Ae){B&&(B.el=he.el,ee(I,B,P)),Ae.asyncDep.then(()=>{I.isUnmounted||N()});return}}let ce=B,xe;Os(I,!1),B?(B.el=he.el,ee(I,B,P)):B=he,U&&mf(U),(xe=B.props&&B.props.onVnodeBeforeUpdate)&&Hi(xe,Y,B,he),Os(I,!0);const Be=Tv(I),me=I.subTree;I.subTree=Be,_(me,Be,f(me.el),W(me),I,G,q),B.el=Be.el,ce===null&&AR(I,Be.el),H&&Dn(H,G),(xe=B.props&&B.props.onVnodeUpdated)&&Dn(()=>Hi(xe,Y,B,he),G)}else{let B;const{el:U,props:H}=D,{bm:Y,m:he,parent:ce,root:xe,type:Be}=I,me=ga(D);Os(I,!1),Y&&mf(Y),!me&&(B=H&&H.onVnodeBeforeMount)&&Hi(B,ce,D),Os(I,!0);{xe.ce&&xe.ce._injectChildStyle(Be);const Ae=I.subTree=Tv(I);_(null,Ae,w,j,I,G,q),D.el=Ae.el}if(he&&Dn(he,G),!me&&(B=H&&H.onVnodeMounted)){const Ae=D;Dn(()=>Hi(B,ce,Ae),G)}(D.shapeFlag&256||ce&&ga(ce.vnode)&&ce.vnode.shapeFlag&256)&&I.a&&Dn(I.a,G),I.isMounted=!0,D=w=j=null}};I.scope.on();const z=I.effect=new VM(N);I.scope.off();const A=I.update=z.run.bind(z),C=I.job=z.runIfDirty.bind(z);C.i=I,C.id=I.uid,z.scheduler=()=>E0(C),Os(I,!0),A()},ee=(I,D,w)=>{D.component=I;const j=I.vnode.props;I.vnode=D,I.next=null,fR(I,D.props,j,w),mR(I,D.children,w),xs(),pv(I),Ms()},Q=(I,D,w,j,G,q,P,N,z=!1)=>{const A=I&&I.children,C=I?I.shapeFlag:0,B=D.children,{patchFlag:U,shapeFlag:H}=D;if(U>0){if(U&128){be(A,B,w,j,G,q,P,N,z);return}else if(U&256){de(A,B,w,j,G,q,P,N,z);return}}H&8?(C&16&&Me(A,G,q),B!==A&&u(w,B)):C&16?H&16?be(A,B,w,j,G,q,P,N,z):Me(A,G,q,!0):(C&8&&u(w,""),H&16&&R(B,w,j,G,q,P,N,z))},de=(I,D,w,j,G,q,P,N,z)=>{I=I||da,D=D||da;const A=I.length,C=D.length,B=Math.min(A,C);let U;for(U=0;UC?Me(I,G,q,!0,!1,B):R(D,w,j,G,q,P,N,z,B)},be=(I,D,w,j,G,q,P,N,z)=>{let A=0;const C=D.length;let B=I.length-1,U=C-1;for(;A<=B&&A<=U;){const H=I[A],Y=D[A]=z?rs(D[A]):qi(D[A]);if(io(H,Y))_(H,Y,w,null,G,q,P,N,z);else break;A++}for(;A<=B&&A<=U;){const H=I[B],Y=D[U]=z?rs(D[U]):qi(D[U]);if(io(H,Y))_(H,Y,w,null,G,q,P,N,z);else break;B--,U--}if(A>B){if(A<=U){const H=U+1,Y=HU)for(;A<=B;)ye(I[A],G,q,!0),A++;else{const H=A,Y=A,he=new Map;for(A=Y;A<=U;A++){const Ee=D[A]=z?rs(D[A]):qi(D[A]);Ee.key!=null&&he.set(Ee.key,A)}let ce,xe=0;const Be=U-Y+1;let me=!1,Ae=0;const He=new Array(Be);for(A=0;A=Be){ye(Ee,G,q,!0);continue}let Ke;if(Ee.key!=null)Ke=he.get(Ee.key);else for(ce=Y;ce<=U;ce++)if(He[ce-Y]===0&&io(Ee,D[ce])){Ke=ce;break}Ke===void 0?ye(Ee,G,q,!0):(He[Ke-Y]=A+1,Ke>=Ae?Ae=Ke:me=!0,_(Ee,D[Ke],w,null,G,q,P,N,z),xe++)}const qe=me?vR(He):da;for(ce=qe.length-1,A=Be-1;A>=0;A--){const Ee=Y+A,Ke=D[Ee],tt=Ee+1{const{el:q,type:P,transition:N,children:z,shapeFlag:A}=I;if(A&6){re(I.component.subTree,D,w,j);return}if(A&128){I.suspense.move(D,w,j);return}if(A&64){P.move(I,D,w,le);return}if(P===jt){i(q,D,w);for(let B=0;BN.enter(q),G);else{const{leave:B,delayLeave:U,afterLeave:H}=N,Y=()=>i(q,D,w),he=()=>{B(q,()=>{Y(),H&&H()})};U?U(q,Y,he):he()}else i(q,D,w)},ye=(I,D,w,j=!1,G=!1)=>{const{type:q,props:P,ref:N,children:z,dynamicChildren:A,shapeFlag:C,patchFlag:B,dirs:U,cacheIndex:H}=I;if(B===-2&&(G=!1),N!=null&&Nf(N,null,w,I,!0),H!=null&&(D.renderCache[H]=void 0),C&256){D.ctx.deactivate(I);return}const Y=C&1&&U,he=!ga(I);let ce;if(he&&(ce=P&&P.onVnodeBeforeUnmount)&&Hi(ce,D,I),C&6)ge(I.component,w,j);else{if(C&128){I.suspense.unmount(w,j);return}Y&&Ds(I,null,D,"beforeUnmount"),C&64?I.type.remove(I,D,w,le,j):A&&!A.hasOnce&&(q!==jt||B>0&&B&64)?Me(A,D,w,!1,!0):(q===jt&&B&384||!G&&C&16)&&Me(z,D,w),j&&Ve(I)}(he&&(ce=P&&P.onVnodeUnmounted)||Y)&&Dn(()=>{ce&&Hi(ce,D,I),Y&&Ds(I,null,D,"unmounted")},w)},Ve=I=>{const{type:D,el:w,anchor:j,transition:G}=I;if(D===jt){se(w,j);return}if(D===_f){v(I);return}const q=()=>{r(w),G&&!G.persisted&&G.afterLeave&&G.afterLeave()};if(I.shapeFlag&1&&G&&!G.persisted){const{leave:P,delayLeave:N}=G,z=()=>P(w,q);N?N(I.el,q,z):z()}else q()},se=(I,D)=>{let w;for(;I!==D;)w=h(I),r(I),I=w;r(D)},ge=(I,D,w)=>{const{bum:j,scope:G,job:q,subTree:P,um:N,m:z,a:A}=I;Ev(z),Ev(A),j&&mf(j),G.stop(),q&&(q.flags|=8,ye(P,I,D,w)),N&&Dn(N,D),Dn(()=>{I.isUnmounted=!0},D),D&&D.pendingBranch&&!D.isUnmounted&&I.asyncDep&&!I.asyncResolved&&I.suspenseId===D.pendingId&&(D.deps--,D.deps===0&&D.resolve())},Me=(I,D,w,j=!1,G=!1,q=0)=>{for(let P=q;P{if(I.shapeFlag&6)return W(I.component.subTree);if(I.shapeFlag&128)return I.suspense.next();const D=h(I.anchor||I.el),w=D&&D[mS];return w?h(w):D};let ae=!1;const ue=(I,D,w)=>{I==null?D._vnode&&ye(D._vnode,null,null,!0):_(D._vnode||null,I,D,null,null,null,w),D._vnode=I,ae||(ae=!0,pv(),fS(),ae=!1)},le={p:_,um:ye,m:re,r:Ve,mt:X,mc:R,pc:Q,pbc:M,n:W,o:n};return{render:ue,hydrate:void 0,createApp:cR(ue)}}function dp({type:n,props:e},t){return t==="svg"&&n==="foreignObject"||t==="mathml"&&n==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:t}function Os({effect:n,job:e},t){t?(n.flags|=32,e.flags|=4):(n.flags&=-33,e.flags&=-5)}function _R(n,e){return(!n||n&&!n.pendingBranch)&&e&&!e.persisted}function R0(n,e,t=!1){const i=n.children,r=e.children;if(ze(i)&&ze(r))for(let s=0;s>1,n[t[a]]0&&(e[i]=t[s-1]),t[s]=i)}}for(s=t.length,o=t[s-1];s-- >0;)t[s]=o,o=e[o];return t}function GS(n){const e=n.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:GS(e)}function Ev(n){if(n)for(let e=0;eEn(yR);function Rc(n,e){return Pc(n,null,e)}function iG(n,e){return Pc(n,null,{flush:"post"})}function xR(n,e){return Pc(n,null,{flush:"sync"})}function Xe(n,e,t){return Pc(n,e,t)}function Pc(n,e,t=vt){const{immediate:i,deep:r,flush:s,once:o}=t,a=nn({},t),l=e&&i||!e&&s!=="post";let c;if(Kl){if(s==="sync"){const d=bR();c=d.__watcherHandles||(d.__watcherHandles=[])}else if(!l){const d=()=>{};return d.stop=Ki,d.resume=Ki,d.pause=Ki,d}}const u=cn;a.call=(d,p,_)=>Ui(d,u,p,_);let f=!1;s==="post"?a.scheduler=d=>{Dn(d,u&&u.suspense)}:s!=="sync"&&(f=!0,a.scheduler=(d,p)=>{p?d():E0(d)}),a.augmentJob=d=>{e&&(d.flags|=4),f&&(d.flags|=2,u&&(d.id=u.uid,d.i=u))};const h=OC(n,e,a);return Kl&&(c?c.push(h):l&&h()),h}function MR(n,e,t){const i=this.proxy,r=Ut(n)?n.includes(".")?WS(i,n):()=>i[n]:n.bind(i,i);let s;je(e)?s=e:(s=e.handler,t=e);const o=Lc(this),a=Pc(r,s.bind(i),t);return o(),a}function WS(n,e){const t=e.split(".");return()=>{let i=n;for(let r=0;r{let u,f=vt,h;return xR(()=>{const d=n[r];Yn(u,d)&&(u=d,c())}),{get(){return l(),t.get?t.get(u):u},set(d){const p=t.set?t.set(d):d;if(!Yn(p,u)&&!(f!==vt&&Yn(d,f)))return;const _=i.vnode.props;_&&(e in _||r in _||s in _)&&(`onUpdate:${e}`in _||`onUpdate:${r}`in _||`onUpdate:${s}`in _)||(u=d,c()),i.emit(`update:${e}`,p),Yn(d,p)&&Yn(d,f)&&!Yn(p,h)&&c(),f=d,h=p}}});return a[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?o||vt:a,done:!1}:{done:!0}}}},a}const XS=(n,e)=>e==="modelValue"||e==="model-value"?n.modelModifiers:n[`${e}Modifiers`]||n[`${ai(e)}Modifiers`]||n[`${Fr(e)}Modifiers`];function SR(n,e,...t){if(n.isUnmounted)return;const i=n.vnode.props||vt;let r=t;const s=e.startsWith("update:"),o=s&&XS(i,e.slice(7));o&&(o.trim&&(r=t.map(u=>Ut(u)?u.trim():u)),o.number&&(r=t.map(Pf)));let a,l=i[a=pf(e)]||i[a=pf(ai(e))];!l&&s&&(l=i[a=pf(Fr(e))]),l&&Ui(l,n,6,r);const c=i[a+"Once"];if(c){if(!n.emitted)n.emitted={};else if(n.emitted[a])return;n.emitted[a]=!0,Ui(c,n,6,r)}}function $S(n,e,t=!1){const i=e.emitsCache,r=i.get(n);if(r!==void 0)return r;const s=n.emits;let o={},a=!1;if(!je(n)){const l=c=>{const u=$S(c,e,!0);u&&(a=!0,nn(o,u))};!t&&e.mixins.length&&e.mixins.forEach(l),n.extends&&l(n.extends),n.mixins&&n.mixins.forEach(l)}return!s&&!a?(It(n)&&i.set(n,null),null):(ze(s)?s.forEach(l=>o[l]=null):nn(o,s),It(n)&&i.set(n,o),o)}function Jh(n,e){return!n||!zh(e)?!1:(e=e.slice(2).replace(/Once$/,""),St(n,e[0].toLowerCase()+e.slice(1))||St(n,Fr(e))||St(n,e))}function Tv(n){const{type:e,vnode:t,proxy:i,withProxy:r,propsOptions:[s],slots:o,attrs:a,emit:l,render:c,renderCache:u,props:f,data:h,setupState:d,ctx:p,inheritAttrs:_}=n,g=Of(n);let m,y;try{if(t.shapeFlag&4){const v=r||i,E=v;m=qi(c.call(E,v,u,f,d,h,p)),y=a}else{const v=e;m=qi(v.length>1?v(f,{attrs:a,slots:o,emit:l}):v(f,null)),y=e.props?a:ER(a)}}catch(v){xl.length=0,jh(v,n,1),m=pn(Fn)}let b=m;if(y&&_!==!1){const v=Object.keys(y),{shapeFlag:E}=b;v.length&&E&7&&(s&&v.some(h0)&&(y=TR(y,s)),b=ds(b,y,!1,!0))}return t.dirs&&(b=ds(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(t.dirs):t.dirs),t.transition&&Xl(b,t.transition),m=b,Of(g),m}const ER=n=>{let e;for(const t in n)(t==="class"||t==="style"||zh(t))&&((e||(e={}))[t]=n[t]);return e},TR=(n,e)=>{const t={};for(const i in n)(!h0(i)||!(i.slice(9)in e))&&(t[i]=n[i]);return t};function wR(n,e,t){const{props:i,children:r,component:s}=n,{props:o,children:a,patchFlag:l}=e,c=s.emitsOptions;if(e.dirs||e.transition)return!0;if(t&&l>=0){if(l&1024)return!0;if(l&16)return i?wv(i,o,c):!!o;if(l&8){const u=e.dynamicProps;for(let f=0;fn.__isSuspense;function CR(n,e){e&&e.pendingBranch?ze(n)?e.effects.push(...n):e.effects.push(n):FC(n)}const jt=Symbol.for("v-fgt"),Ic=Symbol.for("v-txt"),Fn=Symbol.for("v-cmt"),_f=Symbol.for("v-stc"),xl=[];let ri=null;function mn(n=!1){xl.push(ri=n?null:[])}function RR(){xl.pop(),ri=xl[xl.length-1]||null}let ql=1;function Av(n,e=!1){ql+=n,n<0&&ri&&e&&(ri.hasOnce=!0)}function YS(n){return n.dynamicChildren=ql>0?ri||da:null,RR(),ql>0&&ri&&ri.push(n),n}function vi(n,e,t,i,r,s){return YS(is(n,e,t,i,r,s,!0))}function Yl(n,e,t,i,r){return YS(pn(n,e,t,i,r,!0))}function jl(n){return n?n.__v_isVNode===!0:!1}function io(n,e){return n.type===e.type&&n.key===e.key}const jS=({key:n})=>n??null,vf=({ref:n,ref_key:e,ref_for:t})=>(typeof n=="number"&&(n=""+n),n!=null?Ut(n)||Pt(n)||je(n)?{i:Qt,r:n,k:e,f:!!t}:n:null);function is(n,e=null,t=null,i=0,r=null,s=n===jt?0:1,o=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:n,props:e,key:e&&jS(e),ref:e&&vf(e),scopeId:dS,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:i,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Qt};return a?(P0(l,t),s&128&&n.normalize(l)):t&&(l.shapeFlag|=Ut(t)?8:16),ql>0&&!o&&ri&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&ri.push(l),l}const pn=PR;function PR(n,e=null,t=null,i=0,r=null,s=!1){if((!n||n===AS)&&(n=Fn),jl(n)){const a=ds(n,e,!0);return t&&P0(a,t),ql>0&&!s&&ri&&(a.shapeFlag&6?ri[ri.indexOf(n)]=a:ri.push(a)),a.patchFlag=-2,a}if(HR(n)&&(n=n.__vccOpts),e){e=IR(e);let{class:a,style:l}=e;a&&!Ut(a)&&(e.class=Na(a)),It(l)&&(x0(l)&&!ze(l)&&(l=nn({},l)),e.style=Si(l))}const o=Ut(n)?1:qS(n)?128:gS(n)?64:It(n)?4:je(n)?2:0;return is(n,e,t,i,r,o,s,!0)}function IR(n){return n?x0(n)||NS(n)?nn({},n):n:null}function ds(n,e,t=!1,i=!1){const{props:r,ref:s,patchFlag:o,children:a,transition:l}=n,c=e?OR(r||{},e):r,u={__v_isVNode:!0,__v_skip:!0,type:n.type,props:c,key:c&&jS(c),ref:e&&e.ref?t&&s?ze(s)?s.concat(vf(e)):[s,vf(e)]:vf(e):s,scopeId:n.scopeId,slotScopeIds:n.slotScopeIds,children:a,target:n.target,targetStart:n.targetStart,targetAnchor:n.targetAnchor,staticCount:n.staticCount,shapeFlag:n.shapeFlag,patchFlag:e&&n.type!==jt?o===-1?16:o|16:o,dynamicProps:n.dynamicProps,dynamicChildren:n.dynamicChildren,appContext:n.appContext,dirs:n.dirs,transition:l,component:n.component,suspense:n.suspense,ssContent:n.ssContent&&ds(n.ssContent),ssFallback:n.ssFallback&&ds(n.ssFallback),el:n.el,anchor:n.anchor,ctx:n.ctx,ce:n.ce};return l&&i&&Xl(u,l.clone(u)),u}function LR(n=" ",e=0){return pn(Ic,null,n,e)}function DR(n,e){const t=pn(_f,null,n);return t.staticCount=e,t}function Cv(n="",e=!1){return e?(mn(),Yl(Fn,null,n)):pn(Fn,null,n)}function qi(n){return n==null||typeof n=="boolean"?pn(Fn):ze(n)?pn(jt,null,n.slice()):jl(n)?rs(n):pn(Ic,null,String(n))}function rs(n){return n.el===null&&n.patchFlag!==-1||n.memo?n:ds(n)}function P0(n,e){let t=0;const{shapeFlag:i}=n;if(e==null)e=null;else if(ze(e))t=16;else if(typeof e=="object")if(i&65){const r=e.default;r&&(r._c&&(r._d=!1),P0(n,r()),r._c&&(r._d=!0));return}else{t=32;const r=e._;!r&&!NS(e)?e._ctx=Qt:r===3&&Qt&&(Qt.slots._===1?e._=1:(e._=2,n.patchFlag|=1024))}else je(e)?(e={default:e,_ctx:Qt},t=32):(e=String(e),i&64?(t=16,e=[LR(e)]):t=8);n.children=e,n.shapeFlag|=t}function OR(...n){const e={};for(let t=0;tcn||Qt;let Ff,ig;{const n=Gh(),e=(t,i)=>{let r;return(r=n[t])||(r=n[t]=[]),r.push(i),s=>{r.length>1?r.forEach(o=>o(s)):r[0](s)}};Ff=e("__VUE_INSTANCE_SETTERS__",t=>cn=t),ig=e("__VUE_SSR_SETTERS__",t=>Kl=t)}const Lc=n=>{const e=cn;return Ff(n),n.scope.on(),()=>{n.scope.off(),Ff(e)}},Rv=()=>{cn&&cn.scope.off(),Ff(null)};function KS(n){return n.vnode.shapeFlag&4}let Kl=!1;function kR(n,e=!1,t=!1){e&&ig(e);const{props:i,children:r}=n.vnode,s=KS(n);uR(n,i,s,e),pR(n,r,t);const o=s?BR(n,e):void 0;return e&&ig(!1),o}function BR(n,e){const t=n.type;n.accessCache=Object.create(null),n.proxy=new Proxy(n.ctx,nR);const{setup:i}=t;if(i){xs();const r=n.setupContext=i.length>1?JS(n):null,s=Lc(n),o=Ac(i,n,0,[n.props,r]),a=DM(o);if(Ms(),s(),(a||n.sp)&&!ga(n)&&ES(n),a){if(o.then(Rv,Rv),e)return o.then(l=>{Pv(n,l)}).catch(l=>{jh(l,n,0)});n.asyncDep=o}else Pv(n,o)}else ZS(n)}function Pv(n,e,t){je(e)?n.type.__ssrInlineRender?n.ssrRender=e:n.render=e:It(e)&&(n.setupState=sS(e)),ZS(n)}function ZS(n,e,t){const i=n.type;n.render||(n.render=i.render||Ki);{const r=Lc(n);xs();try{iR(n)}finally{Ms(),r()}}}const zR={get(n,e){return Mn(n,"get",""),n[e]}};function JS(n){const e=t=>{n.exposed=t||{}};return{attrs:new Proxy(n.attrs,zR),slots:n.slots,emit:n.emit,expose:e}}function Qh(n){return n.exposed?n.exposeProxy||(n.exposeProxy=new Proxy(sS(M0(n.exposed)),{get(e,t){if(t in e)return e[t];if(t in bl)return bl[t](n)},has(e,t){return t in e||t in bl}})):n.proxy}function VR(n,e=!0){return je(n)?n.displayName||n.name:n.name||e&&n.__name}function HR(n){return je(n)&&"__vccOpts"in n}const Se=(n,e)=>LC(n,e,Kl);function Lr(n,e,t){const i=arguments.length;return i===2?It(e)&&!ze(e)?jl(e)?pn(n,null,[e]):pn(n,e):pn(n,null,e):(i>3?t=Array.prototype.slice.call(arguments,2):i===3&&jl(t)&&(t=[t]),pn(n,e,t))}const GR="3.5.13";/** +* @vue/runtime-dom v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let rg;const Iv=typeof window<"u"&&window.trustedTypes;if(Iv)try{rg=Iv.createPolicy("vue",{createHTML:n=>n})}catch{}const QS=rg?n=>rg.createHTML(n):n=>n,WR="http://www.w3.org/2000/svg",XR="http://www.w3.org/1998/Math/MathML",vr=typeof document<"u"?document:null,Lv=vr&&vr.createElement("template"),$R={insert:(n,e,t)=>{e.insertBefore(n,t||null)},remove:n=>{const e=n.parentNode;e&&e.removeChild(n)},createElement:(n,e,t,i)=>{const r=e==="svg"?vr.createElementNS(WR,n):e==="mathml"?vr.createElementNS(XR,n):t?vr.createElement(n,{is:t}):vr.createElement(n);return n==="select"&&i&&i.multiple!=null&&r.setAttribute("multiple",i.multiple),r},createText:n=>vr.createTextNode(n),createComment:n=>vr.createComment(n),setText:(n,e)=>{n.nodeValue=e},setElementText:(n,e)=>{n.textContent=e},parentNode:n=>n.parentNode,nextSibling:n=>n.nextSibling,querySelector:n=>vr.querySelector(n),setScopeId(n,e){n.setAttribute(e,"")},insertStaticContent(n,e,t,i,r,s){const o=t?t.previousSibling:e.lastChild;if(r&&(r===s||r.nextSibling))for(;e.insertBefore(r.cloneNode(!0),t),!(r===s||!(r=r.nextSibling)););else{Lv.innerHTML=QS(i==="svg"?`${n}`:i==="mathml"?`${n}`:n);const a=Lv.content;if(i==="svg"||i==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}e.insertBefore(a,t)}return[o?o.nextSibling:e.firstChild,t?t.previousSibling:e.lastChild]}},Wr="transition",Ya="animation",Zl=Symbol("_vtc"),e1={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},qR=nn({},yS,e1),YR=n=>(n.displayName="Transition",n.props=qR,n),sG=YR((n,{slots:e})=>Lr(VC,jR(n),e)),Ns=(n,e=[])=>{ze(n)?n.forEach(t=>t(...e)):n&&n(...e)},Dv=n=>n?ze(n)?n.some(e=>e.length>1):n.length>1:!1;function jR(n){const e={};for(const F in n)F in e1||(e[F]=n[F]);if(n.css===!1)return e;const{name:t="v",type:i,duration:r,enterFromClass:s=`${t}-enter-from`,enterActiveClass:o=`${t}-enter-active`,enterToClass:a=`${t}-enter-to`,appearFromClass:l=s,appearActiveClass:c=o,appearToClass:u=a,leaveFromClass:f=`${t}-leave-from`,leaveActiveClass:h=`${t}-leave-active`,leaveToClass:d=`${t}-leave-to`}=n,p=KR(r),_=p&&p[0],g=p&&p[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:b,onLeave:v,onLeaveCancelled:E,onBeforeAppear:T=m,onAppear:S=y,onAppearCancelled:R=b}=e,x=(F,V,X,te)=>{F._enterCancelled=te,Us(F,V?u:a),Us(F,V?c:o),X&&X()},M=(F,V)=>{F._isLeaving=!1,Us(F,f),Us(F,d),Us(F,h),V&&V()},L=F=>(V,X)=>{const te=F?S:y,Z=()=>x(V,F,X);Ns(te,[V,Z]),Ov(()=>{Us(V,F?l:s),lr(V,F?u:a),Dv(te)||Nv(V,i,_,Z)})};return nn(e,{onBeforeEnter(F){Ns(m,[F]),lr(F,s),lr(F,o)},onBeforeAppear(F){Ns(T,[F]),lr(F,l),lr(F,c)},onEnter:L(!1),onAppear:L(!0),onLeave(F,V){F._isLeaving=!0;const X=()=>M(F,V);lr(F,f),F._enterCancelled?(lr(F,h),kv()):(kv(),lr(F,h)),Ov(()=>{F._isLeaving&&(Us(F,f),lr(F,d),Dv(v)||Nv(F,i,g,X))}),Ns(v,[F,X])},onEnterCancelled(F){x(F,!1,void 0,!0),Ns(b,[F])},onAppearCancelled(F){x(F,!0,void 0,!0),Ns(R,[F])},onLeaveCancelled(F){M(F),Ns(E,[F])}})}function KR(n){if(n==null)return null;if(It(n))return[pp(n.enter),pp(n.leave)];{const e=pp(n);return[e,e]}}function pp(n){return JA(n)}function lr(n,e){e.split(/\s+/).forEach(t=>t&&n.classList.add(t)),(n[Zl]||(n[Zl]=new Set)).add(e)}function Us(n,e){e.split(/\s+/).forEach(i=>i&&n.classList.remove(i));const t=n[Zl];t&&(t.delete(e),t.size||(n[Zl]=void 0))}function Ov(n){requestAnimationFrame(()=>{requestAnimationFrame(n)})}let ZR=0;function Nv(n,e,t,i){const r=n._endId=++ZR,s=()=>{r===n._endId&&i()};if(t!=null)return setTimeout(s,t);const{type:o,timeout:a,propCount:l}=JR(n,e);if(!o)return i();const c=o+"end";let u=0;const f=()=>{n.removeEventListener(c,h),s()},h=d=>{d.target===n&&++u>=l&&f()};setTimeout(()=>{u(t[p]||"").split(", "),r=i(`${Wr}Delay`),s=i(`${Wr}Duration`),o=Uv(r,s),a=i(`${Ya}Delay`),l=i(`${Ya}Duration`),c=Uv(a,l);let u=null,f=0,h=0;e===Wr?o>0&&(u=Wr,f=o,h=s.length):e===Ya?c>0&&(u=Ya,f=c,h=l.length):(f=Math.max(o,c),u=f>0?o>c?Wr:Ya:null,h=u?u===Wr?s.length:l.length:0);const d=u===Wr&&/\b(transform|all)(,|$)/.test(i(`${Wr}Property`).toString());return{type:u,timeout:f,propCount:h,hasTransform:d}}function Uv(n,e){for(;n.lengthFv(t)+Fv(n[i])))}function Fv(n){return n==="auto"?0:Number(n.slice(0,-1).replace(",","."))*1e3}function kv(){return document.body.offsetHeight}function QR(n,e,t){const i=n[Zl];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?n.removeAttribute("class"):t?n.setAttribute("class",e):n.className=e}const Bv=Symbol("_vod"),e2=Symbol("_vsh"),t2=Symbol(""),n2=/(^|;)\s*display\s*:/;function i2(n,e,t){const i=n.style,r=Ut(t);let s=!1;if(t&&!r){if(e)if(Ut(e))for(const o of e.split(";")){const a=o.slice(0,o.indexOf(":")).trim();t[a]==null&&yf(i,a,"")}else for(const o in e)t[o]==null&&yf(i,o,"");for(const o in t)o==="display"&&(s=!0),yf(i,o,t[o])}else if(r){if(e!==t){const o=i[t2];o&&(t+=";"+o),i.cssText=t,s=n2.test(t)}}else e&&n.removeAttribute("style");Bv in n&&(n[Bv]=s?i.display:"",n[e2]&&(i.display="none"))}const zv=/\s*!important$/;function yf(n,e,t){if(ze(t))t.forEach(i=>yf(n,e,i));else if(t==null&&(t=""),e.startsWith("--"))n.setProperty(e,t);else{const i=r2(n,e);zv.test(t)?n.setProperty(Fr(i),t.replace(zv,""),"important"):n[i]=t}}const Vv=["Webkit","Moz","ms"],mp={};function r2(n,e){const t=mp[e];if(t)return t;let i=ai(e);if(i!=="filter"&&i in n)return mp[e]=i;i=Hh(i);for(let r=0;rgp||(l2.then(()=>gp=0),gp=Date.now());function u2(n,e){const t=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=t.attached)return;Ui(f2(i,t.value),e,5,[i])};return t.value=n,t.attached=c2(),t}function f2(n,e){if(ze(e)){const t=n.stopImmediatePropagation;return n.stopImmediatePropagation=()=>{t.call(n),n._stopped=!0},e.map(i=>r=>!r._stopped&&i&&i(r))}else return e}const qv=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&n.charCodeAt(2)>96&&n.charCodeAt(2)<123,h2=(n,e,t,i,r,s)=>{const o=r==="svg";e==="class"?QR(n,i,o):e==="style"?i2(n,t,i):zh(e)?h0(e)||o2(n,e,t,i,s):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):d2(n,e,i,o))?(Wv(n,e,i),!n.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&Gv(n,e,i,o,s,e!=="value")):n._isVueCE&&(/[A-Z]/.test(e)||!Ut(i))?Wv(n,ai(e),i,s,e):(e==="true-value"?n._trueValue=i:e==="false-value"&&(n._falseValue=i),Gv(n,e,i,o))};function d2(n,e,t,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in n&&qv(e)&&je(t));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="form"||e==="list"&&n.tagName==="INPUT"||e==="type"&&n.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const r=n.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return qv(e)&&Ut(t)?!1:e in n}const ps=n=>{const e=n.props["onUpdate:modelValue"]||!1;return ze(e)?t=>mf(e,t):e};function p2(n){n.target.composing=!0}function Yv(n){const e=n.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const yi=Symbol("_assign"),jv={created(n,{modifiers:{lazy:e,trim:t,number:i}},r){n[yi]=ps(r);const s=i||r.props&&r.props.type==="number";xr(n,e?"change":"input",o=>{if(o.target.composing)return;let a=n.value;t&&(a=a.trim()),s&&(a=Pf(a)),n[yi](a)}),t&&xr(n,"change",()=>{n.value=n.value.trim()}),e||(xr(n,"compositionstart",p2),xr(n,"compositionend",Yv),xr(n,"change",Yv))},mounted(n,{value:e}){n.value=e??""},beforeUpdate(n,{value:e,oldValue:t,modifiers:{lazy:i,trim:r,number:s}},o){if(n[yi]=ps(o),n.composing)return;const a=(s||n.type==="number")&&!/^0\d/.test(n.value)?Pf(n.value):n.value,l=e??"";a!==l&&(document.activeElement===n&&n.type!=="range"&&(i&&e===t||r&&n.value.trim()===l)||(n.value=l))}},m2={deep:!0,created(n,e,t){n[yi]=ps(t),xr(n,"change",()=>{const i=n._modelValue,r=ba(n),s=n.checked,o=n[yi];if(ze(i)){const a=m0(i,r),l=a!==-1;if(s&&!l)o(i.concat(r));else if(!s&&l){const c=[...i];c.splice(a,1),o(c)}}else if(Oa(i)){const a=new Set(i);s?a.add(r):a.delete(r),o(a)}else o(t1(n,s))})},mounted:Kv,beforeUpdate(n,e,t){n[yi]=ps(t),Kv(n,e,t)}};function Kv(n,{value:e,oldValue:t},i){n._modelValue=e;let r;if(ze(e))r=m0(e,i.props.value)>-1;else if(Oa(e))r=e.has(i.props.value);else{if(e===t)return;r=yo(e,t1(n,!0))}n.checked!==r&&(n.checked=r)}const g2={created(n,{value:e},t){n.checked=yo(e,t.props.value),n[yi]=ps(t),xr(n,"change",()=>{n[yi](ba(n))})},beforeUpdate(n,{value:e,oldValue:t},i){n[yi]=ps(i),e!==t&&(n.checked=yo(e,i.props.value))}},_2={deep:!0,created(n,{value:e,modifiers:{number:t}},i){const r=Oa(e);xr(n,"change",()=>{const s=Array.prototype.filter.call(n.options,o=>o.selected).map(o=>t?Pf(ba(o)):ba(o));n[yi](n.multiple?r?new Set(s):s:s[0]),n._assigning=!0,Ss(()=>{n._assigning=!1})}),n[yi]=ps(i)},mounted(n,{value:e}){Zv(n,e)},beforeUpdate(n,e,t){n[yi]=ps(t)},updated(n,{value:e}){n._assigning||Zv(n,e)}};function Zv(n,e){const t=n.multiple,i=ze(e);if(!(t&&!i&&!Oa(e))){for(let r=0,s=n.options.length;rString(c)===String(a)):o.selected=m0(e,a)>-1}else o.selected=e.has(a);else if(yo(ba(o),e)){n.selectedIndex!==r&&(n.selectedIndex=r);return}}!t&&n.selectedIndex!==-1&&(n.selectedIndex=-1)}}function ba(n){return"_value"in n?n._value:n.value}function t1(n,e){const t=e?"_trueValue":"_falseValue";return t in n?n[t]:e}const oG={created(n,e,t){au(n,e,t,null,"created")},mounted(n,e,t){au(n,e,t,null,"mounted")},beforeUpdate(n,e,t,i){au(n,e,t,i,"beforeUpdate")},updated(n,e,t,i){au(n,e,t,i,"updated")}};function v2(n,e){switch(n){case"SELECT":return _2;case"TEXTAREA":return jv;default:switch(e){case"checkbox":return m2;case"radio":return g2;default:return jv}}}function au(n,e,t,i,r){const o=v2(n.tagName,t.props&&t.props.type)[r];o&&o(n,e,t,i)}const y2=["ctrl","shift","alt","meta"],b2={stop:n=>n.stopPropagation(),prevent:n=>n.preventDefault(),self:n=>n.target!==n.currentTarget,ctrl:n=>!n.ctrlKey,shift:n=>!n.shiftKey,alt:n=>!n.altKey,meta:n=>!n.metaKey,left:n=>"button"in n&&n.button!==0,middle:n=>"button"in n&&n.button!==1,right:n=>"button"in n&&n.button!==2,exact:(n,e)=>y2.some(t=>n[`${t}Key`]&&!e.includes(t))},aG=(n,e)=>{const t=n._withMods||(n._withMods={}),i=e.join(".");return t[i]||(t[i]=(r,...s)=>{for(let o=0;o{const t=n._withKeys||(n._withKeys={}),i=e.join(".");return t[i]||(t[i]=r=>{if(!("key"in r))return;const s=Fr(r.key);if(e.some(o=>o===s||x2[o]===s))return n(r)})},M2=nn({patchProp:h2},$R);let Jv;function n1(){return Jv||(Jv=HS(M2))}const cG=(...n)=>{n1().render(...n)},S2=(...n)=>{const e=n1().createApp(...n),{mount:t}=e;return e.mount=i=>{const r=T2(i);if(!r)return;const s=e._component;!je(s)&&!s.render&&!s.template&&(s.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=t(r,!1,E2(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},e};function E2(n){if(n instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&n instanceof MathMLElement)return"mathml"}function T2(n){return Ut(n)?document.querySelector(n):n}const i1=new Set,Zn=new WeakMap,xa=new WeakMap,xo=new WeakMap,sg=new WeakMap,w2=new WeakMap,Ma=new WeakMap,kf=new WeakMap,dl=new WeakSet;let ms,I0=0,L0=0;const Er="__aa_tgt",Jl="__aa_del",Bf="__aa_new",A2=n=>{const e=D2(n);e&&e.forEach(t=>O2(t))},C2=n=>{n.forEach(e=>{e.target===ms&&P2(),Zn.has(e.target)&&Ro(e.target)})};function R2(n){const e=sg.get(n);e==null||e.disconnect();let t=Zn.get(n),i=0;const r=5;t||(t=Sa(n),Zn.set(n,t));const{offsetWidth:s,offsetHeight:o}=ms,l=[t.top-r,s-(t.left+r+t.width),o-(t.top+r+t.height),t.left-r].map(u=>`${-1*Math.floor(u)}px`).join(" "),c=new IntersectionObserver(()=>{++i>1&&Ro(n)},{root:ms,threshold:1,rootMargin:l});c.observe(n),sg.set(n,c)}function Ro(n){clearTimeout(kf.get(n));const e=ed(n),t=Ql(e)?500:e.duration;kf.set(n,setTimeout(async()=>{const i=xo.get(n);try{await(i==null?void 0:i.finished),Zn.set(n,Sa(n)),R2(n)}catch{}},t))}function P2(){clearTimeout(kf.get(ms)),kf.set(ms,setTimeout(()=>{i1.forEach(n=>a1(n,e=>r1(()=>Ro(e))))},100))}function I2(n){setTimeout(()=>{w2.set(n,setInterval(()=>r1(Ro.bind(null,n)),2e3))},Math.round(2e3*Math.random()))}function r1(n){typeof requestIdleCallback=="function"?requestIdleCallback(()=>n()):requestAnimationFrame(()=>n())}let og,aa;const L2=typeof window<"u"&&"ResizeObserver"in window;L2&&(ms=document.documentElement,og=new MutationObserver(A2),aa=new ResizeObserver(C2),window.addEventListener("scroll",()=>{L0=window.scrollY,I0=window.scrollX}),aa.observe(ms));function D2(n){return n.reduce((i,r)=>[...i,...Array.from(r.addedNodes),...Array.from(r.removedNodes)],[]).every(i=>i.nodeName==="#comment")?!1:n.reduce((i,r)=>{if(i===!1)return!1;if(r.target instanceof Element){if(_p(r.target),!i.has(r.target)){i.add(r.target);for(let s=0;st(n,Ma.has(n)));for(let t=0;tr(i,Ma.has(i)))}}function O0(n){return Array.isArray(n)?n:[n]}function Ql(n){return typeof n=="function"}function U2(n){const e=Zn.get(n),t=Sa(n);if(!D0(n))return Zn.set(n,t);let i;if(!e)return;const r=ed(n);if(typeof r!="function"){const s=e.left-t.left,o=e.top-t.top,[a,l,c,u]=s1(n,e,t),f={transform:`translate(${s}px, ${o}px)`},h={transform:"translate(0, 0)"};a!==l&&(f.width=`${a}px`,h.width=`${l}px`),c!==u&&(f.height=`${c}px`,h.height=`${u}px`),i=n.animate([f,h],{duration:r.duration,easing:r.easing})}else{const[s]=O0(r(n,"remain",e,t));i=new Animation(s),i.play()}xo.set(n,i),Zn.set(n,t),i.addEventListener("finish",Ro.bind(null,n))}function Qv(n){Bf in n&&delete n[Bf];const e=Sa(n);Zn.set(n,e);const t=ed(n);if(!D0(n))return;let i;if(typeof t!="function")i=n.animate([{transform:"scale(.98)",opacity:0},{transform:"scale(0.98)",opacity:0,offset:.5},{transform:"scale(1)",opacity:1}],{duration:t.duration*1.5,easing:"ease-in"});else{const[r]=O0(t(n,"add",e));i=new Animation(r),i.play()}xo.set(n,i),i.addEventListener("finish",Ro.bind(null,n))}function ey(n,e){var t;n.remove(),Zn.delete(n),xa.delete(n),xo.delete(n),(t=sg.get(n))===null||t===void 0||t.disconnect(),setTimeout(()=>{if(Jl in n&&delete n[Jl],Object.defineProperty(n,Bf,{value:!0,configurable:!0}),e&&n instanceof HTMLElement)for(const i in e)n.style[i]=""},0)}function F2(n){var e;if(!xa.has(n)||!Zn.has(n))return;const[t,i]=xa.get(n);Object.defineProperty(n,Jl,{value:!0,configurable:!0});const r=window.scrollX,s=window.scrollY;if(i&&i.parentNode&&i.parentNode instanceof Element?i.parentNode.insertBefore(n,i):t&&t.parentNode?t.parentNode.appendChild(n):(e=o1(n))===null||e===void 0||e.appendChild(n),!D0(n))return ey(n);const[o,a,l,c]=B2(n),u=ed(n),f=Zn.get(n);(r!==I0||s!==L0)&&k2(n,r,s,u);let h,d={position:"absolute",top:`${o}px`,left:`${a}px`,width:`${l}px`,height:`${c}px`,margin:"0",pointerEvents:"none",transformOrigin:"center",zIndex:"100"};if(!Ql(u))Object.assign(n.style,d),h=n.animate([{transform:"scale(1)",opacity:1},{transform:"scale(.98)",opacity:0}],{duration:u.duration,easing:"ease-out"});else{const[p,_]=O0(u(n,"remove",f));(_==null?void 0:_.styleReset)!==!1&&(d=(_==null?void 0:_.styleReset)||d,Object.assign(n.style,d)),h=new Animation(p),h.play()}xo.set(n,h),h.addEventListener("finish",ey.bind(null,n,d))}function k2(n,e,t,i){const r=I0-e,s=L0-t,o=document.documentElement.style.scrollBehavior;if(getComputedStyle(ms).scrollBehavior==="smooth"&&(document.documentElement.style.scrollBehavior="auto"),window.scrollTo(window.scrollX+r,window.scrollY+s),!n.parentElement)return;const l=n.parentElement;let c=l.clientHeight,u=l.clientWidth;const f=performance.now();function h(){requestAnimationFrame(()=>{if(!Ql(i)){const d=c-l.clientHeight,p=u-l.clientWidth;f+i.duration>performance.now()?(window.scrollTo({left:window.scrollX-p,top:window.scrollY-d}),c=l.clientHeight,u=l.clientWidth,h()):document.documentElement.style.scrollBehavior=o}})}h()}function B2(n){const e=Zn.get(n),[t,,i]=s1(n,e,Sa(n));let r=n.parentElement;for(;r&&(getComputedStyle(r).position==="static"||r instanceof HTMLBodyElement);)r=r.parentElement;r||(r=document.body);const s=getComputedStyle(r),o=Zn.get(r)||Sa(r),a=Math.round(e.top-o.top)-Xi(s.borderTopWidth),l=Math.round(e.left-o.left)-Xi(s.borderLeftWidth);return[a,l,t,i]}function z2(n,e={}){return og&&aa&&(window.matchMedia("(prefers-reduced-motion: reduce)").matches&&!Ql(e)&&!e.disrespectUserMotionPreference||(dl.add(n),getComputedStyle(n).position==="static"&&Object.assign(n.style,{position:"relative"}),a1(n,Ro,I2,r=>aa==null?void 0:aa.observe(r)),Ql(e)?Ma.set(n,e):Ma.set(n,{duration:250,easing:"ease-in-out",...e}),og.observe(n,{childList:!0}),i1.add(n))),Object.freeze({parent:n,enable:()=>{dl.add(n)},disable:()=>{dl.delete(n)},isEnabled:()=>dl.has(n)})}const V2={mounted:(n,e)=>{z2(n,e.value||{})},getSSRProps:()=>({})},H2=V2,G2={install(n){n.directive("auto-animate",H2)}};/** + * @license + * Copyright 2010-2025 Three.js Authors + * SPDX-License-Identifier: MIT + */const Dc="174",W2={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},X2={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},l1=0,ag=1,c1=2,$2=3,q2=0,N0=1,U0=2,$i=3,Dr=0,zn=1,Pi=2,Rr=0,po=1,lg=2,cg=3,ug=4,u1=5,as=100,f1=101,h1=102,d1=103,p1=104,m1=200,g1=201,_1=202,v1=203,zf=204,Vf=205,y1=206,b1=207,x1=208,M1=209,S1=210,E1=211,T1=212,w1=213,A1=214,Hf=0,Gf=1,Wf=2,Mo=3,Xf=4,$f=5,qf=6,Yf=7,Oc=0,C1=1,R1=2,Zi=0,P1=1,I1=2,L1=3,td=4,D1=5,O1=6,N1=7,fg="attached",U1="detached",nd=300,Or=301,gs=302,ec=303,tc=304,Ua=306,nc=1e3,gi=1001,ic=1002,gn=1003,F0=1004,Y2=1004,la=1005,j2=1005,en=1006,Ml=1007,K2=1007,ji=1008,Z2=1008,nr=1009,k0=1010,B0=1011,Ea=1012,id=1013,Nr=1014,Kn=1015,Fa=1016,rd=1017,sd=1018,So=1020,z0=35902,V0=1021,H0=1022,Bn=1023,G0=1024,W0=1025,mo=1026,Eo=1027,od=1028,Nc=1029,X0=1030,ad=1031,J2=1032,ld=1033,Sl=33776,El=33777,Tl=33778,wl=33779,jf=35840,Kf=35841,Zf=35842,Jf=35843,Qf=36196,eh=37492,th=37496,nh=37808,ih=37809,rh=37810,sh=37811,oh=37812,ah=37813,lh=37814,ch=37815,uh=37816,fh=37817,hh=37818,dh=37819,ph=37820,mh=37821,Al=36492,gh=36494,_h=36495,$0=36283,vh=36284,yh=36285,bh=36286,F1=2200,k1=2201,B1=2202,rc=2300,xh=2301,bf=2302,ao=2400,lo=2401,sc=2402,cd=2500,q0=2501,Q2=0,e3=1,t3=2,z1=3200,V1=3201,n3=3202,i3=3203,Es=0,H1=1,Mr="",Nn="srgb",To="srgb-linear",oc="linear",wt="srgb",r3=0,Qs=7680,s3=7681,o3=7682,a3=7683,l3=34055,c3=34056,u3=5386,f3=512,h3=513,d3=514,p3=515,m3=516,g3=517,_3=518,hg=519,G1=512,W1=513,X1=514,Y0=515,$1=516,q1=517,Y1=518,j1=519,ac=35044,v3=35048,y3=35040,b3=35045,x3=35049,M3=35041,S3=35046,E3=35050,T3=35042,w3="100",dg="300 es",Ii=2e3,lc=2001,A3={COMPUTE:"compute",RENDER:"render"};class rr{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}hasEventListener(e,t){const i=this._listeners;return i===void 0?!1:i[e]!==void 0&&i[e].indexOf(t)!==-1}removeEventListener(e,t){const i=this._listeners;if(i===void 0)return;const r=i[e];if(r!==void 0){const s=r.indexOf(t);s!==-1&&r.splice(s,1)}}dispatchEvent(e){const t=this._listeners;if(t===void 0)return;const i=t[e.type];if(i!==void 0){e.target=this;const r=i.slice(0);for(let s=0,o=r.length;s>8&255]+yn[n>>16&255]+yn[n>>24&255]+"-"+yn[e&255]+yn[e>>8&255]+"-"+yn[e>>16&15|64]+yn[e>>24&255]+"-"+yn[t&63|128]+yn[t>>8&255]+"-"+yn[t>>16&255]+yn[t>>24&255]+yn[i&255]+yn[i>>8&255]+yn[i>>16&255]+yn[i>>24&255]).toLowerCase()}function Qe(n,e,t){return Math.max(e,Math.min(t,n))}function j0(n,e){return(n%e+e)%e}function C3(n,e,t,i,r){return i+(n-e)*(r-i)/(t-e)}function R3(n,e,t){return n!==e?(t-n)/(e-n):0}function Cl(n,e,t){return(1-t)*n+t*e}function P3(n,e,t,i){return Cl(n,e,1-Math.exp(-t*i))}function I3(n,e=1){return e-Math.abs(j0(n,e*2)-e)}function L3(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function D3(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function O3(n,e){return n+Math.floor(Math.random()*(e-n+1))}function N3(n,e){return n+Math.random()*(e-n)}function U3(n){return n*(.5-Math.random())}function F3(n){n!==void 0&&(ty=n);let e=ty+=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 k3(n){return n*go}function B3(n){return n*Ta}function z3(n){return(n&n-1)===0&&n!==0}function V3(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function H3(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function G3(n,e,t,i,r){const s=Math.cos,o=Math.sin,a=s(t/2),l=o(t/2),c=s((e+i)/2),u=o((e+i)/2),f=s((e-i)/2),h=o((e-i)/2),d=s((i-e)/2),p=o((i-e)/2);switch(r){case"XYX":n.set(a*u,l*f,l*h,a*c);break;case"YZY":n.set(l*h,a*u,l*f,a*c);break;case"ZXZ":n.set(l*f,l*h,a*u,a*c);break;case"XZX":n.set(a*u,l*p,l*d,a*c);break;case"YXY":n.set(l*d,a*u,l*p,a*c);break;case"ZYZ":n.set(l*p,l*d,a*u,a*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function kn(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array: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("Invalid component type.")}}function rt(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: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("Invalid component type.")}}const K0={DEG2RAD:go,RAD2DEG:Ta,generateUUID:si,clamp:Qe,euclideanModulo:j0,mapLinear:C3,inverseLerp:R3,lerp:Cl,damp:P3,pingpong:I3,smoothstep:L3,smootherstep:D3,randInt:O3,randFloat:N3,randFloatSpread:U3,seededRandom:F3,degToRad:k3,radToDeg:B3,isPowerOfTwo:z3,ceilPowerOfTwo:V3,floorPowerOfTwo:H3,setQuaternionFromProperEuler:G3,normalize:rt,denormalize:kn};class fe{constructor(e=0,t=0){fe.prototype.isVector2=!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("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("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){const 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=Qe(this.x,e.x,t.x),this.y=Qe(this.y,e.y,t.y),this}clampScalar(e,t){return this.x=Qe(this.x,e,t),this.y=Qe(this.y,e,t),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Qe(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){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Qe(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const 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){const i=Math.cos(t),r=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*i-o*r+e.x,this.y=s*r+o*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class nt{constructor(e,t,i,r,s,o,a,l,c){nt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,l,c)}set(e,t,i,r,s,o,a,l,c){const u=this.elements;return u[0]=e,u[1]=r,u[2]=a,u[3]=t,u[4]=s,u[5]=l,u[6]=i,u[7]=o,u[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const 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){const 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){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[3],l=i[6],c=i[1],u=i[4],f=i[7],h=i[2],d=i[5],p=i[8],_=r[0],g=r[3],m=r[6],y=r[1],b=r[4],v=r[7],E=r[2],T=r[5],S=r[8];return s[0]=o*_+a*y+l*E,s[3]=o*g+a*b+l*T,s[6]=o*m+a*v+l*S,s[1]=c*_+u*y+f*E,s[4]=c*g+u*b+f*T,s[7]=c*m+u*v+f*S,s[2]=h*_+d*y+p*E,s[5]=h*g+d*b+p*T,s[8]=h*m+d*v+p*S,this}multiplyScalar(e){const 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(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],c=e[7],u=e[8];return t*o*u-t*a*c-i*s*u+i*a*l+r*s*c-r*o*l}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],c=e[7],u=e[8],f=u*o-a*c,h=a*l-u*s,d=c*s-o*l,p=t*f+i*h+r*d;if(p===0)return this.set(0,0,0,0,0,0,0,0,0);const _=1/p;return e[0]=f*_,e[1]=(r*c-u*i)*_,e[2]=(a*i-r*o)*_,e[3]=h*_,e[4]=(u*t-r*l)*_,e[5]=(r*s-a*t)*_,e[6]=d*_,e[7]=(i*l-c*t)*_,e[8]=(o*t-i*s)*_,this}transpose(){let e;const 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){const 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,s,o,a){const l=Math.cos(s),c=Math.sin(s);return this.set(i*l,i*c,-i*(l*o+c*a)+o+e,-r*c,r*l,-r*(-c*o+l*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(vp.makeScale(e,t)),this}rotate(e){return this.premultiply(vp.makeRotation(-e)),this}translate(e,t){return this.premultiply(vp.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){const 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){const 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){const 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)}}const vp=new nt;function K1(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}const W3={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function ca(n,e){return new W3[n](e)}function cc(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function Z1(){const n=cc("canvas");return n.style.display="block",n}const ny={};function eo(n){n in ny||(ny[n]=!0,console.warn(n))}function X3(n,e,t){return new Promise(function(i,r){function s(){switch(n.clientWaitSync(e,n.SYNC_FLUSH_COMMANDS_BIT,0)){case n.WAIT_FAILED:r();break;case n.TIMEOUT_EXPIRED:setTimeout(s,t);break;default:i()}}setTimeout(s,t)})}function $3(n){const e=n.elements;e[2]=.5*e[2]+.5*e[3],e[6]=.5*e[6]+.5*e[7],e[10]=.5*e[10]+.5*e[11],e[14]=.5*e[14]+.5*e[15]}function q3(n){const e=n.elements;e[11]===-1?(e[10]=-e[10]-1,e[14]=-e[14]):(e[10]=-e[10],e[14]=-e[14]+1)}const iy=new nt().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),ry=new nt().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function Y3(){const n={enabled:!0,workingColorSpace:To,spaces:{},convert:function(r,s,o){return this.enabled===!1||s===o||!s||!o||(this.spaces[s].transfer===wt&&(r.r=Pr(r.r),r.g=Pr(r.g),r.b=Pr(r.b)),this.spaces[s].primaries!==this.spaces[o].primaries&&(r.applyMatrix3(this.spaces[s].toXYZ),r.applyMatrix3(this.spaces[o].fromXYZ)),this.spaces[o].transfer===wt&&(r.r=_a(r.r),r.g=_a(r.g),r.b=_a(r.b))),r},fromWorkingColorSpace:function(r,s){return this.convert(r,this.workingColorSpace,s)},toWorkingColorSpace:function(r,s){return this.convert(r,s,this.workingColorSpace)},getPrimaries:function(r){return this.spaces[r].primaries},getTransfer:function(r){return r===Mr?oc:this.spaces[r].transfer},getLuminanceCoefficients:function(r,s=this.workingColorSpace){return r.fromArray(this.spaces[s].luminanceCoefficients)},define:function(r){Object.assign(this.spaces,r)},_getMatrix:function(r,s,o){return r.copy(this.spaces[s].toXYZ).multiply(this.spaces[o].fromXYZ)},_getDrawingBufferColorSpace:function(r){return this.spaces[r].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(r=this.workingColorSpace){return this.spaces[r].workingColorSpaceConfig.unpackColorSpace}},e=[.64,.33,.3,.6,.15,.06],t=[.2126,.7152,.0722],i=[.3127,.329];return n.define({[To]:{primaries:e,whitePoint:i,transfer:oc,toXYZ:iy,fromXYZ:ry,luminanceCoefficients:t,workingColorSpaceConfig:{unpackColorSpace:Nn},outputColorSpaceConfig:{drawingBufferColorSpace:Nn}},[Nn]:{primaries:e,whitePoint:i,transfer:wt,toXYZ:iy,fromXYZ:ry,luminanceCoefficients:t,outputColorSpaceConfig:{drawingBufferColorSpace:Nn}}}),n}const ft=Y3();function Pr(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function _a(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}let Bo;class J1{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{Bo===void 0&&(Bo=cc("canvas")),Bo.width=e.width,Bo.height=e.height;const i=Bo.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=Bo}return t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=cc("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),s=r.data;for(let o=0;o0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==nd)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case nc:e.x=e.x-Math.floor(e.x);break;case gi:e.x=e.x<0?0:1;break;case ic: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 nc:e.y=e.y-Math.floor(e.y);break;case gi:e.y=e.y<0?0:1;break;case ic: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++}}Wt.DEFAULT_IMAGE=null;Wt.DEFAULT_MAPPING=nd;Wt.DEFAULT_ANISOTROPY=1;class gt{constructor(e=0,t=0,i=0,r=1){gt.prototype.isVector4=!0,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("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("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){const t=this.x,i=this.y,r=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*r+o[12]*s,this.y=o[1]*t+o[5]*i+o[9]*r+o[13]*s,this.z=o[2]*t+o[6]*i+o[10]*r+o[14]*s,this.w=o[3]*t+o[7]*i+o[11]*r+o[15]*s,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);const 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,s;const l=e.elements,c=l[0],u=l[4],f=l[8],h=l[1],d=l[5],p=l[9],_=l[2],g=l[6],m=l[10];if(Math.abs(u-h)<.01&&Math.abs(f-_)<.01&&Math.abs(p-g)<.01){if(Math.abs(u+h)<.1&&Math.abs(f+_)<.1&&Math.abs(p+g)<.1&&Math.abs(c+d+m-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const b=(c+1)/2,v=(d+1)/2,E=(m+1)/2,T=(u+h)/4,S=(f+_)/4,R=(p+g)/4;return b>v&&b>E?b<.01?(i=0,r=.707106781,s=.707106781):(i=Math.sqrt(b),r=T/i,s=S/i):v>E?v<.01?(i=.707106781,r=0,s=.707106781):(r=Math.sqrt(v),i=T/r,s=R/r):E<.01?(i=.707106781,r=.707106781,s=0):(s=Math.sqrt(E),i=S/s,r=R/s),this.set(i,r,s,t),this}let y=Math.sqrt((g-p)*(g-p)+(f-_)*(f-_)+(h-u)*(h-u));return Math.abs(y)<.001&&(y=1),this.x=(g-p)/y,this.y=(f-_)/y,this.z=(h-u)/y,this.w=Math.acos((c+d+m-1)/2),this}setFromMatrixPosition(e){const 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=Qe(this.x,e.x,t.x),this.y=Qe(this.y,e.y,t.y),this.z=Qe(this.z,e.z,t.z),this.w=Qe(this.w,e.w,t.w),this}clampScalar(e,t){return this.x=Qe(this.x,e,t),this.y=Qe(this.y,e,t),this.z=Qe(this.z,e,t),this.w=Qe(this.w,e,t),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Qe(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}}class ud extends rr{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new gt(0,0,e,t),this.scissorTest=!1,this.viewport=new gt(0,0,e,t);const r={width:e,height:t,depth:1};i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:en,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},i);const s=new Wt(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace);s.flipY=!1,s.generateMipmaps=i.generateMipmaps,s.internalFormat=i.internalFormat,this.textures=[];const o=i.count;for(let a=0;a=0?1:-1,b=1-m*m;if(b>Number.EPSILON){const E=Math.sqrt(b),T=Math.atan2(E,m*y);g=Math.sin(g*T)/E,a=Math.sin(a*T)/E}const v=a*y;if(l=l*g+h*v,c=c*g+d*v,u=u*g+p*v,f=f*g+_*v,g===1-a){const E=1/Math.sqrt(l*l+c*c+u*u+f*f);l*=E,c*=E,u*=E,f*=E}}e[t]=l,e[t+1]=c,e[t+2]=u,e[t+3]=f}static multiplyQuaternionsFlat(e,t,i,r,s,o){const a=i[r],l=i[r+1],c=i[r+2],u=i[r+3],f=s[o],h=s[o+1],d=s[o+2],p=s[o+3];return e[t]=a*p+u*f+l*d-c*h,e[t+1]=l*p+u*h+c*f-a*d,e[t+2]=c*p+u*d+a*h-l*f,e[t+3]=u*p-a*f-l*h-c*d,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){const i=e._x,r=e._y,s=e._z,o=e._order,a=Math.cos,l=Math.sin,c=a(i/2),u=a(r/2),f=a(s/2),h=l(i/2),d=l(r/2),p=l(s/2);switch(o){case"XYZ":this._x=h*u*f+c*d*p,this._y=c*d*f-h*u*p,this._z=c*u*p+h*d*f,this._w=c*u*f-h*d*p;break;case"YXZ":this._x=h*u*f+c*d*p,this._y=c*d*f-h*u*p,this._z=c*u*p-h*d*f,this._w=c*u*f+h*d*p;break;case"ZXY":this._x=h*u*f-c*d*p,this._y=c*d*f+h*u*p,this._z=c*u*p+h*d*f,this._w=c*u*f-h*d*p;break;case"ZYX":this._x=h*u*f-c*d*p,this._y=c*d*f+h*u*p,this._z=c*u*p-h*d*f,this._w=c*u*f+h*d*p;break;case"YZX":this._x=h*u*f+c*d*p,this._y=c*d*f+h*u*p,this._z=c*u*p-h*d*f,this._w=c*u*f-h*d*p;break;case"XZY":this._x=h*u*f-c*d*p,this._y=c*d*f-h*u*p,this._z=c*u*p+h*d*f,this._w=c*u*f+h*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const 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){const t=e.elements,i=t[0],r=t[4],s=t[8],o=t[1],a=t[5],l=t[9],c=t[2],u=t[6],f=t[10],h=i+a+f;if(h>0){const d=.5/Math.sqrt(h+1);this._w=.25/d,this._x=(u-l)*d,this._y=(s-c)*d,this._z=(o-r)*d}else if(i>a&&i>f){const d=2*Math.sqrt(1+i-a-f);this._w=(u-l)/d,this._x=.25*d,this._y=(r+o)/d,this._z=(s+c)/d}else if(a>f){const d=2*Math.sqrt(1+a-i-f);this._w=(s-c)/d,this._x=(r+o)/d,this._y=.25*d,this._z=(l+u)/d}else{const d=2*Math.sqrt(1+f-i-a);this._w=(o-r)/d,this._x=(s+c)/d,this._y=(l+u)/d,this._z=.25*d}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return iMath.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(Qe(this.dot(e),-1,1)))}rotateTowards(e,t){const i=this.angleTo(e);if(i===0)return this;const 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){const i=e._x,r=e._y,s=e._z,o=e._w,a=t._x,l=t._y,c=t._z,u=t._w;return this._x=i*u+o*a+r*c-s*l,this._y=r*u+o*l+s*a-i*c,this._z=s*u+o*c+i*l-r*a,this._w=o*u-i*a-r*l-s*c,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const i=this._x,r=this._y,s=this._z,o=this._w;let a=o*e._w+i*e._x+r*e._y+s*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=i,this._y=r,this._z=s,this;const l=1-a*a;if(l<=Number.EPSILON){const d=1-t;return this._w=d*o+t*this._w,this._x=d*i+t*this._x,this._y=d*r+t*this._y,this._z=d*s+t*this._z,this.normalize(),this}const c=Math.sqrt(l),u=Math.atan2(c,a),f=Math.sin((1-t)*u)/c,h=Math.sin(t*u)/c;return this._w=o*f+this._w*h,this._x=i*f+this._x*h,this._y=r*f+this._y*h,this._z=s*f+this._z*h,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){const e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),i=Math.random(),r=Math.sqrt(1-i),s=Math.sqrt(i);return this.set(r*Math.sin(e),r*Math.cos(e),s*Math.sin(t),s*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}}class k{constructor(e=0,t=0,i=0){k.prototype.isVector3=!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("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("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(sy.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(sy.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[3]*i+s[6]*r,this.y=s[1]*t+s[4]*i+s[7]*r,this.z=s[2]*t+s[5]*i+s[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=e.elements,o=1/(s[3]*t+s[7]*i+s[11]*r+s[15]);return this.x=(s[0]*t+s[4]*i+s[8]*r+s[12])*o,this.y=(s[1]*t+s[5]*i+s[9]*r+s[13])*o,this.z=(s[2]*t+s[6]*i+s[10]*r+s[14])*o,this}applyQuaternion(e){const t=this.x,i=this.y,r=this.z,s=e.x,o=e.y,a=e.z,l=e.w,c=2*(o*r-a*i),u=2*(a*t-s*r),f=2*(s*i-o*t);return this.x=t+l*c+o*f-a*u,this.y=i+l*u+a*c-s*f,this.z=r+l*f+s*u-o*c,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r,this.y=s[1]*t+s[5]*i+s[9]*r,this.z=s[2]*t+s[6]*i+s[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=Qe(this.x,e.x,t.x),this.y=Qe(this.y,e.y,t.y),this.z=Qe(this.z,e.z,t.z),this}clampScalar(e,t){return this.x=Qe(this.x,e,t),this.y=Qe(this.y,e,t),this.z=Qe(this.z,e,t),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Qe(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){const i=e.x,r=e.y,s=e.z,o=t.x,a=t.y,l=t.z;return this.x=r*l-s*a,this.y=s*o-i*l,this.z=i*a-r*o,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return bp.copy(this).projectOnVector(e),this.sub(bp)}reflect(e){return this.sub(bp.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(Qe(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const 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){const 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){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const 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(){const 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}}const bp=new k,sy=new Jn;class Vn{constructor(e=new k(1/0,1/0,1/0),t=new k(-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,wi),wi.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(ja),cu.subVectors(this.max,ja),zo.subVectors(e.a,ja),Vo.subVectors(e.b,ja),Ho.subVectors(e.c,ja),Xr.subVectors(Vo,zo),$r.subVectors(Ho,Vo),Fs.subVectors(zo,Ho);let t=[0,-Xr.z,Xr.y,0,-$r.z,$r.y,0,-Fs.z,Fs.y,Xr.z,0,-Xr.x,$r.z,0,-$r.x,Fs.z,0,-Fs.x,-Xr.y,Xr.x,0,-$r.y,$r.x,0,-Fs.y,Fs.x,0];return!xp(t,zo,Vo,Ho,cu)||(t=[1,0,0,0,1,0,0,0,1],!xp(t,zo,Vo,Ho,cu))?!1:(uu.crossVectors(Xr,$r),t=[uu.x,uu.y,uu.z],xp(t,zo,Vo,Ho,cu))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,wi).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(wi).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:(cr[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),cr[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),cr[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),cr[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),cr[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),cr[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),cr[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),cr[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(cr),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)}}const cr=[new k,new k,new k,new k,new k,new k,new k,new k],wi=new k,lu=new Vn,zo=new k,Vo=new k,Ho=new k,Xr=new k,$r=new k,Fs=new k,ja=new k,cu=new k,uu=new k,ks=new k;function xp(n,e,t,i,r){for(let s=0,o=n.length-3;s<=o;s+=3){ks.fromArray(n,s);const a=r.x*Math.abs(ks.x)+r.y*Math.abs(ks.y)+r.z*Math.abs(ks.z),l=e.dot(ks),c=t.dot(ks),u=i.dot(ks);if(Math.max(-Math.max(l,c,u),Math.min(l,c,u))>a)return!1}return!0}const Q3=new Vn,Ka=new k,Mp=new k;class Tn{constructor(e=new k,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const i=this.center;t!==void 0?i.copy(t):Q3.setFromPoints(e).getCenter(i);let r=0;for(let s=0,o=e.length;sthis.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;Ka.subVectors(e,this.center);const t=Ka.lengthSq();if(t>this.radius*this.radius){const i=Math.sqrt(t),r=(i-this.radius)*.5;this.center.addScaledVector(Ka,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):(Mp.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(Ka.copy(e.center).add(Mp)),this.expandByPoint(Ka.copy(e.center).sub(Mp))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const ur=new k,Sp=new k,fu=new k,qr=new k,Ep=new k,hu=new k,Tp=new k;class ka{constructor(e=new k,t=new k(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,ur)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=ur.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(ur.copy(this.origin).addScaledVector(this.direction,t),ur.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){Sp.copy(e).add(t).multiplyScalar(.5),fu.copy(t).sub(e).normalize(),qr.copy(this.origin).sub(Sp);const s=e.distanceTo(t)*.5,o=-this.direction.dot(fu),a=qr.dot(this.direction),l=-qr.dot(fu),c=qr.lengthSq(),u=Math.abs(1-o*o);let f,h,d,p;if(u>0)if(f=o*l-a,h=o*a-l,p=s*u,f>=0)if(h>=-p)if(h<=p){const _=1/u;f*=_,h*=_,d=f*(f+o*h+2*a)+h*(o*f+h+2*l)+c}else h=s,f=Math.max(0,-(o*h+a)),d=-f*f+h*(h+2*l)+c;else h=-s,f=Math.max(0,-(o*h+a)),d=-f*f+h*(h+2*l)+c;else h<=-p?(f=Math.max(0,-(-o*s+a)),h=f>0?-s:Math.min(Math.max(-s,-l),s),d=-f*f+h*(h+2*l)+c):h<=p?(f=0,h=Math.min(Math.max(-s,-l),s),d=h*(h+2*l)+c):(f=Math.max(0,-(o*s+a)),h=f>0?s:Math.min(Math.max(-s,-l),s),d=-f*f+h*(h+2*l)+c);else h=o>0?-s:s,f=Math.max(0,-(o*h+a)),d=-f*f+h*(h+2*l)+c;return i&&i.copy(this.origin).addScaledVector(this.direction,f),r&&r.copy(Sp).addScaledVector(fu,h),d}intersectSphere(e,t){ur.subVectors(e.center,this.origin);const i=ur.dot(this.direction),r=ur.dot(ur)-i*i,s=e.radius*e.radius;if(r>s)return null;const o=Math.sqrt(s-r),a=i-o,l=i+o;return l<0?null:a<0?this.at(l,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){const i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,s,o,a,l;const c=1/this.direction.x,u=1/this.direction.y,f=1/this.direction.z,h=this.origin;return c>=0?(i=(e.min.x-h.x)*c,r=(e.max.x-h.x)*c):(i=(e.max.x-h.x)*c,r=(e.min.x-h.x)*c),u>=0?(s=(e.min.y-h.y)*u,o=(e.max.y-h.y)*u):(s=(e.max.y-h.y)*u,o=(e.min.y-h.y)*u),i>o||s>r||((s>i||isNaN(i))&&(i=s),(o=0?(a=(e.min.z-h.z)*f,l=(e.max.z-h.z)*f):(a=(e.max.z-h.z)*f,l=(e.min.z-h.z)*f),i>l||a>r)||((a>i||i!==i)&&(i=a),(l=0?i:r,t)}intersectsBox(e){return this.intersectBox(e,ur)!==null}intersectTriangle(e,t,i,r,s){Ep.subVectors(t,e),hu.subVectors(i,e),Tp.crossVectors(Ep,hu);let o=this.direction.dot(Tp),a;if(o>0){if(r)return null;a=1}else if(o<0)a=-1,o=-o;else return null;qr.subVectors(this.origin,e);const l=a*this.direction.dot(hu.crossVectors(qr,hu));if(l<0)return null;const c=a*this.direction.dot(Ep.cross(qr));if(c<0||l+c>o)return null;const u=-a*qr.dot(Tp);return u<0?null:this.at(u/o,s)}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)}}class Ye{constructor(e,t,i,r,s,o,a,l,c,u,f,h,d,p,_,g){Ye.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,r,s,o,a,l,c,u,f,h,d,p,_,g)}set(e,t,i,r,s,o,a,l,c,u,f,h,d,p,_,g){const m=this.elements;return m[0]=e,m[4]=t,m[8]=i,m[12]=r,m[1]=s,m[5]=o,m[9]=a,m[13]=l,m[2]=c,m[6]=u,m[10]=f,m[14]=h,m[3]=d,m[7]=p,m[11]=_,m[15]=g,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Ye().fromArray(this.elements)}copy(e){const 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],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){const t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,i=e.elements,r=1/Go.setFromMatrixColumn(e,0).length(),s=1/Go.setFromMatrixColumn(e,1).length(),o=1/Go.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*s,t[5]=i[5]*s,t[6]=i[6]*s,t[7]=0,t[8]=i[8]*o,t[9]=i[9]*o,t[10]=i[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,i=e.x,r=e.y,s=e.z,o=Math.cos(i),a=Math.sin(i),l=Math.cos(r),c=Math.sin(r),u=Math.cos(s),f=Math.sin(s);if(e.order==="XYZ"){const h=o*u,d=o*f,p=a*u,_=a*f;t[0]=l*u,t[4]=-l*f,t[8]=c,t[1]=d+p*c,t[5]=h-_*c,t[9]=-a*l,t[2]=_-h*c,t[6]=p+d*c,t[10]=o*l}else if(e.order==="YXZ"){const h=l*u,d=l*f,p=c*u,_=c*f;t[0]=h+_*a,t[4]=p*a-d,t[8]=o*c,t[1]=o*f,t[5]=o*u,t[9]=-a,t[2]=d*a-p,t[6]=_+h*a,t[10]=o*l}else if(e.order==="ZXY"){const h=l*u,d=l*f,p=c*u,_=c*f;t[0]=h-_*a,t[4]=-o*f,t[8]=p+d*a,t[1]=d+p*a,t[5]=o*u,t[9]=_-h*a,t[2]=-o*c,t[6]=a,t[10]=o*l}else if(e.order==="ZYX"){const h=o*u,d=o*f,p=a*u,_=a*f;t[0]=l*u,t[4]=p*c-d,t[8]=h*c+_,t[1]=l*f,t[5]=_*c+h,t[9]=d*c-p,t[2]=-c,t[6]=a*l,t[10]=o*l}else if(e.order==="YZX"){const h=o*l,d=o*c,p=a*l,_=a*c;t[0]=l*u,t[4]=_-h*f,t[8]=p*f+d,t[1]=f,t[5]=o*u,t[9]=-a*u,t[2]=-c*u,t[6]=d*f+p,t[10]=h-_*f}else if(e.order==="XZY"){const h=o*l,d=o*c,p=a*l,_=a*c;t[0]=l*u,t[4]=-f,t[8]=c*u,t[1]=h*f+_,t[5]=o*u,t[9]=d*f-p,t[2]=p*f-d,t[6]=a*u,t[10]=_*f+h}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(eP,e,tP)}lookAt(e,t,i){const r=this.elements;return ni.subVectors(e,t),ni.lengthSq()===0&&(ni.z=1),ni.normalize(),Yr.crossVectors(i,ni),Yr.lengthSq()===0&&(Math.abs(i.z)===1?ni.x+=1e-4:ni.z+=1e-4,ni.normalize(),Yr.crossVectors(i,ni)),Yr.normalize(),du.crossVectors(ni,Yr),r[0]=Yr.x,r[4]=du.x,r[8]=ni.x,r[1]=Yr.y,r[5]=du.y,r[9]=ni.y,r[2]=Yr.z,r[6]=du.z,r[10]=ni.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],a=i[4],l=i[8],c=i[12],u=i[1],f=i[5],h=i[9],d=i[13],p=i[2],_=i[6],g=i[10],m=i[14],y=i[3],b=i[7],v=i[11],E=i[15],T=r[0],S=r[4],R=r[8],x=r[12],M=r[1],L=r[5],F=r[9],V=r[13],X=r[2],te=r[6],Z=r[10],ee=r[14],Q=r[3],de=r[7],be=r[11],re=r[15];return s[0]=o*T+a*M+l*X+c*Q,s[4]=o*S+a*L+l*te+c*de,s[8]=o*R+a*F+l*Z+c*be,s[12]=o*x+a*V+l*ee+c*re,s[1]=u*T+f*M+h*X+d*Q,s[5]=u*S+f*L+h*te+d*de,s[9]=u*R+f*F+h*Z+d*be,s[13]=u*x+f*V+h*ee+d*re,s[2]=p*T+_*M+g*X+m*Q,s[6]=p*S+_*L+g*te+m*de,s[10]=p*R+_*F+g*Z+m*be,s[14]=p*x+_*V+g*ee+m*re,s[3]=y*T+b*M+v*X+E*Q,s[7]=y*S+b*L+v*te+E*de,s[11]=y*R+b*F+v*Z+E*be,s[15]=y*x+b*V+v*ee+E*re,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[4],r=e[8],s=e[12],o=e[1],a=e[5],l=e[9],c=e[13],u=e[2],f=e[6],h=e[10],d=e[14],p=e[3],_=e[7],g=e[11],m=e[15];return p*(+s*l*f-r*c*f-s*a*h+i*c*h+r*a*d-i*l*d)+_*(+t*l*d-t*c*h+s*o*h-r*o*d+r*c*u-s*l*u)+g*(+t*c*f-t*a*d-s*o*f+i*o*d+s*a*u-i*c*u)+m*(-r*a*u-t*l*f+t*a*h+r*o*f-i*o*h+i*l*u)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=i),this}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],a=e[5],l=e[6],c=e[7],u=e[8],f=e[9],h=e[10],d=e[11],p=e[12],_=e[13],g=e[14],m=e[15],y=f*g*c-_*h*c+_*l*d-a*g*d-f*l*m+a*h*m,b=p*h*c-u*g*c-p*l*d+o*g*d+u*l*m-o*h*m,v=u*_*c-p*f*c+p*a*d-o*_*d-u*a*m+o*f*m,E=p*f*l-u*_*l-p*a*h+o*_*h+u*a*g-o*f*g,T=t*y+i*b+r*v+s*E;if(T===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const S=1/T;return e[0]=y*S,e[1]=(_*h*s-f*g*s-_*r*d+i*g*d+f*r*m-i*h*m)*S,e[2]=(a*g*s-_*l*s+_*r*c-i*g*c-a*r*m+i*l*m)*S,e[3]=(f*l*s-a*h*s-f*r*c+i*h*c+a*r*d-i*l*d)*S,e[4]=b*S,e[5]=(u*g*s-p*h*s+p*r*d-t*g*d-u*r*m+t*h*m)*S,e[6]=(p*l*s-o*g*s-p*r*c+t*g*c+o*r*m-t*l*m)*S,e[7]=(o*h*s-u*l*s+u*r*c-t*h*c-o*r*d+t*l*d)*S,e[8]=v*S,e[9]=(p*f*s-u*_*s-p*i*d+t*_*d+u*i*m-t*f*m)*S,e[10]=(o*_*s-p*a*s+p*i*c-t*_*c-o*i*m+t*a*m)*S,e[11]=(u*a*s-o*f*s-u*i*c+t*f*c+o*i*d-t*a*d)*S,e[12]=E*S,e[13]=(u*_*r-p*f*r+p*i*h-t*_*h-u*i*g+t*f*g)*S,e[14]=(p*a*r-o*_*r-p*i*l+t*_*l+o*i*g-t*a*g)*S,e[15]=(o*f*r-u*a*r+u*i*l-t*f*l-o*i*h+t*a*h)*S,this}scale(e){const t=this.elements,i=e.x,r=e.y,s=e.z;return t[0]*=i,t[4]*=r,t[8]*=s,t[1]*=i,t[5]*=r,t[9]*=s,t[2]*=i,t[6]*=r,t[10]*=s,t[3]*=i,t[7]*=r,t[11]*=s,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,r))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const i=Math.cos(t),r=Math.sin(t),s=1-i,o=e.x,a=e.y,l=e.z,c=s*o,u=s*a;return this.set(c*o+i,c*a-r*l,c*l+r*a,0,c*a+r*l,u*a+i,u*l-r*o,0,c*l-r*a,u*l+r*o,s*l*l+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,s,o){return this.set(1,i,s,0,e,1,o,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){const r=this.elements,s=t._x,o=t._y,a=t._z,l=t._w,c=s+s,u=o+o,f=a+a,h=s*c,d=s*u,p=s*f,_=o*u,g=o*f,m=a*f,y=l*c,b=l*u,v=l*f,E=i.x,T=i.y,S=i.z;return r[0]=(1-(_+m))*E,r[1]=(d+v)*E,r[2]=(p-b)*E,r[3]=0,r[4]=(d-v)*T,r[5]=(1-(h+m))*T,r[6]=(g+y)*T,r[7]=0,r[8]=(p+b)*S,r[9]=(g-y)*S,r[10]=(1-(h+_))*S,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){const r=this.elements;let s=Go.set(r[0],r[1],r[2]).length();const o=Go.set(r[4],r[5],r[6]).length(),a=Go.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),e.x=r[12],e.y=r[13],e.z=r[14],Ai.copy(this);const c=1/s,u=1/o,f=1/a;return Ai.elements[0]*=c,Ai.elements[1]*=c,Ai.elements[2]*=c,Ai.elements[4]*=u,Ai.elements[5]*=u,Ai.elements[6]*=u,Ai.elements[8]*=f,Ai.elements[9]*=f,Ai.elements[10]*=f,t.setFromRotationMatrix(Ai),i.x=s,i.y=o,i.z=a,this}makePerspective(e,t,i,r,s,o,a=Ii){const l=this.elements,c=2*s/(t-e),u=2*s/(i-r),f=(t+e)/(t-e),h=(i+r)/(i-r);let d,p;if(a===Ii)d=-(o+s)/(o-s),p=-2*o*s/(o-s);else if(a===lc)d=-o/(o-s),p=-o*s/(o-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return l[0]=c,l[4]=0,l[8]=f,l[12]=0,l[1]=0,l[5]=u,l[9]=h,l[13]=0,l[2]=0,l[6]=0,l[10]=d,l[14]=p,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(e,t,i,r,s,o,a=Ii){const l=this.elements,c=1/(t-e),u=1/(i-r),f=1/(o-s),h=(t+e)*c,d=(i+r)*u;let p,_;if(a===Ii)p=(o+s)*f,_=-2*f;else if(a===lc)p=s*f,_=-1*f;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-h,l[1]=0,l[5]=2*u,l[9]=0,l[13]=-d,l[2]=0,l[6]=0,l[10]=_,l[14]=-p,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<16;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const 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[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}}const Go=new k,Ai=new Ye,eP=new k(0,0,0),tP=new k(1,1,1),Yr=new k,du=new k,ni=new k,oy=new Ye,ay=new Jn;class li{constructor(e=0,t=0,i=0,r=li.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=r}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 order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,r=this._order){return this._x=e,this._y=t,this._z=i,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){const r=e.elements,s=r[0],o=r[4],a=r[8],l=r[1],c=r[5],u=r[9],f=r[2],h=r[6],d=r[10];switch(t){case"XYZ":this._y=Math.asin(Qe(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-u,d),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(h,c),this._z=0);break;case"YXZ":this._x=Math.asin(-Qe(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-f,s),this._z=0);break;case"ZXY":this._x=Math.asin(Qe(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(-f,d),this._z=Math.atan2(-o,c)):(this._y=0,this._z=Math.atan2(l,s));break;case"ZYX":this._y=Math.asin(-Qe(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(h,d),this._z=Math.atan2(l,s)):(this._x=0,this._z=Math.atan2(-o,c));break;case"YZX":this._z=Math.asin(Qe(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-u,c),this._y=Math.atan2(-f,s)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-Qe(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(h,c),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-u,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return oy.makeRotationFromQuaternion(e),this.setFromRotationMatrix(oy,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return ay.setFromEuler(this),this.setFromQuaternion(ay,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[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._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}li.DEFAULT_ORDER="XYZ";class hd{constructor(){this.mask=1}set(e){this.mask=(1<>>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.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),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.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(a=>({boxInitialized:a.boxInitialized,boxMin:a.box.min.toArray(),boxMax:a.box.max.toArray(),sphereInitialized:a.sphereInitialized,sphereRadius:a.sphere.radius,sphereCenter:a.sphere.center.toArray()})),r.maxInstanceCount=this._maxInstanceCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(e),this._colorsTexture!==null&&(r.colorsTexture=this._colorsTexture.toJSON(e)),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function s(a,l){return a[l.uuid]===void 0&&(a[l.uuid]=l.toJSON(e)),l.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=s(e.geometries,this.geometry);const a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){const l=a.shapes;if(Array.isArray(l))for(let c=0,u=l.length;c0){r.children=[];for(let a=0;a0){r.animations=[];for(let a=0;a0&&(i.geometries=a),l.length>0&&(i.materials=l),c.length>0&&(i.textures=c),u.length>0&&(i.images=u),f.length>0&&(i.shapes=f),h.length>0&&(i.skeletons=h),d.length>0&&(i.animations=d),p.length>0&&(i.nodes=p)}return i.object=r,i;function o(a){const l=[];for(const c in a){const u=a[c];delete u.metadata,l.push(u)}return l}}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.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.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;i0?r.multiplyScalar(1/Math.sqrt(s)):r.set(0,0,0)}static getBarycoord(e,t,i,r,s){Ci.subVectors(r,t),hr.subVectors(i,t),Ap.subVectors(e,t);const o=Ci.dot(Ci),a=Ci.dot(hr),l=Ci.dot(Ap),c=hr.dot(hr),u=hr.dot(Ap),f=o*c-a*a;if(f===0)return s.set(0,0,0),null;const h=1/f,d=(c*l-a*u)*h,p=(o*u-a*l)*h;return s.set(1-d-p,p,d)}static containsPoint(e,t,i,r){return this.getBarycoord(e,t,i,r,dr)===null?!1:dr.x>=0&&dr.y>=0&&dr.x+dr.y<=1}static getInterpolation(e,t,i,r,s,o,a,l){return this.getBarycoord(e,t,i,r,dr)===null?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(s,dr.x),l.addScaledVector(o,dr.y),l.addScaledVector(a,dr.z),l)}static getInterpolatedAttribute(e,t,i,r,s,o){return Ip.setScalar(0),Lp.setScalar(0),Dp.setScalar(0),Ip.fromBufferAttribute(e,t),Lp.fromBufferAttribute(e,i),Dp.fromBufferAttribute(e,r),o.setScalar(0),o.addScaledVector(Ip,s.x),o.addScaledVector(Lp,s.y),o.addScaledVector(Dp,s.z),o}static isFrontFacing(e,t,i,r){return Ci.subVectors(i,t),hr.subVectors(e,t),Ci.cross(hr).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 Ci.subVectors(this.c,this.b),hr.subVectors(this.a,this.b),Ci.cross(hr).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return jn.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return jn.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,r,s){return jn.getInterpolation(e,this.a,this.b,this.c,t,i,r,s)}containsPoint(e){return jn.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return jn.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const i=this.a,r=this.b,s=this.c;let o,a;$o.subVectors(r,i),qo.subVectors(s,i),Cp.subVectors(e,i);const l=$o.dot(Cp),c=qo.dot(Cp);if(l<=0&&c<=0)return t.copy(i);Rp.subVectors(e,r);const u=$o.dot(Rp),f=qo.dot(Rp);if(u>=0&&f<=u)return t.copy(r);const h=l*f-u*c;if(h<=0&&l>=0&&u<=0)return o=l/(l-u),t.copy(i).addScaledVector($o,o);Pp.subVectors(e,s);const d=$o.dot(Pp),p=qo.dot(Pp);if(p>=0&&d<=p)return t.copy(s);const _=d*c-l*p;if(_<=0&&c>=0&&p<=0)return a=c/(c-p),t.copy(i).addScaledVector(qo,a);const g=u*p-d*f;if(g<=0&&f-u>=0&&d-p>=0)return dy.subVectors(s,r),a=(f-u)/(f-u+(d-p)),t.copy(r).addScaledVector(dy,a);const m=1/(g+_+h);return o=_*m,a=h*m,t.copy(i).addScaledVector($o,o).addScaledVector(qo,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const Q1={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},jr={h:0,s:0,l:0},mu={h:0,s:0,l:0};function Op(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}class Ce{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){const 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=Nn){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,ft.toWorkingColorSpace(this,t),this}setRGB(e,t,i,r=ft.workingColorSpace){return this.r=e,this.g=t,this.b=i,ft.toWorkingColorSpace(this,r),this}setHSL(e,t,i,r=ft.workingColorSpace){if(e=j0(e,1),t=Qe(t,0,1),i=Qe(i,0,1),t===0)this.r=this.g=this.b=i;else{const s=i<=.5?i*(1+t):i+t-i*t,o=2*i-s;this.r=Op(o,s,e+1/3),this.g=Op(o,s,e),this.b=Op(o,s,e-1/3)}return ft.toWorkingColorSpace(this,r),this}setStyle(e,t=Nn){function i(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let s;const o=r[1],a=r[2];switch(o){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const s=r[1],o=s.length;if(o===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(o===6)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=Nn){const i=Q1[e.toLowerCase()];return i!==void 0?this.setHex(i,t):console.warn("THREE.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=Pr(e.r),this.g=Pr(e.g),this.b=Pr(e.b),this}copyLinearToSRGB(e){return this.r=_a(e.r),this.g=_a(e.g),this.b=_a(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Nn){return ft.fromWorkingColorSpace(bn.copy(this),e),Math.round(Qe(bn.r*255,0,255))*65536+Math.round(Qe(bn.g*255,0,255))*256+Math.round(Qe(bn.b*255,0,255))}getHexString(e=Nn){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=ft.workingColorSpace){ft.fromWorkingColorSpace(bn.copy(this),t);const i=bn.r,r=bn.g,s=bn.b,o=Math.max(i,r,s),a=Math.min(i,r,s);let l,c;const u=(a+o)/2;if(a===o)l=0,c=0;else{const f=o-a;switch(c=u<=.5?f/(o+a):f/(2-o-a),o){case i:l=(r-s)/f+(r0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const i=e[t];if(i===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];if(r===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(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&&this.emissiveIntensity!==1&&(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.dispersion!==void 0&&(i.dispersion=this.dispersion),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&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==po&&(i.blending=this.blending),this.side!==Dr&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==zf&&(i.blendSrc=this.blendSrc),this.blendDst!==Vf&&(i.blendDst=this.blendDst),this.blendEquation!==as&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==Mo&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==hg&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==Qs&&(i.stencilFail=this.stencilFail),this.stencilZFail!==Qs&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==Qs&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),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.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function r(s){const o=[];for(const a in s){const l=s[a];delete l.metadata,o.push(l)}return o}if(t){const s=r(e.textures),o=r(e.images);s.length>0&&(i.textures=s),o.length>0&&(i.images=o)}return i}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;const t=e.clippingPlanes;let i=null;if(t!==null){const r=t.length;i=new Array(r);for(let s=0;s!==r;++s)i[s]=t[s].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.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++}onBuild(){console.warn("Material: onBuild() has been removed.")}}class Br extends An{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Ce(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 li,this.combine=Oc,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}}const Sr=aP();function aP(){const n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),r=new Uint32Array(512);for(let l=0;l<256;++l){const c=l-127;c<-27?(i[l]=0,i[l|256]=32768,r[l]=24,r[l|256]=24):c<-14?(i[l]=1024>>-c-14,i[l|256]=1024>>-c-14|32768,r[l]=-c-1,r[l|256]=-c-1):c<=15?(i[l]=c+15<<10,i[l|256]=c+15<<10|32768,r[l]=13,r[l|256]=13):c<128?(i[l]=31744,i[l|256]=64512,r[l]=24,r[l|256]=24):(i[l]=31744,i[l|256]=64512,r[l]=13,r[l|256]=13)}const s=new Uint32Array(2048),o=new Uint32Array(64),a=new Uint32Array(64);for(let l=1;l<1024;++l){let c=l<<13,u=0;for(;(c&8388608)===0;)c<<=1,u-=8388608;c&=-8388609,u+=947912704,s[l]=c|u}for(let l=1024;l<2048;++l)s[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)o[l]=l<<23;o[31]=1199570944,o[32]=2147483648;for(let l=33;l<63;++l)o[l]=2147483648+(l-32<<23);o[63]=3347054592;for(let l=1;l<64;++l)l!==32&&(a[l]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:o,offsetTable:a}}function $n(n){Math.abs(n)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),n=Qe(n,-65504,65504),Sr.floatView[0]=n;const e=Sr.uint32View[0],t=e>>23&511;return Sr.baseTable[t]+((e&8388607)>>Sr.shiftTable[t])}function pl(n){const e=n>>10;return Sr.uint32View[0]=Sr.mantissaTable[Sr.offsetTable[e]+(n&1023)]+Sr.exponentTable[e],Sr.floatView[0]}class lP{static toHalfFloat(e){return $n(e)}static fromHalfFloat(e){return pl(e)}}const Yt=new k,gu=new fe;let cP=0;class Ct{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:cP++}),this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=ac,this.updateRanges=[],this.gpuType=Kn,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,s=this.itemSize;rt.count&&console.warn("THREE.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 Vn);const e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new k(-1/0,-1/0,-1/0),new k(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){const l=this.parameters;for(const c in l)l[c]!==void 0&&(e[c]=l[c]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const i=this.attributes;for(const l in i){const c=i[l];e.data.attributes[l]=c.toJSON(e.data)}const r={};let s=!1;for(const l in this.morphAttributes){const c=this.morphAttributes[l],u=[];for(let f=0,h=c.length;f0&&(r[l]=u,s=!0)}s&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),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;const t={};this.name=e.name;const i=e.index;i!==null&&this.setIndex(i.clone(t));const r=e.attributes;for(const c in r){const u=r[c];this.setAttribute(c,u.clone(t))}const s=e.morphAttributes;for(const c in s){const u=[],f=s[c];for(let h=0,d=f.length;h0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s(e.far-e.near)**2))&&(py.copy(s).invert(),Bs.copy(e.ray).applyMatrix4(py),!(i.boundingBox!==null&&Bs.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,Bs)))}_computeIntersections(e,t,i){let r;const s=this.geometry,o=this.material,a=s.index,l=s.attributes.position,c=s.attributes.uv,u=s.attributes.uv1,f=s.attributes.normal,h=s.groups,d=s.drawRange;if(a!==null)if(Array.isArray(o))for(let p=0,_=h.length;p<_;p++){const g=h[p],m=o[g.materialIndex],y=Math.max(g.start,d.start),b=Math.min(a.count,Math.min(g.start+g.count,d.start+d.count));for(let v=y,E=b;vt.far?null:{distance:c,point:Mu.clone(),object:n}}function Su(n,e,t,i,r,s,o,a,l,c){n.getVertexPosition(a,vu),n.getVertexPosition(l,yu),n.getVertexPosition(c,bu);const u=_P(n,e,t,i,vu,yu,bu,gy);if(u){const f=new k;jn.getBarycoord(gy,vu,yu,bu,f),r&&(u.uv=jn.getInterpolatedAttribute(r,a,l,c,f,new fe)),s&&(u.uv1=jn.getInterpolatedAttribute(s,a,l,c,f,new fe)),o&&(u.normal=jn.getInterpolatedAttribute(o,a,l,c,f,new k),u.normal.dot(i.direction)>0&&u.normal.multiplyScalar(-1));const h={a,b:l,c,normal:new k,materialIndex:0};jn.getNormal(vu,yu,bu,h.normal),u.face=h,u.barycoord=f}return u}class Po extends lt{constructor(e=1,t=1,i=1,r=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:s,depthSegments:o};const a=this;r=Math.floor(r),s=Math.floor(s),o=Math.floor(o);const l=[],c=[],u=[],f=[];let h=0,d=0;p("z","y","x",-1,-1,i,t,e,o,s,0),p("z","y","x",1,-1,i,t,-e,o,s,1),p("x","z","y",1,1,e,i,t,r,o,2),p("x","z","y",1,-1,e,i,-t,r,o,3),p("x","y","z",1,-1,e,t,i,r,s,4),p("x","y","z",-1,-1,e,t,-i,r,s,5),this.setIndex(l),this.setAttribute("position",new ke(c,3)),this.setAttribute("normal",new ke(u,3)),this.setAttribute("uv",new ke(f,2));function p(_,g,m,y,b,v,E,T,S,R,x){const M=v/S,L=E/R,F=v/2,V=E/2,X=T/2,te=S+1,Z=R+1;let ee=0,Q=0;const de=new k;for(let be=0;be0?1:-1,u.push(de.x,de.y,de.z),f.push(ye/S),f.push(1-be/R),ee+=1}}for(let be=0;be0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const i={};for(const r in this.extensions)this.extensions[r]===!0&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}}class Fc extends dt{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Ye,this.projectionMatrix=new Ye,this.projectionMatrixInverse=new Ye,this.coordinateSystem=Ii}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const Kr=new k,_y=new fe,vy=new fe;class Kt extends Fc{constructor(e=50,t=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=Ta*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(go*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return Ta*2*Math.atan(Math.tan(go*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,i){Kr.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(Kr.x,Kr.y).multiplyScalar(-e/Kr.z),Kr.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Kr.x,Kr.y).multiplyScalar(-e/Kr.z)}getViewSize(e,t){return this.getViewBounds(e,_y,vy),t.subVectors(vy,_y)}setViewOffset(e,t,i,r,s,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(go*.5*this.fov)/this.zoom,i=2*t,r=this.aspect*i,s=-.5*r;const o=this.view;if(this.view!==null&&this.view.enabled){const l=o.fullWidth,c=o.fullHeight;s+=o.offsetX*r/l,t-=o.offsetY*i/c,r*=o.width/l,i*=o.height/c}const a=this.filmOffset;a!==0&&(s+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+r,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const jo=-90,Ko=1;class nE extends dt{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new Kt(jo,Ko,e,t);r.layers=this.layers,this.add(r);const s=new Kt(jo,Ko,e,t);s.layers=this.layers,this.add(s);const o=new Kt(jo,Ko,e,t);o.layers=this.layers,this.add(o);const a=new Kt(jo,Ko,e,t);a.layers=this.layers,this.add(a);const l=new Kt(jo,Ko,e,t);l.layers=this.layers,this.add(l);const c=new Kt(jo,Ko,e,t);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[i,r,s,o,a,l]=t;for(const c of t)this.remove(c);if(e===Ii)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(e===lc)i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const c of t)this.add(c),c.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[s,o,a,l,c,u]=this.children,f=e.getRenderTarget(),h=e.getActiveCubeFace(),d=e.getActiveMipmapLevel(),p=e.xr.enabled;e.xr.enabled=!1;const _=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,r),e.render(t,s),e.setRenderTarget(i,1,r),e.render(t,o),e.setRenderTarget(i,2,r),e.render(t,a),e.setRenderTarget(i,3,r),e.render(t,l),e.setRenderTarget(i,4,r),e.render(t,c),i.texture.generateMipmaps=_,e.setRenderTarget(i,5,r),e.render(t,u),e.setRenderTarget(f,h,d),e.xr.enabled=p,i.texture.needsPMREMUpdate=!0}}class kc extends Wt{constructor(e,t,i,r,s,o,a,l,c,u){e=e!==void 0?e:[],t=t!==void 0?t:Or,super(e,t,i,r,s,o,a,l,c,u),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class iE extends ir{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];this.texture=new kc(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:en}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;const 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 Po(5,5,5),s=new Fi({name:"CubemapFromEquirect",uniforms:wa(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:zn,blending:Rr});s.uniforms.tEquirect.value=t;const o=new $t(r,s),a=t.minFilter;return t.minFilter===ji&&(t.minFilter=en),new nE(1,10,this).update(e,o),t.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,i,r){const s=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,i,r);e.setRenderTarget(s)}}class ua extends dt{constructor(){super(),this.isGroup=!0,this.type="Group"}}const xP={type:"move"};class xf{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new ua,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new ua,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new k,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new k),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new ua,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new k,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new k),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const t=this._hand;if(t)for(const i of e.hand.values())this._getHandJoint(t,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,i){let r=null,s=null,o=null;const a=this._targetRay,l=this._grip,c=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(c&&e.hand){o=!0;for(const _ of e.hand.values()){const g=t.getJointPose(_,i),m=this._getHandJoint(c,_);g!==null&&(m.matrix.fromArray(g.transform.matrix),m.matrix.decompose(m.position,m.rotation,m.scale),m.matrixWorldNeedsUpdate=!0,m.jointRadius=g.radius),m.visible=g!==null}const u=c.joints["index-finger-tip"],f=c.joints["thumb-tip"],h=u.position.distanceTo(f.position),d=.02,p=.005;c.inputState.pinching&&h>d+p?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&h<=d-p&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else l!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,i),s!==null&&(l.matrix.fromArray(s.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,s.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(s.linearVelocity)):l.hasLinearVelocity=!1,s.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(s.angularVelocity)):l.hasAngularVelocity=!1));a!==null&&(r=t.getPose(e.targetRaySpace,i),r===null&&s!==null&&(r=s),r!==null&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(xP)))}return a!==null&&(a.visible=r!==null),l!==null&&(l.visible=s!==null),c!==null&&(c.visible=o!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const i=new ua;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}}class dd{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Ce(e),this.density=t}clone(){return new dd(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class pd{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new Ce(e),this.near=t,this.far=i}clone(){return new pd(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class md extends dt{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new li,this.environmentIntensity=1,this.environmentRotation=new li,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(t.object.environmentIntensity=this.environmentIntensity),t.object.environmentRotation=this.environmentRotation.toArray(),t}}class gd{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=ac,this.updateRanges=[],this.version=0,this.uuid=si()}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.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let r=0,s=this.stride;re.far||t.push({distance:l,point:Qa.clone(),uv:jn.getInterpolation(Qa,Eu,tl,Tu,yy,Fp,by,new fe),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 wu(n,e,t,i,r,s){ea.subVectors(n,t).addScalar(.5).multiply(i),r!==void 0?(el.x=s*ea.x-r*ea.y,el.y=r*ea.x+s*ea.y):el.copy(ea),n.copy(e),n.x+=el.x,n.y+=el.y,n.applyMatrix4(rE)}const Au=new k,xy=new k;class oE extends dt{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);const t=e.levels;for(let i=0,r=t.length;i0){let i,r;for(i=1,r=t.length;i0){Au.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(Au);this.getObjectForDistance(r).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){Au.setFromMatrixPosition(e.matrixWorld),xy.setFromMatrixPosition(this.matrixWorld);const i=Au.distanceTo(xy)/e.zoom;t[0].object.visible=!0;let r,s;for(r=1,s=t.length;r=o)t[r-1].object.visible=!1,t[r].object.visible=!0;else break}for(this._currentLevel=r-1;r1?null:t.copy(e.start).addScaledVector(i,s)}intersectsLine(e){const 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){const i=t||wP.getNormalMatrix(e),r=this.coplanarPoint(zp).applyMatrix4(e),s=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(s),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)}}const zs=new Tn,Pu=new k;class Bc{constructor(e=new ss,t=new ss,i=new ss,r=new ss,s=new ss,o=new ss){this.planes=[e,t,i,r,s,o]}set(e,t,i,r,s,o){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(i),a[3].copy(r),a[4].copy(s),a[5].copy(o),this}copy(e){const t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=Ii){const i=this.planes,r=e.elements,s=r[0],o=r[1],a=r[2],l=r[3],c=r[4],u=r[5],f=r[6],h=r[7],d=r[8],p=r[9],_=r[10],g=r[11],m=r[12],y=r[13],b=r[14],v=r[15];if(i[0].setComponents(l-s,h-c,g-d,v-m).normalize(),i[1].setComponents(l+s,h+c,g+d,v+m).normalize(),i[2].setComponents(l+o,h+u,g+p,v+y).normalize(),i[3].setComponents(l-o,h-u,g-p,v-y).normalize(),i[4].setComponents(l-a,h-f,g-_,v-b).normalize(),t===Ii)i[5].setComponents(l+a,h+f,g+_,v+b).normalize();else if(t===lc)i[5].setComponents(a,f,_,b).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),zs.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),zs.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(zs)}intersectsSprite(e){return zs.center.set(0,0,0),zs.radius=.7071067811865476,zs.applyMatrix4(e.matrixWorld),this.intersectsSphere(zs)}intersectsSphere(e){const t=this.planes,i=e.center,r=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(i)0?e.max.x:e.min.x,Pu.y=r.normal.y>0?e.max.y:e.min.y,Pu.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(Pu)<0)return!1}return!0}containsPoint(e){const 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)}}function Vp(n,e){return n-e}function AP(n,e){return n.z-e.z}function CP(n,e){return e.z-n.z}class RP{constructor(){this.index=0,this.pool=[],this.list=[]}push(e,t,i,r){const s=this.pool,o=this.list;this.index>=s.length&&s.push({start:-1,count:-1,z:-1,index:-1});const a=s[this.index];o.push(a),this.index++,a.start=e,a.count=t,a.z=i,a.index=r}reset(){this.list.length=0,this.index=0}}const Xn=new Ye,PP=new Ce(1,1,1),Hp=new Bc,Iu=new Vn,Vs=new Tn,rl=new k,Py=new k,IP=new k,Gp=new RP,xn=new $t,Lu=[];function LP(n,e,t=0){const i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){const r=n.count;for(let s=0;s65535?new Uint32Array(r):new Uint16Array(r);t.setIndex(new Ct(s,1))}this._geometryInitialized=!0}}_validateGeometry(e){const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(const i in t.attributes){if(!e.hasAttribute(i))throw new Error(`THREE.BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const r=e.getAttribute(i),s=t.getAttribute(i);if(r.itemSize!==s.itemSize||r.normalized!==s.normalized)throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(e){const 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){const 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 Vn);const 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.");const i={visible:!0,active:!0,geometryIndex:e};let r=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(Vp),r=this._availableInstanceIds.shift(),this._instanceInfo[r]=i):(r=this._instanceInfo.length,this._instanceInfo.push(i));const s=this._matricesTexture;Xn.identity().toArray(s.image.data,r*16),s.needsUpdate=!0;const o=this._colorsTexture;return o&&(PP.toArray(o.image.data,r*4),o.needsUpdate=!0),this._visibilityChanged=!0,r}addGeometry(e,t=-1,i=-1){this._initializeGeometry(e),this._validateGeometry(e);const r={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},s=this._geometryInfo;r.vertexStart=this._nextVertexStart,r.reservedVertexCount=t===-1?e.getAttribute("position").count:t;const o=e.getIndex();if(o!==null&&(r.indexStart=this._nextIndexStart,r.reservedIndexCount=i===-1?o.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 l;return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(Vp),l=this._availableGeometryIds.shift(),s[l]=r):(l=this._geometryCount,this._geometryCount++,s.push(r)),this.setGeometryAt(l,e),this._nextIndexStart=r.indexStart+r.reservedIndexCount,this._nextVertexStart=r.vertexStart+r.reservedVertexCount,l}setGeometryAt(e,t){if(e>=this._geometryCount)throw new Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const i=this.geometry,r=i.getIndex()!==null,s=i.getIndex(),o=t.getIndex(),a=this._geometryInfo[e];if(r&&o.count>a.reservedIndexCount||t.attributes.position.count>a.reservedVertexCount)throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");const l=a.vertexStart,c=a.reservedVertexCount;a.vertexCount=t.getAttribute("position").count;for(const u in i.attributes){const f=t.getAttribute(u),h=i.getAttribute(u);LP(f,h,l);const d=f.itemSize;for(let p=f.count,_=c;p<_;p++){const g=l+p;for(let m=0;m=t.length||t[e].active===!1)return this;const i=this._instanceInfo;for(let r=0,s=i.length;ra).sort((o,a)=>i[o].vertexStart-i[a].vertexStart),s=this.geometry;for(let o=0,a=i.length;o=this._geometryCount)return null;const i=this.geometry,r=this._geometryInfo[e];if(r.boundingBox===null){const s=new Vn,o=i.index,a=i.attributes.position;for(let l=r.start,c=r.start+r.count;l=this._geometryCount)return null;const i=this.geometry,r=this._geometryInfo[e];if(r.boundingSphere===null){const s=new Tn;this.getBoundingBoxAt(e,Iu),Iu.getCenter(s.center);const o=i.index,a=i.attributes.position;let l=0;for(let c=r.start,u=r.start+r.count;ca.active);if(Math.max(...i.map(a=>a.vertexStart+a.reservedVertexCount))>e)throw new Error(`BatchedMesh: Geometry vertex values are being used outside the range ${t}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...i.map(l=>l.indexStart+l.reservedIndexCount))>t)throw new Error(`BatchedMesh: Geometry index values are being used outside the range ${t}. Cannot shrink further.`);const s=this.geometry;s.dispose(),this._maxVertexCount=e,this._maxIndexCount=t,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new lt,this._initializeGeometry(s));const o=this.geometry;s.index&&Hs(s.index.array,o.index.array);for(const a in s.attributes)Hs(s.attributes[a].array,o.attributes[a].array)}raycast(e,t){const i=this._instanceInfo,r=this._geometryInfo,s=this.matrixWorld,o=this.geometry;xn.material=this.material,xn.geometry.index=o.index,xn.geometry.attributes=o.attributes,xn.geometry.boundingBox===null&&(xn.geometry.boundingBox=new Vn),xn.geometry.boundingSphere===null&&(xn.geometry.boundingSphere=new Tn);for(let a=0,l=i.length;a({...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._maxInstanceCount=e._maxInstanceCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.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(){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,s){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const o=r.getIndex(),a=o===null?1:o.array.BYTES_PER_ELEMENT,l=this._instanceInfo,c=this._multiDrawStarts,u=this._multiDrawCounts,f=this._geometryInfo,h=this.perObjectFrustumCulled,d=this._indirectTexture,p=d.image.data;h&&(Xn.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),Hp.setFromProjectionMatrix(Xn,e.coordinateSystem));let _=0;if(this.sortObjects){Xn.copy(this.matrixWorld).invert(),rl.setFromMatrixPosition(i.matrixWorld).applyMatrix4(Xn),Py.set(0,0,-1).transformDirection(i.matrixWorld).transformDirection(Xn);for(let y=0,b=l.length;y0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;si)return;Wp.applyMatrix4(n.matrixWorld);const c=e.ray.origin.distanceTo(Wp);if(!(ce.far))return{distance:c,point:Ly.clone().applyMatrix4(n.matrixWorld),index:o,face:null,faceIndex:null,barycoord:null,object:n}}const Dy=new k,Oy=new k;class sr extends _s{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const e=this.geometry;if(e.index===null){const t=e.attributes.position,i=[];for(let r=0,s=t.count;r0){const r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:c,distanceToRay:Math.sqrt(a),point:l,index:e,face:null,faceIndex:null,barycoord:null,object:o})}}class hE extends Wt{constructor(e,t,i,r,s,o,a,l,c){super(e,t,i,r,s,o,a,l,c),this.isVideoTexture=!0,this.minFilter=o!==void 0?o:en,this.magFilter=s!==void 0?s:en,this.generateMipmaps=!1;const u=this;function f(){u.needsUpdate=!0,e.requestVideoFrameCallback(f)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(f)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class DP extends hE{constructor(e,t,i,r,s,o,a,l){super({},e,t,i,r,s,o,a,l),this.isVideoFrameTexture=!0}update(){}clone(){return new this.constructor().copy(this)}setFrame(e){this.image=e,this.needsUpdate=!0}}class OP extends Wt{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=gn,this.minFilter=gn,this.generateMipmaps=!1,this.needsUpdate=!0}}class vd extends Wt{constructor(e,t,i,r,s,o,a,l,c,u,f,h){super(null,o,a,l,c,u,r,s,f,h),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class NP extends vd{constructor(e,t,i,r,s,o){super(e,t,i,s,o),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=gi,this.layerUpdates=new Set}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}}class UP extends vd{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,Or),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class FP extends Wt{constructor(e,t,i,r,s,o,a,l,c){super(e,t,i,r,s,o,a,l,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class n_ extends Wt{constructor(e,t,i,r,s,o,a,l,c,u=mo){if(u!==mo&&u!==Eo)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");i===void 0&&u===mo&&(i=Nr),i===void 0&&u===Eo&&(i=So),super(null,r,s,o,a,l,u,i,c),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=a!==void 0?a:gn,this.minFilter=l!==void 0?l:gn,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.source=new ls(Object.assign({},e.image)),this.compareFunction=e.compareFunction,this}toJSON(e){const t=super.toJSON(e);return this.compareFunction!==null&&(t.compareFunction=this.compareFunction),t}}class zi{constructor(){this.type="Curve",this.arcLengthDivisions=200,this.needsUpdate=!1,this.cacheArcLengths=null}getPoint(){console.warn("THREE.Curve: .getPoint() not implemented.")}getPointAt(e,t){const i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let i,r=this.getPoint(0),s=0;t.push(0);for(let o=1;o<=e;o++)i=this.getPoint(o/e),s+=i.distanceTo(r),t.push(s),r=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t=null){const i=this.getLengths();let r=0;const s=i.length;let o;t?o=t:o=e*i[s-1];let a=0,l=s-1,c;for(;a<=l;)if(r=Math.floor(a+(l-a)/2),c=i[r]-o,c<0)a=r+1;else if(c>0)l=r-1;else{l=r;break}if(r=l,i[r]===o)return r/(s-1);const u=i[r],h=i[r+1]-u,d=(o-u)/h;return(r+d)/(s-1)}getTangent(e,t){let r=e-1e-4,s=e+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),l=t||(o.isVector2?new fe:new k);return l.copy(a).sub(o).normalize(),l}getTangentAt(e,t){const i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t=!1){const i=new k,r=[],s=[],o=[],a=new k,l=new Ye;for(let d=0;d<=e;d++){const p=d/e;r[d]=this.getTangentAt(p,new k)}s[0]=new k,o[0]=new k;let c=Number.MAX_VALUE;const u=Math.abs(r[0].x),f=Math.abs(r[0].y),h=Math.abs(r[0].z);u<=c&&(c=u,i.set(1,0,0)),f<=c&&(c=f,i.set(0,1,0)),h<=c&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let d=1;d<=e;d++){if(s[d]=s[d-1].clone(),o[d]=o[d-1].clone(),a.crossVectors(r[d-1],r[d]),a.length()>Number.EPSILON){a.normalize();const p=Math.acos(Qe(r[d-1].dot(r[d]),-1,1));s[d].applyMatrix4(l.makeRotationAxis(a,p))}o[d].crossVectors(r[d],s[d])}if(t===!0){let d=Math.acos(Qe(s[0].dot(s[e]),-1,1));d/=e,r[0].dot(a.crossVectors(s[0],s[e]))>0&&(d=-d);for(let p=1;p<=e;p++)s[p].applyMatrix4(l.makeRotationAxis(r[p],d*p)),o[p].crossVectors(r[p],s[p])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class yd extends zi{constructor(e=0,t=0,i=1,r=1,s=0,o=Math.PI*2,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(e,t=new fe){const i=t,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let c,u;this.closed||a>0?c=r[(a-1)%s]:(Fu.subVectors(r[0],r[1]).add(r[0]),c=Fu);const f=r[a%s],h=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],f=r[o>r.length-3?r.length-1:o+2];return i.set(Fy(a,l.x,c.x,u.x,f.x),Fy(a,l.y,c.y,u.y,f.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){const o=r[s]-i,a=this.curves[s],l=a.getLength(),c=l===0?0:1-o/l;return a.getPointAt(c,t)}s++}return null}getLength(){const 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;const e=[];let 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){const f=c.getPoint(0);f.equals(this.currentPoint)||this.lineTo(f.x,f.y)}this.curves.push(c);const u=c.getPoint(1);return this.currentPoint.copy(u),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class zc extends lt{constructor(e=[new fe(0,-.5),new fe(.5,0),new fe(0,.5)],t=12,i=0,r=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=Qe(r,0,Math.PI*2);const s=[],o=[],a=[],l=[],c=[],u=1/t,f=new k,h=new fe,d=new k,p=new k,_=new k;let g=0,m=0;for(let y=0;y<=e.length-1;y++)switch(y){case 0:g=e[y+1].x-e[y].x,m=e[y+1].y-e[y].y,d.x=m*1,d.y=-g,d.z=m*0,_.copy(d),d.normalize(),l.push(d.x,d.y,d.z);break;case e.length-1:l.push(_.x,_.y,_.z);break;default:g=e[y+1].x-e[y].x,m=e[y+1].y-e[y].y,d.x=m*1,d.y=-g,d.z=m*0,p.copy(d),d.x+=_.x,d.y+=_.y,d.z+=_.z,d.normalize(),l.push(d.x,d.y,d.z),_.copy(p)}for(let y=0;y<=t;y++){const b=i+y*u*r,v=Math.sin(b),E=Math.cos(b);for(let T=0;T<=e.length-1;T++){f.x=e[T].x*v,f.y=e[T].y,f.z=e[T].x*E,o.push(f.x,f.y,f.z),h.x=y/t,h.y=T/(e.length-1),a.push(h.x,h.y);const S=l[3*T+0]*v,R=l[3*T+1],x=l[3*T+0]*E;c.push(S,R,x)}}for(let y=0;y0&&b(!0),t>0&&b(!1)),this.setIndex(u),this.setAttribute("position",new ke(f,3)),this.setAttribute("normal",new ke(h,3)),this.setAttribute("uv",new ke(d,2));function y(){const v=new k,E=new k;let T=0;const S=(t-e)/i;for(let R=0;R<=s;R++){const x=[],M=R/s,L=M*(t-e)+e;for(let F=0;F<=r;F++){const V=F/r,X=V*l+a,te=Math.sin(X),Z=Math.cos(X);E.x=L*te,E.y=-M*i+g,E.z=L*Z,f.push(E.x,E.y,E.z),v.set(te,S,Z).normalize(),h.push(v.x,v.y,v.z),d.push(V,1-M),x.push(p++)}_.push(x)}for(let R=0;R0||x!==0)&&(u.push(M,L,V),T+=3),(t>0||x!==s-1)&&(u.push(L,F,V),T+=3)}c.addGroup(m,T,0),m+=T}function b(v){const E=p,T=new fe,S=new k;let R=0;const x=v===!0?e:t,M=v===!0?1:-1;for(let F=1;F<=r;F++)f.push(0,g*M,0),h.push(0,M,0),d.push(.5,.5),p++;const L=p;for(let F=0;F<=r;F++){const X=F/r*l+a,te=Math.cos(X),Z=Math.sin(X);S.x=x*Z,S.y=g*M,S.z=x*te,f.push(S.x,S.y,S.z),h.push(0,M,0),T.x=te*.5+.5,T.y=Z*.5*M+.5,d.push(T.x,T.y),p++}for(let F=0;F.9&&S<.1&&(b<.2&&(o[y+0]+=1),v<.2&&(o[y+2]+=1),E<.2&&(o[y+4]+=1))}}function h(y){s.push(y.x,y.y,y.z)}function d(y,b){const v=y*3;b.x=e[v+0],b.y=e[v+1],b.z=e[v+2]}function p(){const y=new k,b=new k,v=new k,E=new k,T=new fe,S=new fe,R=new fe;for(let x=0,M=0;x80*i){l=u=e[0],c=f=e[1];for(let _=i;_u&&(u=h),d>f&&(f=d);p=Math.max(u-l,f-c),p=p!==0?32767/p:0}return fc(o,a,i,l,c,p,0),a}}function yE(n,e,t,i,r){let s,o;if(r===aI(n,e,t,i)>0)for(s=e;s=e;s-=i)o=ky(s,n[s],n[s+1],o);return o&&Ed(o,o.next)&&(dc(o),o=o.next),o}function Ao(n,e){if(!n)return n;e||(e=n);let t=n,i;do if(i=!1,!t.steiner&&(Ed(t,t.next)||zt(t.prev,t,t.next)===0)){if(dc(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function fc(n,e,t,i,r,s,o){if(!n)return;!o&&s&&tI(n,i,r,s);let a=n,l,c;for(;n.prev!==n.next;){if(l=n.prev,c=n.next,s?qP(n,i,r,s):$P(n)){e.push(l.i/t|0),e.push(n.i/t|0),e.push(c.i/t|0),dc(n),n=c.next,a=c.next;continue}if(n=c,n===a){o?o===1?(n=YP(Ao(n),e,t),fc(n,e,t,i,r,s,2)):o===2&&jP(n,e,t,i,r,s):fc(Ao(n),e,t,i,r,s,1);break}}}function $P(n){const e=n.prev,t=n,i=n.next;if(zt(e,t,i)>=0)return!1;const r=e.x,s=t.x,o=i.x,a=e.y,l=t.y,c=i.y,u=rs?r>o?r:o:s>o?s:o,d=a>l?a>c?a:c:l>c?l:c;let p=i.next;for(;p!==e;){if(p.x>=u&&p.x<=h&&p.y>=f&&p.y<=d&&fa(r,a,s,l,o,c,p.x,p.y)&&zt(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function qP(n,e,t,i){const r=n.prev,s=n,o=n.next;if(zt(r,s,o)>=0)return!1;const a=r.x,l=s.x,c=o.x,u=r.y,f=s.y,h=o.y,d=al?a>c?a:c:l>c?l:c,g=u>f?u>h?u:h:f>h?f:h,m=mg(d,p,e,t,i),y=mg(_,g,e,t,i);let b=n.prevZ,v=n.nextZ;for(;b&&b.z>=m&&v&&v.z<=y;){if(b.x>=d&&b.x<=_&&b.y>=p&&b.y<=g&&b!==r&&b!==o&&fa(a,u,l,f,c,h,b.x,b.y)&&zt(b.prev,b,b.next)>=0||(b=b.prevZ,v.x>=d&&v.x<=_&&v.y>=p&&v.y<=g&&v!==r&&v!==o&&fa(a,u,l,f,c,h,v.x,v.y)&&zt(v.prev,v,v.next)>=0))return!1;v=v.nextZ}for(;b&&b.z>=m;){if(b.x>=d&&b.x<=_&&b.y>=p&&b.y<=g&&b!==r&&b!==o&&fa(a,u,l,f,c,h,b.x,b.y)&&zt(b.prev,b,b.next)>=0)return!1;b=b.prevZ}for(;v&&v.z<=y;){if(v.x>=d&&v.x<=_&&v.y>=p&&v.y<=g&&v!==r&&v!==o&&fa(a,u,l,f,c,h,v.x,v.y)&&zt(v.prev,v,v.next)>=0)return!1;v=v.nextZ}return!0}function YP(n,e,t){let i=n;do{const r=i.prev,s=i.next.next;!Ed(r,s)&&bE(r,i,i.next,s)&&hc(r,s)&&hc(s,r)&&(e.push(r.i/t|0),e.push(i.i/t|0),e.push(s.i/t|0),dc(i),dc(i.next),i=n=s),i=i.next}while(i!==n);return Ao(i)}function jP(n,e,t,i,r,s){let o=n;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&rI(o,a)){let l=xE(o,a);o=Ao(o,o.next),l=Ao(l,l.next),fc(o,e,t,i,r,s,0),fc(l,e,t,i,r,s,0);return}a=a.next}o=o.next}while(o!==n)}function KP(n,e,t,i){const r=[];let s,o,a,l,c;for(s=0,o=e.length;s=t.next.y&&t.next.y!==t.y){const h=t.x+(o-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(h<=s&&h>i&&(i=h,r=t.x=t.x&&t.x>=l&&s!==t.x&&fa(or.x||t.x===r.x&&eI(r,t)))&&(r=t,u=f)),t=t.next;while(t!==a);return r}function eI(n,e){return zt(n.prev,n,e.prev)<0&&zt(e.next,n,n.next)<0}function tI(n,e,t,i){let r=n;do r.z===0&&(r.z=mg(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,nI(r)}function nI(n){let e,t,i,r,s,o,a,l,c=1;do{for(t=n,n=null,s=null,o=0;t;){for(o++,i=t,a=0,e=0;e0||l>0&&i;)a!==0&&(l===0||!i||t.z<=i.z)?(r=t,t=t.nextZ,a--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:n=r,r.prevZ=s,s=r;t=i}s.nextZ=null,c*=2}while(o>1);return n}function mg(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 iI(n){let e=n,t=n;do(e.x=(n-o)*(s-a)&&(n-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(s-a)>=(r-o)*(i-a)}function rI(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!sI(n,e)&&(hc(n,e)&&hc(e,n)&&oI(n,e)&&(zt(n.prev,n,e.prev)||zt(n,e.prev,e))||Ed(n,e)&&zt(n.prev,n,n.next)>0&&zt(e.prev,e,e.next)>0)}function zt(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function Ed(n,e){return n.x===e.x&&n.y===e.y}function bE(n,e,t,i){const r=Hu(zt(n,e,t)),s=Hu(zt(n,e,i)),o=Hu(zt(t,i,n)),a=Hu(zt(t,i,e));return!!(r!==s&&o!==a||r===0&&Vu(n,t,e)||s===0&&Vu(n,i,e)||o===0&&Vu(t,n,i)||a===0&&Vu(t,e,i))}function Vu(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 Hu(n){return n>0?1:n<0?-1:0}function sI(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&&bE(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function hc(n,e){return zt(n.prev,n,n.next)<0?zt(n,e,n.next)>=0&&zt(n,n.prev,e)>=0:zt(n,e,n.prev)<0||zt(n,n.next,e)<0}function oI(n,e){let t=n,i=!1;const r=(n.x+e.x)/2,s=(n.y+e.y)/2;do t.y>s!=t.next.y>s&&t.next.y!==t.y&&r<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==n);return i}function xE(n,e){const t=new gg(n.i,n.x,n.y),i=new gg(e.i,e.x,e.y),r=n.next,s=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,i.next=t,t.prev=i,s.next=i,i.prev=s,i}function ky(n,e,t,i){const r=new gg(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 dc(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 gg(n,e,t){this.i=n,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function aI(n,e,t,i){let r=0;for(let s=e,o=t-i;s2&&n[e-1].equals(n[0])&&n.pop()}function zy(n,e){for(let t=0;tNumber.EPSILON){const U=Math.sqrt(C),H=Math.sqrt(z*z+A*A),Y=D.x-N/U,he=D.y+P/U,ce=w.x-A/H,xe=w.y+z/H,Be=((ce-Y)*A-(xe-he)*z)/(P*A-N*z);j=Y+P*Be-I.x,G=he+N*Be-I.y;const me=j*j+G*G;if(me<=2)return new fe(j,G);q=Math.sqrt(me/2)}else{let U=!1;P>Number.EPSILON?z>Number.EPSILON&&(U=!0):P<-Number.EPSILON?z<-Number.EPSILON&&(U=!0):Math.sign(N)===Math.sign(A)&&(U=!0),U?(j=-N,G=P,q=Math.sqrt(C)):(j=P,G=N,q=Math.sqrt(C/2))}return new fe(j/q,G/q)}const de=[];for(let I=0,D=X.length,w=D-1,j=I+1;I=0;I--){const D=I/g,w=d*Math.cos(D*Math.PI/2),j=p*Math.sin(D*Math.PI/2)+_;for(let G=0,q=X.length;G=0;){const j=w;let G=w-1;G<0&&(G=I.length-1);for(let q=0,P=u+g*2;q0)&&d.push(b,v,T),(m!==i-1||l0!=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 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.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}}class wE extends An{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Ce(16777215),this.specular=new Ce(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ce(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Es,this.normalScale=new fe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new li,this.combine=Oc,this.reflectivity=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.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}}class AE extends An{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Ce(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ce(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Es,this.normalScale=new fe(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}}class CE extends An{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Es,this.normalScale=new fe(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}}class RE extends An{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Ce(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ce(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Es,this.normalScale=new fe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new li,this.combine=Oc,this.reflectivity=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.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}}class u_ extends An{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=z1,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}}class f_ extends An{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}}class PE extends An{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Ce(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Es,this.normalScale=new fe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,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.flatShading=e.flatShading,this.fog=e.fog,this}}class IE extends Gn{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 co(n,e,t){return!n||!t&&n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function LE(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function DE(n){function e(r,s){return n[r]-n[s]}const t=n.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort(e),i}function _g(n,e,t){const i=n.length,r=new n.constructor(i);for(let s=0,o=0;o!==i;++s){const a=t[s]*e;for(let l=0;l!==e;++l)r[o++]=n[a+l]}return r}function h_(n,e,t,i){let r=1,s=n[0];for(;s!==void 0&&s[i]===void 0;)s=n[r++];if(s===void 0)return;let o=s[i];if(o!==void 0)if(Array.isArray(o))do o=s[i],o!==void 0&&(e.push(s.time),t.push(...o)),s=n[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[i],o!==void 0&&(e.push(s.time),o.toArray(t,t.length)),s=n[r++];while(s!==void 0);else do o=s[i],o!==void 0&&(e.push(s.time),t.push(o)),s=n[r++];while(s!==void 0)}function fI(n,e,t,i,r=30){const s=n.clone();s.name=e;const o=[];for(let l=0;l=i)){f.push(c.times[d]);for(let _=0;_s.tracks[l].times[0]&&(a=s.tracks[l].times[0]);for(let l=0;l=a.times[p]){const m=p*f+u,y=m+f-u;_=a.values.slice(m,y)}else{const m=a.createInterpolant(),y=u,b=f-u;m.evaluate(s),_=m.resultBuffer.slice(y,b)}l==="quaternion"&&new Jn().fromArray(_).normalize().conjugate().toArray(_);const g=c.times.length;for(let m=0;m=s)){const a=t[1];e=s)break t}o=i,i=0;break n}break e}for(;i>>1;et;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=i.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const i=this.times,r=this.values,s=i.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==s;a++){const l=i[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),e=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),e=!1;break}o=l}if(r!==void 0&&LE(r))for(let a=0,l=r.length;a!==l;++a){const c=r[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),r=this.getInterpolation()===bf,s=e.length-1;let o=1;for(let a=1;a0){e[o]=e[s];for(let a=s*i,l=o*i,c=0;c!==i;++c)t[l+c]=t[a+c];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=t.slice(0,o*i)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),i=this.constructor,r=new i(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}}Vi.prototype.TimeBufferType=Float32Array;Vi.prototype.ValueBufferType=Float32Array;Vi.prototype.DefaultInterpolation=xh;class Io extends Vi{constructor(e,t,i){super(e,t,i)}}Io.prototype.ValueTypeName="bool";Io.prototype.ValueBufferType=Array;Io.prototype.DefaultInterpolation=rc;Io.prototype.InterpolantFactoryMethodLinear=void 0;Io.prototype.InterpolantFactoryMethodSmooth=void 0;class p_ extends Vi{}p_.prototype.ValueTypeName="color";class pc extends Vi{}pc.prototype.ValueTypeName="number";class UE extends Gc{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(i-t)/(r-t);let c=e*a;for(let u=c+a;c!==u;c+=4)Jn.slerpFlat(s,0,o,c-a,o,c,l);return s}}class Wc extends Vi{InterpolantFactoryMethodLinear(e){return new UE(this.times,this.values,this.getValueSize(),e)}}Wc.prototype.ValueTypeName="quaternion";Wc.prototype.InterpolantFactoryMethodSmooth=void 0;class Lo extends Vi{constructor(e,t,i){super(e,t,i)}}Lo.prototype.ValueTypeName="string";Lo.prototype.ValueBufferType=Array;Lo.prototype.DefaultInterpolation=rc;Lo.prototype.InterpolantFactoryMethodLinear=void 0;Lo.prototype.InterpolantFactoryMethodSmooth=void 0;class mc extends Vi{}mc.prototype.ValueTypeName="vector";class gc{constructor(e="",t=-1,i=[],r=cd){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=si(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],i=e.tracks,r=1/(e.fps||1);for(let o=0,a=i.length;o!==a;++o)t.push(mI(i[o]).scale(r));const s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){const t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,o=i.length;s!==o;++s)t.push(Vi.toJSON(i[s]));return r}static CreateFromMorphTargetSequence(e,t,i,r){const s=t.length,o=[];for(let a=0;a1){const f=u[1];let h=r[f];h||(r[f]=h=[]),h.push(c)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],t,i));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const i=function(f,h,d,p,_){if(d.length!==0){const g=[],m=[];h_(d,g,m,p),g.length!==0&&_.push(new f(h,g,m))}},r=[],s=e.name||"default",o=e.fps||30,a=e.blendMode;let l=e.length||-1;const c=e.hierarchy||[];for(let f=0;f{t&&t(s),this.manager.itemEnd(e)},0),s;if(pr[e]!==void 0){pr[e].push({onLoad:t,onProgress:i,onError:r});return}pr[e]=[],pr[e].push({onLoad:t,onProgress:i,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||c.body===void 0||c.body.getReader===void 0)return c;const u=pr[e],f=c.body.getReader(),h=c.headers.get("X-File-Size")||c.headers.get("Content-Length"),d=h?parseInt(h):0,p=d!==0;let _=0;const g=new ReadableStream({start(m){y();function y(){f.read().then(({done:b,value:v})=>{if(b)m.close();else{_+=v.byteLength;const E=new ProgressEvent("progress",{lengthComputable:p,loaded:_,total:d});for(let T=0,S=u.length;T{m.error(b)})}}});return new Response(g)}else throw new gI(`fetch for "${c.url}" responded with ${c.status}: ${c.statusText}`,c)}).then(c=>{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(u=>new DOMParser().parseFromString(u,a));case"json":return c.json();default:if(a===void 0)return c.text();{const f=/charset="?([^;"\s]*)"?/i.exec(a),h=f&&f[1]?f[1].toLowerCase():void 0,d=new TextDecoder(h);return c.arrayBuffer().then(p=>d.decode(p))}}}).then(c=>{Tr.add(e,c);const u=pr[e];delete pr[e];for(let f=0,h=u.length;f{const u=pr[e];if(u===void 0)throw this.manager.itemError(e),c;delete pr[e];for(let f=0,h=u.length;f{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class _I extends ei{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new Ur(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(a){try{t(s.parse(JSON.parse(a)))}catch(l){r?r(l):console.error(l),s.manager.itemError(e)}},i,r)}parse(e){const t=[];for(let i=0;i0:r.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const s in e.uniforms){const o=e.uniforms[s];switch(r.uniforms[s]={},o.type){case"t":r.uniforms[s].value=i(o.value);break;case"c":r.uniforms[s].value=new Ce().setHex(o.value);break;case"v2":r.uniforms[s].value=new fe().fromArray(o.value);break;case"v3":r.uniforms[s].value=new k().fromArray(o.value);break;case"v4":r.uniforms[s].value=new gt().fromArray(o.value);break;case"m3":r.uniforms[s].value=new nt().fromArray(o.value);break;case"m4":r.uniforms[s].value=new Ye().fromArray(o.value);break;default:r.uniforms[s].value=o.value}}if(e.defines!==void 0&&(r.defines=e.defines),e.vertexShader!==void 0&&(r.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(r.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(r.glslVersion=e.glslVersion),e.extensions!==void 0)for(const s in e.extensions)r.extensions[s]=e.extensions[s];if(e.lights!==void 0&&(r.lights=e.lights),e.clipping!==void 0&&(r.clipping=e.clipping),e.size!==void 0&&(r.size=e.size),e.sizeAttenuation!==void 0&&(r.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(r.map=i(e.map)),e.matcap!==void 0&&(r.matcap=i(e.matcap)),e.alphaMap!==void 0&&(r.alphaMap=i(e.alphaMap)),e.bumpMap!==void 0&&(r.bumpMap=i(e.bumpMap)),e.bumpScale!==void 0&&(r.bumpScale=e.bumpScale),e.normalMap!==void 0&&(r.normalMap=i(e.normalMap)),e.normalMapType!==void 0&&(r.normalMapType=e.normalMapType),e.normalScale!==void 0){let s=e.normalScale;Array.isArray(s)===!1&&(s=[s,s]),r.normalScale=new fe().fromArray(s)}return e.displacementMap!==void 0&&(r.displacementMap=i(e.displacementMap)),e.displacementScale!==void 0&&(r.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(r.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(r.roughnessMap=i(e.roughnessMap)),e.metalnessMap!==void 0&&(r.metalnessMap=i(e.metalnessMap)),e.emissiveMap!==void 0&&(r.emissiveMap=i(e.emissiveMap)),e.emissiveIntensity!==void 0&&(r.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(r.specularMap=i(e.specularMap)),e.specularIntensityMap!==void 0&&(r.specularIntensityMap=i(e.specularIntensityMap)),e.specularColorMap!==void 0&&(r.specularColorMap=i(e.specularColorMap)),e.envMap!==void 0&&(r.envMap=i(e.envMap)),e.envMapRotation!==void 0&&r.envMapRotation.fromArray(e.envMapRotation),e.envMapIntensity!==void 0&&(r.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(r.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(r.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(r.lightMap=i(e.lightMap)),e.lightMapIntensity!==void 0&&(r.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(r.aoMap=i(e.aoMap)),e.aoMapIntensity!==void 0&&(r.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(r.gradientMap=i(e.gradientMap)),e.clearcoatMap!==void 0&&(r.clearcoatMap=i(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(r.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(r.clearcoatNormalMap=i(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(r.clearcoatNormalScale=new fe().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(r.iridescenceMap=i(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(r.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(r.transmissionMap=i(e.transmissionMap)),e.thicknessMap!==void 0&&(r.thicknessMap=i(e.thicknessMap)),e.anisotropyMap!==void 0&&(r.anisotropyMap=i(e.anisotropyMap)),e.sheenColorMap!==void 0&&(r.sheenColorMap=i(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(r.sheenRoughnessMap=i(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}createMaterialFromType(e){return Od.createMaterialFromType(e)}static createMaterialFromType(e){const t={ShadowMaterial:SE,SpriteMaterial:Q0,RawShaderMaterial:EE,ShaderMaterial:Fi,PointsMaterial:t_,MeshPhysicalMaterial:TE,MeshStandardMaterial:c_,MeshPhongMaterial:wE,MeshToonMaterial:AE,MeshNormalMaterial:CE,MeshLambertMaterial:RE,MeshDepthMaterial:u_,MeshDistanceMaterial:f_,MeshBasicMaterial:Br,MeshMatcapMaterial:PE,LineDashedMaterial:IE,LineBasicMaterial:Gn,Material:An};return new t[e]}}class vg{static decodeText(e){if(console.warn("THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead."),typeof TextDecoder<"u")return new TextDecoder().decode(e);let t="";for(let i=0,r=e.length;i0){const l=new m_(t);s=new _c(l),s.setCrossOrigin(this.crossOrigin);for(let c=0,u=e.length;c0){r=new _c(this.manager),r.setCrossOrigin(this.crossOrigin);for(let o=0,a=e.length;o{const g=new Vn;g.min.fromArray(_.boxMin),g.max.fromArray(_.boxMax);const m=new Tn;return m.radius=_.sphereRadius,m.center.fromArray(_.sphereCenter),{boxInitialized:_.boxInitialized,box:g,sphereInitialized:_.sphereInitialized,sphere:m}}),o._maxInstanceCount=e.maxInstanceCount,o._maxVertexCount=e.maxVertexCount,o._maxIndexCount=e.maxIndexCount,o._geometryInitialized=e.geometryInitialized,o._geometryCount=e.geometryCount,o._matricesTexture=c(e.matricesTexture.uuid),e.colorsTexture!==void 0&&(o._colorsTexture=c(e.colorsTexture.uuid));break;case"LOD":o=new oE;break;case"Line":o=new _s(a(e.geometry),l(e.material));break;case"LineLoop":o=new uE(a(e.geometry),l(e.material));break;case"LineSegments":o=new sr(a(e.geometry),l(e.material));break;case"PointCloud":case"Points":o=new fE(a(e.geometry),l(e.material));break;case"Sprite":o=new sE(l(e.material));break;case"Group":o=new ua;break;case"Bone":o=new e_;break;default:o=new dt}if(o.uuid=e.uuid,e.name!==void 0&&(o.name=e.name),e.matrix!==void 0?(o.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(o.matrixAutoUpdate=e.matrixAutoUpdate),o.matrixAutoUpdate&&o.matrix.decompose(o.position,o.quaternion,o.scale)):(e.position!==void 0&&o.position.fromArray(e.position),e.rotation!==void 0&&o.rotation.fromArray(e.rotation),e.quaternion!==void 0&&o.quaternion.fromArray(e.quaternion),e.scale!==void 0&&o.scale.fromArray(e.scale)),e.up!==void 0&&o.up.fromArray(e.up),e.castShadow!==void 0&&(o.castShadow=e.castShadow),e.receiveShadow!==void 0&&(o.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.intensity!==void 0&&(o.shadow.intensity=e.shadow.intensity),e.shadow.bias!==void 0&&(o.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(o.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(o.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&o.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(o.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(o.visible=e.visible),e.frustumCulled!==void 0&&(o.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(o.renderOrder=e.renderOrder),e.userData!==void 0&&(o.userData=e.userData),e.layers!==void 0&&(o.layers.mask=e.layers),e.children!==void 0){const h=e.children;for(let d=0;d"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}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);const s=this,o=Tr.get(e);if(o!==void 0){if(s.manager.itemStart(e),o.then){o.then(c=>{t&&t(c),s.manager.itemEnd(e)}).catch(c=>{r&&r(c)});return}return setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const l=fetch(e,a).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(c){return Tr.add(e,c),t&&t(c),s.manager.itemEnd(e),c}).catch(function(c){r&&r(c),Tr.remove(e),s.manager.itemError(e),s.manager.itemEnd(e)});Tr.add(e,l),s.manager.itemStart(e)}}let Gu;class __{static getContext(){return Gu===void 0&&(Gu=new(window.AudioContext||window.webkitAudioContext)),Gu}static setContext(e){Gu=e}}class CI extends ei{constructor(e){super(e)}load(e,t,i,r){const s=this,o=new Ur(this.manager);o.setResponseType("arraybuffer"),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(l){try{const c=l.slice(0);__.getContext().decodeAudioData(c,function(f){t(f)}).catch(a)}catch(c){a(c)}},i,r);function a(l){r?r(l):console.error(l),s.manager.itemError(e)}}}const Yy=new Ye,jy=new Ye,Gs=new Ye;class RI{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new Kt,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new Kt,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){const 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,Gs.copy(e.projectionMatrix);const r=t.eyeSep/2,s=r*t.near/t.focus,o=t.near*Math.tan(go*t.fov*.5)/t.zoom;let a,l;jy.elements[12]=-r,Yy.elements[12]=r,a=-o*t.aspect+s,l=o*t.aspect+s,Gs.elements[0]=2*t.near/(l-a),Gs.elements[8]=(l+a)/(l-a),this.cameraL.projectionMatrix.copy(Gs),a=-o*t.aspect-s,l=o*t.aspect-s,Gs.elements[0]=2*t.near/(l-a),Gs.elements[8]=(l+a)/(l-a),this.cameraR.projectionMatrix.copy(Gs)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(jy),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(Yy)}}class YE extends Kt{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e,this.index=0}}class Nd{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Ky(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=Ky();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function Ky(){return performance.now()}const Ws=new k,Zy=new Jn,PI=new k,Xs=new k;class II extends dt{constructor(){super(),this.type="AudioListener",this.context=__.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Nd}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);const t=this.context.listener,i=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(Ws,Zy,PI),Xs.set(0,0,-1).applyQuaternion(Zy),t.positionX){const r=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(Ws.x,r),t.positionY.linearRampToValueAtTime(Ws.y,r),t.positionZ.linearRampToValueAtTime(Ws.z,r),t.forwardX.linearRampToValueAtTime(Xs.x,r),t.forwardY.linearRampToValueAtTime(Xs.y,r),t.forwardZ.linearRampToValueAtTime(Xs.z,r),t.upX.linearRampToValueAtTime(i.x,r),t.upY.linearRampToValueAtTime(i.y,r),t.upZ.linearRampToValueAtTime(i.z,r)}else t.setPosition(Ws.x,Ws.y,Ws.z),t.setOrientation(Xs.x,Xs.y,Xs.z,i.x,i.y,i.z)}}class jE extends dt{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){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const 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){console.warn("THREE.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){console.warn("THREE.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 l=t,c=t+t;l!==c;++l)if(i[l]!==i[l+t]){a.setValue(i,r);break}}saveOriginalState(){const e=this.binding,t=this.buffer,i=this.valueSize,r=i*this._origIndex;e.getValue(t,r);for(let s=i,o=r;s!==o;++s)t[s]=t[r+s%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i=.5)for(let o=0;o!==s;++o)e[t+o]=e[i+o]}_slerp(e,t,i,r){Jn.slerpFlat(e,t,e,t,e,i,r)}_slerpAdditive(e,t,i,r,s){const o=this._workIndex*s;Jn.multiplyQuaternionsFlat(e,o,e,t,e,i),Jn.slerpFlat(e,t,e,t,e,o,r)}_lerp(e,t,i,r,s){const o=1-r;for(let a=0;a!==s;++a){const l=t+a;e[l]=e[l]*o+e[i+a]*r}}_lerpAdditive(e,t,i,r,s){for(let o=0;o!==s;++o){const a=t+o;e[a]=e[a]+e[i+o]*r}}}const v_="\\[\\]\\.:\\/",NI=new RegExp("["+v_+"]","g"),y_="[^"+v_+"]",UI="[^"+v_.replace("\\.","")+"]",FI=/((?:WC+[\/:])*)/.source.replace("WC",y_),kI=/(WCOD+)?/.source.replace("WCOD",UI),BI=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",y_),zI=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",y_),VI=new RegExp("^"+FI+kI+BI+zI+"$"),HI=["material","materials","bones","map"];class GI{constructor(e,t,i){const r=i||mt.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();const i=this._targetGroup.nCachedObjects_,r=this._bindings[i];r!==void 0&&r.getValue(e,t)}setValue(e,t){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=i.length;r!==s;++r)i[r].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}}class mt{constructor(e,t,i){this.path=t,this.parsedPath=i||mt.parseTrackName(t),this.node=mt.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 mt.Composite(e,t,i):new mt(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(NI,"")}static parseTrackName(e){const t=VI.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const 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){const s=i.nodeName.substring(r+1);HI.indexOf(s)!==-1&&(i.nodeName=i.nodeName.substring(0,r),i.objectName=s)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("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){const i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){const i=function(s){for(let o=0;o=s){const f=s++,h=e[f];t[h.uuid]=u,e[u]=h,t[c]=f,e[f]=l;for(let d=0,p=r;d!==p;++d){const _=i[d],g=_[f],m=_[u];_[u]=g,_[f]=m}}}this.nCachedObjects_=s}uncache(){const e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length;let s=this.nCachedObjects_,o=e.length;for(let a=0,l=arguments.length;a!==l;++a){const c=arguments[a],u=c.uuid,f=t[u];if(f!==void 0)if(delete t[u],f0&&(t[d.uuid]=f),e[f]=d,e.pop();for(let p=0,_=r;p!==_;++p){const g=i[p];g[f]=g[h],g.pop()}}}this.nCachedObjects_=s}subscribe_(e,t){const i=this._bindingsIndicesByPath;let r=i[e];const s=this._bindings;if(r!==void 0)return s[r];const o=this._paths,a=this._parsedPaths,l=this._objects,c=l.length,u=this.nCachedObjects_,f=new Array(c);r=s.length,i[e]=r,o.push(e),a.push(t),s.push(f);for(let h=u,d=l.length;h!==d;++h){const p=l[h];f[h]=new mt(p,e,t)}return f}unsubscribe_(e){const t=this._bindingsIndicesByPath,i=t[e];if(i!==void 0){const r=this._paths,s=this._parsedPaths,o=this._bindings,a=o.length-1,l=o[a],c=e[a];t[c]=i,o[i]=l,o.pop(),s[i]=s[a],s.pop(),r[i]=r[a],r.pop()}}}class ZE{constructor(e,t,i=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=r;const s=t.tracks,o=s.length,a=new Array(o),l={endingStart:ao,endingEnd:ao};for(let c=0;c!==o;++c){const u=s[c].createInterpolant(null);a[c]=u,u.settings=l}this._interpolantSettings=l,this._interpolants=a,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=k1,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i){if(e.fadeOut(t),this.fadeIn(t),i){const r=this._clip.duration,s=e._clip.duration,o=s/r,a=r/s;e.warp(1,o,t),this.warp(a,1,t)}return this}crossFadeTo(e,t,i){return e.crossFadeFrom(this,t,i)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){const r=this._mixer,s=r.time,o=this.timeScale;let a=this._timeScaleInterpolant;a===null&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const l=a.parameterPositions,c=a.sampleValues;return l[0]=s,l[1]=s+i,c[0]=e/o,c[1]=t/o,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,r){if(!this.enabled){this._updateWeight(e);return}const s=this._startTime;if(s!==null){const l=(e-s)*i;l<0||i===0?t=0:(this._startTime=null,t=i*l)}t*=this._updateTimeScale(e);const o=this._updateTime(t),a=this._updateWeight(e);if(a>0){const l=this._interpolants,c=this._propertyBindings;switch(this.blendMode){case q0:for(let u=0,f=l.length;u!==f;++u)l[u].evaluate(o),c[u].accumulateAdditive(a);break;case cd:default:for(let u=0,f=l.length;u!==f;++u)l[u].evaluate(o),c[u].accumulate(r,a)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const i=this._weightInterpolant;if(i!==null){const 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;const i=this._timeScaleInterpolant;if(i!==null){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,i=this.loop;let r=this.time+e,s=this._loopCount;const o=i===B1;if(e===0)return s===-1?r:o&&(s&1)===1?t-r:r;if(i===F1){s===-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(s===-1&&(e>=0?(s=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),r>=t||r<0){const a=Math.floor(r/t);r-=t*a,s+=Math.abs(a);const l=this.repetitions-s;if(l<=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(l===1){const c=e<0;this._setEndings(c,!c,o)}else this._setEndings(!1,!1,o);this._loopCount=s,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=r;if(o&&(s&1)===1)return t-r}return r}_setEndings(e,t,i){const r=this._interpolantSettings;i?(r.endingStart=lo,r.endingEnd=lo):(e?r.endingStart=this.zeroSlopeAtStart?lo:ao:r.endingStart=sc,t?r.endingEnd=this.zeroSlopeAtEnd?lo:ao:r.endingEnd=sc)}_scheduleFading(e,t,i){const r=this._mixer,s=r.time;let o=this._weightInterpolant;o===null&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const a=o.parameterPositions,l=o.sampleValues;return a[0]=s,l[0]=t,a[1]=s+e,l[1]=i,this}}const XI=new Float32Array(1);class $I extends rr{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const i=e._localRoot||this._root,r=e._clip.tracks,s=r.length,o=e._propertyBindings,a=e._interpolants,l=i.uuid,c=this._bindingsByRootAndName;let u=c[l];u===void 0&&(u={},c[l]=u);for(let f=0;f!==s;++f){const h=r[f],d=h.name;let p=u[d];if(p!==void 0)++p.referenceCount,o[f]=p;else{if(p=o[f],p!==void 0){p._cacheIndex===null&&(++p.referenceCount,this._addInactiveBinding(p,l,d));continue}const _=t&&t._propertyBindings[f].binding.parsedPath;p=new KE(mt.create(i,d,_),h.ValueTypeName,h.getValueSize()),++p.referenceCount,this._addInactiveBinding(p,l,d),o[f]=p}a[f].resultBuffer=p.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const i=(e._localRoot||this._root).uuid,r=e._clip.uuid,s=this._actionsByClip[r];this._bindAction(e,s&&s.knownActions[0]),this._addInactiveAction(e,r,i)}const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];s.useCount++===0&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const s=t[i];--s.useCount===0&&(s.restoreOriginalState(),this._takeBackBinding(s))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const 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){const t=e._cacheIndex;return t!==null&&t=0;--i)e[i].stop();return this}update(e){e*=this.timeScale;const t=this._actions,i=this._nActiveActions,r=this.time+=e,s=Math.sign(e),o=this._accuIndex^=1;for(let c=0;c!==i;++c)t[c]._update(r,e,s,o);const a=this._bindings,l=this._nActiveBindings;for(let c=0;c!==l;++c)a[c].apply(o);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,tb).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)}}const nb=new k,Wu=new k;class nL{constructor(e=new k,t=new k){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){nb.subVectors(e,this.start),Wu.subVectors(this.end,this.start);const i=Wu.dot(Wu);let s=Wu.dot(nb)/i;return t&&(s=Qe(s,0,1)),s}closestPointToPoint(e,t,i){const r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}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)}}const ib=new k;class iL extends dt{constructor(e,t){super(),this.light=e,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const i=new lt,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 o=0,a=1,l=32;o1)for(let f=0;f.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{lb.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(lb,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(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class gL extends sr{constructor(e=1){const 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 lt;r.setAttribute("position",new ke(t,3)),r.setAttribute("color",new ke(i,3));const s=new Gn({vertexColors:!0,toneMapped:!1});super(r,s),this.type="AxesHelper"}setColors(e,t,i){const r=new Ce,s=this.geometry.attributes.color.array;return r.set(e),r.toArray(s,0),r.toArray(s,3),r.set(t),r.toArray(s,6),r.toArray(s,9),r.set(i),r.toArray(s,12),r.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class _L{constructor(){this.type="ShapePath",this.color=new Ce,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new uc,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,s,o){return this.currentPath.bezierCurveTo(e,t,i,r,s,o),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(m){const y=[];for(let b=0,v=m.length;bNumber.EPSILON){if(M<0&&(S=y[T],x=-x,R=y[E],M=-M),m.yR.y)continue;if(m.y===S.y){if(m.x===S.x)return!0}else{const L=M*(m.x-S.x)-x*(m.y-S.y);if(L===0)return!0;if(L<0)continue;v=!v}}else{if(m.y!==S.y)continue;if(R.x<=m.x&&m.x<=S.x||S.x<=m.x&&m.x<=R.x)return!0}}return v}const r=Qi.isClockWise,s=this.subPaths;if(s.length===0)return[];let o,a,l;const c=[];if(s.length===1)return a=s[0],l=new _o,l.curves=a.curves,c.push(l),c;let u=!r(s[0].getPoints());u=e?!u:u;const f=[],h=[];let d=[],p=0,_;h[p]=void 0,d[p]=[];for(let m=0,y=s.length;m1){let m=!1,y=0;for(let b=0,v=h.length;b0&&m===!1&&(d=f)}let g;for(let m=0,y=h.length;me?(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 bL(n,e){const 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 xL(n){return n.repeat.x=1,n.repeat.y=1,n.offset.x=0,n.offset.y=0,n}function bg(n,e,t,i){const r=ML(i);switch(t){case V0:return n*e;case G0:return n*e;case W0:return n*e*2;case od:return n*e/r.components*r.byteLength;case Nc:return n*e/r.components*r.byteLength;case X0:return n*e*2/r.components*r.byteLength;case ad:return n*e*2/r.components*r.byteLength;case H0:return n*e*3/r.components*r.byteLength;case Bn:return n*e*4/r.components*r.byteLength;case ld:return n*e*4/r.components*r.byteLength;case Sl:case El:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*8;case Tl:case wl:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case Kf:case Jf:return Math.max(n,16)*Math.max(e,8)/4;case jf:case Zf:return Math.max(n,8)*Math.max(e,8)/2;case Qf:case eh:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*8;case th:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case nh:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case ih:return Math.floor((n+4)/5)*Math.floor((e+3)/4)*16;case rh:return Math.floor((n+4)/5)*Math.floor((e+4)/5)*16;case sh:return Math.floor((n+5)/6)*Math.floor((e+4)/5)*16;case oh:return Math.floor((n+5)/6)*Math.floor((e+5)/6)*16;case ah:return Math.floor((n+7)/8)*Math.floor((e+4)/5)*16;case lh:return Math.floor((n+7)/8)*Math.floor((e+5)/6)*16;case ch:return Math.floor((n+7)/8)*Math.floor((e+7)/8)*16;case uh:return Math.floor((n+9)/10)*Math.floor((e+4)/5)*16;case fh:return Math.floor((n+9)/10)*Math.floor((e+5)/6)*16;case hh:return Math.floor((n+9)/10)*Math.floor((e+7)/8)*16;case dh:return Math.floor((n+9)/10)*Math.floor((e+9)/10)*16;case ph:return Math.floor((n+11)/12)*Math.floor((e+9)/10)*16;case mh:return Math.floor((n+11)/12)*Math.floor((e+11)/12)*16;case Al:case gh:case _h:return Math.ceil(n/4)*Math.ceil(e/4)*16;case $0:case vh:return Math.ceil(n/4)*Math.ceil(e/4)*8;case yh:case bh:return Math.ceil(n/4)*Math.ceil(e/4)*16}throw new Error(`Unable to determine texture byte length for ${t} format.`)}function ML(n){switch(n){case nr:case k0:return{byteLength:1,components:1};case Ea:case B0:case Fa:return{byteLength:2,components:1};case rd:case sd:return{byteLength:2,components:4};case Nr:case id:case Kn:return{byteLength:4,components:1};case z0:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${n}.`)}class SL{static contain(e,t){return yL(e,t)}static cover(e,t){return bL(e,t)}static fill(e){return xL(e)}static getByteLength(e,t,i,r){return bg(e,t,i,r)}}typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:Dc}}));typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=Dc);/** + * @license + * Copyright 2010-2025 Three.js Authors + * SPDX-License-Identifier: MIT + */function eT(){let n=null,e=!1,t=null,i=null;function r(s,o){t(s,o),i=n.requestAnimationFrame(r)}return{start:function(){e!==!0&&t!==null&&(i=n.requestAnimationFrame(r),e=!0)},stop:function(){n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){n=s}}}function EL(n){const e=new WeakMap;function t(a,l){const c=a.array,u=a.usage,f=c.byteLength,h=n.createBuffer();n.bindBuffer(l,h),n.bufferData(l,c,u),a.onUploadCallback();let d;if(c instanceof Float32Array)d=n.FLOAT;else if(c instanceof Uint16Array)a.isFloat16BufferAttribute?d=n.HALF_FLOAT:d=n.UNSIGNED_SHORT;else if(c instanceof Int16Array)d=n.SHORT;else if(c instanceof Uint32Array)d=n.UNSIGNED_INT;else if(c instanceof Int32Array)d=n.INT;else if(c instanceof Int8Array)d=n.BYTE;else if(c instanceof Uint8Array)d=n.UNSIGNED_BYTE;else if(c instanceof Uint8ClampedArray)d=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+c);return{buffer:h,type:d,bytesPerElement:c.BYTES_PER_ELEMENT,version:a.version,size:f}}function i(a,l,c){const u=l.array,f=l.updateRanges;if(n.bindBuffer(c,a),f.length===0)n.bufferSubData(c,0,u);else{f.sort((d,p)=>d.start-p.start);let h=0;for(let d=1;d 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`,VL=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,HL=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,GL=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,WL=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,XL=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,$L=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) + varying vec3 vColor; +#endif`,qL=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif +#ifdef USE_BATCHING_COLOR + vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) ); + vColor.xyz *= batchingColor.xyz; +#endif`,YL=`#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 ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +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`,jL=`#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`,KL=`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; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,ZL=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,JL=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); +#endif`,QL=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); + #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE + emissiveColor = sRGBTransferEOTF( emissiveColor ); + #endif + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,eD=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,tD="gl_FragColor = linearToOutputTexel( gl_FragColor );",nD=`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 ); +}`,iD=`#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 = inverseTransformDirection( 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 * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #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`,rD=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + uniform mat3 envMapRotation; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif`,sD=`#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`,oD=`#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`,aD=`#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 = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,lD=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,cD=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,uD=`#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`,fD=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,hD=`#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 +}`,dD=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,pD=`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;`,mD=`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`,gD=`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 = inverseTransformDirection( 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_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`,_D=`#ifdef USE_ENVMAP + vec3 getIBLIrradiance( const in vec3 normal ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 worldNormal = inverseTransformDirection( 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, roughness * roughness) ); + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #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 + } + #endif +#endif`,vD=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,yD=`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`,bD=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,xD=`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`,MD=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - 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 = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), 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_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.07, 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`,SD=`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + float dispersion; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #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 ) ); + float v = 0.5 / ( gv + gl ); + return saturate(v); + } + 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.specularColor; + 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 * transposeMat3( 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 a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +#ifdef USE_IRIDESCENCE +void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + vec2 fab = DFGApprox( normal, viewDir, roughness ); + #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.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#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 ); + #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +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 ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +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 ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); + #else + computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + #endif + vec3 totalScattering = singleScattering + multiScattering; + vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#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 ); +}`,ED=` +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 ) { + material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); + } +#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 ) + 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_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 +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,TD=`#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( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometryNormal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + #ifdef USE_ANISOTROPY + radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); + #else + radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); + #endif + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,wD=`#if defined( RE_IndirectDiffuse ) + 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`,AD=`#if defined( USE_LOGDEPTHBUF ) + gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,CD=`#if defined( USE_LOGDEPTHBUF ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,RD=`#ifdef USE_LOGDEPTHBUF + varying float vFragDepth; + varying float vIsPerspective; +#endif`,PD=`#ifdef USE_LOGDEPTHBUF + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); +#endif`,ID=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vMapUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor ); + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,LD=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,DD=`#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`,OD=`#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`,ND=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); + metalnessFactor *= texelMetalness.b; +#endif`,UD=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,FD=`#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`,kD=`#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`,BD=`#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`,zD=`#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`,VD=`#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`,HD=`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 + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + 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 + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn2[0] *= faceDirection; + tbn2[1] *= faceDirection; + #endif +#endif +vec3 nonPerturbedNormal = normal;`,GD=`#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; + mapN.xy *= normalScale; + normal = normalize( tbn * mapN ); +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,WD=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,XD=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,$D=`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif`,qD=`#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`,YD=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = nonPerturbedNormal; +#endif`,jD=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + clearcoatNormal = normalize( tbn2 * clearcoatMapN ); +#endif`,KD=`#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`,ZD=`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif`,JD=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,QD=`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 ) { + return depth * ( near - far ) - near; +} +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 ) { + return ( near * far ) / ( ( far - near ) * depth - far ); +}`,eO=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,tO=`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;`,nO=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,iO=`#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`,rO=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); + roughnessFactor *= texelRoughness.g; +#endif`,sO=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,oO=`#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_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ 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 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + 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 sampler2D pointShadowMap[ 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 + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D 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 ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return mix( 1.0, shadow, shadowIntensity ); + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + float shadow = 1.0; + vec3 lightToPosition = shadowCoord.xyz; + + float lightToPositionLength = length( lightToPosition ); + if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) { + float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + shadow = ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } + return mix( 1.0, shadow, shadowIntensity ); + } +#endif`,aO=`#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_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`,lO=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; +#endif +#if defined( USE_SHADOWMAP ) + #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`,cO=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #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 + 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; +}`,uO=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,fO=`#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`,hO=`#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`,dO=`#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`,pO=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,mO=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,gO=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,_O=`#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; }`,vO=`#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 = inverseTransformDirection( normal, viewMatrix ); + vec4 transmitted = getIBLVolumeRefraction( + n, v, material.roughness, material.diffuseColor, material.specularColor, 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`,yO=`#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`,bO=`#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`,xO=`#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`,MO=`#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`,SO=`#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`;const EO=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,TO=`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 +}`,wO=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,AO=`#ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; +#elif defined( ENVMAP_TYPE_CUBE_UV ) + uniform sampler2D envMap; +#endif +uniform float flipEnvMap; +uniform float backgroundBlurriness; +uniform float backgroundIntensity; +uniform mat3 backgroundRotation; +varying vec3 vWorldDirection; +#include +void main() { + #ifdef ENVMAP_TYPE_CUBE + vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); + #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 +}`,CO=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,RO=`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 +}`,PO=`#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; +}`,IO=`#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 + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #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 +}`,LO=`#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; +}`,DO=`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#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 = packDepthToRGBA( dist ); +}`,OO=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,NO=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}`,UO=`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 +}`,FO=`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 +}`,kO=`#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 +}`,BO=`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 +}`,zO=`#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 +}`,VO=`#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 +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 +}`,HO=`#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; +}`,GO=`#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 +}`,WO=`#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 +}`,XO=`#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 +#include +void main() { + vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,$O=`#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 +}`,qO=`#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 +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 +}`,YO=`#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 +}`,jO=`#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_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 +#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 + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + 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 +}`,KO=`#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 +}`,ZO=`#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 +#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 +}`,JO=`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 +}`,QO=`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 +}`,eN=`#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,tN=`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}`,nN=`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 +}`,iN=`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 +}`,at={alphahash_fragment:TL,alphahash_pars_fragment:wL,alphamap_fragment:AL,alphamap_pars_fragment:CL,alphatest_fragment:RL,alphatest_pars_fragment:PL,aomap_fragment:IL,aomap_pars_fragment:LL,batching_pars_vertex:DL,batching_vertex:OL,begin_vertex:NL,beginnormal_vertex:UL,bsdfs:FL,iridescence_fragment:kL,bumpmap_pars_fragment:BL,clipping_planes_fragment:zL,clipping_planes_pars_fragment:VL,clipping_planes_pars_vertex:HL,clipping_planes_vertex:GL,color_fragment:WL,color_pars_fragment:XL,color_pars_vertex:$L,color_vertex:qL,common:YL,cube_uv_reflection_fragment:jL,defaultnormal_vertex:KL,displacementmap_pars_vertex:ZL,displacementmap_vertex:JL,emissivemap_fragment:QL,emissivemap_pars_fragment:eD,colorspace_fragment:tD,colorspace_pars_fragment:nD,envmap_fragment:iD,envmap_common_pars_fragment:rD,envmap_pars_fragment:sD,envmap_pars_vertex:oD,envmap_physical_pars_fragment:_D,envmap_vertex:aD,fog_vertex:lD,fog_pars_vertex:cD,fog_fragment:uD,fog_pars_fragment:fD,gradientmap_pars_fragment:hD,lightmap_pars_fragment:dD,lights_lambert_fragment:pD,lights_lambert_pars_fragment:mD,lights_pars_begin:gD,lights_toon_fragment:vD,lights_toon_pars_fragment:yD,lights_phong_fragment:bD,lights_phong_pars_fragment:xD,lights_physical_fragment:MD,lights_physical_pars_fragment:SD,lights_fragment_begin:ED,lights_fragment_maps:TD,lights_fragment_end:wD,logdepthbuf_fragment:AD,logdepthbuf_pars_fragment:CD,logdepthbuf_pars_vertex:RD,logdepthbuf_vertex:PD,map_fragment:ID,map_pars_fragment:LD,map_particle_fragment:DD,map_particle_pars_fragment:OD,metalnessmap_fragment:ND,metalnessmap_pars_fragment:UD,morphinstance_vertex:FD,morphcolor_vertex:kD,morphnormal_vertex:BD,morphtarget_pars_vertex:zD,morphtarget_vertex:VD,normal_fragment_begin:HD,normal_fragment_maps:GD,normal_pars_fragment:WD,normal_pars_vertex:XD,normal_vertex:$D,normalmap_pars_fragment:qD,clearcoat_normal_fragment_begin:YD,clearcoat_normal_fragment_maps:jD,clearcoat_pars_fragment:KD,iridescence_pars_fragment:ZD,opaque_fragment:JD,packing:QD,premultiplied_alpha_fragment:eO,project_vertex:tO,dithering_fragment:nO,dithering_pars_fragment:iO,roughnessmap_fragment:rO,roughnessmap_pars_fragment:sO,shadowmap_pars_fragment:oO,shadowmap_pars_vertex:aO,shadowmap_vertex:lO,shadowmask_pars_fragment:cO,skinbase_vertex:uO,skinning_pars_vertex:fO,skinning_vertex:hO,skinnormal_vertex:dO,specularmap_fragment:pO,specularmap_pars_fragment:mO,tonemapping_fragment:gO,tonemapping_pars_fragment:_O,transmission_fragment:vO,transmission_pars_fragment:yO,uv_pars_fragment:bO,uv_pars_vertex:xO,uv_vertex:MO,worldpos_vertex:SO,background_vert:EO,background_frag:TO,backgroundCube_vert:wO,backgroundCube_frag:AO,cube_vert:CO,cube_frag:RO,depth_vert:PO,depth_frag:IO,distanceRGBA_vert:LO,distanceRGBA_frag:DO,equirect_vert:OO,equirect_frag:NO,linedashed_vert:UO,linedashed_frag:FO,meshbasic_vert:kO,meshbasic_frag:BO,meshlambert_vert:zO,meshlambert_frag:VO,meshmatcap_vert:HO,meshmatcap_frag:GO,meshnormal_vert:WO,meshnormal_frag:XO,meshphong_vert:$O,meshphong_frag:qO,meshphysical_vert:YO,meshphysical_frag:jO,meshtoon_vert:KO,meshtoon_frag:ZO,points_vert:JO,points_frag:QO,shadow_vert:eN,shadow_frag:tN,sprite_vert:nN,sprite_frag:iN},Te={common:{diffuse:{value:new Ce(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new nt},alphaMap:{value:null},alphaMapTransform:{value:new nt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new nt}},envmap:{envMap:{value:null},envMapRotation:{value:new nt},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new nt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new nt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new nt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new nt},normalScale:{value:new fe(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new nt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new nt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new nt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new nt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ce(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Ce(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new nt},alphaTest:{value:0},uvTransform:{value:new nt}},sprite:{diffuse:{value:new Ce(16777215)},opacity:{value:1},center:{value:new fe(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new nt},alphaMap:{value:null},alphaMapTransform:{value:new nt},alphaTest:{value:0}}},Ri={basic:{uniforms:In([Te.common,Te.specularmap,Te.envmap,Te.aomap,Te.lightmap,Te.fog]),vertexShader:at.meshbasic_vert,fragmentShader:at.meshbasic_frag},lambert:{uniforms:In([Te.common,Te.specularmap,Te.envmap,Te.aomap,Te.lightmap,Te.emissivemap,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.fog,Te.lights,{emissive:{value:new Ce(0)}}]),vertexShader:at.meshlambert_vert,fragmentShader:at.meshlambert_frag},phong:{uniforms:In([Te.common,Te.specularmap,Te.envmap,Te.aomap,Te.lightmap,Te.emissivemap,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.fog,Te.lights,{emissive:{value:new Ce(0)},specular:{value:new Ce(1118481)},shininess:{value:30}}]),vertexShader:at.meshphong_vert,fragmentShader:at.meshphong_frag},standard:{uniforms:In([Te.common,Te.envmap,Te.aomap,Te.lightmap,Te.emissivemap,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.roughnessmap,Te.metalnessmap,Te.fog,Te.lights,{emissive:{value:new Ce(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:at.meshphysical_vert,fragmentShader:at.meshphysical_frag},toon:{uniforms:In([Te.common,Te.aomap,Te.lightmap,Te.emissivemap,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.gradientmap,Te.fog,Te.lights,{emissive:{value:new Ce(0)}}]),vertexShader:at.meshtoon_vert,fragmentShader:at.meshtoon_frag},matcap:{uniforms:In([Te.common,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.fog,{matcap:{value:null}}]),vertexShader:at.meshmatcap_vert,fragmentShader:at.meshmatcap_frag},points:{uniforms:In([Te.points,Te.fog]),vertexShader:at.points_vert,fragmentShader:at.points_frag},dashed:{uniforms:In([Te.common,Te.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:at.linedashed_vert,fragmentShader:at.linedashed_frag},depth:{uniforms:In([Te.common,Te.displacementmap]),vertexShader:at.depth_vert,fragmentShader:at.depth_frag},normal:{uniforms:In([Te.common,Te.bumpmap,Te.normalmap,Te.displacementmap,{opacity:{value:1}}]),vertexShader:at.meshnormal_vert,fragmentShader:at.meshnormal_frag},sprite:{uniforms:In([Te.sprite,Te.fog]),vertexShader:at.sprite_vert,fragmentShader:at.sprite_frag},background:{uniforms:{uvTransform:{value:new nt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:at.background_vert,fragmentShader:at.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new nt}},vertexShader:at.backgroundCube_vert,fragmentShader:at.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:at.cube_vert,fragmentShader:at.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:at.equirect_vert,fragmentShader:at.equirect_frag},distanceRGBA:{uniforms:In([Te.common,Te.displacementmap,{referencePosition:{value:new k},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:at.distanceRGBA_vert,fragmentShader:at.distanceRGBA_frag},shadow:{uniforms:In([Te.lights,Te.fog,{color:{value:new Ce(0)},opacity:{value:1}}]),vertexShader:at.shadow_vert,fragmentShader:at.shadow_frag}};Ri.physical={uniforms:In([Ri.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new nt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new nt},clearcoatNormalScale:{value:new fe(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new nt},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new nt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new nt},sheen:{value:0},sheenColor:{value:new Ce(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new nt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new nt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new nt},transmissionSamplerSize:{value:new fe},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new nt},attenuationDistance:{value:0},attenuationColor:{value:new Ce(0)},specularColor:{value:new Ce(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new nt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new nt},anisotropyVector:{value:new fe},anisotropyMap:{value:null},anisotropyMapTransform:{value:new nt}}]),vertexShader:at.meshphysical_vert,fragmentShader:at.meshphysical_frag};const Ku={r:0,b:0,g:0},Ys=new li,rN=new Ye;function sN(n,e,t,i,r,s,o){const a=new Ce(0);let l=s===!0?0:1,c,u,f=null,h=0,d=null;function p(b){let v=b.isScene===!0?b.background:null;return v&&v.isTexture&&(v=(b.backgroundBlurriness>0?t:e).get(v)),v}function _(b){let v=!1;const E=p(b);E===null?m(a,l):E&&E.isColor&&(m(E,1),v=!0);const T=n.xr.getEnvironmentBlendMode();T==="additive"?i.buffers.color.setClear(0,0,0,1,o):T==="alpha-blend"&&i.buffers.color.setClear(0,0,0,0,o),(n.autoClear||v)&&(i.buffers.depth.setTest(!0),i.buffers.depth.setMask(!0),i.buffers.color.setMask(!0),n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil))}function g(b,v){const E=p(v);E&&(E.isCubeTexture||E.mapping===Ua)?(u===void 0&&(u=new $t(new Po(1,1,1),new Fi({name:"BackgroundCubeMaterial",uniforms:wa(Ri.backgroundCube.uniforms),vertexShader:Ri.backgroundCube.vertexShader,fragmentShader:Ri.backgroundCube.fragmentShader,side:zn,depthTest:!1,depthWrite:!1,fog:!1})),u.geometry.deleteAttribute("normal"),u.geometry.deleteAttribute("uv"),u.onBeforeRender=function(T,S,R){this.matrixWorld.copyPosition(R.matrixWorld)},Object.defineProperty(u.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(u)),Ys.copy(v.backgroundRotation),Ys.x*=-1,Ys.y*=-1,Ys.z*=-1,E.isCubeTexture&&E.isRenderTargetTexture===!1&&(Ys.y*=-1,Ys.z*=-1),u.material.uniforms.envMap.value=E,u.material.uniforms.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,u.material.uniforms.backgroundBlurriness.value=v.backgroundBlurriness,u.material.uniforms.backgroundIntensity.value=v.backgroundIntensity,u.material.uniforms.backgroundRotation.value.setFromMatrix4(rN.makeRotationFromEuler(Ys)),u.material.toneMapped=ft.getTransfer(E.colorSpace)!==wt,(f!==E||h!==E.version||d!==n.toneMapping)&&(u.material.needsUpdate=!0,f=E,h=E.version,d=n.toneMapping),u.layers.enableAll(),b.unshift(u,u.geometry,u.material,0,0,null)):E&&E.isTexture&&(c===void 0&&(c=new $t(new za(2,2),new Fi({name:"BackgroundMaterial",uniforms:wa(Ri.background.uniforms),vertexShader:Ri.background.vertexShader,fragmentShader:Ri.background.fragmentShader,side:Dr,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(c)),c.material.uniforms.t2D.value=E,c.material.uniforms.backgroundIntensity.value=v.backgroundIntensity,c.material.toneMapped=ft.getTransfer(E.colorSpace)!==wt,E.matrixAutoUpdate===!0&&E.updateMatrix(),c.material.uniforms.uvTransform.value.copy(E.matrix),(f!==E||h!==E.version||d!==n.toneMapping)&&(c.material.needsUpdate=!0,f=E,h=E.version,d=n.toneMapping),c.layers.enableAll(),b.unshift(c,c.geometry,c.material,0,0,null))}function m(b,v){b.getRGB(Ku,eE(n)),i.buffers.color.setClear(Ku.r,Ku.g,Ku.b,v,o)}function y(){u!==void 0&&(u.geometry.dispose(),u.material.dispose(),u=void 0),c!==void 0&&(c.geometry.dispose(),c.material.dispose(),c=void 0)}return{getClearColor:function(){return a},setClearColor:function(b,v=1){a.set(b),l=v,m(a,l)},getClearAlpha:function(){return l},setClearAlpha:function(b){l=b,m(a,l)},render:_,addToRenderList:g,dispose:y}}function oN(n,e){const t=n.getParameter(n.MAX_VERTEX_ATTRIBS),i={},r=h(null);let s=r,o=!1;function a(M,L,F,V,X){let te=!1;const Z=f(V,F,L);s!==Z&&(s=Z,c(s.object)),te=d(M,V,F,X),te&&p(M,V,F,X),X!==null&&e.update(X,n.ELEMENT_ARRAY_BUFFER),(te||o)&&(o=!1,v(M,L,F,V),X!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,e.get(X).buffer))}function l(){return n.createVertexArray()}function c(M){return n.bindVertexArray(M)}function u(M){return n.deleteVertexArray(M)}function f(M,L,F){const V=F.wireframe===!0;let X=i[M.id];X===void 0&&(X={},i[M.id]=X);let te=X[L.id];te===void 0&&(te={},X[L.id]=te);let Z=te[V];return Z===void 0&&(Z=h(l()),te[V]=Z),Z}function h(M){const L=[],F=[],V=[];for(let X=0;X=0){const be=X[Q];let re=te[Q];if(re===void 0&&(Q==="instanceMatrix"&&M.instanceMatrix&&(re=M.instanceMatrix),Q==="instanceColor"&&M.instanceColor&&(re=M.instanceColor)),be===void 0||be.attribute!==re||re&&be.data!==re.data)return!0;Z++}return s.attributesNum!==Z||s.index!==V}function p(M,L,F,V){const X={},te=L.attributes;let Z=0;const ee=F.getAttributes();for(const Q in ee)if(ee[Q].location>=0){let be=te[Q];be===void 0&&(Q==="instanceMatrix"&&M.instanceMatrix&&(be=M.instanceMatrix),Q==="instanceColor"&&M.instanceColor&&(be=M.instanceColor));const re={};re.attribute=be,be&&be.data&&(re.data=be.data),X[Q]=re,Z++}s.attributes=X,s.attributesNum=Z,s.index=V}function _(){const M=s.newAttributes;for(let L=0,F=M.length;L=0){let de=X[ee];if(de===void 0&&(ee==="instanceMatrix"&&M.instanceMatrix&&(de=M.instanceMatrix),ee==="instanceColor"&&M.instanceColor&&(de=M.instanceColor)),de!==void 0){const be=de.normalized,re=de.itemSize,ye=e.get(de);if(ye===void 0)continue;const Ve=ye.buffer,se=ye.type,ge=ye.bytesPerElement,Me=se===n.INT||se===n.UNSIGNED_INT||de.gpuType===id;if(de.isInterleavedBufferAttribute){const W=de.data,ae=W.stride,ue=de.offset;if(W.isInstancedInterleavedBuffer){for(let le=0;le0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";S="mediump"}return S==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let c=t.precision!==void 0?t.precision:"highp";const u=l(c);u!==c&&(console.warn("THREE.WebGLRenderer:",c,"not supported, using",u,"instead."),c=u);const f=t.logarithmicDepthBuffer===!0,h=t.reverseDepthBuffer===!0&&e.has("EXT_clip_control"),d=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),p=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),_=n.getParameter(n.MAX_TEXTURE_SIZE),g=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),m=n.getParameter(n.MAX_VERTEX_ATTRIBS),y=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),b=n.getParameter(n.MAX_VARYING_VECTORS),v=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),E=p>0,T=n.getParameter(n.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:s,getMaxPrecision:l,textureFormatReadable:o,textureTypeReadable:a,precision:c,logarithmicDepthBuffer:f,reverseDepthBuffer:h,maxTextures:d,maxVertexTextures:p,maxTextureSize:_,maxCubemapSize:g,maxAttributes:m,maxVertexUniforms:y,maxVaryings:b,maxFragmentUniforms:v,vertexTextures:E,maxSamples:T}}function cN(n){const e=this;let t=null,i=0,r=!1,s=!1;const o=new ss,a=new nt,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(f,h){const d=f.length!==0||h||i!==0||r;return r=h,i=f.length,d},this.beginShadows=function(){s=!0,u(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(f,h){t=u(f,h,0)},this.setState=function(f,h,d){const p=f.clippingPlanes,_=f.clipIntersection,g=f.clipShadows,m=n.get(f);if(!r||p===null||p.length===0||s&&!g)s?u(null):c();else{const y=s?0:i,b=y*4;let v=m.clippingState||null;l.value=v,v=u(p,h,b,d);for(let E=0;E!==b;++E)v[E]=t[E];m.clippingState=v,this.numIntersection=_?this.numPlanes:0,this.numPlanes+=y}};function c(){l.value!==t&&(l.value=t,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function u(f,h,d,p){const _=f!==null?f.length:0;let g=null;if(_!==0){if(g=l.value,p!==!0||g===null){const m=d+_*4,y=h.matrixWorldInverse;a.getNormalMatrix(y),(g===null||g.length0){const c=new iE(l.height);return c.fromEquirectangularTexture(n,o),e.set(o,c),o.addEventListener("dispose",r),t(c.texture,o.mapping)}else return null}}return o}function r(o){const a=o.target;a.removeEventListener("dispose",r);const l=e.get(a);l!==void 0&&(e.delete(a),l.dispose())}function s(){e=new WeakMap}return{get:i,dispose:s}}const ha=4,cb=[.125,.215,.35,.446,.526,.582],ro=20,Qp=new Dd,ub=new Ce;let em=null,tm=0,nm=0,im=!1;const to=(1+Math.sqrt(5))/2,na=1/to,fb=[new k(-to,na,0),new k(to,na,0),new k(-na,0,to),new k(na,0,to),new k(0,to,-na),new k(0,to,na),new k(-1,1,-1),new k(1,1,-1),new k(-1,1,1),new k(1,1,1)],fN=new k;class xg{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,r=100,s={}){const{size:o=256,position:a=fN}=s;em=this._renderer.getRenderTarget(),tm=this._renderer.getActiveCubeFace(),nm=this._renderer.getActiveMipmapLevel(),im=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(o);const l=this._allocateTargets();return l.depthBuffer=!0,this._sceneToCubeUV(e,i,r,l,a),t>0&&this._blur(l,0,0,t),this._applyPMREM(l),this._cleanup(l),l}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=pb(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=db(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.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._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?v:0,v,v),f.setRenderTarget(r),g&&f.render(_,l),f.render(e,l)}_.geometry.dispose(),_.material.dispose(),f.toneMapping=d,f.autoClear=h,e.background=m}_textureToCubeUV(e,t){const i=this._renderer,r=e.mapping===Or||e.mapping===gs;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=pb()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=db());const s=r?this._cubemapMaterial:this._equirectMaterial,o=new $t(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=e;const l=this._cubeSize;Zu(t,0,0,3*l,2*l),i.setRenderTarget(t),i.render(o,Qp)}_applyPMREM(e){const t=this._renderer,i=t.autoClear;t.autoClear=!1;const r=this._lodPlanes.length;for(let s=1;sro&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${g} samples when the maximum is set to ${ro}`);const m=[];let y=0;for(let S=0;Sb-ha?r-b+ha:0),T=4*(this._cubeSize-v);Zu(t,E,T,3*v,2*v),l.setRenderTarget(t),l.render(f,Qp)}}function hN(n){const e=[],t=[],i=[];let r=n;const s=n-ha+1+cb.length;for(let o=0;on-ha?l=cb[o-n+ha-1]:o===0&&(l=0),i.push(l);const c=1/(a-2),u=-c,f=1+c,h=[u,u,f,u,f,f,u,u,f,f,u,f],d=6,p=6,_=3,g=2,m=1,y=new Float32Array(_*p*d),b=new Float32Array(g*p*d),v=new Float32Array(m*p*d);for(let T=0;T2?0:-1,x=[S,R,0,S+2/3,R,0,S+2/3,R+1,0,S,R,0,S+2/3,R+1,0,S,R+1,0];y.set(x,_*p*T),b.set(h,g*p*T);const M=[T,T,T,T,T,T];v.set(M,m*p*T)}const E=new lt;E.setAttribute("position",new Ct(y,_)),E.setAttribute("uv",new Ct(b,g)),E.setAttribute("faceIndex",new Ct(v,m)),e.push(E),r>ha&&r--}return{lodPlanes:e,sizeLods:t,sigmas:i}}function hb(n,e,t){const i=new ir(n,e,t);return i.texture.mapping=Ua,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function Zu(n,e,t,i,r){n.viewport.set(e,t,i,r),n.scissor.set(e,t,i,r)}function dN(n,e,t){const i=new Float32Array(ro),r=new k(0,1,0);return new Fi({name:"SphericalGaussianBlur",defines:{n:ro,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:M_(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:Rr,depthTest:!1,depthWrite:!1})}function db(){return new Fi({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:M_(),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:Rr,depthTest:!1,depthWrite:!1})}function pb(){return new Fi({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:M_(),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:Rr,depthTest:!1,depthWrite:!1})}function M_(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function pN(n){let e=new WeakMap,t=null;function i(a){if(a&&a.isTexture){const l=a.mapping,c=l===ec||l===tc,u=l===Or||l===gs;if(c||u){let f=e.get(a);const h=f!==void 0?f.texture.pmremVersion:0;if(a.isRenderTargetTexture&&a.pmremVersion!==h)return t===null&&(t=new xg(n)),f=c?t.fromEquirectangular(a,f):t.fromCubemap(a,f),f.texture.pmremVersion=a.pmremVersion,e.set(a,f),f.texture;if(f!==void 0)return f.texture;{const d=a.image;return c&&d&&d.height>0||u&&d&&r(d)?(t===null&&(t=new xg(n)),f=c?t.fromEquirectangular(a):t.fromCubemap(a),f.texture.pmremVersion=a.pmremVersion,e.set(a,f),a.addEventListener("dispose",s),f.texture):null}}}return a}function r(a){let l=0;const c=6;for(let u=0;ue.maxTextureSize&&(E=Math.ceil(v/e.maxTextureSize),v=e.maxTextureSize);const T=new Float32Array(v*E*4*f),S=new Uc(T,v,E,f);S.type=Kn,S.needsUpdate=!0;const R=b*4;for(let M=0;M0)return n;const r=e*t;let s=gb[r];if(s===void 0&&(s=new Float32Array(r),gb[r]=s),e!==0){i.toArray(s,0);for(let o=1,a=0;o!==e;++o)a+=t,n[o].toArray(s,a)}return s}function rn(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t":" "} ${a}: ${t[o]}`)}return i.join(` +`)}const Sb=new nt;function pU(n){ft._getMatrix(Sb,ft.workingColorSpace,n);const e=`mat3( ${Sb.elements.map(t=>t.toFixed(4))} )`;switch(ft.getTransfer(n)){case oc:return[e,"LinearTransferOETF"];case wt:return[e,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space: ",n),[e,"LinearTransferOETF"]}}function Eb(n,e,t){const i=n.getShaderParameter(e,n.COMPILE_STATUS),r=n.getShaderInfoLog(e).trim();if(i&&r==="")return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const o=parseInt(s[1]);return t.toUpperCase()+` + +`+r+` + +`+dU(n.getShaderSource(e),o)}else return r}function mU(n,e){const t=pU(e);return[`vec4 ${n}( vec4 value ) {`,` return ${t[1]}( vec4( value.rgb * ${t[0]}, value.a ) );`,"}"].join(` +`)}function gU(n,e){let t;switch(e){case P1:t="Linear";break;case I1:t="Reinhard";break;case L1:t="Cineon";break;case td:t="ACESFilmic";break;case O1:t="AgX";break;case N1:t="Neutral";break;case D1:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+n+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}const Ju=new k;function _U(){ft.getLuminanceCoefficients(Ju);const n=Ju.x.toFixed(4),e=Ju.y.toFixed(4),t=Ju.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${n}, ${e}, ${t} );`," return dot( weights, rgb );","}"].join(` +`)}function vU(n){return[n.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",n.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(ml).join(` +`)}function yU(n){const e=[];for(const t in n){const i=n[t];i!==!1&&e.push("#define "+t+" "+i)}return e.join(` +`)}function bU(n,e){const t={},i=n.getProgramParameter(e,n.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function Mg(n){return n.replace(xU,SU)}const MU=new Map;function SU(n,e){let t=at[e];if(t===void 0){const i=MU.get(e);if(i!==void 0)t=at[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("Can not resolve #include <"+e+">")}return Mg(t)}const EU=/#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 Ab(n){return n.replace(EU,TU)}function TU(n,e,t,i){let r="";for(let s=parseInt(e);s0&&(g+=` +`),m=["#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,p].filter(ml).join(` +`),m.length>0&&(m+=` +`)):(g=[Cb(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,p,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 "+u:"",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.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 "+l:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","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(ml).join(` +`),m=[Cb(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,p,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 "+c:"",t.envMap?"#define "+u:"",t.envMap?"#define "+f:"",h?"#define CUBEUV_TEXEL_WIDTH "+h.texelWidth:"",h?"#define CUBEUV_TEXEL_HEIGHT "+h.texelHeight:"",h?"#define CUBEUV_MAX_MIP "+h.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.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.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||t.batchingColor?"#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.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 "+l:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==Zi?"#define TONE_MAPPING":"",t.toneMapping!==Zi?at.tonemapping_pars_fragment:"",t.toneMapping!==Zi?gU("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",at.colorspace_pars_fragment,mU("linearToOutputTexel",t.outputColorSpace),_U(),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` +`].filter(ml).join(` +`)),o=Mg(o),o=Tb(o,t),o=wb(o,t),a=Mg(a),a=Tb(a,t),a=wb(a,t),o=Ab(o),a=Ab(a),t.isRawShaderMaterial!==!0&&(y=`#version 300 es +`,g=[d,"#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+g,m=["#define varying in",t.glslVersion===dg?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===dg?"":"#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(` +`)+` +`+m);const b=y+g+o,v=y+m+a,E=Mb(r,r.VERTEX_SHADER,b),T=Mb(r,r.FRAGMENT_SHADER,v);r.attachShader(_,E),r.attachShader(_,T),t.index0AttributeName!==void 0?r.bindAttribLocation(_,0,t.index0AttributeName):t.morphTargets===!0&&r.bindAttribLocation(_,0,"position"),r.linkProgram(_);function S(L){if(n.debug.checkShaderErrors){const F=r.getProgramInfoLog(_).trim(),V=r.getShaderInfoLog(E).trim(),X=r.getShaderInfoLog(T).trim();let te=!0,Z=!0;if(r.getProgramParameter(_,r.LINK_STATUS)===!1)if(te=!1,typeof n.debug.onShaderError=="function")n.debug.onShaderError(r,_,E,T);else{const ee=Eb(r,E,"vertex"),Q=Eb(r,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(_,r.VALIDATE_STATUS)+` + +Material Name: `+L.name+` +Material Type: `+L.type+` + +Program Info Log: `+F+` +`+ee+` +`+Q)}else F!==""?console.warn("THREE.WebGLProgram: Program Info Log:",F):(V===""||X==="")&&(Z=!1);Z&&(L.diagnostics={runnable:te,programLog:F,vertexShader:{log:V,prefix:g},fragmentShader:{log:X,prefix:m}})}r.deleteShader(E),r.deleteShader(T),R=new Mf(r,_),x=bU(r,_)}let R;this.getUniforms=function(){return R===void 0&&S(this),R};let x;this.getAttributes=function(){return x===void 0&&S(this),x};let M=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return M===!1&&(M=r.getProgramParameter(_,fU)),M},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(_),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=hU++,this.cacheKey=e,this.usedTimes=1,this.program=_,this.vertexShader=E,this.fragmentShader=T,this}let LU=0;class DU{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,i=e.fragmentShader,r=this._getShaderStage(t),s=this._getShaderStage(i),o=this._getShaderCacheForMaterial(e);return o.has(r)===!1&&(o.add(r),r.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){const t=this.shaderCache;let i=t.get(e);return i===void 0&&(i=new OU(e),t.set(e,i)),i}}class OU{constructor(e){this.id=LU++,this.code=e,this.usedTimes=0}}function NU(n,e,t,i,r,s,o){const a=new hd,l=new DU,c=new Set,u=[],f=r.logarithmicDepthBuffer,h=r.vertexTextures;let d=r.precision;const p={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",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 _(x){return c.add(x),x===0?"uv":`uv${x}`}function g(x,M,L,F,V){const X=F.fog,te=V.geometry,Z=x.isMeshStandardMaterial?F.environment:null,ee=(x.isMeshStandardMaterial?t:e).get(x.envMap||Z),Q=ee&&ee.mapping===Ua?ee.image.height:null,de=p[x.type];x.precision!==null&&(d=r.getMaxPrecision(x.precision),d!==x.precision&&console.warn("THREE.WebGLProgram.getParameters:",x.precision,"not supported, using",d,"instead."));const be=te.morphAttributes.position||te.morphAttributes.normal||te.morphAttributes.color,re=be!==void 0?be.length:0;let ye=0;te.morphAttributes.position!==void 0&&(ye=1),te.morphAttributes.normal!==void 0&&(ye=2),te.morphAttributes.color!==void 0&&(ye=3);let Ve,se,ge,Me;if(de){const Tt=Ri[de];Ve=Tt.vertexShader,se=Tt.fragmentShader}else Ve=x.vertexShader,se=x.fragmentShader,l.update(x),ge=l.getVertexShaderID(x),Me=l.getFragmentShaderID(x);const W=n.getRenderTarget(),ae=n.state.buffers.depth.getReversed(),ue=V.isInstancedMesh===!0,le=V.isBatchedMesh===!0,Ue=!!x.map,I=!!x.matcap,D=!!ee,w=!!x.aoMap,j=!!x.lightMap,G=!!x.bumpMap,q=!!x.normalMap,P=!!x.displacementMap,N=!!x.emissiveMap,z=!!x.metalnessMap,A=!!x.roughnessMap,C=x.anisotropy>0,B=x.clearcoat>0,U=x.dispersion>0,H=x.iridescence>0,Y=x.sheen>0,he=x.transmission>0,ce=C&&!!x.anisotropyMap,xe=B&&!!x.clearcoatMap,Be=B&&!!x.clearcoatNormalMap,me=B&&!!x.clearcoatRoughnessMap,Ae=H&&!!x.iridescenceMap,He=H&&!!x.iridescenceThicknessMap,qe=Y&&!!x.sheenColorMap,Ee=Y&&!!x.sheenRoughnessMap,Ke=!!x.specularMap,tt=!!x.specularColorMap,Lt=!!x.specularIntensityMap,$=he&&!!x.transmissionMap,Re=he&&!!x.thicknessMap,oe=!!x.gradientMap,pe=!!x.alphaMap,Le=x.alphaTest>0,Ie=!!x.alphaHash,st=!!x.extensions;let Vt=Zi;x.toneMapped&&(W===null||W.isXRRenderTarget===!0)&&(Vt=n.toneMapping);const vn={shaderID:de,shaderType:x.type,shaderName:x.name,vertexShader:Ve,fragmentShader:se,defines:x.defines,customVertexShaderID:ge,customFragmentShaderID:Me,isRawShaderMaterial:x.isRawShaderMaterial===!0,glslVersion:x.glslVersion,precision:d,batching:le,batchingColor:le&&V._colorsTexture!==null,instancing:ue,instancingColor:ue&&V.instanceColor!==null,instancingMorph:ue&&V.morphTexture!==null,supportsVertexTextures:h,outputColorSpace:W===null?n.outputColorSpace:W.isXRRenderTarget===!0?W.texture.colorSpace:To,alphaToCoverage:!!x.alphaToCoverage,map:Ue,matcap:I,envMap:D,envMapMode:D&&ee.mapping,envMapCubeUVHeight:Q,aoMap:w,lightMap:j,bumpMap:G,normalMap:q,displacementMap:h&&P,emissiveMap:N,normalMapObjectSpace:q&&x.normalMapType===H1,normalMapTangentSpace:q&&x.normalMapType===Es,metalnessMap:z,roughnessMap:A,anisotropy:C,anisotropyMap:ce,clearcoat:B,clearcoatMap:xe,clearcoatNormalMap:Be,clearcoatRoughnessMap:me,dispersion:U,iridescence:H,iridescenceMap:Ae,iridescenceThicknessMap:He,sheen:Y,sheenColorMap:qe,sheenRoughnessMap:Ee,specularMap:Ke,specularColorMap:tt,specularIntensityMap:Lt,transmission:he,transmissionMap:$,thicknessMap:Re,gradientMap:oe,opaque:x.transparent===!1&&x.blending===po&&x.alphaToCoverage===!1,alphaMap:pe,alphaTest:Le,alphaHash:Ie,combine:x.combine,mapUv:Ue&&_(x.map.channel),aoMapUv:w&&_(x.aoMap.channel),lightMapUv:j&&_(x.lightMap.channel),bumpMapUv:G&&_(x.bumpMap.channel),normalMapUv:q&&_(x.normalMap.channel),displacementMapUv:P&&_(x.displacementMap.channel),emissiveMapUv:N&&_(x.emissiveMap.channel),metalnessMapUv:z&&_(x.metalnessMap.channel),roughnessMapUv:A&&_(x.roughnessMap.channel),anisotropyMapUv:ce&&_(x.anisotropyMap.channel),clearcoatMapUv:xe&&_(x.clearcoatMap.channel),clearcoatNormalMapUv:Be&&_(x.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:me&&_(x.clearcoatRoughnessMap.channel),iridescenceMapUv:Ae&&_(x.iridescenceMap.channel),iridescenceThicknessMapUv:He&&_(x.iridescenceThicknessMap.channel),sheenColorMapUv:qe&&_(x.sheenColorMap.channel),sheenRoughnessMapUv:Ee&&_(x.sheenRoughnessMap.channel),specularMapUv:Ke&&_(x.specularMap.channel),specularColorMapUv:tt&&_(x.specularColorMap.channel),specularIntensityMapUv:Lt&&_(x.specularIntensityMap.channel),transmissionMapUv:$&&_(x.transmissionMap.channel),thicknessMapUv:Re&&_(x.thicknessMap.channel),alphaMapUv:pe&&_(x.alphaMap.channel),vertexTangents:!!te.attributes.tangent&&(q||C),vertexColors:x.vertexColors,vertexAlphas:x.vertexColors===!0&&!!te.attributes.color&&te.attributes.color.itemSize===4,pointsUvs:V.isPoints===!0&&!!te.attributes.uv&&(Ue||pe),fog:!!X,useFog:x.fog===!0,fogExp2:!!X&&X.isFogExp2,flatShading:x.flatShading===!0,sizeAttenuation:x.sizeAttenuation===!0,logarithmicDepthBuffer:f,reverseDepthBuffer:ae,skinning:V.isSkinnedMesh===!0,morphTargets:te.morphAttributes.position!==void 0,morphNormals:te.morphAttributes.normal!==void 0,morphColors:te.morphAttributes.color!==void 0,morphTargetsCount:re,morphTextureStride:ye,numDirLights:M.directional.length,numPointLights:M.point.length,numSpotLights:M.spot.length,numSpotLightMaps:M.spotLightMap.length,numRectAreaLights:M.rectArea.length,numHemiLights:M.hemi.length,numDirLightShadows:M.directionalShadowMap.length,numPointLightShadows:M.pointShadowMap.length,numSpotLightShadows:M.spotShadowMap.length,numSpotLightShadowsWithMaps:M.numSpotLightShadowsWithMaps,numLightProbes:M.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:x.dithering,shadowMapEnabled:n.shadowMap.enabled&&L.length>0,shadowMapType:n.shadowMap.type,toneMapping:Vt,decodeVideoTexture:Ue&&x.map.isVideoTexture===!0&&ft.getTransfer(x.map.colorSpace)===wt,decodeVideoTextureEmissive:N&&x.emissiveMap.isVideoTexture===!0&&ft.getTransfer(x.emissiveMap.colorSpace)===wt,premultipliedAlpha:x.premultipliedAlpha,doubleSided:x.side===Pi,flipSided:x.side===zn,useDepthPacking:x.depthPacking>=0,depthPacking:x.depthPacking||0,index0AttributeName:x.index0AttributeName,extensionClipCullDistance:st&&x.extensions.clipCullDistance===!0&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(st&&x.extensions.multiDraw===!0||le)&&i.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:x.customProgramCacheKey()};return vn.vertexUv1s=c.has(1),vn.vertexUv2s=c.has(2),vn.vertexUv3s=c.has(3),c.clear(),vn}function m(x){const M=[];if(x.shaderID?M.push(x.shaderID):(M.push(x.customVertexShaderID),M.push(x.customFragmentShaderID)),x.defines!==void 0)for(const L in x.defines)M.push(L),M.push(x.defines[L]);return x.isRawShaderMaterial===!1&&(y(M,x),b(M,x),M.push(n.outputColorSpace)),M.push(x.customProgramCacheKey),M.join()}function y(x,M){x.push(M.precision),x.push(M.outputColorSpace),x.push(M.envMapMode),x.push(M.envMapCubeUVHeight),x.push(M.mapUv),x.push(M.alphaMapUv),x.push(M.lightMapUv),x.push(M.aoMapUv),x.push(M.bumpMapUv),x.push(M.normalMapUv),x.push(M.displacementMapUv),x.push(M.emissiveMapUv),x.push(M.metalnessMapUv),x.push(M.roughnessMapUv),x.push(M.anisotropyMapUv),x.push(M.clearcoatMapUv),x.push(M.clearcoatNormalMapUv),x.push(M.clearcoatRoughnessMapUv),x.push(M.iridescenceMapUv),x.push(M.iridescenceThicknessMapUv),x.push(M.sheenColorMapUv),x.push(M.sheenRoughnessMapUv),x.push(M.specularMapUv),x.push(M.specularColorMapUv),x.push(M.specularIntensityMapUv),x.push(M.transmissionMapUv),x.push(M.thicknessMapUv),x.push(M.combine),x.push(M.fogExp2),x.push(M.sizeAttenuation),x.push(M.morphTargetsCount),x.push(M.morphAttributeCount),x.push(M.numDirLights),x.push(M.numPointLights),x.push(M.numSpotLights),x.push(M.numSpotLightMaps),x.push(M.numHemiLights),x.push(M.numRectAreaLights),x.push(M.numDirLightShadows),x.push(M.numPointLightShadows),x.push(M.numSpotLightShadows),x.push(M.numSpotLightShadowsWithMaps),x.push(M.numLightProbes),x.push(M.shadowMapType),x.push(M.toneMapping),x.push(M.numClippingPlanes),x.push(M.numClipIntersection),x.push(M.depthPacking)}function b(x,M){a.disableAll(),M.supportsVertexTextures&&a.enable(0),M.instancing&&a.enable(1),M.instancingColor&&a.enable(2),M.instancingMorph&&a.enable(3),M.matcap&&a.enable(4),M.envMap&&a.enable(5),M.normalMapObjectSpace&&a.enable(6),M.normalMapTangentSpace&&a.enable(7),M.clearcoat&&a.enable(8),M.iridescence&&a.enable(9),M.alphaTest&&a.enable(10),M.vertexColors&&a.enable(11),M.vertexAlphas&&a.enable(12),M.vertexUv1s&&a.enable(13),M.vertexUv2s&&a.enable(14),M.vertexUv3s&&a.enable(15),M.vertexTangents&&a.enable(16),M.anisotropy&&a.enable(17),M.alphaHash&&a.enable(18),M.batching&&a.enable(19),M.dispersion&&a.enable(20),M.batchingColor&&a.enable(21),x.push(a.mask),a.disableAll(),M.fog&&a.enable(0),M.useFog&&a.enable(1),M.flatShading&&a.enable(2),M.logarithmicDepthBuffer&&a.enable(3),M.reverseDepthBuffer&&a.enable(4),M.skinning&&a.enable(5),M.morphTargets&&a.enable(6),M.morphNormals&&a.enable(7),M.morphColors&&a.enable(8),M.premultipliedAlpha&&a.enable(9),M.shadowMapEnabled&&a.enable(10),M.doubleSided&&a.enable(11),M.flipSided&&a.enable(12),M.useDepthPacking&&a.enable(13),M.dithering&&a.enable(14),M.transmission&&a.enable(15),M.sheen&&a.enable(16),M.opaque&&a.enable(17),M.pointsUvs&&a.enable(18),M.decodeVideoTexture&&a.enable(19),M.decodeVideoTextureEmissive&&a.enable(20),M.alphaToCoverage&&a.enable(21),x.push(a.mask)}function v(x){const M=p[x.type];let L;if(M){const F=Ri[M];L=tE.clone(F.uniforms)}else L=x.uniforms;return L}function E(x,M){let L;for(let F=0,V=u.length;F0?i.push(m):d.transparent===!0?r.push(m):t.push(m)}function l(f,h,d,p,_,g){const m=o(f,h,d,p,_,g);d.transmission>0?i.unshift(m):d.transparent===!0?r.unshift(m):t.unshift(m)}function c(f,h){t.length>1&&t.sort(f||FU),i.length>1&&i.sort(h||Rb),r.length>1&&r.sort(h||Rb)}function u(){for(let f=e,h=n.length;f=s.length?(o=new Pb,s.push(o)):o=s[r],o}function t(){n=new WeakMap}return{get:e,dispose:t}}function BU(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new k,color:new Ce};break;case"SpotLight":t={position:new k,direction:new k,color:new Ce,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new k,color:new Ce,distance:0,decay:0};break;case"HemisphereLight":t={direction:new k,skyColor:new Ce,groundColor:new Ce};break;case"RectAreaLight":t={color:new Ce,position:new k,halfWidth:new k,halfHeight:new k};break}return n[e.id]=t,t}}}function zU(){const n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new fe};break;case"SpotLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new fe};break;case"PointLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new fe,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}let VU=0;function HU(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function GU(n){const e=new BU,t=zU(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],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 c=0;c<9;c++)i.probe.push(new k);const r=new k,s=new Ye,o=new Ye;function a(c){let u=0,f=0,h=0;for(let x=0;x<9;x++)i.probe[x].set(0,0,0);let d=0,p=0,_=0,g=0,m=0,y=0,b=0,v=0,E=0,T=0,S=0;c.sort(HU);for(let x=0,M=c.length;x0&&(n.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=Te.LTC_FLOAT_1,i.rectAreaLTC2=Te.LTC_FLOAT_2):(i.rectAreaLTC1=Te.LTC_HALF_1,i.rectAreaLTC2=Te.LTC_HALF_2)),i.ambient[0]=u,i.ambient[1]=f,i.ambient[2]=h;const R=i.hash;(R.directionalLength!==d||R.pointLength!==p||R.spotLength!==_||R.rectAreaLength!==g||R.hemiLength!==m||R.numDirectionalShadows!==y||R.numPointShadows!==b||R.numSpotShadows!==v||R.numSpotMaps!==E||R.numLightProbes!==S)&&(i.directional.length=d,i.spot.length=_,i.rectArea.length=g,i.point.length=p,i.hemi.length=m,i.directionalShadow.length=y,i.directionalShadowMap.length=y,i.pointShadow.length=b,i.pointShadowMap.length=b,i.spotShadow.length=v,i.spotShadowMap.length=v,i.directionalShadowMatrix.length=y,i.pointShadowMatrix.length=b,i.spotLightMatrix.length=v+E-T,i.spotLightMap.length=E,i.numSpotLightShadowsWithMaps=T,i.numLightProbes=S,R.directionalLength=d,R.pointLength=p,R.spotLength=_,R.rectAreaLength=g,R.hemiLength=m,R.numDirectionalShadows=y,R.numPointShadows=b,R.numSpotShadows=v,R.numSpotMaps=E,R.numLightProbes=S,i.version=VU++)}function l(c,u){let f=0,h=0,d=0,p=0,_=0;const g=u.matrixWorldInverse;for(let m=0,y=c.length;m=o.length?(a=new Ib(n),o.push(a)):a=o[s],a}function i(){e=new WeakMap}return{get:t,dispose:i}}const XU=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,$U=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +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 = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`;function qU(n,e,t){let i=new Bc;const r=new fe,s=new fe,o=new gt,a=new u_({depthPacking:V1}),l=new f_,c={},u=t.maxTextureSize,f={[Dr]:zn,[zn]:Dr,[Pi]:Pi},h=new Fi({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new fe},radius:{value:4}},vertexShader:XU,fragmentShader:$U}),d=h.clone();d.defines.HORIZONTAL_PASS=1;const p=new lt;p.setAttribute("position",new Ct(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const _=new $t(p,h),g=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=N0;let m=this.type;this.render=function(T,S,R){if(g.enabled===!1||g.autoUpdate===!1&&g.needsUpdate===!1||T.length===0)return;const x=n.getRenderTarget(),M=n.getActiveCubeFace(),L=n.getActiveMipmapLevel(),F=n.state;F.setBlending(Rr),F.buffers.color.setClear(1,1,1,1),F.buffers.depth.setTest(!0),F.setScissorTest(!1);const V=m!==$i&&this.type===$i,X=m===$i&&this.type!==$i;for(let te=0,Z=T.length;teu||r.y>u)&&(r.x>u&&(s.x=Math.floor(u/de.x),r.x=s.x*de.x,Q.mapSize.x=s.x),r.y>u&&(s.y=Math.floor(u/de.y),r.y=s.y*de.y,Q.mapSize.y=s.y)),Q.map===null||V===!0||X===!0){const re=this.type!==$i?{minFilter:gn,magFilter:gn}:{};Q.map!==null&&Q.map.dispose(),Q.map=new ir(r.x,r.y,re),Q.map.texture.name=ee.name+".shadowMap",Q.camera.updateProjectionMatrix()}n.setRenderTarget(Q.map),n.clear();const be=Q.getViewportCount();for(let re=0;re0||S.map&&S.alphaTest>0){const F=M.uuid,V=S.uuid;let X=c[F];X===void 0&&(X={},c[F]=X);let te=X[V];te===void 0&&(te=M.clone(),X[V]=te,S.addEventListener("dispose",E)),M=te}if(M.visible=S.visible,M.wireframe=S.wireframe,x===$i?M.side=S.shadowSide!==null?S.shadowSide:S.side:M.side=S.shadowSide!==null?S.shadowSide:f[S.side],M.alphaMap=S.alphaMap,M.alphaTest=S.alphaTest,M.map=S.map,M.clipShadows=S.clipShadows,M.clippingPlanes=S.clippingPlanes,M.clipIntersection=S.clipIntersection,M.displacementMap=S.displacementMap,M.displacementScale=S.displacementScale,M.displacementBias=S.displacementBias,M.wireframeLinewidth=S.wireframeLinewidth,M.linewidth=S.linewidth,R.isPointLight===!0&&M.isMeshDistanceMaterial===!0){const F=n.properties.get(M);F.light=R}return M}function v(T,S,R,x,M){if(T.visible===!1)return;if(T.layers.test(S.layers)&&(T.isMesh||T.isLine||T.isPoints)&&(T.castShadow||T.receiveShadow&&M===$i)&&(!T.frustumCulled||i.intersectsObject(T))){T.modelViewMatrix.multiplyMatrices(R.matrixWorldInverse,T.matrixWorld);const V=e.update(T),X=T.material;if(Array.isArray(X)){const te=V.groups;for(let Z=0,ee=te.length;Z=1):Q.indexOf("OpenGL ES")!==-1&&(ee=parseFloat(/^OpenGL ES (\d)/.exec(Q)[1]),Z=ee>=2);let de=null,be={};const re=n.getParameter(n.SCISSOR_BOX),ye=n.getParameter(n.VIEWPORT),Ve=new gt().fromArray(re),se=new gt().fromArray(ye);function ge($,Re,oe,pe){const Le=new Uint8Array(4),Ie=n.createTexture();n.bindTexture($,Ie),n.texParameteri($,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri($,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let st=0;st"u"?!1:/OculusBrowser/g.test(navigator.userAgent),c=new fe,u=new WeakMap;let f;const h=new WeakMap;let d=!1;try{d=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function p(A,C){return d?new OffscreenCanvas(A,C):cc("canvas")}function _(A,C,B){let U=1;const H=z(A);if((H.width>B||H.height>B)&&(U=B/Math.max(H.width,H.height)),U<1)if(typeof HTMLImageElement<"u"&&A instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&A instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&A instanceof ImageBitmap||typeof VideoFrame<"u"&&A instanceof VideoFrame){const Y=Math.floor(U*H.width),he=Math.floor(U*H.height);f===void 0&&(f=p(Y,he));const ce=C?p(Y,he):f;return ce.width=Y,ce.height=he,ce.getContext("2d").drawImage(A,0,0,Y,he),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+H.width+"x"+H.height+") to ("+Y+"x"+he+")."),ce}else return"data"in A&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+H.width+"x"+H.height+")."),A;return A}function g(A){return A.generateMipmaps}function m(A){n.generateMipmap(A)}function y(A){return A.isWebGLCubeRenderTarget?n.TEXTURE_CUBE_MAP:A.isWebGL3DRenderTarget?n.TEXTURE_3D:A.isWebGLArrayRenderTarget||A.isCompressedArrayTexture?n.TEXTURE_2D_ARRAY:n.TEXTURE_2D}function b(A,C,B,U,H=!1){if(A!==null){if(n[A]!==void 0)return n[A];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+A+"'")}let Y=C;if(C===n.RED&&(B===n.FLOAT&&(Y=n.R32F),B===n.HALF_FLOAT&&(Y=n.R16F),B===n.UNSIGNED_BYTE&&(Y=n.R8)),C===n.RED_INTEGER&&(B===n.UNSIGNED_BYTE&&(Y=n.R8UI),B===n.UNSIGNED_SHORT&&(Y=n.R16UI),B===n.UNSIGNED_INT&&(Y=n.R32UI),B===n.BYTE&&(Y=n.R8I),B===n.SHORT&&(Y=n.R16I),B===n.INT&&(Y=n.R32I)),C===n.RG&&(B===n.FLOAT&&(Y=n.RG32F),B===n.HALF_FLOAT&&(Y=n.RG16F),B===n.UNSIGNED_BYTE&&(Y=n.RG8)),C===n.RG_INTEGER&&(B===n.UNSIGNED_BYTE&&(Y=n.RG8UI),B===n.UNSIGNED_SHORT&&(Y=n.RG16UI),B===n.UNSIGNED_INT&&(Y=n.RG32UI),B===n.BYTE&&(Y=n.RG8I),B===n.SHORT&&(Y=n.RG16I),B===n.INT&&(Y=n.RG32I)),C===n.RGB_INTEGER&&(B===n.UNSIGNED_BYTE&&(Y=n.RGB8UI),B===n.UNSIGNED_SHORT&&(Y=n.RGB16UI),B===n.UNSIGNED_INT&&(Y=n.RGB32UI),B===n.BYTE&&(Y=n.RGB8I),B===n.SHORT&&(Y=n.RGB16I),B===n.INT&&(Y=n.RGB32I)),C===n.RGBA_INTEGER&&(B===n.UNSIGNED_BYTE&&(Y=n.RGBA8UI),B===n.UNSIGNED_SHORT&&(Y=n.RGBA16UI),B===n.UNSIGNED_INT&&(Y=n.RGBA32UI),B===n.BYTE&&(Y=n.RGBA8I),B===n.SHORT&&(Y=n.RGBA16I),B===n.INT&&(Y=n.RGBA32I)),C===n.RGB&&B===n.UNSIGNED_INT_5_9_9_9_REV&&(Y=n.RGB9_E5),C===n.RGBA){const he=H?oc:ft.getTransfer(U);B===n.FLOAT&&(Y=n.RGBA32F),B===n.HALF_FLOAT&&(Y=n.RGBA16F),B===n.UNSIGNED_BYTE&&(Y=he===wt?n.SRGB8_ALPHA8:n.RGBA8),B===n.UNSIGNED_SHORT_4_4_4_4&&(Y=n.RGBA4),B===n.UNSIGNED_SHORT_5_5_5_1&&(Y=n.RGB5_A1)}return(Y===n.R16F||Y===n.R32F||Y===n.RG16F||Y===n.RG32F||Y===n.RGBA16F||Y===n.RGBA32F)&&e.get("EXT_color_buffer_float"),Y}function v(A,C){let B;return A?C===null||C===Nr||C===So?B=n.DEPTH24_STENCIL8:C===Kn?B=n.DEPTH32F_STENCIL8:C===Ea&&(B=n.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):C===null||C===Nr||C===So?B=n.DEPTH_COMPONENT24:C===Kn?B=n.DEPTH_COMPONENT32F:C===Ea&&(B=n.DEPTH_COMPONENT16),B}function E(A,C){return g(A)===!0||A.isFramebufferTexture&&A.minFilter!==gn&&A.minFilter!==en?Math.log2(Math.max(C.width,C.height))+1:A.mipmaps!==void 0&&A.mipmaps.length>0?A.mipmaps.length:A.isCompressedTexture&&Array.isArray(A.image)?C.mipmaps.length:1}function T(A){const C=A.target;C.removeEventListener("dispose",T),R(C),C.isVideoTexture&&u.delete(C)}function S(A){const C=A.target;C.removeEventListener("dispose",S),M(C)}function R(A){const C=i.get(A);if(C.__webglInit===void 0)return;const B=A.source,U=h.get(B);if(U){const H=U[C.__cacheKey];H.usedTimes--,H.usedTimes===0&&x(A),Object.keys(U).length===0&&h.delete(B)}i.remove(A)}function x(A){const C=i.get(A);n.deleteTexture(C.__webglTexture);const B=A.source,U=h.get(B);delete U[C.__cacheKey],o.memory.textures--}function M(A){const C=i.get(A);if(A.depthTexture&&(A.depthTexture.dispose(),i.remove(A.depthTexture)),A.isWebGLCubeRenderTarget)for(let U=0;U<6;U++){if(Array.isArray(C.__webglFramebuffer[U]))for(let H=0;H=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+A+" texture units while this GPU supports only "+r.maxTextures),L+=1,A}function X(A){const C=[];return C.push(A.wrapS),C.push(A.wrapT),C.push(A.wrapR||0),C.push(A.magFilter),C.push(A.minFilter),C.push(A.anisotropy),C.push(A.internalFormat),C.push(A.format),C.push(A.type),C.push(A.generateMipmaps),C.push(A.premultiplyAlpha),C.push(A.flipY),C.push(A.unpackAlignment),C.push(A.colorSpace),C.join()}function te(A,C){const B=i.get(A);if(A.isVideoTexture&&P(A),A.isRenderTargetTexture===!1&&A.version>0&&B.__version!==A.version){const U=A.image;if(U===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(U.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{se(B,A,C);return}}t.bindTexture(n.TEXTURE_2D,B.__webglTexture,n.TEXTURE0+C)}function Z(A,C){const B=i.get(A);if(A.version>0&&B.__version!==A.version){se(B,A,C);return}t.bindTexture(n.TEXTURE_2D_ARRAY,B.__webglTexture,n.TEXTURE0+C)}function ee(A,C){const B=i.get(A);if(A.version>0&&B.__version!==A.version){se(B,A,C);return}t.bindTexture(n.TEXTURE_3D,B.__webglTexture,n.TEXTURE0+C)}function Q(A,C){const B=i.get(A);if(A.version>0&&B.__version!==A.version){ge(B,A,C);return}t.bindTexture(n.TEXTURE_CUBE_MAP,B.__webglTexture,n.TEXTURE0+C)}const de={[nc]:n.REPEAT,[gi]:n.CLAMP_TO_EDGE,[ic]:n.MIRRORED_REPEAT},be={[gn]:n.NEAREST,[F0]:n.NEAREST_MIPMAP_NEAREST,[la]:n.NEAREST_MIPMAP_LINEAR,[en]:n.LINEAR,[Ml]:n.LINEAR_MIPMAP_NEAREST,[ji]:n.LINEAR_MIPMAP_LINEAR},re={[G1]:n.NEVER,[j1]:n.ALWAYS,[W1]:n.LESS,[Y0]:n.LEQUAL,[X1]:n.EQUAL,[Y1]:n.GEQUAL,[$1]:n.GREATER,[q1]:n.NOTEQUAL};function ye(A,C){if(C.type===Kn&&e.has("OES_texture_float_linear")===!1&&(C.magFilter===en||C.magFilter===Ml||C.magFilter===la||C.magFilter===ji||C.minFilter===en||C.minFilter===Ml||C.minFilter===la||C.minFilter===ji)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),n.texParameteri(A,n.TEXTURE_WRAP_S,de[C.wrapS]),n.texParameteri(A,n.TEXTURE_WRAP_T,de[C.wrapT]),(A===n.TEXTURE_3D||A===n.TEXTURE_2D_ARRAY)&&n.texParameteri(A,n.TEXTURE_WRAP_R,de[C.wrapR]),n.texParameteri(A,n.TEXTURE_MAG_FILTER,be[C.magFilter]),n.texParameteri(A,n.TEXTURE_MIN_FILTER,be[C.minFilter]),C.compareFunction&&(n.texParameteri(A,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(A,n.TEXTURE_COMPARE_FUNC,re[C.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){if(C.magFilter===gn||C.minFilter!==la&&C.minFilter!==ji||C.type===Kn&&e.has("OES_texture_float_linear")===!1)return;if(C.anisotropy>1||i.get(C).__currentAnisotropy){const B=e.get("EXT_texture_filter_anisotropic");n.texParameterf(A,B.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(C.anisotropy,r.getMaxAnisotropy())),i.get(C).__currentAnisotropy=C.anisotropy}}}function Ve(A,C){let B=!1;A.__webglInit===void 0&&(A.__webglInit=!0,C.addEventListener("dispose",T));const U=C.source;let H=h.get(U);H===void 0&&(H={},h.set(U,H));const Y=X(C);if(Y!==A.__cacheKey){H[Y]===void 0&&(H[Y]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,B=!0),H[Y].usedTimes++;const he=H[A.__cacheKey];he!==void 0&&(H[A.__cacheKey].usedTimes--,he.usedTimes===0&&x(C)),A.__cacheKey=Y,A.__webglTexture=H[Y].texture}return B}function se(A,C,B){let U=n.TEXTURE_2D;(C.isDataArrayTexture||C.isCompressedArrayTexture)&&(U=n.TEXTURE_2D_ARRAY),C.isData3DTexture&&(U=n.TEXTURE_3D);const H=Ve(A,C),Y=C.source;t.bindTexture(U,A.__webglTexture,n.TEXTURE0+B);const he=i.get(Y);if(Y.version!==he.__version||H===!0){t.activeTexture(n.TEXTURE0+B);const ce=ft.getPrimaries(ft.workingColorSpace),xe=C.colorSpace===Mr?null:ft.getPrimaries(C.colorSpace),Be=C.colorSpace===Mr||ce===xe?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,C.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,C.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,C.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,Be);let me=_(C.image,!1,r.maxTextureSize);me=N(C,me);const Ae=s.convert(C.format,C.colorSpace),He=s.convert(C.type);let qe=b(C.internalFormat,Ae,He,C.colorSpace,C.isVideoTexture);ye(U,C);let Ee;const Ke=C.mipmaps,tt=C.isVideoTexture!==!0,Lt=he.__version===void 0||H===!0,$=Y.dataReady,Re=E(C,me);if(C.isDepthTexture)qe=v(C.format===Eo,C.type),Lt&&(tt?t.texStorage2D(n.TEXTURE_2D,1,qe,me.width,me.height):t.texImage2D(n.TEXTURE_2D,0,qe,me.width,me.height,0,Ae,He,null));else if(C.isDataTexture)if(Ke.length>0){tt&&Lt&&t.texStorage2D(n.TEXTURE_2D,Re,qe,Ke[0].width,Ke[0].height);for(let oe=0,pe=Ke.length;oe0){const Le=bg(Ee.width,Ee.height,C.format,C.type);for(const Ie of C.layerUpdates){const st=Ee.data.subarray(Ie*Le/Ee.data.BYTES_PER_ELEMENT,(Ie+1)*Le/Ee.data.BYTES_PER_ELEMENT);t.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,oe,0,0,Ie,Ee.width,Ee.height,1,Ae,st)}C.clearLayerUpdates()}else t.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,oe,0,0,0,Ee.width,Ee.height,me.depth,Ae,Ee.data)}else t.compressedTexImage3D(n.TEXTURE_2D_ARRAY,oe,qe,Ee.width,Ee.height,me.depth,0,Ee.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else tt?$&&t.texSubImage3D(n.TEXTURE_2D_ARRAY,oe,0,0,0,Ee.width,Ee.height,me.depth,Ae,He,Ee.data):t.texImage3D(n.TEXTURE_2D_ARRAY,oe,qe,Ee.width,Ee.height,me.depth,0,Ae,He,Ee.data)}else{tt&&Lt&&t.texStorage2D(n.TEXTURE_2D,Re,qe,Ke[0].width,Ke[0].height);for(let oe=0,pe=Ke.length;oe0){const oe=bg(me.width,me.height,C.format,C.type);for(const pe of C.layerUpdates){const Le=me.data.subarray(pe*oe/me.data.BYTES_PER_ELEMENT,(pe+1)*oe/me.data.BYTES_PER_ELEMENT);t.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,pe,me.width,me.height,1,Ae,He,Le)}C.clearLayerUpdates()}else t.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,0,me.width,me.height,me.depth,Ae,He,me.data)}else t.texImage3D(n.TEXTURE_2D_ARRAY,0,qe,me.width,me.height,me.depth,0,Ae,He,me.data);else if(C.isData3DTexture)tt?(Lt&&t.texStorage3D(n.TEXTURE_3D,Re,qe,me.width,me.height,me.depth),$&&t.texSubImage3D(n.TEXTURE_3D,0,0,0,0,me.width,me.height,me.depth,Ae,He,me.data)):t.texImage3D(n.TEXTURE_3D,0,qe,me.width,me.height,me.depth,0,Ae,He,me.data);else if(C.isFramebufferTexture){if(Lt)if(tt)t.texStorage2D(n.TEXTURE_2D,Re,qe,me.width,me.height);else{let oe=me.width,pe=me.height;for(let Le=0;Le>=1,pe>>=1}}else if(Ke.length>0){if(tt&&Lt){const oe=z(Ke[0]);t.texStorage2D(n.TEXTURE_2D,Re,qe,oe.width,oe.height)}for(let oe=0,pe=Ke.length;oe0&&Re++;const pe=z(Ae[0]);t.texStorage2D(n.TEXTURE_CUBE_MAP,Re,Ke,pe.width,pe.height)}for(let pe=0;pe<6;pe++)if(me){tt?$&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+pe,0,0,0,Ae[pe].width,Ae[pe].height,qe,Ee,Ae[pe].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+pe,0,Ke,Ae[pe].width,Ae[pe].height,0,qe,Ee,Ae[pe].data);for(let Le=0;Le>Y),He=Math.max(1,C.height>>Y);H===n.TEXTURE_3D||H===n.TEXTURE_2D_ARRAY?t.texImage3D(H,Y,xe,Ae,He,C.depth,0,he,ce,null):t.texImage2D(H,Y,xe,Ae,He,0,he,ce,null)}t.bindFramebuffer(n.FRAMEBUFFER,A),q(C)?a.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,U,H,me.__webglTexture,0,G(C)):(H===n.TEXTURE_2D||H>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&H<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,U,H,me.__webglTexture,Y),t.bindFramebuffer(n.FRAMEBUFFER,null)}function W(A,C,B){if(n.bindRenderbuffer(n.RENDERBUFFER,A),C.depthBuffer){const U=C.depthTexture,H=U&&U.isDepthTexture?U.type:null,Y=v(C.stencilBuffer,H),he=C.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,ce=G(C);q(C)?a.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,ce,Y,C.width,C.height):B?n.renderbufferStorageMultisample(n.RENDERBUFFER,ce,Y,C.width,C.height):n.renderbufferStorage(n.RENDERBUFFER,Y,C.width,C.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,he,n.RENDERBUFFER,A)}else{const U=C.textures;for(let H=0;H{delete C.__boundDepthTexture,delete C.__depthDisposeCallback,U.removeEventListener("dispose",H)};U.addEventListener("dispose",H),C.__depthDisposeCallback=H}C.__boundDepthTexture=U}if(A.depthTexture&&!C.__autoAllocateDepthBuffer){if(B)throw new Error("target.depthTexture not supported in Cube render targets");ae(C.__webglFramebuffer,A)}else if(B){C.__webglDepthbuffer=[];for(let U=0;U<6;U++)if(t.bindFramebuffer(n.FRAMEBUFFER,C.__webglFramebuffer[U]),C.__webglDepthbuffer[U]===void 0)C.__webglDepthbuffer[U]=n.createRenderbuffer(),W(C.__webglDepthbuffer[U],A,!1);else{const H=A.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Y=C.__webglDepthbuffer[U];n.bindRenderbuffer(n.RENDERBUFFER,Y),n.framebufferRenderbuffer(n.FRAMEBUFFER,H,n.RENDERBUFFER,Y)}}else if(t.bindFramebuffer(n.FRAMEBUFFER,C.__webglFramebuffer),C.__webglDepthbuffer===void 0)C.__webglDepthbuffer=n.createRenderbuffer(),W(C.__webglDepthbuffer,A,!1);else{const U=A.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,H=C.__webglDepthbuffer;n.bindRenderbuffer(n.RENDERBUFFER,H),n.framebufferRenderbuffer(n.FRAMEBUFFER,U,n.RENDERBUFFER,H)}t.bindFramebuffer(n.FRAMEBUFFER,null)}function le(A,C,B){const U=i.get(A);C!==void 0&&Me(U.__webglFramebuffer,A,A.texture,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,0),B!==void 0&&ue(A)}function Ue(A){const C=A.texture,B=i.get(A),U=i.get(C);A.addEventListener("dispose",S);const H=A.textures,Y=A.isWebGLCubeRenderTarget===!0,he=H.length>1;if(he||(U.__webglTexture===void 0&&(U.__webglTexture=n.createTexture()),U.__version=C.version,o.memory.textures++),Y){B.__webglFramebuffer=[];for(let ce=0;ce<6;ce++)if(C.mipmaps&&C.mipmaps.length>0){B.__webglFramebuffer[ce]=[];for(let xe=0;xe0){B.__webglFramebuffer=[];for(let ce=0;ce0&&q(A)===!1){B.__webglMultisampledFramebuffer=n.createFramebuffer(),B.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,B.__webglMultisampledFramebuffer);for(let ce=0;ce0)for(let xe=0;xe0)for(let xe=0;xe0){if(q(A)===!1){const C=A.textures,B=A.width,U=A.height;let H=n.COLOR_BUFFER_BIT;const Y=A.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,he=i.get(A),ce=C.length>1;if(ce)for(let xe=0;xe0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&C.__useRenderToTexture!==!1}function P(A){const C=o.render.frame;u.get(A)!==C&&(u.set(A,C),A.update())}function N(A,C){const B=A.colorSpace,U=A.format,H=A.type;return A.isCompressedTexture===!0||A.isVideoTexture===!0||B!==To&&B!==Mr&&(ft.getTransfer(B)===wt?(U!==Bn||H!==nr)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",B)),C}function z(A){return typeof HTMLImageElement<"u"&&A instanceof HTMLImageElement?(c.width=A.naturalWidth||A.width,c.height=A.naturalHeight||A.height):typeof VideoFrame<"u"&&A instanceof VideoFrame?(c.width=A.displayWidth,c.height=A.displayHeight):(c.width=A.width,c.height=A.height),c}this.allocateTextureUnit=V,this.resetTextureUnits=F,this.setTexture2D=te,this.setTexture2DArray=Z,this.setTexture3D=ee,this.setTextureCube=Q,this.rebindTextures=le,this.setupRenderTarget=Ue,this.updateRenderTargetMipmap=I,this.updateMultisampleRenderTarget=j,this.setupDepthRenderbuffer=ue,this.setupFrameBufferTexture=Me,this.useMultisampledRTT=q}function sT(n,e){function t(i,r=Mr){let s;const o=ft.getTransfer(r);if(i===nr)return n.UNSIGNED_BYTE;if(i===rd)return n.UNSIGNED_SHORT_4_4_4_4;if(i===sd)return n.UNSIGNED_SHORT_5_5_5_1;if(i===z0)return n.UNSIGNED_INT_5_9_9_9_REV;if(i===k0)return n.BYTE;if(i===B0)return n.SHORT;if(i===Ea)return n.UNSIGNED_SHORT;if(i===id)return n.INT;if(i===Nr)return n.UNSIGNED_INT;if(i===Kn)return n.FLOAT;if(i===Fa)return n.HALF_FLOAT;if(i===V0)return n.ALPHA;if(i===H0)return n.RGB;if(i===Bn)return n.RGBA;if(i===G0)return n.LUMINANCE;if(i===W0)return n.LUMINANCE_ALPHA;if(i===mo)return n.DEPTH_COMPONENT;if(i===Eo)return n.DEPTH_STENCIL;if(i===od)return n.RED;if(i===Nc)return n.RED_INTEGER;if(i===X0)return n.RG;if(i===ad)return n.RG_INTEGER;if(i===ld)return n.RGBA_INTEGER;if(i===Sl||i===El||i===Tl||i===wl)if(o===wt)if(s=e.get("WEBGL_compressed_texture_s3tc_srgb"),s!==null){if(i===Sl)return s.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(i===El)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(i===Tl)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(i===wl)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(s=e.get("WEBGL_compressed_texture_s3tc"),s!==null){if(i===Sl)return s.COMPRESSED_RGB_S3TC_DXT1_EXT;if(i===El)return s.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(i===Tl)return s.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(i===wl)return s.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(i===jf||i===Kf||i===Zf||i===Jf)if(s=e.get("WEBGL_compressed_texture_pvrtc"),s!==null){if(i===jf)return s.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(i===Kf)return s.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(i===Zf)return s.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(i===Jf)return s.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(i===Qf||i===eh||i===th)if(s=e.get("WEBGL_compressed_texture_etc"),s!==null){if(i===Qf||i===eh)return o===wt?s.COMPRESSED_SRGB8_ETC2:s.COMPRESSED_RGB8_ETC2;if(i===th)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:s.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(i===nh||i===ih||i===rh||i===sh||i===oh||i===ah||i===lh||i===ch||i===uh||i===fh||i===hh||i===dh||i===ph||i===mh)if(s=e.get("WEBGL_compressed_texture_astc"),s!==null){if(i===nh)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:s.COMPRESSED_RGBA_ASTC_4x4_KHR;if(i===ih)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:s.COMPRESSED_RGBA_ASTC_5x4_KHR;if(i===rh)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:s.COMPRESSED_RGBA_ASTC_5x5_KHR;if(i===sh)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:s.COMPRESSED_RGBA_ASTC_6x5_KHR;if(i===oh)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:s.COMPRESSED_RGBA_ASTC_6x6_KHR;if(i===ah)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:s.COMPRESSED_RGBA_ASTC_8x5_KHR;if(i===lh)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:s.COMPRESSED_RGBA_ASTC_8x6_KHR;if(i===ch)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:s.COMPRESSED_RGBA_ASTC_8x8_KHR;if(i===uh)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:s.COMPRESSED_RGBA_ASTC_10x5_KHR;if(i===fh)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:s.COMPRESSED_RGBA_ASTC_10x6_KHR;if(i===hh)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:s.COMPRESSED_RGBA_ASTC_10x8_KHR;if(i===dh)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:s.COMPRESSED_RGBA_ASTC_10x10_KHR;if(i===ph)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:s.COMPRESSED_RGBA_ASTC_12x10_KHR;if(i===mh)return o===wt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:s.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(i===Al||i===gh||i===_h)if(s=e.get("EXT_texture_compression_bptc"),s!==null){if(i===Al)return o===wt?s.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:s.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(i===gh)return s.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(i===_h)return s.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(i===$0||i===vh||i===yh||i===bh)if(s=e.get("EXT_texture_compression_rgtc"),s!==null){if(i===Al)return s.COMPRESSED_RED_RGTC1_EXT;if(i===vh)return s.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(i===yh)return s.COMPRESSED_RED_GREEN_RGTC2_EXT;if(i===bh)return s.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return i===So?n.UNSIGNED_INT_24_8:n[i]!==void 0?n[i]:null}return{convert:t}}const ZU=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,JU=` +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; + + } + +}`;class QU{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,i){if(this.texture===null){const r=new Wt,s=e.properties.get(r);s.__webglTexture=t.texture,(t.depthNear!==i.depthNear||t.depthFar!==i.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=r}}getMesh(e){if(this.texture!==null&&this.mesh===null){const t=e.cameras[0].viewport,i=new Fi({vertexShader:ZU,fragmentShader:JU,uniforms:{depthColor:{value:this.texture},depthWidth:{value:t.z},depthHeight:{value:t.w}}});this.mesh=new $t(new za(20,20),i)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class eF extends rr{constructor(e,t){super();const i=this;let r=null,s=1,o=null,a="local-floor",l=1,c=null,u=null,f=null,h=null,d=null,p=null;const _=new QU,g=t.getContextAttributes();let m=null,y=null;const b=[],v=[],E=new fe;let T=null;const S=new Kt;S.viewport=new gt;const R=new Kt;R.viewport=new gt;const x=[S,R],M=new YE;let L=null,F=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(se){let ge=b[se];return ge===void 0&&(ge=new xf,b[se]=ge),ge.getTargetRaySpace()},this.getControllerGrip=function(se){let ge=b[se];return ge===void 0&&(ge=new xf,b[se]=ge),ge.getGripSpace()},this.getHand=function(se){let ge=b[se];return ge===void 0&&(ge=new xf,b[se]=ge),ge.getHandSpace()};function V(se){const ge=v.indexOf(se.inputSource);if(ge===-1)return;const Me=b[ge];Me!==void 0&&(Me.update(se.inputSource,se.frame,c||o),Me.dispatchEvent({type:se.type,data:se.inputSource}))}function X(){r.removeEventListener("select",V),r.removeEventListener("selectstart",V),r.removeEventListener("selectend",V),r.removeEventListener("squeeze",V),r.removeEventListener("squeezestart",V),r.removeEventListener("squeezeend",V),r.removeEventListener("end",X),r.removeEventListener("inputsourceschange",te);for(let se=0;se=0&&(v[W]=null,b[W].disconnect(Me))}for(let ge=0;ge=v.length){v.push(Me),W=ue;break}else if(v[ue]===null){v[ue]=Me,W=ue;break}if(W===-1)break}const ae=b[W];ae&&ae.connect(Me)}}const Z=new k,ee=new k;function Q(se,ge,Me){Z.setFromMatrixPosition(ge.matrixWorld),ee.setFromMatrixPosition(Me.matrixWorld);const W=Z.distanceTo(ee),ae=ge.projectionMatrix.elements,ue=Me.projectionMatrix.elements,le=ae[14]/(ae[10]-1),Ue=ae[14]/(ae[10]+1),I=(ae[9]+1)/ae[5],D=(ae[9]-1)/ae[5],w=(ae[8]-1)/ae[0],j=(ue[8]+1)/ue[0],G=le*w,q=le*j,P=W/(-w+j),N=P*-w;if(ge.matrixWorld.decompose(se.position,se.quaternion,se.scale),se.translateX(N),se.translateZ(P),se.matrixWorld.compose(se.position,se.quaternion,se.scale),se.matrixWorldInverse.copy(se.matrixWorld).invert(),ae[10]===-1)se.projectionMatrix.copy(ge.projectionMatrix),se.projectionMatrixInverse.copy(ge.projectionMatrixInverse);else{const z=le+P,A=Ue+P,C=G-N,B=q+(W-N),U=I*Ue/A*z,H=D*Ue/A*z;se.projectionMatrix.makePerspective(C,B,U,H,z,A),se.projectionMatrixInverse.copy(se.projectionMatrix).invert()}}function de(se,ge){ge===null?se.matrixWorld.copy(se.matrix):se.matrixWorld.multiplyMatrices(ge.matrixWorld,se.matrix),se.matrixWorldInverse.copy(se.matrixWorld).invert()}this.updateCamera=function(se){if(r===null)return;let ge=se.near,Me=se.far;_.texture!==null&&(_.depthNear>0&&(ge=_.depthNear),_.depthFar>0&&(Me=_.depthFar)),M.near=R.near=S.near=ge,M.far=R.far=S.far=Me,(L!==M.near||F!==M.far)&&(r.updateRenderState({depthNear:M.near,depthFar:M.far}),L=M.near,F=M.far),S.layers.mask=se.layers.mask|2,R.layers.mask=se.layers.mask|4,M.layers.mask=S.layers.mask|R.layers.mask;const W=se.parent,ae=M.cameras;de(M,W);for(let ue=0;ue0&&(g.alphaTest.value=m.alphaTest);const y=e.get(m),b=y.envMap,v=y.envMapRotation;b&&(g.envMap.value=b,js.copy(v),js.x*=-1,js.y*=-1,js.z*=-1,b.isCubeTexture&&b.isRenderTargetTexture===!1&&(js.y*=-1,js.z*=-1),g.envMapRotation.value.setFromMatrix4(tF.makeRotationFromEuler(js)),g.flipEnvMap.value=b.isCubeTexture&&b.isRenderTargetTexture===!1?-1:1,g.reflectivity.value=m.reflectivity,g.ior.value=m.ior,g.refractionRatio.value=m.refractionRatio),m.lightMap&&(g.lightMap.value=m.lightMap,g.lightMapIntensity.value=m.lightMapIntensity,t(m.lightMap,g.lightMapTransform)),m.aoMap&&(g.aoMap.value=m.aoMap,g.aoMapIntensity.value=m.aoMapIntensity,t(m.aoMap,g.aoMapTransform))}function o(g,m){g.diffuse.value.copy(m.color),g.opacity.value=m.opacity,m.map&&(g.map.value=m.map,t(m.map,g.mapTransform))}function a(g,m){g.dashSize.value=m.dashSize,g.totalSize.value=m.dashSize+m.gapSize,g.scale.value=m.scale}function l(g,m,y,b){g.diffuse.value.copy(m.color),g.opacity.value=m.opacity,g.size.value=m.size*y,g.scale.value=b*.5,m.map&&(g.map.value=m.map,t(m.map,g.uvTransform)),m.alphaMap&&(g.alphaMap.value=m.alphaMap,t(m.alphaMap,g.alphaMapTransform)),m.alphaTest>0&&(g.alphaTest.value=m.alphaTest)}function c(g,m){g.diffuse.value.copy(m.color),g.opacity.value=m.opacity,g.rotation.value=m.rotation,m.map&&(g.map.value=m.map,t(m.map,g.mapTransform)),m.alphaMap&&(g.alphaMap.value=m.alphaMap,t(m.alphaMap,g.alphaMapTransform)),m.alphaTest>0&&(g.alphaTest.value=m.alphaTest)}function u(g,m){g.specular.value.copy(m.specular),g.shininess.value=Math.max(m.shininess,1e-4)}function f(g,m){m.gradientMap&&(g.gradientMap.value=m.gradientMap)}function h(g,m){g.metalness.value=m.metalness,m.metalnessMap&&(g.metalnessMap.value=m.metalnessMap,t(m.metalnessMap,g.metalnessMapTransform)),g.roughness.value=m.roughness,m.roughnessMap&&(g.roughnessMap.value=m.roughnessMap,t(m.roughnessMap,g.roughnessMapTransform)),m.envMap&&(g.envMapIntensity.value=m.envMapIntensity)}function d(g,m,y){g.ior.value=m.ior,m.sheen>0&&(g.sheenColor.value.copy(m.sheenColor).multiplyScalar(m.sheen),g.sheenRoughness.value=m.sheenRoughness,m.sheenColorMap&&(g.sheenColorMap.value=m.sheenColorMap,t(m.sheenColorMap,g.sheenColorMapTransform)),m.sheenRoughnessMap&&(g.sheenRoughnessMap.value=m.sheenRoughnessMap,t(m.sheenRoughnessMap,g.sheenRoughnessMapTransform))),m.clearcoat>0&&(g.clearcoat.value=m.clearcoat,g.clearcoatRoughness.value=m.clearcoatRoughness,m.clearcoatMap&&(g.clearcoatMap.value=m.clearcoatMap,t(m.clearcoatMap,g.clearcoatMapTransform)),m.clearcoatRoughnessMap&&(g.clearcoatRoughnessMap.value=m.clearcoatRoughnessMap,t(m.clearcoatRoughnessMap,g.clearcoatRoughnessMapTransform)),m.clearcoatNormalMap&&(g.clearcoatNormalMap.value=m.clearcoatNormalMap,t(m.clearcoatNormalMap,g.clearcoatNormalMapTransform),g.clearcoatNormalScale.value.copy(m.clearcoatNormalScale),m.side===zn&&g.clearcoatNormalScale.value.negate())),m.dispersion>0&&(g.dispersion.value=m.dispersion),m.iridescence>0&&(g.iridescence.value=m.iridescence,g.iridescenceIOR.value=m.iridescenceIOR,g.iridescenceThicknessMinimum.value=m.iridescenceThicknessRange[0],g.iridescenceThicknessMaximum.value=m.iridescenceThicknessRange[1],m.iridescenceMap&&(g.iridescenceMap.value=m.iridescenceMap,t(m.iridescenceMap,g.iridescenceMapTransform)),m.iridescenceThicknessMap&&(g.iridescenceThicknessMap.value=m.iridescenceThicknessMap,t(m.iridescenceThicknessMap,g.iridescenceThicknessMapTransform))),m.transmission>0&&(g.transmission.value=m.transmission,g.transmissionSamplerMap.value=y.texture,g.transmissionSamplerSize.value.set(y.width,y.height),m.transmissionMap&&(g.transmissionMap.value=m.transmissionMap,t(m.transmissionMap,g.transmissionMapTransform)),g.thickness.value=m.thickness,m.thicknessMap&&(g.thicknessMap.value=m.thicknessMap,t(m.thicknessMap,g.thicknessMapTransform)),g.attenuationDistance.value=m.attenuationDistance,g.attenuationColor.value.copy(m.attenuationColor)),m.anisotropy>0&&(g.anisotropyVector.value.set(m.anisotropy*Math.cos(m.anisotropyRotation),m.anisotropy*Math.sin(m.anisotropyRotation)),m.anisotropyMap&&(g.anisotropyMap.value=m.anisotropyMap,t(m.anisotropyMap,g.anisotropyMapTransform))),g.specularIntensity.value=m.specularIntensity,g.specularColor.value.copy(m.specularColor),m.specularColorMap&&(g.specularColorMap.value=m.specularColorMap,t(m.specularColorMap,g.specularColorMapTransform)),m.specularIntensityMap&&(g.specularIntensityMap.value=m.specularIntensityMap,t(m.specularIntensityMap,g.specularIntensityMapTransform))}function p(g,m){m.matcap&&(g.matcap.value=m.matcap)}function _(g,m){const y=e.get(m).light;g.referencePosition.value.setFromMatrixPosition(y.matrixWorld),g.nearDistance.value=y.shadow.camera.near,g.farDistance.value=y.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function iF(n,e,t,i){let r={},s={},o=[];const a=n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS);function l(y,b){const v=b.program;i.uniformBlockBinding(y,v)}function c(y,b){let v=r[y.id];v===void 0&&(p(y),v=u(y),r[y.id]=v,y.addEventListener("dispose",g));const E=b.program;i.updateUBOMapping(y,E);const T=e.render.frame;s[y.id]!==T&&(h(y),s[y.id]=T)}function u(y){const b=f();y.__bindingPointIndex=b;const v=n.createBuffer(),E=y.__size,T=y.usage;return n.bindBuffer(n.UNIFORM_BUFFER,v),n.bufferData(n.UNIFORM_BUFFER,E,T),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,b,v),v}function f(){for(let y=0;y0&&(v+=E-T),y.__size=v,y.__cache={},this}function _(y){const b={boundary:0,storage:0};return typeof y=="number"||typeof y=="boolean"?(b.boundary=4,b.storage=4):y.isVector2?(b.boundary=8,b.storage=8):y.isVector3||y.isColor?(b.boundary=16,b.storage=12):y.isVector4?(b.boundary=16,b.storage=16):y.isMatrix3?(b.boundary=48,b.storage=48):y.isMatrix4?(b.boundary=64,b.storage=64):y.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",y),b}function g(y){const b=y.target;b.removeEventListener("dispose",g);const v=o.indexOf(b.__bindingPointIndex);o.splice(v,1),n.deleteBuffer(r[b.id]),delete r[b.id],delete s[b.id]}function m(){for(const y in r)n.deleteBuffer(r[y]);o=[],r={},s={}}return{bind:l,update:c,dispose:m}}class Sf{constructor(e={}){const{canvas:t=Z1(),context:i=null,depth:r=!0,stencil:s=!1,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:u="default",failIfMajorPerformanceCaveat:f=!1,reverseDepthBuffer:h=!1}=e;this.isWebGLRenderer=!0;let d;if(i!==null){if(typeof WebGLRenderingContext<"u"&&i instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");d=i.getContextAttributes().alpha}else d=o;const p=new Uint32Array(4),_=new Int32Array(4);let g=null,m=null;const y=[],b=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=Nn,this.toneMapping=Zi,this.toneMappingExposure=1;const v=this;let E=!1,T=0,S=0,R=null,x=-1,M=null;const L=new gt,F=new gt;let V=null;const X=new Ce(0);let te=0,Z=t.width,ee=t.height,Q=1,de=null,be=null;const re=new gt(0,0,Z,ee),ye=new gt(0,0,Z,ee);let Ve=!1;const se=new Bc;let ge=!1,Me=!1;this.transmissionResolutionScale=1;const W=new Ye,ae=new Ye,ue=new k,le=new gt,Ue={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let I=!1;function D(){return R===null?Q:1}let w=i;function j(O,K){return t.getContext(O,K)}try{const O={alpha:!0,depth:r,stencil:s,antialias:a,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:u,failIfMajorPerformanceCaveat:f};if("setAttribute"in t&&t.setAttribute("data-engine",`three.js r${Dc}`),t.addEventListener("webglcontextlost",pe,!1),t.addEventListener("webglcontextrestored",Le,!1),t.addEventListener("webglcontextcreationerror",Ie,!1),w===null){const K="webgl2";if(w=j(K,O),w===null)throw j(K)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(O){throw console.error("THREE.WebGLRenderer: "+O.message),O}let G,q,P,N,z,A,C,B,U,H,Y,he,ce,xe,Be,me,Ae,He,qe,Ee,Ke,tt,Lt,$;function Re(){G=new mN(w),G.init(),tt=new sT(w,G),q=new lN(w,G,e,tt),P=new jU(w,G),q.reverseDepthBuffer&&h&&P.buffers.depth.setReversed(!0),N=new vN(w),z=new UU,A=new KU(w,G,P,z,q,tt,N),C=new uN(v),B=new pN(v),U=new EL(w),Lt=new oN(w,U),H=new gN(w,U,N,Lt),Y=new bN(w,H,U,N),qe=new yN(w,q,A),me=new cN(z),he=new NU(v,C,B,G,q,Lt,me),ce=new nF(v,z),xe=new kU,Be=new WU(G),He=new sN(v,C,B,P,Y,d,l),Ae=new qU(v,Y,q),$=new iF(w,N,q,P),Ee=new aN(w,G,N),Ke=new _N(w,G,N),N.programs=he.programs,v.capabilities=q,v.extensions=G,v.properties=z,v.renderLists=xe,v.shadowMap=Ae,v.state=P,v.info=N}Re();const oe=new eF(v,w);this.xr=oe,this.getContext=function(){return w},this.getContextAttributes=function(){return w.getContextAttributes()},this.forceContextLoss=function(){const O=G.get("WEBGL_lose_context");O&&O.loseContext()},this.forceContextRestore=function(){const O=G.get("WEBGL_lose_context");O&&O.restoreContext()},this.getPixelRatio=function(){return Q},this.setPixelRatio=function(O){O!==void 0&&(Q=O,this.setSize(Z,ee,!1))},this.getSize=function(O){return O.set(Z,ee)},this.setSize=function(O,K,ne=!0){if(oe.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}Z=O,ee=K,t.width=Math.floor(O*Q),t.height=Math.floor(K*Q),ne===!0&&(t.style.width=O+"px",t.style.height=K+"px"),this.setViewport(0,0,O,K)},this.getDrawingBufferSize=function(O){return O.set(Z*Q,ee*Q).floor()},this.setDrawingBufferSize=function(O,K,ne){Z=O,ee=K,Q=ne,t.width=Math.floor(O*ne),t.height=Math.floor(K*ne),this.setViewport(0,0,O,K)},this.getCurrentViewport=function(O){return O.copy(L)},this.getViewport=function(O){return O.copy(re)},this.setViewport=function(O,K,ne,ie){O.isVector4?re.set(O.x,O.y,O.z,O.w):re.set(O,K,ne,ie),P.viewport(L.copy(re).multiplyScalar(Q).round())},this.getScissor=function(O){return O.copy(ye)},this.setScissor=function(O,K,ne,ie){O.isVector4?ye.set(O.x,O.y,O.z,O.w):ye.set(O,K,ne,ie),P.scissor(F.copy(ye).multiplyScalar(Q).round())},this.getScissorTest=function(){return Ve},this.setScissorTest=function(O){P.setScissorTest(Ve=O)},this.setOpaqueSort=function(O){de=O},this.setTransparentSort=function(O){be=O},this.getClearColor=function(O){return O.copy(He.getClearColor())},this.setClearColor=function(){He.setClearColor(...arguments)},this.getClearAlpha=function(){return He.getClearAlpha()},this.setClearAlpha=function(){He.setClearAlpha(...arguments)},this.clear=function(O=!0,K=!0,ne=!0){let ie=0;if(O){let J=!1;if(R!==null){const _e=R.texture.format;J=_e===ld||_e===ad||_e===Nc}if(J){const _e=R.texture.type,Pe=_e===nr||_e===Nr||_e===Ea||_e===So||_e===rd||_e===sd,Oe=He.getClearColor(),Fe=He.getClearAlpha(),Ze=Oe.r,Je=Oe.g,Ge=Oe.b;Pe?(p[0]=Ze,p[1]=Je,p[2]=Ge,p[3]=Fe,w.clearBufferuiv(w.COLOR,0,p)):(_[0]=Ze,_[1]=Je,_[2]=Ge,_[3]=Fe,w.clearBufferiv(w.COLOR,0,_))}else ie|=w.COLOR_BUFFER_BIT}K&&(ie|=w.DEPTH_BUFFER_BIT),ne&&(ie|=w.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),w.clear(ie)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){t.removeEventListener("webglcontextlost",pe,!1),t.removeEventListener("webglcontextrestored",Le,!1),t.removeEventListener("webglcontextcreationerror",Ie,!1),He.dispose(),xe.dispose(),Be.dispose(),z.dispose(),C.dispose(),B.dispose(),Y.dispose(),Lt.dispose(),$.dispose(),he.dispose(),oe.dispose(),oe.removeEventListener("sessionstart",nv),oe.removeEventListener("sessionend",iv),Is.stop()};function pe(O){O.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),E=!0}function Le(){console.log("THREE.WebGLRenderer: Context Restored."),E=!1;const O=N.autoReset,K=Ae.enabled,ne=Ae.autoUpdate,ie=Ae.needsUpdate,J=Ae.type;Re(),N.autoReset=O,Ae.enabled=K,Ae.autoUpdate=ne,Ae.needsUpdate=ie,Ae.type=J}function Ie(O){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",O.statusMessage)}function st(O){const K=O.target;K.removeEventListener("dispose",st),Vt(K)}function Vt(O){vn(O),z.remove(O)}function vn(O){const K=z.get(O).programs;K!==void 0&&(K.forEach(function(ne){he.releaseProgram(ne)}),O.isShaderMaterial&&he.releaseShaderCache(O))}this.renderBufferDirect=function(O,K,ne,ie,J,_e){K===null&&(K=Ue);const Pe=J.isMesh&&J.matrixWorld.determinant()<0,Oe=FA(O,K,ne,ie,J);P.setMaterial(ie,Pe);let Fe=ne.index,Ze=1;if(ie.wireframe===!0){if(Fe=H.getWireframeAttribute(ne),Fe===void 0)return;Ze=2}const Je=ne.drawRange,Ge=ne.attributes.position;let pt=Je.start*Ze,bt=(Je.start+Je.count)*Ze;_e!==null&&(pt=Math.max(pt,_e.start*Ze),bt=Math.min(bt,(_e.start+_e.count)*Ze)),Fe!==null?(pt=Math.max(pt,0),bt=Math.min(bt,Fe.count)):Ge!=null&&(pt=Math.max(pt,0),bt=Math.min(bt,Ge.count));const qt=bt-pt;if(qt<0||qt===1/0)return;Lt.setup(J,ie,Oe,ne,Fe);let Ht,_t=Ee;if(Fe!==null&&(Ht=U.get(Fe),_t=Ke,_t.setIndex(Ht)),J.isMesh)ie.wireframe===!0?(P.setLineWidth(ie.wireframeLinewidth*D()),_t.setMode(w.LINES)):_t.setMode(w.TRIANGLES);else if(J.isLine){let We=ie.linewidth;We===void 0&&(We=1),P.setLineWidth(We*D()),J.isLineSegments?_t.setMode(w.LINES):J.isLineLoop?_t.setMode(w.LINE_LOOP):_t.setMode(w.LINE_STRIP)}else J.isPoints?_t.setMode(w.POINTS):J.isSprite&&_t.setMode(w.TRIANGLES);if(J.isBatchedMesh)if(J._multiDrawInstances!==null)eo("THREE.WebGLRenderer: renderMultiDrawInstances has been deprecated and will be removed in r184. Append to renderMultiDraw arguments and use indirection."),_t.renderMultiDrawInstances(J._multiDrawStarts,J._multiDrawCounts,J._multiDrawCount,J._multiDrawInstances);else if(G.get("WEBGL_multi_draw"))_t.renderMultiDraw(J._multiDrawStarts,J._multiDrawCounts,J._multiDrawCount);else{const We=J._multiDrawStarts,hn=J._multiDrawCounts,xt=J._multiDrawCount,Ti=Fe?U.get(Fe).bytesPerElement:1,Fo=z.get(ie).currentProgram.getUniforms();for(let ti=0;ti{function _e(){if(ie.forEach(function(Pe){z.get(Pe).currentProgram.isReady()&&ie.delete(Pe)}),ie.size===0){J(O);return}setTimeout(_e,10)}G.get("KHR_parallel_shader_compile")!==null?_e():setTimeout(_e,10)})};let Ei=null;function or(O){Ei&&Ei(O)}function nv(){Is.stop()}function iv(){Is.start()}const Is=new eT;Is.setAnimationLoop(or),typeof self<"u"&&Is.setContext(self),this.setAnimationLoop=function(O){Ei=O,oe.setAnimationLoop(O),O===null?Is.stop():Is.start()},oe.addEventListener("sessionstart",nv),oe.addEventListener("sessionend",iv),this.render=function(O,K){if(K!==void 0&&K.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(E===!0)return;if(O.matrixWorldAutoUpdate===!0&&O.updateMatrixWorld(),K.parent===null&&K.matrixWorldAutoUpdate===!0&&K.updateMatrixWorld(),oe.enabled===!0&&oe.isPresenting===!0&&(oe.cameraAutoUpdate===!0&&oe.updateCamera(K),K=oe.getCamera()),O.isScene===!0&&O.onBeforeRender(v,O,K,R),m=Be.get(O,b.length),m.init(K),b.push(m),ae.multiplyMatrices(K.projectionMatrix,K.matrixWorldInverse),se.setFromProjectionMatrix(ae),Me=this.localClippingEnabled,ge=me.init(this.clippingPlanes,Me),g=xe.get(O,y.length),g.init(),y.push(g),oe.enabled===!0&&oe.isPresenting===!0){const _e=v.xr.getDepthSensingMesh();_e!==null&&sp(_e,K,-1/0,v.sortObjects)}sp(O,K,0,v.sortObjects),g.finish(),v.sortObjects===!0&&g.sort(de,be),I=oe.enabled===!1||oe.isPresenting===!1||oe.hasDepthSensing()===!1,I&&He.addToRenderList(g,O),this.info.render.frame++,ge===!0&&me.beginShadows();const ne=m.state.shadowsArray;Ae.render(ne,O,K),ge===!0&&me.endShadows(),this.info.autoReset===!0&&this.info.reset();const ie=g.opaque,J=g.transmissive;if(m.setupLights(),K.isArrayCamera){const _e=K.cameras;if(J.length>0)for(let Pe=0,Oe=_e.length;Pe0&&sv(ie,J,O,K),I&&He.render(O),rv(g,O,K);R!==null&&S===0&&(A.updateMultisampleRenderTarget(R),A.updateRenderTargetMipmap(R)),O.isScene===!0&&O.onAfterRender(v,O,K),Lt.resetDefaultState(),x=-1,M=null,b.pop(),b.length>0?(m=b[b.length-1],ge===!0&&me.setGlobalState(v.clippingPlanes,m.state.camera)):m=null,y.pop(),y.length>0?g=y[y.length-1]:g=null};function sp(O,K,ne,ie){if(O.visible===!1)return;if(O.layers.test(K.layers)){if(O.isGroup)ne=O.renderOrder;else if(O.isLOD)O.autoUpdate===!0&&O.update(K);else if(O.isLight)m.pushLight(O),O.castShadow&&m.pushShadow(O);else if(O.isSprite){if(!O.frustumCulled||se.intersectsSprite(O)){ie&&le.setFromMatrixPosition(O.matrixWorld).applyMatrix4(ae);const Pe=Y.update(O),Oe=O.material;Oe.visible&&g.push(O,Pe,Oe,ne,le.z,null)}}else if((O.isMesh||O.isLine||O.isPoints)&&(!O.frustumCulled||se.intersectsObject(O))){const Pe=Y.update(O),Oe=O.material;if(ie&&(O.boundingSphere!==void 0?(O.boundingSphere===null&&O.computeBoundingSphere(),le.copy(O.boundingSphere.center)):(Pe.boundingSphere===null&&Pe.computeBoundingSphere(),le.copy(Pe.boundingSphere.center)),le.applyMatrix4(O.matrixWorld).applyMatrix4(ae)),Array.isArray(Oe)){const Fe=Pe.groups;for(let Ze=0,Je=Fe.length;Ze0&&eu(J,K,ne),_e.length>0&&eu(_e,K,ne),Pe.length>0&&eu(Pe,K,ne),P.buffers.depth.setTest(!0),P.buffers.depth.setMask(!0),P.buffers.color.setMask(!0),P.setPolygonOffset(!1)}function sv(O,K,ne,ie){if((ne.isScene===!0?ne.overrideMaterial:null)!==null)return;m.state.transmissionRenderTarget[ie.id]===void 0&&(m.state.transmissionRenderTarget[ie.id]=new ir(1,1,{generateMipmaps:!0,type:G.has("EXT_color_buffer_half_float")||G.has("EXT_color_buffer_float")?Fa:nr,minFilter:ji,samples:4,stencilBuffer:s,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:ft.workingColorSpace}));const _e=m.state.transmissionRenderTarget[ie.id],Pe=ie.viewport||L;_e.setSize(Pe.z*v.transmissionResolutionScale,Pe.w*v.transmissionResolutionScale);const Oe=v.getRenderTarget();v.setRenderTarget(_e),v.getClearColor(X),te=v.getClearAlpha(),te<1&&v.setClearColor(16777215,.5),v.clear(),I&&He.render(ne);const Fe=v.toneMapping;v.toneMapping=Zi;const Ze=ie.viewport;if(ie.viewport!==void 0&&(ie.viewport=void 0),m.setupLightsView(ie),ge===!0&&me.setGlobalState(v.clippingPlanes,ie),eu(O,ne,ie),A.updateMultisampleRenderTarget(_e),A.updateRenderTargetMipmap(_e),G.has("WEBGL_multisampled_render_to_texture")===!1){let Je=!1;for(let Ge=0,pt=K.length;Ge0),Ge=!!ne.morphAttributes.position,pt=!!ne.morphAttributes.normal,bt=!!ne.morphAttributes.color;let qt=Zi;ie.toneMapped&&(R===null||R.isXRRenderTarget===!0)&&(qt=v.toneMapping);const Ht=ne.morphAttributes.position||ne.morphAttributes.normal||ne.morphAttributes.color,_t=Ht!==void 0?Ht.length:0,We=z.get(ie),hn=m.state.lights;if(ge===!0&&(Me===!0||O!==M)){const Cn=O===M&&ie.id===x;me.setState(ie,O,Cn)}let xt=!1;ie.version===We.__version?(We.needsLights&&We.lightsStateVersion!==hn.state.version||We.outputColorSpace!==Oe||J.isBatchedMesh&&We.batching===!1||!J.isBatchedMesh&&We.batching===!0||J.isBatchedMesh&&We.batchingColor===!0&&J.colorTexture===null||J.isBatchedMesh&&We.batchingColor===!1&&J.colorTexture!==null||J.isInstancedMesh&&We.instancing===!1||!J.isInstancedMesh&&We.instancing===!0||J.isSkinnedMesh&&We.skinning===!1||!J.isSkinnedMesh&&We.skinning===!0||J.isInstancedMesh&&We.instancingColor===!0&&J.instanceColor===null||J.isInstancedMesh&&We.instancingColor===!1&&J.instanceColor!==null||J.isInstancedMesh&&We.instancingMorph===!0&&J.morphTexture===null||J.isInstancedMesh&&We.instancingMorph===!1&&J.morphTexture!==null||We.envMap!==Fe||ie.fog===!0&&We.fog!==_e||We.numClippingPlanes!==void 0&&(We.numClippingPlanes!==me.numPlanes||We.numIntersection!==me.numIntersection)||We.vertexAlphas!==Ze||We.vertexTangents!==Je||We.morphTargets!==Ge||We.morphNormals!==pt||We.morphColors!==bt||We.toneMapping!==qt||We.morphTargetsCount!==_t)&&(xt=!0):(xt=!0,We.__version=ie.version);let Ti=We.currentProgram;xt===!0&&(Ti=tu(ie,K,J));let Fo=!1,ti=!1,$a=!1;const Nt=Ti.getUniforms(),ci=We.uniforms;if(P.useProgram(Ti.program)&&(Fo=!0,ti=!0,$a=!0),ie.id!==x&&(x=ie.id,ti=!0),Fo||M!==O){P.buffers.depth.getReversed()?(W.copy(O.projectionMatrix),$3(W),q3(W),Nt.setValue(w,"projectionMatrix",W)):Nt.setValue(w,"projectionMatrix",O.projectionMatrix),Nt.setValue(w,"viewMatrix",O.matrixWorldInverse);const Wn=Nt.map.cameraPosition;Wn!==void 0&&Wn.setValue(w,ue.setFromMatrixPosition(O.matrixWorld)),q.logarithmicDepthBuffer&&Nt.setValue(w,"logDepthBufFC",2/(Math.log(O.far+1)/Math.LN2)),(ie.isMeshPhongMaterial||ie.isMeshToonMaterial||ie.isMeshLambertMaterial||ie.isMeshBasicMaterial||ie.isMeshStandardMaterial||ie.isShaderMaterial)&&Nt.setValue(w,"isOrthographic",O.isOrthographicCamera===!0),M!==O&&(M=O,ti=!0,$a=!0)}if(J.isSkinnedMesh){Nt.setOptional(w,J,"bindMatrix"),Nt.setOptional(w,J,"bindMatrixInverse");const Cn=J.skeleton;Cn&&(Cn.boneTexture===null&&Cn.computeBoneTexture(),Nt.setValue(w,"boneTexture",Cn.boneTexture,A))}J.isBatchedMesh&&(Nt.setOptional(w,J,"batchingTexture"),Nt.setValue(w,"batchingTexture",J._matricesTexture,A),Nt.setOptional(w,J,"batchingIdTexture"),Nt.setValue(w,"batchingIdTexture",J._indirectTexture,A),Nt.setOptional(w,J,"batchingColorTexture"),J._colorsTexture!==null&&Nt.setValue(w,"batchingColorTexture",J._colorsTexture,A));const ui=ne.morphAttributes;if((ui.position!==void 0||ui.normal!==void 0||ui.color!==void 0)&&qe.update(J,ne,Ti),(ti||We.receiveShadow!==J.receiveShadow)&&(We.receiveShadow=J.receiveShadow,Nt.setValue(w,"receiveShadow",J.receiveShadow)),ie.isMeshGouraudMaterial&&ie.envMap!==null&&(ci.envMap.value=Fe,ci.flipEnvMap.value=Fe.isCubeTexture&&Fe.isRenderTargetTexture===!1?-1:1),ie.isMeshStandardMaterial&&ie.envMap===null&&K.environment!==null&&(ci.envMapIntensity.value=K.environmentIntensity),ti&&(Nt.setValue(w,"toneMappingExposure",v.toneMappingExposure),We.needsLights&&kA(ci,$a),_e&&ie.fog===!0&&ce.refreshFogUniforms(ci,_e),ce.refreshMaterialUniforms(ci,ie,Q,ee,m.state.transmissionRenderTarget[O.id]),Mf.upload(w,av(We),ci,A)),ie.isShaderMaterial&&ie.uniformsNeedUpdate===!0&&(Mf.upload(w,av(We),ci,A),ie.uniformsNeedUpdate=!1),ie.isSpriteMaterial&&Nt.setValue(w,"center",J.center),Nt.setValue(w,"modelViewMatrix",J.modelViewMatrix),Nt.setValue(w,"normalMatrix",J.normalMatrix),Nt.setValue(w,"modelMatrix",J.matrixWorld),ie.isShaderMaterial||ie.isRawShaderMaterial){const Cn=ie.uniformsGroups;for(let Wn=0,op=Cn.length;Wn0&&A.useMultisampledRTT(O)===!1?J=z.get(O).__webglMultisampledFramebuffer:Array.isArray(Je)?J=Je[ne]:J=Je,L.copy(O.viewport),F.copy(O.scissor),V=O.scissorTest}else L.copy(re).multiplyScalar(Q).floor(),F.copy(ye).multiplyScalar(Q).floor(),V=Ve;if(ne!==0&&(J=zA),P.bindFramebuffer(w.FRAMEBUFFER,J)&&ie&&P.drawBuffers(O,J),P.viewport(L),P.scissor(F),P.setScissorTest(V),_e){const Fe=z.get(O.texture);w.framebufferTexture2D(w.FRAMEBUFFER,w.COLOR_ATTACHMENT0,w.TEXTURE_CUBE_MAP_POSITIVE_X+K,Fe.__webglTexture,ne)}else if(Pe){const Fe=z.get(O.texture),Ze=K;w.framebufferTextureLayer(w.FRAMEBUFFER,w.COLOR_ATTACHMENT0,Fe.__webglTexture,ne,Ze)}else if(O!==null&&ne!==0){const Fe=z.get(O.texture);w.framebufferTexture2D(w.FRAMEBUFFER,w.COLOR_ATTACHMENT0,w.TEXTURE_2D,Fe.__webglTexture,ne)}x=-1},this.readRenderTargetPixels=function(O,K,ne,ie,J,_e,Pe){if(!(O&&O.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Oe=z.get(O).__webglFramebuffer;if(O.isWebGLCubeRenderTarget&&Pe!==void 0&&(Oe=Oe[Pe]),Oe){P.bindFramebuffer(w.FRAMEBUFFER,Oe);try{const Fe=O.texture,Ze=Fe.format,Je=Fe.type;if(!q.textureFormatReadable(Ze)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!q.textureTypeReadable(Je)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}K>=0&&K<=O.width-ie&&ne>=0&&ne<=O.height-J&&w.readPixels(K,ne,ie,J,tt.convert(Ze),tt.convert(Je),_e)}finally{const Fe=R!==null?z.get(R).__webglFramebuffer:null;P.bindFramebuffer(w.FRAMEBUFFER,Fe)}}},this.readRenderTargetPixelsAsync=async function(O,K,ne,ie,J,_e,Pe){if(!(O&&O.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Oe=z.get(O).__webglFramebuffer;if(O.isWebGLCubeRenderTarget&&Pe!==void 0&&(Oe=Oe[Pe]),Oe){const Fe=O.texture,Ze=Fe.format,Je=Fe.type;if(!q.textureFormatReadable(Ze))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!q.textureTypeReadable(Je))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(K>=0&&K<=O.width-ie&&ne>=0&&ne<=O.height-J){P.bindFramebuffer(w.FRAMEBUFFER,Oe);const Ge=w.createBuffer();w.bindBuffer(w.PIXEL_PACK_BUFFER,Ge),w.bufferData(w.PIXEL_PACK_BUFFER,_e.byteLength,w.STREAM_READ),w.readPixels(K,ne,ie,J,tt.convert(Ze),tt.convert(Je),0);const pt=R!==null?z.get(R).__webglFramebuffer:null;P.bindFramebuffer(w.FRAMEBUFFER,pt);const bt=w.fenceSync(w.SYNC_GPU_COMMANDS_COMPLETE,0);return w.flush(),await X3(w,bt,4),w.bindBuffer(w.PIXEL_PACK_BUFFER,Ge),w.getBufferSubData(w.PIXEL_PACK_BUFFER,0,_e),w.deleteBuffer(Ge),w.deleteSync(bt),_e}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")}},this.copyFramebufferToTexture=function(O,K=null,ne=0){O.isTexture!==!0&&(eo("WebGLRenderer: copyFramebufferToTexture function signature has changed."),K=arguments[0]||null,O=arguments[1]);const ie=Math.pow(2,-ne),J=Math.floor(O.image.width*ie),_e=Math.floor(O.image.height*ie),Pe=K!==null?K.x:0,Oe=K!==null?K.y:0;A.setTexture2D(O,0),w.copyTexSubImage2D(w.TEXTURE_2D,ne,0,0,Pe,Oe,J,_e),P.unbindTexture()};const VA=w.createFramebuffer(),HA=w.createFramebuffer();this.copyTextureToTexture=function(O,K,ne=null,ie=null,J=0,_e=null){O.isTexture!==!0&&(eo("WebGLRenderer: copyTextureToTexture function signature has changed."),ie=arguments[0]||null,O=arguments[1],K=arguments[2],_e=arguments[3]||0,ne=null),_e===null&&(J!==0?(eo("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),_e=J,J=0):_e=0);let Pe,Oe,Fe,Ze,Je,Ge,pt,bt,qt;const Ht=O.isCompressedTexture?O.mipmaps[_e]:O.image;if(ne!==null)Pe=ne.max.x-ne.min.x,Oe=ne.max.y-ne.min.y,Fe=ne.isBox3?ne.max.z-ne.min.z:1,Ze=ne.min.x,Je=ne.min.y,Ge=ne.isBox3?ne.min.z:0;else{const ui=Math.pow(2,-J);Pe=Math.floor(Ht.width*ui),Oe=Math.floor(Ht.height*ui),O.isDataArrayTexture?Fe=Ht.depth:O.isData3DTexture?Fe=Math.floor(Ht.depth*ui):Fe=1,Ze=0,Je=0,Ge=0}ie!==null?(pt=ie.x,bt=ie.y,qt=ie.z):(pt=0,bt=0,qt=0);const _t=tt.convert(K.format),We=tt.convert(K.type);let hn;K.isData3DTexture?(A.setTexture3D(K,0),hn=w.TEXTURE_3D):K.isDataArrayTexture||K.isCompressedArrayTexture?(A.setTexture2DArray(K,0),hn=w.TEXTURE_2D_ARRAY):(A.setTexture2D(K,0),hn=w.TEXTURE_2D),w.pixelStorei(w.UNPACK_FLIP_Y_WEBGL,K.flipY),w.pixelStorei(w.UNPACK_PREMULTIPLY_ALPHA_WEBGL,K.premultiplyAlpha),w.pixelStorei(w.UNPACK_ALIGNMENT,K.unpackAlignment);const xt=w.getParameter(w.UNPACK_ROW_LENGTH),Ti=w.getParameter(w.UNPACK_IMAGE_HEIGHT),Fo=w.getParameter(w.UNPACK_SKIP_PIXELS),ti=w.getParameter(w.UNPACK_SKIP_ROWS),$a=w.getParameter(w.UNPACK_SKIP_IMAGES);w.pixelStorei(w.UNPACK_ROW_LENGTH,Ht.width),w.pixelStorei(w.UNPACK_IMAGE_HEIGHT,Ht.height),w.pixelStorei(w.UNPACK_SKIP_PIXELS,Ze),w.pixelStorei(w.UNPACK_SKIP_ROWS,Je),w.pixelStorei(w.UNPACK_SKIP_IMAGES,Ge);const Nt=O.isDataArrayTexture||O.isData3DTexture,ci=K.isDataArrayTexture||K.isData3DTexture;if(O.isDepthTexture){const ui=z.get(O),Cn=z.get(K),Wn=z.get(ui.__renderTarget),op=z.get(Cn.__renderTarget);P.bindFramebuffer(w.READ_FRAMEBUFFER,Wn.__webglFramebuffer),P.bindFramebuffer(w.DRAW_FRAMEBUFFER,op.__webglFramebuffer);for(let Ls=0;Ls{n.delete(s)};return{on:s=>{n.add(s);const o=()=>e(s);return vs(o),{off:o}},off:e,trigger:(...s)=>Promise.all(Array.from(n).map(o=>o(...s))),clear:()=>{n.clear()}}}const sm=new WeakMap,sF=(...n)=>{var e;const t=n[0],i=(e=wn())==null?void 0:e.proxy;if(i==null&&!Cc())throw new Error("injectLocal must be called in setup");return i&&sm.has(i)&&t in sm.get(i)?sm.get(i)[t]:En(...n)},Sg=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const oF=n=>typeof n<"u",aF=n=>n!=null,lF=Object.prototype.toString,cF=n=>lF.call(n)==="[object Object]",Eg=()=>{};function uF(n,e){function t(...i){return new Promise((r,s)=>{Promise.resolve(n(()=>e.apply(this,i),{fn:e,thisArg:this,args:i})).then(r).catch(s)})}return t}function fF(n,e={}){let t,i,r=Eg;const s=l=>{clearTimeout(l),r(),r=Eg};let o;return l=>{const c=it(n),u=it(e.maxWait);return t&&s(t),c<=0||u!==void 0&&u<=0?(i&&(s(i),i=null),Promise.resolve(l())):new Promise((f,h)=>{r=e.rejectOnCancel?h:f,o=l,u&&!i&&(i=setTimeout(()=>{t&&s(t),i=null,f(o())},u)),t=setTimeout(()=>{i&&s(i),i=null,f(l())},c)})}}function Lb(n){return n.endsWith("rem")?Number.parseFloat(n)*16:Number.parseFloat(n)}function hF(n,e,t=!1){return e.reduce((i,r)=>(r in n&&(!t||n[r]!==void 0)&&(i[r]=n[r]),i),{})}function dF(n){return wn()}function Il(n){return Array.isArray(n)?n:[n]}function pF(n,e=200,t={}){return uF(fF(e,t),n)}function Db(n,e=200,t={}){const i=et(n.value),r=pF(()=>{i.value=n.value},e,t);return Xe(n,()=>r()),i}function mF(n,e={}){if(!Pt(n))return oS(n);const t=Array.isArray(n.value)?Array.from({length:n.value.length}):{};for(const i in n.value)t[i]=S0(()=>({get(){return n.value[i]},set(r){var s;if((s=it(e.replaceRef))!=null?s:!0)if(Array.isArray(n.value)){const a=[...n.value];a[i]=r,n.value=a}else{const a={...n.value,[i]:r};Object.setPrototypeOf(a,Object.getPrototypeOf(n.value)),n.value=a}else n.value[i]=r}}));return t}const dn=it;function S_(n,e=!0,t){dF()?Hn(n,t):e?n():Ss(n)}function gF(n,e=1e3,t={}){const{immediate:i=!0,immediateCallback:r=!1}=t;let s=null;const o=De(!1);function a(){s&&(clearInterval(s),s=null)}function l(){o.value=!1,a()}function c(){const u=it(e);u<=0||(o.value=!0,r&&n(),a(),o.value&&(s=setInterval(n,u)))}if(i&&Sg&&c(),Pt(e)||typeof e=="function"){const u=Xe(e,()=>{o.value&&Sg&&c()});vs(u)}return vs(l),{isActive:o,pause:l,resume:c}}function oT(n,e,t){return Xe(n,e,{...t,immediate:!0})}const zr=Sg?window:void 0;function Li(n){var e;const t=it(n);return(e=t==null?void 0:t.$el)!=null?e:t}function Co(...n){const e=[],t=()=>{e.forEach(a=>a()),e.length=0},i=(a,l,c,u)=>(a.addEventListener(l,c,u),()=>a.removeEventListener(l,c,u)),r=Se(()=>{const a=Il(it(n[0])).filter(l=>l!=null);return a.every(l=>typeof l!="string")?a:void 0}),s=oT(()=>{var a,l;return[(l=(a=r.value)==null?void 0:a.map(c=>Li(c)))!=null?l:[zr].filter(c=>c!=null),Il(it(r.value?n[1]:n[0])),Il(Ot(r.value?n[2]:n[1])),it(r.value?n[3]:n[2])]},([a,l,c,u])=>{if(t(),!(a!=null&&a.length)||!(l!=null&&l.length)||!(c!=null&&c.length))return;const f=cF(u)?{...u}:u;e.push(...a.flatMap(h=>l.flatMap(d=>c.map(p=>i(h,d,p,f)))))},{flush:"post"}),o=()=>{s(),t()};return vs(t),o}function _F(){const n=De(!1),e=wn();return e&&Hn(()=>{n.value=!0},e),n}function Fd(n){const e=_F();return Se(()=>(e.value,!!n()))}function vF(n,e,t={}){const{window:i=zr,...r}=t;let s;const o=Fd(()=>i&&"MutationObserver"in i),a=()=>{s&&(s.disconnect(),s=void 0)},l=Se(()=>{const h=it(n),d=Il(h).map(Li).filter(aF);return new Set(d)}),c=Xe(()=>l.value,h=>{a(),o.value&&h.size&&(s=new MutationObserver(e),h.forEach(d=>s.observe(d,r)))},{immediate:!0,flush:"post"}),u=()=>s==null?void 0:s.takeRecords(),f=()=>{c(),a()};return vs(f),{isSupported:o,stop:f,takeRecords:u}}function E_(n,e={}){const{immediate:t=!0,fpsLimit:i=void 0,window:r=zr,once:s=!1}=e,o=De(!1),a=Se(()=>i?1e3/it(i):null);let l=0,c=null;function u(d){if(!o.value||!r)return;l||(l=d);const p=d-l;if(a.value&&pt&&"matchMedia"in t&&typeof t.matchMedia=="function"),s=De(typeof i=="number"),o=De(),a=De(!1),l=c=>{a.value=c.matches};return Rc(()=>{if(s.value){s.value=!r.value;const c=it(n).split(",");a.value=c.some(u=>{const f=u.includes("not all"),h=u.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),d=u.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let p=!!(h||d);return h&&p&&(p=i>=Lb(h[1])),d&&p&&(p=i<=Lb(d[1])),f?!p:p});return}r.value&&(o.value=t.matchMedia(it(n)),a.value=o.value.matches)}),Co(o,"change",l,{passive:!0}),Se(()=>a.value)}function xF(n){return JSON.parse(JSON.stringify(n))}function MF(n={}){const{window:e=zr}=n,t=De(1),i=aT(()=>`(resolution: ${t.value}dppx)`,n);let r=Eg;return e&&(r=oT(i,()=>t.value=e.devicePixelRatio)),{pixelRatio:xi(t),stop:r}}function lT(n,e,t={}){const{window:i=zr,...r}=t;let s;const o=Fd(()=>i&&"ResizeObserver"in i),a=()=>{s&&(s.disconnect(),s=void 0)},l=Se(()=>{const f=it(n);return Array.isArray(f)?f.map(h=>Li(h)):[Li(f)]}),c=Xe(l,f=>{if(a(),o.value&&i){s=new ResizeObserver(e);for(const h of f)h&&s.observe(h,r)}},{immediate:!0,flush:"post"}),u=()=>{a(),c()};return vs(u),{isSupported:o,stop:u}}function SF(n,e={}){const{reset:t=!0,windowResize:i=!0,windowScroll:r=!0,immediate:s=!0,updateTiming:o="sync"}=e,a=De(0),l=De(0),c=De(0),u=De(0),f=De(0),h=De(0),d=De(0),p=De(0);function _(){const m=Li(n);if(!m){t&&(a.value=0,l.value=0,c.value=0,u.value=0,f.value=0,h.value=0,d.value=0,p.value=0);return}const y=m.getBoundingClientRect();a.value=y.height,l.value=y.bottom,c.value=y.left,u.value=y.right,f.value=y.top,h.value=y.width,d.value=y.x,p.value=y.y}function g(){o==="sync"?_():o==="next-frame"&&requestAnimationFrame(()=>_())}return lT(n,g),Xe(()=>Li(n),m=>!m&&g()),vF(n,g,{attributeFilter:["style","class"]}),r&&Co("scroll",g,{capture:!0,passive:!0}),i&&Co("resize",g,{passive:!0}),S_(()=>{s&&g()}),{height:a,bottom:l,left:c,right:u,top:f,width:h,x:d,y:p,update:g}}function EF(n,e={width:0,height:0},t={}){const{window:i=zr,box:r="content-box"}=t,s=Se(()=>{var f,h;return(h=(f=Li(n))==null?void 0:f.namespaceURI)==null?void 0:h.includes("svg")}),o=De(e.width),a=De(e.height),{stop:l}=lT(n,([f])=>{const h=r==="border-box"?f.borderBoxSize:r==="content-box"?f.contentBoxSize:f.devicePixelContentBoxSize;if(i&&s.value){const d=Li(n);if(d){const p=d.getBoundingClientRect();o.value=p.width,a.value=p.height}}else if(h){const d=Il(h);o.value=d.reduce((p,{inlineSize:_})=>p+_,0),a.value=d.reduce((p,{blockSize:_})=>p+_,0)}else o.value=f.contentRect.width,a.value=f.contentRect.height},t);S_(()=>{const f=Li(n);f&&(o.value="offsetWidth"in f?f.offsetWidth:e.width,a.value="offsetHeight"in f?f.offsetHeight:e.height)});const c=Xe(()=>Li(n),f=>{o.value=f?e.width:0,a.value=f?e.height:0});function u(){l(),c()}return{width:o,height:a,stop:u}}function TF(n){var e;const t=De(0);if(typeof performance>"u")return t;const i=(e=n==null?void 0:n.every)!=null?e:10;let r=performance.now(),s=0;return E_(()=>{if(s+=1,s>=i){const o=performance.now(),a=o-r;t.value=Math.round(1e3/(a/s)),r=o,s=0}}),t}function wF(n={}){const e=et(),t=Fd(()=>typeof performance<"u"&&"memory"in performance);if(t.value){const{interval:i=1e3}=n;gF(()=>{e.value=performance.memory},i,{immediate:n.immediate,immediateCallback:n.immediateCallback})}return{isSupported:t,memory:e}}const cT={x:0,y:0,pointerId:0,pressure:0,tiltX:0,tiltY:0,width:0,height:0,twist:0,pointerType:null},AF=Object.keys(cT);function CF(n={}){const{target:e=zr}=n,t=De(!1),i=et(n.initialValue||{});Object.assign(i.value,cT,i.value);const r=s=>{t.value=!0,!(n.pointerTypes&&!n.pointerTypes.includes(s.pointerType))&&(i.value=hF(s,AF,!1))};if(e){const s={passive:!0};Co(e,["pointerdown","pointermove","pointerup"],r,s),Co(e,"pointerleave",()=>t.value=!1,s)}return{...mF(i),isInside:t}}function uG(n,e,t,i={}){var r,s,o;const{clone:a=!1,passive:l=!1,eventName:c,deep:u=!1,defaultValue:f,shouldEmit:h}=i,d=wn(),p=t||(d==null?void 0:d.emit)||((r=d==null?void 0:d.$emit)==null?void 0:r.bind(d))||((o=(s=d==null?void 0:d.proxy)==null?void 0:s.$emit)==null?void 0:o.bind(d==null?void 0:d.proxy));let _=c;_=_||`update:${e.toString()}`;const g=b=>a?typeof a=="function"?a(b):xF(b):b,m=()=>oF(n[e])?g(n[e]):f,y=b=>{h?h(b)&&p(_,b):p(_,b)};if(l){const b=m(),v=et(b);let E=!1;return Xe(()=>n[e],T=>{E||(E=!0,v.value=g(T),Ss(()=>E=!1))}),Xe(v,T=>{!E&&(T!==n[e]||u)&&y(T)},{deep:u}),v}else return Se({get(){return m()},set(b){y(b)}})}function RF(n={}){const{window:e=zr,initialWidth:t=Number.POSITIVE_INFINITY,initialHeight:i=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:s=!0,type:o="inner"}=n,a=De(t),l=De(i),c=()=>{if(e)if(o==="outer")a.value=e.outerWidth,l.value=e.outerHeight;else if(o==="visual"&&e.visualViewport){const{width:f,height:h,scale:d}=e.visualViewport;a.value=Math.round(f*d),l.value=Math.round(h*d)}else s?(a.value=e.innerWidth,l.value=e.innerHeight):(a.value=e.document.documentElement.clientWidth,l.value=e.document.documentElement.clientHeight)};c(),S_(c);const u={passive:!0};if(Co("resize",c,u),e&&o==="visual"&&e.visualViewport&&Co(e.visualViewport,"resize",c,u),r){const f=aT("(orientation: portrait)");Xe(f,()=>c())}return{width:a,height:l}}var PF=Object.defineProperty,IF=(n,e,t)=>e in n?PF(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Ob=(n,e,t)=>IF(n,typeof e!="symbol"?e+"":e,t);const LF="@tresjs/core",DF="module",OF="4.3.3",NF="pnpm@9.15.5",UF="Declarative ThreeJS using Vue Components",FF="Alvaro Saburido (https://github.com/alvarosabu/)",kF="MIT",BF={type:"git",url:"git+https://github.com/Tresjs/tres.git"},zF=["vue","3d","threejs","three","threejs-vue"],VF=!1,HF={".":{types:"./dist/index.d.ts",import:"./dist/tres.js",require:"./dist/tres.umd.cjs"},"./components":{types:"./dist/src/components/index.d.ts"},"./composables":{types:"./dist/src/composables/index.d.ts"},"./types":{types:"./dist/src/types/index.d.ts"},"./utils":{types:"./dist/src/utils/index.d.ts"},"./*":"./*"},GF="./dist/tres.js",WF="./dist/tres.js",XF="./dist/index.d.ts",$F=["*.d.ts","dist"],qF={access:"public"},YF={dev:"pnpm --filter='./playground/vue' dev","dev:nuxt":"pnpm --filter='./playground/nuxt' dev",build:"vite build",test:"vitest","test:ci":"vitest run","test:ui":"vitest --ui --coverage.enabled=true",release:"release-it",coverage:"vitest run --coverage",lint:"eslint .","lint:fix":"eslint . --fix","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:serve":"vitepress serve docs","docs:preview":"vitepress preview docs","docs:contributors":"esno scripts/update-contributors.ts"},jF={three:">=0.133",vue:">=3.4"},KF={"@alvarosabu/utils":"^3.2.0","@vue/devtools-api":"^6.6.3","@vueuse/core":"^12.5.0"},ZF={"@release-it/conventional-changelog":"^10.0.0","@stackblitz/sdk":"^1.11.0","@tresjs/cientos":"4.1.0","@tresjs/eslint-config":"^1.4.0","@types/three":"^0.173.0","@typescript-eslint/eslint-plugin":"^8.23.0","@typescript-eslint/parser":"^8.23.0","@vitejs/plugin-vue":"^5.2.1","@vitest/coverage-c8":"^0.33.0","@vitest/coverage-v8":"^3.0.5","@vitest/ui":"^3.0.5","@vue/test-utils":"^2.4.6",eslint:"^9.19.0","eslint-plugin-vue":"^9.32.0",esno:"^4.8.0",gsap:"^3.12.7",jsdom:"^26.0.0",kolorist:"^1.8.0",ohmyfetch:"^0.4.21",pathe:"^2.0.2","release-it":"^18.1.2","rollup-plugin-analyzer":"^4.0.0","rollup-plugin-copy":"^3.5.0","rollup-plugin-visualizer":"^5.14.0",sponsorkit:"^16.3.0",three:"^0.173.0",unocss:"^65.4.3",unplugin:"^2.1.2","unplugin-vue-components":"^28.0.0",vite:"^6.1.0","vite-plugin-banner":"^0.8.0","vite-plugin-dts":"4.5.0","vite-plugin-inspect":"^10.1.0","vite-plugin-require-transform":"^1.0.21","vite-svg-loader":"^5.1.0",vitepress:"1.6.3",vitest:"3.0.5",vue:"3.5.13","vue-demi":"^0.14.10"},JF={name:LF,type:DF,version:OF,packageManager:NF,description:UF,author:FF,license:kF,repository:BF,keywords:zF,sideEffects:VF,exports:HF,main:GF,module:WF,types:XF,files:$F,publishConfig:qF,scripts:YF,peerDependencies:jF,dependencies:KF,devDependencies:ZF};class QF extends $t{constructor(...e){super(...e),Ob(this,"type","HightlightMesh"),Ob(this,"createTime"),this.createTime=Date.now()}onBeforeRender(){const e=(Date.now()-this.createTime)/1e3,t=1+.07*Math.sin(2.5*e);this.scale.set(t,t,t)}}function Tg(n){return typeof n>"u"}function Th(n){return Array.isArray(n)}function ek(n){return typeof n=="number"}function uT(n){return typeof n=="string"}function so(n){return typeof n=="function"}function Vr(n){return n===Object(n)&&!Th(n)&&!so(n)}function cs(n){return Vr(n)&&"isObject3D"in n&&!!n.isObject3D}function Nb(n){return Vr(n)&&"isCamera"in n&&!!n.isCamera}function tk(n){return Vr(n)&&"isBufferGeometry"in n&&!!n.isBufferGeometry}function nk(n){return Vr(n)&&"isMaterial"in n&&!!n.isMaterial}function ik(n){return Vr(n)&&"isLight"in n&&!!n.isLight}function rk(n){return Vr(n)&&"isFog"in n&&!!n.isFog}function sk(n){return Vr(n)&&"isScene"in n&&!!n.isScene}function Qu(n){return cs(n)||tk(n)||nk(n)||rk(n)}function ok(n){return Vr(n)&&!!n.isPrimitive}const fT=(n,e)=>{for(const t of Object.keys(e))e[t]instanceof Object&&Object.assign(e[t],fT(n[t],e[t]));return Object.assign(n||{},e),n},ak="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot",lk=fk(ak);function Ub(n){return n&&n.nodeType===1}function ef(n){return n.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}const ck=/\B([A-Z])/g;function uk(n){return n.replace(ck,"-$1").toLowerCase()}function fk(n,e){const t=Object.create(null),i=n.split(",");for(let r=0;r!!t[r.toLowerCase()]:r=>!!t[r]}const Fb=(n,e)=>{if(!e)return;const t=Array.isArray(e)?e:e.match(/([^[.\]])+/g);return t==null?void 0:t.reduce((i,r)=>i&&i[r],n)},hk=(n,e,t)=>{const i=Array.isArray(e)?e:e.match(/([^[.\]])+/g);i&&i.reduce((r,s,o)=>(r[s]===void 0&&(r[s]={}),o===i.length-1&&(r[s]=t),r[s]),n)};function hT(n,e){if(Ub(n)&&Ub(e)){const r=n.attributes,s=e.attributes;return r.length!==s.length?!1:Array.from(r).every(({name:o,value:a})=>e.getAttribute(o)===a)}if(n===e)return!0;if(n===null||typeof n!="object"||e===null||typeof e!="object")return!1;const t=Object.keys(n),i=Object.keys(e);if(t.length!==i.length)return!1;for(const r of t)if(!i.includes(r)||!hT(n[r],e[r]))return!1;return!0}function dk(n,e){if(!Array.isArray(n)||!Array.isArray(e)||n.length!==e.length)return!1;for(let t=0;t{if(l.uuid===e)return l;for(const c of l.children){const u=r(c);if(u)return u}},s=r(n);if(!s){console.warn("Object with UUID not found in the scene.");return}let o=s;for(let l=0;ldT(i)),!(n instanceof md)){const i=n;n&&((t=n.dispose)==null||t.call(n)),i.geometry&&i.geometry.dispose(),Array.isArray(i.material)?i.material.forEach(r=>kb(r)):i.material&&kb(i.material)}}function _k(n,e){let t=0;for(let i=0;it===0?e:e.charAt(0).toUpperCase()+e.slice(1)).join("")}const zb=/-\d+$/;function vk(n,e,t){if(uT(t)){if(zb.test(t)){const s=t.replace(zb,""),{target:o,key:a}=wg(n,s);if(!Array.isArray(o[a])){const l=o[a],c=[];c.__tresDetach=()=>{c.every(u=>Tg(u))&&(o[a]=l)},o[a]=c}}const{target:i,key:r}=wg(n,t);e.__tres.previousAttach=i[r],i[r]=Ca(e)}else e.__tres.previousAttach=t(n,e)}function yk(n,e,t){var i,r,s;if(uT(t)){const{target:o,key:a}=wg(n,t),l=e.__tres.previousAttach;l===void 0?delete o[a]:o[a]=l,"__tresDetach"in o&&o.__tresDetach()}else(r=(i=e.__tres)==null?void 0:i.previousAttach)==null||r.call(i,n,e);(s=e.__tres)==null||delete s.previousAttach}function no(n,e,t){const i=n;return i.__tres={type:"unknown",eventCount:0,root:t,handlers:{},memoizedProps:{},objects:[],parent:null,previousAttach:null,...e},i.__tres.attach||(i.isMaterial?i.__tres.attach="material":i.isBufferGeometry?i.__tres.attach="geometry":i.isFog&&(i.__tres.attach="fog")),i}function pT(n){var e;const t=(e=n==null?void 0:n.__tres)==null?void 0:e.root;t&&t.render&&t.render.canBeInvalidated.value&&t.invalidate()}function bk(n,e,t){var i;if(!so(n.setPixelRatio))return;let r=0;if(t&&Th(t)){const s=t;if(s.length>=2){const[o,a]=s;r=K0.clamp(e,o,a)}}else ek(t)?r=t:r=e;r!==((i=n.getPixelRatio)==null?void 0:i.call(n))&&n.setPixelRatio(r)}function xk(n,e,t,i,r){const s=[...e.__tres.objects],o=Ca(e);if(n=Ca(n),o===n)return!0;const a=no(n,e.__tres??{},r),l=e.parent??e.__tres.parent??null,c={...e.__tres.memoizedProps};delete c.object;for(const u of s)mT(u,r),gT(u,r);o.__tres.objects=[],i.remove(e);for(const[u,f]of Object.entries(c))i.patchProp(a,u,a[u],f);t(n),i.insert(e,l);for(const u of s)i.insert(u,e);return!0}function Ca(n){return ok(n)?(n.object.__tres=n.__tres,n.object):n}function mT(n,e){var t,i,r,s;const o=((t=n.__tres)==null?void 0:t.parent)||e.scene.value;n.__tres&&(n.__tres.parent=null),o&&o.__tres&&"objects"in o.__tres&&_k(o.__tres.objects,a=>a!==n),(i=n.__tres)!=null&&i.attach?yk(o,n,n.__tres.attach):((s=(r=n.parent)==null?void 0:r.remove)==null||s.call(r,Ca(n)),n.parent=null)}function gT(n,e){var t;(t=n.traverse)==null||t.call(n,i=>{var r;e.deregisterCamera(i),(r=e.eventManager)==null||r.deregisterPointerMissedObject(i)}),e.deregisterCamera(n),pT(n)}const Mk=({sizes:n})=>{const e=et([]),t=Se(()=>e.value[0]),i=o=>{const a=o instanceof Fc?o:e.value.find(c=>c.uuid===o);if(!a)return;const l=e.value.filter(({uuid:c})=>c!==a.uuid);e.value=[a,...l]},r=(o,a=!1)=>{if(Nb(o)){const l=o;if(e.value.some(({uuid:c})=>c===l.uuid))return;a?i(l):e.value.push(l)}},s=o=>{if(Nb(o)){const a=o;e.value=e.value.filter(({uuid:l})=>l!==a.uuid)}};return Rc(()=>{n.aspectRatio.value&&e.value.forEach(o=>{!o.manual&&(o instanceof Kt||Sk(o))&&(o instanceof Kt?o.aspect=n.aspectRatio.value:(o.left=n.width.value*-.5,o.right=n.width.value*.5,o.top=n.height.value*.5,o.bottom=n.height.value*-.5),o.updateProjectionMatrix())})}),tr(()=>{e.value=[]}),{camera:t,cameras:e,registerCamera:r,deregisterCamera:s,setCameraActive:i}};function Sk(n){return n.hasOwnProperty("isOrthographicCamera")&&n.isOrthographicCamera}const wh="[TresJS ▲ ■ ●] ";function Ek(...n){typeof n[0]=="string"?n[0]=wh+n[0]:n.unshift(wh),console.error(...n)}function Tk(...n){typeof n[0]=="string"?n[0]=wh+n[0]:n.unshift(wh),console.warn(...n)}function wk(n,e){}function _T(){return{logError:Ek,logWarning:Tk,logMessage:wk}}const Ag=et({}),Cg=n=>Object.assign(Ag.value,n);function om(){const n=new Map,e=new Set;let t=0,i=!1;const r=()=>{const o=Array.from(n.entries()).sort((a,l)=>{const c=a[1].priority-l[1].priority;return c===0?a[1].addI-l[1].addI:c});e.clear(),o.forEach(a=>e.add(a[0]))},s=o=>{n.delete(o),e.delete(o)};return{on:(o,a=0)=>{n.set(o,{priority:a,addI:t++});const l=()=>s(o);return vs(l),i=!0,{off:l}},off:s,trigger:(...o)=>{i&&(r(),i=!1),e.forEach(a=>a(...o))},dispose:()=>{n.clear(),e.clear()},get count(){return n.size}}}function Ak(){let n=!0,e=!0,t=!1;const i=new Nd(!1),r=et(i.running),s=et(!1);let o;const a=K0.generateUUID();let l=null;const c=om(),u=om(),f=om();T();let h={};function d(S){h=S}function p(S,R,x=0){switch(R){case"before":return c.on(S,x);case"render":return l||(l=S),u.dispose(),u.on(S);case"after":return f.on(S,x)}}function _(){e&&(e=!1,T(),E())}function g(){e=!0,T(),cancelAnimationFrame(o)}function m(){t=!1,T()}function y(){t=!0,T()}function b(){s.value=!0}function v(){s.value=!1}function E(){if(!n){o=requestAnimationFrame(E);return}const S=i.getDelta(),R=i.getElapsedTime(),x={camera:Ot(h.camera),scene:Ot(h.scene),renderer:Ot(h.renderer),raycaster:Ot(h.raycaster),controls:Ot(h.controls),invalidate:h.invalidate,advance:h.advance},M={delta:S,elapsed:R,clock:i,...x};r.value&&c.trigger(M),s.value||(u.count?u.trigger(M):l&&l(M)),r.value&&f.trigger(M),o=requestAnimationFrame(E)}function T(){const S=!e&&!t;i.running!==S&&(i.running?i.stop():i.start()),r.value=i.running}return{loopId:a,register:(S,R,x)=>p(S,R,x),start:_,stop:g,pause:y,resume:m,pauseRender:b,resumeRender:v,isRenderPaused:s,isActive:r,setContext:d,setReady:S=>n=S}}function T_(n){let e=0;return n.traverse(t=>{if(t.isMesh&&t.geometry&&t.type!=="HightlightMesh"){const i=t.geometry,r=i.attributes.position.count*3*Float32Array.BYTES_PER_ELEMENT,s=i.index?i.index.count*Uint32Array.BYTES_PER_ELEMENT:0,o=i.attributes.normal?i.attributes.normal.count*3*Float32Array.BYTES_PER_ELEMENT:0,a=i.attributes.uv?i.attributes.uv.count*2*Float32Array.BYTES_PER_ELEMENT:0,l=r+s+o+a;e+=l}}),e}function Ck(n){return(n/1024).toFixed(2)}const Rk=Number.parseInt(Dc.replace("dev",""));function Pk(n){return n instanceof Ce?n:Array.isArray(n)?new Ce(...n):new Ce(n)}const tf={realistic:{shadows:!0,physicallyCorrectLights:!0,outputColorSpace:Nn,toneMapping:td,toneMappingExposure:3,shadowMap:{enabled:!0,type:U0}},flat:{toneMapping:Zi,toneMappingExposure:1}};function Ik({canvas:n,options:e,contextParts:{sizes:t,render:i,invalidate:r,advance:s}}){const o=Se(()=>({alpha:dn(e.alpha)??!0,depth:dn(e.depth),canvas:Li(n),context:dn(e.context),stencil:dn(e.stencil),antialias:dn(e.antialias)??!0,precision:dn(e.precision),powerPreference:dn(e.powerPreference),premultipliedAlpha:dn(e.premultipliedAlpha),preserveDrawingBuffer:dn(e.preserveDrawingBuffer),logarithmicDepthBuffer:dn(e.logarithmicDepthBuffer),failIfMajorPerformanceCaveat:dn(e.failIfMajorPerformanceCaveat)})),a=De(new Sf(o.value));function l(){e.renderMode==="on-demand"&&r()}Xe(o,()=>{a.value.dispose(),a.value=new Sf(o.value),l()}),Xe([t.width,t.height],()=>{a.value.setSize(t.width.value,t.height.value),l()},{immediate:!0}),Xe(()=>e.clearColor,l);const{pixelRatio:c}=MF(),{logError:u}=_T(),f=(()=>{const d=new Sf,p={shadowMap:{enabled:d.shadowMap.enabled,type:d.shadowMap.type},toneMapping:d.toneMapping,toneMappingExposure:d.toneMappingExposure,outputColorSpace:d.outputColorSpace};return d.dispose(),p})(),h=dn(e.renderMode);return h==="on-demand"&&r(),h==="manual"&&setTimeout(()=>{s()},100),Rc(()=>{const d=dn(e.preset);d&&(d in tf||u(`Renderer Preset must be one of these: ${Object.keys(tf).join(", ")}`),fT(a.value,tf[d])),bk(a.value,c.value,dn(e.dpr)),h==="always"&&(i.frames.value=Math.max(1,i.frames.value));const p=(m,y)=>{const b=dn(m),v=()=>{if(d)return Fb(tf[d],y)};if(b!==void 0)return b;const E=v();return E!==void 0?E:Fb(f,y)},_=(m,y)=>hk(a.value,y,p(m,y));_(e.shadows,"shadowMap.enabled"),_(e.toneMapping??td,"toneMapping"),_(e.shadowMapType,"shadowMap.type"),Rk<150&&_(!e.useLegacyLights,"physicallyCorrectLights"),_(e.outputColorSpace,"outputColorSpace"),_(e.toneMappingExposure,"toneMappingExposure");const g=p(e.clearColor,"clearColor");g&&a.value.setClearColor(g?Pk(g):new Ce(0))}),tr(()=>{a.value.dispose(),a.value.forceContextLoss()}),{renderer:a}}function Lk(n,e,t=10){const i=dn(n)?RF():EF(Se(()=>dn(e).parentElement)),r=xi(Db(i.width,t)),s=xi(Db(i.height,t)),o=Se(()=>r.value/s.value);return{height:s,width:r,aspectRatio:o}}const Dk=(n,e)=>{const t=Se(()=>e.renderer.value.domElement),i=De([]),{x:r,y:s}=CF({target:t});let o=0;const{width:a,height:l,top:c,left:u}=SF(t),f=({x:re,y:ye})=>{if(t.value)return{x:(re-u.value)/a.value*2-1,y:-((ye-c.value)/l.value)*2+1}},h=({x:re,y:ye})=>{if(e.camera.value)return e.raycaster.value.setFromCamera(new fe(re,ye),e.camera.value),i.value=e.raycaster.value.intersectObjects(n.value,!0),i.value},d=re=>{const ye=f({x:(re==null?void 0:re.clientX)??r.value,y:(re==null?void 0:re.clientY)??s.value});return ye?h(ye)||[]:[]},p=pi(),_=pi(),g=pi(),m=pi(),y=pi(),b=pi(),v=pi(),E=pi();function T(re){const ye={};for(const Ve in re)typeof Ve!="function"&&(ye[Ve]=re[Ve]);return ye}const S=(re,ye)=>{var Ve,se,ge;const Me=T(ye),W=new k(ye==null?void 0:ye.clientX,ye==null?void 0:ye.clientY,0).unproject((Ve=e.camera)==null?void 0:Ve.value);re.trigger({...Me,intersections:i.value,unprojectedPoint:W,ray:(se=e.raycaster)==null?void 0:se.value.ray,camera:(ge=e.camera)==null?void 0:ge.value,sourceEvent:ye,delta:o,stopPropagating:!1})};let R;const x=re=>{d(re),S(g,re),R=re},M=()=>{R&&x(R)};let L,F,V;const X=re=>{var ye;L=(ye=i.value[0])==null?void 0:ye.object,o=0,F=new fe((re==null?void 0:re.clientX)??r.value,(re==null?void 0:re.clientY)??s.value),S(y,re)};let te,Z=!1;const ee=re=>{var ye,Ve,se;re instanceof PointerEvent&&(i.value.length===0&&S(b,re),L===((ye=i.value[0])==null?void 0:ye.object)&&(V=new fe((re==null?void 0:re.clientX)??r.value,(re==null?void 0:re.clientY)??s.value),o=F==null?void 0:F.distanceTo(V),re.button===0?(S(p,re),te===((Ve=i.value[0])==null?void 0:Ve.object)?Z=!0:(te=(se=i.value[0])==null?void 0:se.object,Z=!1)):re.button===2&&S(v,re)),S(m,re))},Q=re=>{Z&&(S(_,re),te=void 0,Z=!1)},de=re=>S(g,re),be=re=>S(E,re);return t.value.addEventListener("pointerup",ee),t.value.addEventListener("pointerdown",X),t.value.addEventListener("pointermove",x),t.value.addEventListener("pointerleave",de),t.value.addEventListener("dblclick",Q),t.value.addEventListener("wheel",be),tr(()=>{t!=null&&t.value&&(t.value.removeEventListener("pointerup",ee),t.value.removeEventListener("pointerdown",X),t.value.removeEventListener("pointermove",x),t.value.removeEventListener("pointerleave",de),t.value.removeEventListener("dblclick",Q),t.value.removeEventListener("wheel",be))}),{intersects:i,onClick:re=>p.on(re).off,onDblClick:re=>_.on(re).off,onContextMenu:re=>v.on(re).off,onPointerMove:re=>g.on(re).off,onPointerUp:re=>m.on(re).off,onPointerDown:re=>y.on(re).off,onPointerMissed:re=>b.on(re).off,onWheel:re=>E.on(re).off,forceUpdate:M}};function am(n,e){if(Array.isArray(n))for(const t of n)t(e);typeof n=="function"&&n(e)}function Ok(n,e,t){var i;const r=De(),s=De();n&&(r.value=n),e&&(s.value=e);const o=x=>{var M;return((M=x.__tres)==null?void 0:M.eventCount)>0},a=x=>{var M;return((M=x.children)==null?void 0:M.some(L=>a(L)))||o(x)},l=De(((i=r.value)==null?void 0:i.children).filter(a)||[]);function c(x,M){const L=[],F=()=>M.stopPropagating=!0;M.stopPropagation=F;for(const V of M==null?void 0:M.intersections){if(M.stopPropagating)return;M={...M,...V};const{object:X}=V;M.eventObject=X,am(X[x],M),L.push(X);let te=X.parent;for(;te!==null&&!M.stopPropagating&&!L.includes(te);)M.eventObject=te,am(te[x],M),L.push(te),te=te.parent;const Z=uk(x.slice(2));t(Z,{intersection:V,event:M})}}const{onClick:u,onDblClick:f,onContextMenu:h,onPointerMove:d,onPointerDown:p,onPointerUp:_,onPointerMissed:g,onWheel:m,forceUpdate:y}=Dk(l,e);_(x=>c("onPointerUp",x)),p(x=>c("onPointerDown",x)),u(x=>c("onClick",x)),f(x=>c("onDoubleClick",x)),h(x=>c("onContextMenu",x)),m(x=>c("onWheel",x));let b=[];d(x=>{const M=x.intersections.map(({object:F})=>F),L=x.intersections;b.forEach(({object:F})=>{M.includes(F)||(x.intersections=b,c("onPointerLeave",x),c("onPointerOut",x))}),x.intersections=L,x.intersections.forEach(({object:F})=>{b.includes(F)||(c("onPointerEnter",x),c("onPointerOver",x))}),c("onPointerMove",x),b=x.intersections});const v=[];g(x=>{const M=()=>x.stopPropagating=!0;x.stopPropagation=M,v.forEach(L=>{x.stopPropagating||(x.eventObject=L,am(L.onPointerMissed,x))}),t("pointer-missed",{event:x})});function E(x){Qu(x)&&cs(x)&&l.value.push(x)}function T(x){if(Qu(x)&&cs(x)){const M=l.value.indexOf(x);M>-1&&l.value.splice(M,1)}}function S(x){Qu(x)&&cs(x)&&x.onPointerMissed&&v.push(x)}function R(x){if(Qu(x)&&cs(x)){const M=v.indexOf(x);M>-1&&v.splice(M,1)}}return e.eventManager={forceUpdate:y,registerObject:E,deregisterObject:T,registerPointerMissedObject:S,deregisterPointerMissedObject:R},{forceUpdate:y,registerObject:E,deregisterObject:T,registerPointerMissedObject:S,deregisterPointerMissedObject:R}}function Nk(n,e,t=100){t=t<=0?100:t;const i=pi(),r=new Set;let s=!1,o=!1,a=null;function l(){a&&clearTimeout(a),!o&&!s&&n()?(i.trigger(e),r.forEach(f=>f()),r.clear(),s=!0):!o&&!s&&(a=setTimeout(l,t))}function c(){o=!0,a&&clearTimeout(a)}l();const u=(f,...h)=>{f(...h)};return{on:f=>{if(s)return u(f,e),{off:()=>{}};{const h=i.on(f);return r.add(h.off),i.on(f)}},off:i.off,trigger:i.trigger,clear:i.clear,cancel:c}}const lm=new WeakMap;function Uk(n){if(n=n||vT(),lm.has(n))return lm.get(n);const e=100,t=Date.now(),i=Nk(()=>{if(Date.now()-t>=e)return!0;{const r=n.renderer.value,s=(r==null?void 0:r.domElement)||{width:0,height:0};return!!(r&&s.width>0&&s.height>0)}},n);return lm.set(n,i),i}function Fk({scene:n,canvas:e,windowSize:t,rendererOptions:i,emit:r}){const s=De(n),o=Lk(t,e),{camera:a,cameras:l,registerCamera:c,deregisterCamera:u,setCameraActive:f}=Mk({sizes:o}),h={mode:et(i.renderMode||"always"),priority:et(0),frames:et(0),maxFrames:60,canBeInvalidated:Se(()=>h.mode.value==="on-demand"&&h.frames.value===0)};function d(V=1){i.renderMode==="on-demand"&&(h.frames.value=Math.min(h.maxFrames,h.frames.value+V))}function p(){i.renderMode==="manual"&&(h.frames.value=1)}const{renderer:_}=Ik({canvas:e,options:i,contextParts:{sizes:o,render:h,invalidate:d,advance:p}}),g={sizes:o,scene:s,camera:a,cameras:xi(l),renderer:_,raycaster:De(new JE),controls:et(null),perf:{maxFrames:160,fps:{value:0,accumulator:[]},memory:{currentMem:0,allocatedMem:0,accumulator:[]}},render:h,advance:p,extend:Cg,invalidate:d,registerCamera:c,setCameraActive:f,deregisterCamera:u,loop:Ak()};fs("useTres",g),g.scene.value.__tres={root:g},g.loop.register(()=>{a.value&&h.frames.value>0&&(_.value.render(n,a.value),r("render",g.renderer.value)),h.priority.value=0,h.mode.value==="always"?h.frames.value=1:h.frames.value=Math.max(0,h.frames.value-1)},"render");const{on:m,cancel:y}=Uk(g);g.loop.setReady(!1),g.loop.start(),m(()=>{r("ready",g),g.loop.setReady(!0),Ok(n,g,r)}),tr(()=>{y(),g.loop.stop()});const b=100,v=TF({every:b}),{isSupported:E,memory:T}=wF({interval:b}),S=160;let R=performance.now();const x=({timestamp:V})=>{g.scene.value&&(g.perf.memory.allocatedMem=T_(g.scene.value)),V-R>=b&&(R=V,g.perf.fps.accumulator.push(v.value),g.perf.fps.accumulator.length>S&&g.perf.fps.accumulator.shift(),g.perf.fps.value=v.value,E.value&&T.value&&(g.perf.memory.accumulator.push(T.value.usedJSHeapSize/1024/1024),g.perf.memory.accumulator.length>S&&g.perf.memory.accumulator.shift(),g.perf.memory.currentMem=g.perf.memory.accumulator.reduce((X,te)=>X+te,0)/g.perf.memory.accumulator.length))};let M=0;const L=1,{pause:F}=E_(({delta:V})=>{window.__TRES__DEVTOOLS__&&(x({timestamp:performance.now()}),M+=V,M>=L&&(window.__TRES__DEVTOOLS__.cb(g),M=0))},{immediate:!0});return tr(()=>{F()}),g}function vT(){const n=En("useTres");if(!n)throw new Error("useTresContext must be used together with useTresContextProvider");return n}function fG(){const{camera:n,scene:e,renderer:t,loop:i,raycaster:r,controls:s,invalidate:o,advance:a}=vT();i.setContext({camera:n,scene:e,renderer:t,raycaster:r,controls:s,invalidate:o,advance:a});function l(f,h=0){return i.register(f,"before",h)}function c(f){return i.register(f,"render")}function u(f,h=0){return i.register(f,"after",h)}return{pause:i.pause,resume:i.resume,pauseRender:i.pauseRender,resumeRender:i.resumeRender,isActive:i.isActive,onBeforeRender:l,render:c,onAfterRender:u}}const kk=pi(),Bk=pi(),yT=pi(),Ll=new Nd;let Ef=0,Tf=0;E_(()=>{kk.trigger({delta:Ef,elapsed:Tf,clock:Ll}),Bk.trigger({delta:Ef,elapsed:Tf,clock:Ll}),yT.trigger({delta:Ef,elapsed:Tf,clock:Ll})},{immediate:!1});yT.on(()=>{Ef=Ll.getDelta(),Tf=Ll.getElapsedTime()});function zk(n,e={},t={}){let i=n;const r=a=>{i=a};let s=new Proxy({},{});const o={has(a,l){return l in e||l in i},get(a,l,c){return l in e?e[l](i):i[l]},set(a,l,c){const u=t[l];return u&&typeof u=="function"?u(c,i,s,r):i[l]=c,!0}};return s=new Proxy({},o),s}const{logError:Vb}=_T(),Hb=["onClick","onContextMenu","onPointerMove","onPointerEnter","onPointerLeave","onPointerOver","onPointerOut","onDoubleClick","onPointerDown","onPointerUp","onPointerCancel","onPointerMissed","onLostPointerCapture","onWheel"],Vk=n=>{const e=n.scene.value;function t(c,u,f,h){if(h||(h={}),h.args||(h.args=[]),c==="template"||lk(c))return null;let d=c.replace("Tres",""),p;if(c==="primitive"){(!Vr(h.object)||Pt(h.object))&&Vb("Tres primitives need an 'object' prop, whose value is an object or shallowRef"),d=h.object.type;const _={};p=zk(h.object,{object:g=>g,isPrimitive:()=>!0,__tres:()=>_},{object:(g,m,y,b)=>{xk(g,y,b,{patchProp:s,remove:r,insert:i},n)},__tres:g=>{Object.assign(_,g)}})}else{const _=Ag.value[d];_||Vb(`${d} is not defined on the THREE namespace. Use extend to add it to the catalog.`),p=new _(...h.args)}return p?(p.isCamera&&(h!=null&&h.position||p.position.set(3,3,3),h!=null&&h.lookAt||p.lookAt(0,0,0)),p=no(p,{...p.__tres,type:d,memoizedProps:h,eventCount:0,primitive:c==="primitive",attach:h.attach},n),p):null}function i(c,u){var f,h,d;if(!c)return;u=u||e;const p=c.__tres?c:no(c,{},n),_=u.__tres?u:no(u,{},n);c=Ca(p),u=Ca(_),c.__tres&&((f=c.__tres)==null?void 0:f.eventCount)>0&&((h=n.eventManager)==null||h.registerObject(c)),n.registerCamera(c),(d=n.eventManager)==null||d.registerPointerMissedObject(c),p.__tres.attach?vk(_,p,p.__tres.attach):cs(c)&&cs(_)&&(_.add(c),c.dispatchEvent({type:"added"})),p.__tres.parent=_,_.__tres.objects&&!_.__tres.objects.includes(p)&&_.__tres.objects.push(p)}function r(c,u){var f,h,d,p;if(!c)return;c!=null&&c.__tres&&((f=c.__tres)==null?void 0:f.eventCount)>0&&((h=n.eventManager)==null||h.deregisterObject(c)),u=Tg(u)?"default":u;const _=(d=c.__tres)==null?void 0:d.dispose;Tg(_)||(_===null?u=!1:u=_);const g=(p=c.__tres)==null?void 0:p.primitive,m=u==="default"?!g:!!u;if(c.__tres&&"objects"in c.__tres&&[...c.__tres.objects].forEach(y=>r(y,u)),m&&c.children&&[...c.children].forEach(y=>r(y,u)),mT(c,n),gT(c,n),m&&!sk(c)){if(so(u))u(c);else if(so(c.dispose))try{c.dispose()}catch{}}"__tres"in c&&delete c.__tres}function s(c,u,f,h){var d,p;if(!c)return;let _=c,g=u;if(c.__tres&&(c.__tres.memoizedProps[u]=h),u==="attach"){const v=((d=c.__tres)==null?void 0:d.parent)||c.parent;r(c),no(c,{attach:h},n),v&&i(c,v);return}if(u==="dispose"){c.__tres||(c=no(c,{},n)),c.__tres.dispose=h;return}if(cs(c)&&g==="blocks-pointer-events"){h||h===""?c[g]=h:delete c[g];return}Hb.includes(u)&&c.__tres&&(c.__tres.eventCount+=1);let m=ef(g),y=_==null?void 0:_[m];if(g==="args"){const v=c,E=f??[],T=h??[],S=((p=c.__tres)==null?void 0:p.type)||c.type;S&&E.length&&!dk(E,T)&&(_=Object.assign(v,new Ag.value[S](...h)));return}if(_.type==="BufferGeometry"){if(g==="args")return;_.setAttribute(ef(g),new Ct(...h));return}if(g.includes("-")&&y===void 0){const v=g.split("-");y=v.reduce((E,T)=>E[ef(T)],_),g=v.pop(),m=g,y!=null&&y.set||(_=v.reduce((E,T)=>E[ef(T)],_))}let b=h;if(b===""&&(b=!0),so(y)){Hb.includes(u)||(Th(b)?c[m](...b):c[m](b)),m.startsWith("on")&&so(b)&&(_[m]=b);return}!(y!=null&&y.set)&&!so(y)?_[m]=b:y.constructor===b.constructor&&y!=null&&y.copy?y==null||y.copy(b):Th(b)?y.set(...b):!y.isColor&&y.setScalar?y.setScalar(b):y.set(b),pT(c)}function o(c){var u;return((u=c==null?void 0:c.__tres)==null?void 0:u.parent)||null}function a(c){const u=no(new dt,{type:"Comment"},n);return u.name=c,u}function l(c){var u;const f=o(c),h=((u=f==null?void 0:f.__tres)==null?void 0:u.objects)||[],d=h.indexOf(c);return d<0||d>=h.length-1?null:h[d+1]}return{insert:i,remove:r,createElement:t,patchProp:s,parentNode:o,createText:()=>{},createComment:a,setText:()=>{},setElementText:()=>{},nextSibling:l,querySelector:()=>{},setScopeId:()=>{},cloneNode:()=>{},insertStaticContent:()=>{}}};function Hk(){return bT().__VUE_DEVTOOLS_GLOBAL_HOOK__}function bT(){return typeof navigator<"u"&&typeof window<"u"?window:typeof globalThis<"u"?globalThis:{}}const Gk=typeof Proxy=="function",Wk="devtools-plugin:setup",Xk="plugin:settings:set";let al,Rg;function $k(){var n;return al!==void 0||(typeof window<"u"&&window.performance?(al=!0,Rg=window.performance):typeof globalThis<"u"&&!((n=globalThis.perf_hooks)===null||n===void 0)&&n.performance?(al=!0,Rg=globalThis.perf_hooks.performance):al=!1),al}function qk(){return $k()?Rg.now():Date.now()}class Yk{constructor(e,t){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=e,this.hook=t;const i={};if(e.settings)for(const o in e.settings){const a=e.settings[o];i[o]=a.defaultValue}const r=`__vue-devtools-plugin-settings__${e.id}`;let s=Object.assign({},i);try{const o=localStorage.getItem(r),a=JSON.parse(o);Object.assign(s,a)}catch{}this.fallbacks={getSettings(){return s},setSettings(o){try{localStorage.setItem(r,JSON.stringify(o))}catch{}s=o},now(){return qk()}},t&&t.on(Xk,(o,a)=>{o===this.plugin.id&&this.fallbacks.setSettings(a)}),this.proxiedOn=new Proxy({},{get:(o,a)=>this.target?this.target.on[a]:(...l)=>{this.onQueue.push({method:a,args:l})}}),this.proxiedTarget=new Proxy({},{get:(o,a)=>this.target?this.target[a]:a==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(a)?(...l)=>(this.targetQueue.push({method:a,args:l,resolve:()=>{}}),this.fallbacks[a](...l)):(...l)=>new Promise(c=>{this.targetQueue.push({method:a,args:l,resolve:c})})})}async setRealTarget(e){this.target=e;for(const t of this.onQueue)this.target.on[t.method](...t.args);for(const t of this.targetQueue)t.resolve(await this.target[t.method](...t.args))}}function jk(n,e){const t=n,i=bT(),r=Hk(),s=Gk&&t.enableEarlyProxy;if(r&&(i.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!s))r.emit(Wk,n,e);else{const o=s?new Yk(t,r):null;(i.__VUE_DEVTOOLS_PLUGINS__=i.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:t,setupFn:e,proxy:o}),o&&e(o.proxiedTarget)}}function Kk(n,e){const t=`▲ ■ ●${n}`;typeof Gb=="function"?Gb(t,e):console.log(t)}function Gb(n,e){throw new Error(n+e)}const xT=n=>{const e={id:n.uuid,label:n.type,children:[],tags:[]};n.name!==""&&e.tags.push({label:n.name,textColor:5750629,backgroundColor:15793395});const t=T_(n);return t>0&&e.tags.push({label:`${Ck(t)} KB`,textColor:15707189,backgroundColor:16775644,tooltip:"Memory usage"}),n.type.includes("Light")&&(ik(n)&&e.tags.push({label:`${n.intensity}`,textColor:9738662,backgroundColor:16316922,tooltip:"Intensity"}),e.tags.push({label:`#${new Ce(n.color).getHexString()}`,textColor:9738662,backgroundColor:16316922,tooltip:"Color"})),n.type.includes("Camera")&&(e.tags.push({label:`${n.fov}°`,textColor:9738662,backgroundColor:16316922,tooltip:"Field of view"}),e.tags.push({label:`x: ${Math.round(n.position.x)} y: ${Math.round(n.position.y)} z: ${Math.round(n.position.z)}`,textColor:9738662,backgroundColor:16316922,tooltip:"Position"})),e};function MT(n,e,t=""){n.children.forEach(i=>{if(i.type==="HightlightMesh"||t&&!i.type.includes(t)&&!i.name.includes(t))return;const r=xT(i);e.children.push(r),MT(i,r,t)})}const Zk=[],ll="tres:inspector",Jk=bi({sceneGraph:null});function Qk(n,e){jk({id:"dev.esm.tres",label:"TresJS 🪐",logo:"https://raw.githubusercontent.com/Tresjs/tres/main/public/favicon.svg",packageName:"tresjs",homepage:"https://tresjs.org",componentStateTypes:Zk,app:n},t=>{typeof t.now!="function"&&Kk("You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."),t.addInspector({id:ll,label:"TresJS 🪐",icon:"account_tree",treeFilterPlaceholder:"Search instances"}),setInterval(()=>{t.sendInspectorTree(ll)},1e3),setInterval(()=>{t.notifyComponentUpdate()},5e3),t.on.getInspectorTree(s=>{if(s.inspectorId===ll){const o=xT(e.scene.value);MT(e.scene.value,o,s.filter),Jk.sceneGraph=o,s.rootNodes=[o]}});let i=null,r=null;t.on.getInspectorState(s=>{var o;if(s.inspectorId===ll){const[a]=e.scene.value.getObjectsByProperty("uuid",s.nodeId);if(!a)return;if(r&&i&&i.parent&&r.remove(i),a.isMesh){const l=mk(a);a.add(l),i=l,r=a}s.state={object:Object.entries(a).map(([l,c])=>l==="children"?{key:l,value:c.filter(u=>u.type!=="HightlightMesh")}:{key:l,value:c,editable:!0}).filter(({key:l})=>l!=="parent")},a.isScene&&(s.state={...s.state,state:[{key:"Scene Info",value:{objects:a.children.length,memory:T_(a),calls:e.renderer.value.info.render.calls,triangles:e.renderer.value.info.render.triangles,points:e.renderer.value.info.render.points,lines:e.renderer.value.info.render.lines}},{key:"Programs",value:((o=e.renderer.value.info.programs)==null?void 0:o.map(l=>({...l,programName:l.name})))||[]}]})}}),t.on.editInspectorState(s=>{s.inspectorId===ll&&pk(e.scene.value,s.nodeId,s.path,s.state.value)})})}const eB=["data-scene","data-tres"],tB=fn({__name:"TresCanvas",props:{shadows:{type:Boolean,default:void 0},clearColor:{},toneMapping:{},shadowMapType:{},useLegacyLights:{type:Boolean,default:void 0},outputColorSpace:{},toneMappingExposure:{},renderMode:{default:"always"},dpr:{},camera:{},preset:{},windowSize:{type:Boolean,default:void 0},enableProvideBridge:{type:Boolean,default:!0},context:{},alpha:{type:Boolean,default:void 0},premultipliedAlpha:{type:Boolean},antialias:{type:Boolean,default:void 0},stencil:{type:Boolean,default:void 0},preserveDrawingBuffer:{type:Boolean,default:void 0},powerPreference:{},depth:{type:Boolean,default:void 0},failIfMajorPerformanceCaveat:{type:Boolean,default:void 0},precision:{},logarithmicDepthBuffer:{type:Boolean,default:void 0},reverseDepthBuffer:{type:Boolean}},emits:["render","click","double-click","context-menu","pointer-move","pointer-up","pointer-down","pointer-enter","pointer-leave","pointer-over","pointer-out","pointer-missed","wheel","ready"],setup(n,{expose:e,emit:t}){const i=n,r=t,s=A0(),o=et(),a=De(new md),l=wn();Cg(rF);const c=(p,_=!1)=>fn({setup(){var g;const m=(g=wn())==null?void 0:g.appContext;m&&(m.app=l==null?void 0:l.appContext.app);const y={};function b(v){v&&(v.parent&&b(v.parent),v.provides&&Object.assign(y,v.provides))}return l!=null&&l.parent&&i.enableProvideBridge&&(b(l.parent),Reflect.ownKeys(y).forEach(v=>{fs(v,y[v])})),fs("useTres",p),fs("extend",Cg),typeof window<"u"&&Qk(m==null?void 0:m.app,p),()=>Lr(jt,null,_?[]:s.default())}}),u=(p,_=!1)=>{const g=c(p,_),{render:m}=HS(Vk(p));m(Lr(g),a.value)},f=(p,_=!1)=>{dT(p.scene.value),_&&(p.renderer.value.dispose(),p.renderer.value.renderLists.dispose(),p.renderer.value.forceContextLoss()),a.value.__tres={root:p}},h=De(null);e({context:h,dispose:()=>f(h.value,!0)});const d=()=>{f(h.value),u(h.value,!0)};return Hn(()=>{const p=o;h.value=Fk({scene:a.value,canvas:p,windowSize:i.windowSize??!1,rendererOptions:i,emit:r});const{registerCamera:_,camera:g,cameras:m,deregisterCamera:y}=h.value;u(h.value);const b=()=>{const v=new Kt(45,window.innerWidth/window.innerHeight,.1,1e3);v.position.set(3,3,3),v.lookAt(0,0,0),_(v);const E=Rc(()=>{m.value.length>=2&&(v.removeFromParent(),y(v),E==null||E())})};Xe(()=>i.camera,(v,E)=>{v&&_(v),E&&(E.removeFromParent(),y(E))},{immediate:!0}),g.value||b()}),tr(d),(p,_)=>(mn(),vi("canvas",{ref_key:"canvas",ref:o,"data-scene":a.value.uuid,class:Na(p.$attrs.class),"data-tres":`tresjs ${Ot(JF).version}`,style:Si({display:"block",width:"100%",height:"100%",position:p.windowSize?"fixed":"relative",top:0,left:0,pointerEvents:"auto",touchAction:"none",...p.$attrs.style})},null,14,eB))}}),nB={install(n){n.component("TresCanvas",tB)}};function cm(n){if(n===null||typeof n!="object")return!1;const e=Object.getPrototypeOf(n);return e!==null&&e!==Object.prototype&&Object.getPrototypeOf(e)!==null||Symbol.iterator in n?!1:Symbol.toStringTag in n?Object.prototype.toString.call(n)==="[object Module]":!0}function Pg(n,e,t=".",i){if(!cm(e))return Pg(n,{},t,i);const r=Object.assign({},e);for(const s in n){if(s==="__proto__"||s==="constructor")continue;const o=n[s];o!=null&&(i&&i(r,s,o,t)||(Array.isArray(o)&&Array.isArray(r[s])?r[s]=[...o,...r[s]]:cm(o)&&cm(r[s])?r[s]=Pg(o,r[s],(t?`${t}.`:"")+s.toString(),i):r[s]=o))}return r}function iB(n){return(...e)=>e.reduce((t,i)=>Pg(t,i,"",n),{})}const ST=iB();function As(n){return Wh()?(_0(n),!0):!1}function Wb(){const n=new Set,e=s=>{n.delete(s)};return{on:s=>{n.add(s);const o=()=>e(s);return As(o),{off:o}},off:e,trigger:(...s)=>Promise.all(Array.from(n).map(o=>o(...s))),clear:()=>{n.clear()}}}const um=new WeakMap,rB=(...n)=>{var e;const t=n[0],i=(e=wn())==null?void 0:e.proxy;if(i==null&&!Cc())throw new Error("injectLocal must be called in setup");return i&&um.has(i)&&t in um.get(i)?um.get(i)[t]:En(...n)},Xc=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ET=n=>n!=null,sB=Object.prototype.toString,Ah=n=>sB.call(n)==="[object Object]",er=()=>{},oB=(n,e)=>Object.prototype.hasOwnProperty.call(n,e);function TT(...n){if(n.length!==1)return aS(...n);const e=n[0];return typeof e=="function"?xi(S0(()=>({get:e,set:er}))):et(e)}function w_(n,e){function t(...i){return new Promise((r,s)=>{Promise.resolve(n(()=>e.apply(this,i),{fn:e,thisArg:this,args:i})).then(r).catch(s)})}return t}const wT=n=>n();function AT(n,e={}){let t,i,r=er;const s=l=>{clearTimeout(l),r(),r=er};let o;return l=>{const c=it(n),u=it(e.maxWait);return t&&s(t),c<=0||u!==void 0&&u<=0?(i&&(s(i),i=null),Promise.resolve(l())):new Promise((f,h)=>{r=e.rejectOnCancel?h:f,o=l,u&&!i&&(i=setTimeout(()=>{t&&s(t),i=null,f(o())},u)),t=setTimeout(()=>{i&&s(i),i=null,f(l())},c)})}}function aB(...n){let e=0,t,i=!0,r=er,s,o,a,l,c;!Pt(n[0])&&typeof n[0]=="object"?{delay:o,trailing:a=!0,leading:l=!0,rejectOnCancel:c=!1}=n[0]:[o,a=!0,l=!0,c=!1]=n;const u=()=>{t&&(clearTimeout(t),t=void 0,r(),r=er)};return h=>{const d=it(o),p=Date.now()-e,_=()=>s=h();return u(),d<=0?(e=Date.now(),_()):(p>d&&(l||!i)?(e=Date.now(),_()):a&&(s=new Promise((g,m)=>{r=c?m:g,t=setTimeout(()=>{e=Date.now(),i=!0,g(_()),u()},Math.max(0,d-p))})),!l&&!t&&(t=setTimeout(()=>i=!0,d)),i=!1,s)}}function lB(n=wT,e={}){const{initialState:t="active"}=e,i=TT(t==="active");function r(){i.value=!1}function s(){i.value=!0}const o=(...a)=>{i.value&&n(...a)};return{isActive:xi(i),pause:r,resume:s,eventFilter:o}}function cB(n){let e;function t(){return e||(e=n()),e}return t.reset=async()=>{const i=e;e=void 0,i&&await i},t}function uB(n,e){var t;if(typeof n=="number")return n+e;const i=((t=n.match(/^-?\d+\.?\d*/))==null?void 0:t[0])||"",r=n.slice(i.length),s=Number.parseFloat(i)+e;return Number.isNaN(s)?n:s+r}function Dl(n){return n.endsWith("rem")?Number.parseFloat(n)*16:Number.parseFloat(n)}function Ol(n){return Array.isArray(n)?n:[n]}function CT(n){return wn()}function RT(n,e=200,t={}){return w_(AT(e,t),n)}function fB(n,e=200,t=!1,i=!0,r=!1){return w_(aB(e,t,i,r),n)}function PT(n,e,t={}){const{eventFilter:i=wT,...r}=t;return Xe(n,w_(i,e),r)}function hB(n,e,t={}){const{eventFilter:i,initialState:r="active",...s}=t,{eventFilter:o,pause:a,resume:l,isActive:c}=lB(i,{initialState:r});return{stop:PT(n,e,{...s,eventFilter:o}),pause:a,resume:l,isActive:c}}function Ha(n,e=!0,t){CT()?Hn(n,t):e?n():Ss(n)}function dB(n,e){CT()&&tr(n,e)}function pB(n,e,t={}){const{immediate:i=!0,immediateCallback:r=!1}=t,s=De(!1);let o=null;function a(){o&&(clearTimeout(o),o=null)}function l(){s.value=!1,a()}function c(...u){r&&n(),a(),s.value=!0,o=setTimeout(()=>{s.value=!1,o=null,n(...u)},it(e))}return i&&(s.value=!0,Xc&&c()),As(l),{isPending:xi(s),start:c,stop:l}}function hG(n,e,t={}){const{debounce:i=0,maxWait:r=void 0,...s}=t;return PT(n,e,{...s,eventFilter:AT(i,{maxWait:r})})}function mB(n,e,t){return Xe(n,e,{...t,immediate:!0})}const Qn=Xc?window:void 0,gB=Xc?window.document:void 0,A_=Xc?window.navigator:void 0;function oi(n){var e;const t=it(n);return(e=t==null?void 0:t.$el)!=null?e:t}function Ft(...n){const e=[],t=()=>{e.forEach(a=>a()),e.length=0},i=(a,l,c,u)=>(a.addEventListener(l,c,u),()=>a.removeEventListener(l,c,u)),r=Se(()=>{const a=Ol(it(n[0])).filter(l=>l!=null);return a.every(l=>typeof l!="string")?a:void 0}),s=mB(()=>{var a,l;return[(l=(a=r.value)==null?void 0:a.map(c=>oi(c)))!=null?l:[Qn].filter(c=>c!=null),Ol(it(r.value?n[1]:n[0])),Ol(Ot(r.value?n[2]:n[1])),it(r.value?n[3]:n[2])]},([a,l,c,u])=>{if(t(),!(a!=null&&a.length)||!(l!=null&&l.length)||!(c!=null&&c.length))return;const f=Ah(u)?{...u}:u;e.push(...a.flatMap(h=>l.flatMap(d=>c.map(p=>i(h,d,p,f)))))},{flush:"post"}),o=()=>{s(),t()};return As(t),o}function _B(){const n=De(!1),e=wn();return e&&Hn(()=>{n.value=!0},e),n}function Do(n){const e=_B();return Se(()=>(e.value,!!n()))}function IT(n,e,t={}){const{window:i=Qn,...r}=t;let s;const o=Do(()=>i&&"MutationObserver"in i),a=()=>{s&&(s.disconnect(),s=void 0)},l=Se(()=>{const h=it(n),d=Ol(h).map(oi).filter(ET);return new Set(d)}),c=Xe(()=>l.value,h=>{a(),o.value&&h.size&&(s=new MutationObserver(e),h.forEach(d=>s.observe(d,r)))},{immediate:!0,flush:"post"}),u=()=>s==null?void 0:s.takeRecords(),f=()=>{c(),a()};return As(f),{isSupported:o,stop:f,takeRecords:u}}const vB=Symbol("vueuse-ssr-width");function LT(){const n=Cc()?rB(vB,null):null;return typeof n=="number"?n:void 0}function oo(n,e={}){const{window:t=Qn,ssrWidth:i=LT()}=e,r=Do(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function"),s=De(typeof i=="number"),o=De(),a=De(!1),l=c=>{a.value=c.matches};return Rc(()=>{if(s.value){s.value=!r.value;const c=it(n).split(",");a.value=c.some(u=>{const f=u.includes("not all"),h=u.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),d=u.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let p=!!(h||d);return h&&p&&(p=i>=Dl(h[1])),d&&p&&(p=i<=Dl(d[1])),f?!p:p});return}r.value&&(o.value=t.matchMedia(it(n)),a.value=o.value.matches)}),Ft(o,"change",l,{passive:!0}),Se(()=>a.value)}const dG={sm:640,md:768,lg:1024,xl:1280,"2xl":1536};function pG(n,e={}){function t(d,p){let _=it(n[it(d)]);return p!=null&&(_=uB(_,p)),typeof _=="number"&&(_=`${_}px`),_}const{window:i=Qn,strategy:r="min-width",ssrWidth:s=LT()}=e,o=typeof s=="number",a=o?De(!1):{value:!0};o&&Ha(()=>a.value=!!i);function l(d,p){return!a.value&&o?d==="min"?s>=Dl(p):s<=Dl(p):i?i.matchMedia(`(${d}-width: ${p})`).matches:!1}const c=d=>oo(()=>`(min-width: ${t(d)})`,e),u=d=>oo(()=>`(max-width: ${t(d)})`,e),f=Object.keys(n).reduce((d,p)=>(Object.defineProperty(d,p,{get:()=>r==="min-width"?c(p):u(p),enumerable:!0,configurable:!0}),d),{});function h(){const d=Object.keys(n).map(p=>[p,f[p],Dl(t(p))]).sort((p,_)=>p[2]-_[2]);return Se(()=>d.filter(([,p])=>p.value).map(([p])=>p))}return Object.assign(f,{greaterOrEqual:c,smallerOrEqual:u,greater(d){return oo(()=>`(min-width: ${t(d,.1)})`,e)},smaller(d){return oo(()=>`(max-width: ${t(d,-.1)})`,e)},between(d,p){return oo(()=>`(min-width: ${t(d)}) and (max-width: ${t(p,-.1)})`,e)},isGreater(d){return l("min",t(d,.1))},isGreaterOrEqual(d){return l("min",t(d))},isSmaller(d){return l("max",t(d,-.1))},isSmallerOrEqual(d){return l("max",t(d))},isInBetween(d,p){return l("min",t(d))&&l("max",t(p,-.1))},current:h,active(){const d=h();return Se(()=>d.value.length===0?"":d.value.at(r==="min-width"?-1:0))}})}function Ig(n,e={}){const{controls:t=!1,navigator:i=A_}=e,r=Do(()=>i&&"permissions"in i),s=De(),o=typeof n=="string"?{name:n}:n,a=De(),l=()=>{var u,f;a.value=(f=(u=s.value)==null?void 0:u.state)!=null?f:"prompt"};Ft(s,"change",l,{passive:!0});const c=cB(async()=>{if(r.value){if(!s.value)try{s.value=await i.permissions.query(o)}catch{s.value=void 0}finally{l()}if(t)return ct(s.value)}});return c(),t?{state:a,isSupported:r,query:c}:a}function mG(n={}){const{navigator:e=A_,read:t=!1,source:i,copiedDuring:r=1500,legacy:s=!1}=n,o=Do(()=>e&&"clipboard"in e),a=Ig("clipboard-read"),l=Ig("clipboard-write"),c=Se(()=>o.value||s),u=De(""),f=De(!1),h=pB(()=>f.value=!1,r,{immediate:!1});async function d(){let y=!(o.value&&m(a.value));if(!y)try{u.value=await e.clipboard.readText()}catch{y=!0}y&&(u.value=g())}c.value&&t&&Ft(["copy","cut"],d,{passive:!0});async function p(y=it(i)){if(c.value&&y!=null){let b=!(o.value&&m(l.value));if(!b)try{await e.clipboard.writeText(y)}catch{b=!0}b&&_(y),u.value=y,f.value=!0,h.start()}}function _(y){const b=document.createElement("textarea");b.value=y??"",b.style.position="absolute",b.style.opacity="0",document.body.appendChild(b),b.select(),document.execCommand("copy"),b.remove()}function g(){var y,b,v;return(v=(b=(y=document==null?void 0:document.getSelection)==null?void 0:y.call(document))==null?void 0:b.toString())!=null?v:""}function m(y){return y==="granted"||y==="prompt"}return{isSupported:c,text:u,copied:f,copy:p}}const nf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},rf="__vueuse_ssr_handlers__",yB=bB();function bB(){return rf in nf||(nf[rf]=nf[rf]||{}),nf[rf]}function DT(n,e){return yB[n]||e}function xB(n){return oo("(prefers-color-scheme: dark)",n)}function MB(n){return n==null?"any":n instanceof Set?"set":n instanceof Map?"map":n instanceof Date?"date":typeof n=="boolean"?"boolean":typeof n=="string"?"string":typeof n=="object"?"object":Number.isNaN(n)?"any":"number"}const SB={boolean:{read:n=>n==="true",write:n=>String(n)},object:{read:n=>JSON.parse(n),write:n=>JSON.stringify(n)},number:{read:n=>Number.parseFloat(n),write:n=>String(n)},any:{read:n=>n,write:n=>String(n)},string:{read:n=>n,write:n=>String(n)},map:{read:n=>new Map(JSON.parse(n)),write:n=>JSON.stringify(Array.from(n.entries()))},set:{read:n=>new Set(JSON.parse(n)),write:n=>JSON.stringify(Array.from(n))},date:{read:n=>new Date(n),write:n=>n.toISOString()}},Xb="vueuse-storage";function OT(n,e,t,i={}){var r;const{flush:s="pre",deep:o=!0,listenToStorageChanges:a=!0,writeDefaults:l=!0,mergeDefaults:c=!1,shallow:u,window:f=Qn,eventFilter:h,onError:d=L=>{console.error(L)},initOnMounted:p}=i,_=(u?De:et)(typeof e=="function"?e():e),g=Se(()=>it(n));if(!t)try{t=DT("getDefaultStorage",()=>{var L;return(L=Qn)==null?void 0:L.localStorage})()}catch(L){d(L)}if(!t)return _;const m=it(e),y=MB(m),b=(r=i.serializer)!=null?r:SB[y],{pause:v,resume:E}=hB(_,()=>S(_.value),{flush:s,deep:o,eventFilter:h});Xe(g,()=>x(),{flush:s}),f&&a&&Ha(()=>{t instanceof Storage?Ft(f,"storage",x,{passive:!0}):Ft(f,Xb,M),p&&x()}),p||x();function T(L,F){if(f){const V={key:g.value,oldValue:L,newValue:F,storageArea:t};f.dispatchEvent(t instanceof Storage?new StorageEvent("storage",V):new CustomEvent(Xb,{detail:V}))}}function S(L){try{const F=t.getItem(g.value);if(L==null)T(F,null),t.removeItem(g.value);else{const V=b.write(L);F!==V&&(t.setItem(g.value,V),T(F,V))}}catch(F){d(F)}}function R(L){const F=L?L.newValue:t.getItem(g.value);if(F==null)return l&&m!=null&&t.setItem(g.value,b.write(m)),m;if(!L&&c){const V=b.read(F);return typeof c=="function"?c(V,m):y==="object"&&!Array.isArray(V)?{...m,...V}:V}else return typeof F!="string"?F:b.read(F)}function x(L){if(!(L&&L.storageArea!==t)){if(L&&L.key==null){_.value=m;return}if(!(L&&L.key!==g.value)){v();try{(L==null?void 0:L.newValue)!==b.write(_.value)&&(_.value=R(L))}catch(F){d(F)}finally{L?Ss(E):E()}}}}function M(L){x(L.detail)}return _}const EB="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function TB(n={}){const{selector:e="html",attribute:t="class",initialValue:i="auto",window:r=Qn,storage:s,storageKey:o="vueuse-color-scheme",listenToStorageChanges:a=!0,storageRef:l,emitAuto:c,disableTransition:u=!0}=n,f={auto:"",light:"light",dark:"dark",...n.modes||{}},h=xB({window:r}),d=Se(()=>h.value?"dark":"light"),p=l||(o==null?TT(i):OT(o,i,s,{window:r,listenToStorageChanges:a})),_=Se(()=>p.value==="auto"?d.value:p.value),g=DT("updateHTMLAttrs",(v,E,T)=>{const S=typeof v=="string"?r==null?void 0:r.document.querySelector(v):oi(v);if(!S)return;const R=new Set,x=new Set;let M=null;if(E==="class"){const F=T.split(/\s/g);Object.values(f).flatMap(V=>(V||"").split(/\s/g)).filter(Boolean).forEach(V=>{F.includes(V)?R.add(V):x.add(V)})}else M={key:E,value:T};if(R.size===0&&x.size===0&&M===null)return;let L;u&&(L=r.document.createElement("style"),L.appendChild(document.createTextNode(EB)),r.document.head.appendChild(L));for(const F of R)S.classList.add(F);for(const F of x)S.classList.remove(F);M&&S.setAttribute(M.key,M.value),u&&(r.getComputedStyle(L).opacity,document.head.removeChild(L))});function m(v){var E;g(e,t,(E=f[v])!=null?E:v)}function y(v){n.onChanged?n.onChanged(v,m):m(v)}Xe(_,y,{flush:"post",immediate:!0}),Ha(()=>y(_.value));const b=Se({get(){return c?p.value:_.value},set(v){p.value=v}});return Object.assign(b,{store:p,system:d,state:_})}function sf(n,e,t={}){const{window:i=Qn,initialValue:r,observe:s=!1}=t,o=De(r),a=Se(()=>{var c;return oi(e)||((c=i==null?void 0:i.document)==null?void 0:c.documentElement)});function l(){var c;const u=it(n),f=it(a);if(f&&i&&u){const h=(c=i.getComputedStyle(f).getPropertyValue(u))==null?void 0:c.trim();o.value=h||o.value||r}}return s&&IT(a,l,{attributeFilter:["style","class"],window:i}),Xe([a,()=>it(n)],(c,u)=>{u[0]&&u[1]&&u[0].style.removeProperty(u[1]),l()},{immediate:!0}),Xe([o,a],([c,u])=>{const f=it(n);u!=null&&u.style&&f&&(c==null?u.style.removeProperty(f):u.style.setProperty(f,c))},{immediate:!0}),o}function wB(n={}){const{valueDark:e="dark",valueLight:t=""}=n,i=TB({...n,onChanged:(o,a)=>{var l;n.onChanged?(l=n.onChanged)==null||l.call(n,o==="dark",a,o):a(o)},modes:{dark:e,light:t}}),r=Se(()=>i.system.value);return Se({get(){return i.value==="dark"},set(o){const a=o?"dark":"light";r.value===a?i.value="auto":i.value=a}})}function AB(n={}){const{navigator:e=A_,requestPermissions:t=!1,constraints:i={audio:!0,video:!0},onUpdated:r}=n,s=et([]),o=Se(()=>s.value.filter(p=>p.kind==="videoinput")),a=Se(()=>s.value.filter(p=>p.kind==="audioinput")),l=Se(()=>s.value.filter(p=>p.kind==="audiooutput")),c=Do(()=>e&&e.mediaDevices&&e.mediaDevices.enumerateDevices),u=De(!1);let f;async function h(){c.value&&(s.value=await e.mediaDevices.enumerateDevices(),r==null||r(s.value),f&&(f.getTracks().forEach(p=>p.stop()),f=null))}async function d(){const p=i.video?"camera":"microphone";if(!c.value)return!1;if(u.value)return!0;const{state:_,query:g}=Ig(p,{controls:!0});if(await g(),_.value!=="granted"){let m=!0;try{f=await e.mediaDevices.getUserMedia(i)}catch{f=null,m=!1}h(),u.value=m}else u.value=!0;return u.value}return c.value&&(t&&d(),Ft(e.mediaDevices,"devicechange",h,{passive:!0}),h()),{devices:s,ensurePermissions:d,permissionGranted:u,videoInputs:o,audioInputs:a,audioOutputs:l,isSupported:c}}function CB(n,e,t={}){const{window:i=Qn,...r}=t;let s;const o=Do(()=>i&&"ResizeObserver"in i),a=()=>{s&&(s.disconnect(),s=void 0)},l=Se(()=>{const f=it(n);return Array.isArray(f)?f.map(h=>oi(h)):[oi(f)]}),c=Xe(l,f=>{if(a(),o.value&&i){s=new ResizeObserver(e);for(const h of f)h&&s.observe(h,r)}},{immediate:!0,flush:"post"}),u=()=>{a(),c()};return As(u),{isSupported:o,stop:u}}function gG(n,e={}){const{reset:t=!0,windowResize:i=!0,windowScroll:r=!0,immediate:s=!0,updateTiming:o="sync"}=e,a=De(0),l=De(0),c=De(0),u=De(0),f=De(0),h=De(0),d=De(0),p=De(0);function _(){const m=oi(n);if(!m){t&&(a.value=0,l.value=0,c.value=0,u.value=0,f.value=0,h.value=0,d.value=0,p.value=0);return}const y=m.getBoundingClientRect();a.value=y.height,l.value=y.bottom,c.value=y.left,u.value=y.right,f.value=y.top,h.value=y.width,d.value=y.x,p.value=y.y}function g(){o==="sync"?_():o==="next-frame"&&requestAnimationFrame(()=>_())}return CB(n,g),Xe(()=>oi(n),m=>!m&&g()),IT(n,g,{attributeFilter:["style","class"]}),r&&Ft("scroll",g,{capture:!0,passive:!0}),i&&Ft("resize",g,{passive:!0}),Ha(()=>{s&&g()}),{height:a,bottom:l,left:c,right:u,top:f,width:h,x:d,y:p,update:g}}function RB(n,e,t={}){const{root:i,rootMargin:r="0px",threshold:s=0,window:o=Qn,immediate:a=!0}=t,l=Do(()=>o&&"IntersectionObserver"in o),c=Se(()=>{const p=it(n);return Ol(p).map(oi).filter(ET)});let u=er;const f=De(a),h=l.value?Xe(()=>[c.value,oi(i),f.value],([p,_])=>{if(u(),!f.value||!p.length)return;const g=new IntersectionObserver(e,{root:oi(_),rootMargin:r,threshold:s});p.forEach(m=>m&&g.observe(m)),u=()=>{g.disconnect(),u=er}},{immediate:a,flush:"post"}):er,d=()=>{u(),h(),f.value=!1};return As(d),{isSupported:l,isActive:f,pause(){u(),f.value=!1},resume(){f.value=!0},stop:d}}const PB={multiple:!0,accept:"*",reset:!1,directory:!1};function IB(n){if(!n)return null;if(n instanceof FileList)return n;const e=new DataTransfer;for(const t of n)e.items.add(t);return e.files}function _G(n={}){const{document:e=gB}=n,t=et(IB(n.initialFiles)),{on:i,trigger:r}=Wb(),{on:s,trigger:o}=Wb();let a;e&&(a=e.createElement("input"),a.type="file",a.onchange=u=>{const f=u.target;t.value=f.files,r(t.value)},a.oncancel=()=>{o()});const l=()=>{t.value=null,a&&a.value&&(a.value="",r(null))},c=u=>{if(!a)return;const f={...PB,...n,...u};a.multiple=f.multiple,a.accept=f.accept,a.webkitdirectory=f.directory,oB(f,"capture")&&(a.capture=f.capture),f.reset&&l(),a.click()};return{files:xi(t),open:c,reset:l,onCancel:s,onChange:i}}const $b=1;function vG(n,e={}){const{throttle:t=0,idle:i=200,onStop:r=er,onScroll:s=er,offset:o={left:0,right:0,top:0,bottom:0},eventListenerOptions:a={capture:!1,passive:!0},behavior:l="auto",window:c=Qn,onError:u=S=>{console.error(S)}}=e,f=De(0),h=De(0),d=Se({get(){return f.value},set(S){_(S,void 0)}}),p=Se({get(){return h.value},set(S){_(void 0,S)}});function _(S,R){var x,M,L,F;if(!c)return;const V=it(n);if(!V)return;(L=V instanceof Document?c.document.body:V)==null||L.scrollTo({top:(x=it(R))!=null?x:p.value,left:(M=it(S))!=null?M:d.value,behavior:it(l)});const X=((F=V==null?void 0:V.document)==null?void 0:F.documentElement)||(V==null?void 0:V.documentElement)||V;d!=null&&(f.value=X.scrollLeft),p!=null&&(h.value=X.scrollTop)}const g=De(!1),m=bi({left:!0,right:!1,top:!0,bottom:!1}),y=bi({left:!1,right:!1,top:!1,bottom:!1}),b=S=>{g.value&&(g.value=!1,y.left=!1,y.right=!1,y.top=!1,y.bottom=!1,r(S))},v=RT(b,t+i),E=S=>{var R;if(!c)return;const x=((R=S==null?void 0:S.document)==null?void 0:R.documentElement)||(S==null?void 0:S.documentElement)||oi(S),{display:M,flexDirection:L,direction:F}=getComputedStyle(x),V=F==="rtl"?-1:1,X=x.scrollLeft;y.left=Xf.value;const te=Math.abs(X*V)<=(o.left||0),Z=Math.abs(X*V)+x.clientWidth>=x.scrollWidth-(o.right||0)-$b;M==="flex"&&L==="row-reverse"?(m.left=Z,m.right=te):(m.left=te,m.right=Z),f.value=X;let ee=x.scrollTop;S===c.document&&!ee&&(ee=c.document.body.scrollTop),y.top=eeh.value;const Q=Math.abs(ee)<=(o.top||0),de=Math.abs(ee)+x.clientHeight>=x.scrollHeight-(o.bottom||0)-$b;M==="flex"&&L==="column-reverse"?(m.top=de,m.bottom=Q):(m.top=Q,m.bottom=de),h.value=ee},T=S=>{var R;if(!c)return;const x=(R=S.target.documentElement)!=null?R:S.target;E(x),g.value=!0,v(S),s(S)};return Ft(n,"scroll",t?fB(T,t,!0,!1):T,a),Ha(()=>{try{const S=it(n);if(!S)return;E(S)}catch(S){u(S)}}),Ft(n,"scrollend",b,a),{x:d,y:p,isScrolling:g,arrivedState:m,directions:y,measure(){const S=it(n);c&&S&&E(S)}}}function mr(n,e,t={}){const{window:i=Qn}=t;return OT(n,e,i==null?void 0:i.localStorage,t)}function yG(n){const e=De(),t=()=>{e.value&&URL.revokeObjectURL(e.value),e.value=void 0};return Xe(()=>it(n),i=>{t(),i&&(e.value=URL.createObjectURL(i))},{immediate:!0}),As(t),xi(e)}const qb="--vueuse-safe-area-top",Yb="--vueuse-safe-area-right",jb="--vueuse-safe-area-bottom",Kb="--vueuse-safe-area-left";function bG(){const n=De(""),e=De(""),t=De(""),i=De("");if(Xc){const s=sf(qb),o=sf(Yb),a=sf(jb),l=sf(Kb);s.value="env(safe-area-inset-top, 0px)",o.value="env(safe-area-inset-right, 0px)",a.value="env(safe-area-inset-bottom, 0px)",l.value="env(safe-area-inset-left, 0px)",r(),Ft("resize",RT(r),{passive:!0})}function r(){n.value=of(qb),e.value=of(Yb),t.value=of(jb),i.value=of(Kb)}return{top:n,right:e,bottom:t,left:i,update:r}}function of(n){return getComputedStyle(document.documentElement).getPropertyValue(n)}function xG(n,e,t){const{window:i=Qn}={},r=et(null),s=De(),o=(...l)=>{s.value&&s.value.postMessage(...l)},a=function(){s.value&&s.value.terminate()};return i&&(s.value=new Worker(n,e),s.value.onmessage=l=>{r.value=l.data},As(()=>{s.value&&s.value.terminate()})),{data:r,post:o,terminate:a,worker:s}}function MG(n={}){const{window:e=Qn,initialWidth:t=Number.POSITIVE_INFINITY,initialHeight:i=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:s=!0,type:o="inner"}=n,a=De(t),l=De(i),c=()=>{if(e)if(o==="outer")a.value=e.outerWidth,l.value=e.outerHeight;else if(o==="visual"&&e.visualViewport){const{width:f,height:h,scale:d}=e.visualViewport;a.value=Math.round(f*d),l.value=Math.round(h*d)}else s?(a.value=e.innerWidth,l.value=e.innerHeight):(a.value=e.document.documentElement.clientWidth,l.value=e.document.documentElement.clientHeight)};c(),Ha(c);const u={passive:!0};if(Ft("resize",c,u),e&&o==="visual"&&e.visualViewport&&Ft(e.visualViewport,"resize",c,u),r){const f=oo("(orientation: portrait)");Xe(f,()=>c())}return{width:a,height:l}}const NT=1/60*1e3,LB=typeof performance<"u"?()=>performance.now():()=>Date.now(),UT=typeof window<"u"?n=>window.requestAnimationFrame(n):n=>setTimeout(()=>n(LB()),NT);function DB(n){let e=[],t=[],i=0,r=!1,s=!1;const o=new WeakSet,a={schedule:(l,c=!1,u=!1)=>{const f=u&&r,h=f?e:t;return c&&o.add(l),h.indexOf(l)===-1&&(h.push(l),f&&r&&(i=e.length)),l},cancel:l=>{const c=t.indexOf(l);c!==-1&&t.splice(c,1),o.delete(l)},process:l=>{if(r){s=!0;return}if(r=!0,[e,t]=[t,e],t.length=0,i=e.length,i)for(let c=0;c(n[e]=DB(()=>vc=!0),n),{}),Og=$c.reduce((n,e)=>{const t=kd[e];return n[e]=(i,r=!1,s=!1)=>(vc||FB(),t.schedule(i,r,s)),n},{}),NB=$c.reduce((n,e)=>(n[e]=kd[e].cancel,n),{});$c.reduce((n,e)=>(n[e]=()=>kd[e].process(va),n),{});const UB=n=>kd[n].process(va),FT=n=>{vc=!1,va.delta=Lg?NT:Math.max(Math.min(n-va.timestamp,OB),1),va.timestamp=n,Dg=!0,$c.forEach(UB),Dg=!1,vc&&(Lg=!1,UT(FT))},FB=()=>{vc=!0,Lg=!0,Dg||UT(FT)},kT=()=>va;function BT(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);rMath.min(Math.max(t,n),e),Jb=.001,kB=.01,BB=10,zB=.05,VB=1;function HB({duration:n=800,bounce:e=.25,velocity:t=0,mass:i=1}){let r,s,o=1-e;o=Ng(zB,VB,o),n=Ng(kB,BB,n/1e3),o<1?(r=c=>{const u=c*o,f=u*n,h=u-t,d=Ug(c,o),p=Math.exp(-f);return Jb-h/d*p},s=c=>{const f=c*o*n,h=f*t+t,d=Math.pow(o,2)*Math.pow(c,2)*n,p=Math.exp(-f),_=Ug(Math.pow(c,2),o);return(-r(c)+Jb>0?-1:1)*((h-d)*p)/_}):(r=c=>{const u=Math.exp(-c*n),f=(c-t)*n+1;return-.001+u*f},s=c=>{const u=Math.exp(-c*n),f=(t-c)*(n*n);return u*f});const a=5/n,l=WB(r,s,a);if(n=n*1e3,isNaN(l))return{stiffness:100,damping:10,duration:n};{const c=Math.pow(l,2)*i;return{stiffness:c,damping:o*2*Math.sqrt(i*c),duration:n}}}const GB=12;function WB(n,e,t){let i=t;for(let r=1;rn[t]!==void 0)}function qB(n){let e=Object.assign({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1},n);if(!Qb(n,$B)&&Qb(n,XB)){const t=HB(n);e=Object.assign(Object.assign(Object.assign({},e),t),{velocity:0,mass:1}),e.isResolvedFromDuration=!0}return e}function C_(n){var{from:e=0,to:t=1,restSpeed:i=2,restDelta:r}=n,s=BT(n,["from","to","restSpeed","restDelta"]);const o={done:!1,value:e};let{stiffness:a,damping:l,mass:c,velocity:u,duration:f,isResolvedFromDuration:h}=qB(s),d=ex,p=ex;function _(){const g=u?-(u/1e3):0,m=t-e,y=l/(2*Math.sqrt(a*c)),b=Math.sqrt(a/c)/1e3;if(r===void 0&&(r=Math.min(Math.abs(t-e)/100,.4)),y<1){const v=Ug(b,y);d=E=>{const T=Math.exp(-y*b*E);return t-T*((g+y*b*m)/v*Math.sin(v*E)+m*Math.cos(v*E))},p=E=>{const T=Math.exp(-y*b*E);return y*b*T*(Math.sin(v*E)*(g+y*b*m)/v+m*Math.cos(v*E))-T*(Math.cos(v*E)*(g+y*b*m)-v*m*Math.sin(v*E))}}else if(y===1)d=v=>t-Math.exp(-b*v)*(m+(g+b*m)*v);else{const v=b*Math.sqrt(y*y-1);d=E=>{const T=Math.exp(-y*b*E),S=Math.min(v*E,300);return t-T*((g+y*b*m)*Math.sinh(S)+v*m*Math.cosh(S))/v}}}return _(),{next:g=>{const m=d(g);if(h)o.done=g>=f;else{const y=p(g)*1e3,b=Math.abs(y)<=i,v=Math.abs(t-m)<=r;o.done=b&&v}return o.value=o.done?t:m,o},flipTarget:()=>{u=-u,[e,t]=[t,e],_()}}}C_.needsInterpolation=(n,e)=>typeof n=="string"||typeof e=="string";const ex=n=>0,zT=(n,e,t)=>{const i=e-n;return i===0?1:(t-n)/i},R_=(n,e,t)=>-t*n+t*e+n,VT=(n,e)=>t=>Math.max(Math.min(t,e),n),Nl=n=>n%1?Number(n.toFixed(5)):n,yc=/(-)?([\d]*\.?[\d])+/g,Fg=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,YB=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function qc(n){return typeof n=="string"}const Yc={test:n=>typeof n=="number",parse:parseFloat,transform:n=>n},Ul=Object.assign(Object.assign({},Yc),{transform:VT(0,1)}),af=Object.assign(Object.assign({},Yc),{default:1}),P_=n=>({test:e=>qc(e)&&e.endsWith(n)&&e.split(" ").length===1,parse:parseFloat,transform:e=>`${e}${n}`}),Ks=P_("deg"),Fl=P_("%"),ot=P_("px"),tx=Object.assign(Object.assign({},Fl),{parse:n=>Fl.parse(n)/100,transform:n=>Fl.transform(n*100)}),I_=(n,e)=>t=>!!(qc(t)&&YB.test(t)&&t.startsWith(n)||e&&Object.prototype.hasOwnProperty.call(t,e)),HT=(n,e,t)=>i=>{if(!qc(i))return i;const[r,s,o,a]=i.match(yc);return{[n]:parseFloat(r),[e]:parseFloat(s),[t]:parseFloat(o),alpha:a!==void 0?parseFloat(a):1}},uo={test:I_("hsl","hue"),parse:HT("hue","saturation","lightness"),transform:({hue:n,saturation:e,lightness:t,alpha:i=1})=>"hsla("+Math.round(n)+", "+Fl.transform(Nl(e))+", "+Fl.transform(Nl(t))+", "+Nl(Ul.transform(i))+")"},jB=VT(0,255),fm=Object.assign(Object.assign({},Yc),{transform:n=>Math.round(jB(n))}),us={test:I_("rgb","red"),parse:HT("red","green","blue"),transform:({red:n,green:e,blue:t,alpha:i=1})=>"rgba("+fm.transform(n)+", "+fm.transform(e)+", "+fm.transform(t)+", "+Nl(Ul.transform(i))+")"};function KB(n){let e="",t="",i="",r="";return n.length>5?(e=n.substr(1,2),t=n.substr(3,2),i=n.substr(5,2),r=n.substr(7,2)):(e=n.substr(1,1),t=n.substr(2,1),i=n.substr(3,1),r=n.substr(4,1),e+=e,t+=t,i+=i,r+=r),{red:parseInt(e,16),green:parseInt(t,16),blue:parseInt(i,16),alpha:r?parseInt(r,16)/255:1}}const kg={test:I_("#"),parse:KB,transform:us.transform},qn={test:n=>us.test(n)||kg.test(n)||uo.test(n),parse:n=>us.test(n)?us.parse(n):uo.test(n)?uo.parse(n):kg.parse(n),transform:n=>qc(n)?n:n.hasOwnProperty("red")?us.transform(n):uo.transform(n)},GT="${c}",WT="${n}";function ZB(n){var e,t,i,r;return isNaN(n)&&qc(n)&&((t=(e=n.match(yc))===null||e===void 0?void 0:e.length)!==null&&t!==void 0?t:0)+((r=(i=n.match(Fg))===null||i===void 0?void 0:i.length)!==null&&r!==void 0?r:0)>0}function XT(n){typeof n=="number"&&(n=`${n}`);const e=[];let t=0;const i=n.match(Fg);i&&(t=i.length,n=n.replace(Fg,GT),e.push(...i.map(qn.parse)));const r=n.match(yc);return r&&(n=n.replace(yc,WT),e.push(...r.map(Yc.parse))),{values:e,numColors:t,tokenised:n}}function $T(n){return XT(n).values}function qT(n){const{values:e,numColors:t,tokenised:i}=XT(n),r=e.length;return s=>{let o=i;for(let a=0;atypeof n=="number"?0:n;function QB(n){const e=$T(n);return qT(n)(e.map(JB))}const jc={test:ZB,parse:$T,createTransformer:qT,getAnimatableNone:QB},e4=new Set(["brightness","contrast","saturate","opacity"]);function t4(n){let[e,t]=n.slice(0,-1).split("(");if(e==="drop-shadow")return n;const[i]=t.match(yc)||[];if(!i)return n;const r=t.replace(i,"");let s=e4.has(e)?1:0;return i!==t&&(s*=100),e+"("+s+r+")"}const n4=/([a-z-]*)\(.*?\)/g,Bg=Object.assign(Object.assign({},jc),{getAnimatableNone:n=>{const e=n.match(n4);return e?e.map(t4).join(" "):n}});function hm(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)*(2/3-t)*6:n}function nx({hue:n,saturation:e,lightness:t,alpha:i}){n/=360,e/=100,t/=100;let r=0,s=0,o=0;if(!e)r=s=o=t;else{const a=t<.5?t*(1+e):t+e-t*e,l=2*t-a;r=hm(l,a,n+1/3),s=hm(l,a,n),o=hm(l,a,n-1/3)}return{red:Math.round(r*255),green:Math.round(s*255),blue:Math.round(o*255),alpha:i}}const i4=(n,e,t)=>{const i=n*n,r=e*e;return Math.sqrt(Math.max(0,t*(r-i)+i))},r4=[kg,us,uo],ix=n=>r4.find(e=>e.test(n)),YT=(n,e)=>{let t=ix(n),i=ix(e),r=t.parse(n),s=i.parse(e);t===uo&&(r=nx(r),t=us),i===uo&&(s=nx(s),i=us);const o=Object.assign({},r);return a=>{for(const l in o)l!=="alpha"&&(o[l]=i4(r[l],s[l],a));return o.alpha=R_(r.alpha,s.alpha,a),t.transform(o)}},s4=n=>typeof n=="number",o4=(n,e)=>t=>e(n(t)),jT=(...n)=>n.reduce(o4);function KT(n,e){return s4(n)?t=>R_(n,e,t):qn.test(n)?YT(n,e):JT(n,e)}const ZT=(n,e)=>{const t=[...n],i=t.length,r=n.map((s,o)=>KT(s,e[o]));return s=>{for(let o=0;o{const t=Object.assign(Object.assign({},n),e),i={};for(const r in t)n[r]!==void 0&&e[r]!==void 0&&(i[r]=KT(n[r],e[r]));return r=>{for(const s in i)t[s]=i[s](r);return t}};function rx(n){const e=jc.parse(n),t=e.length;let i=0,r=0,s=0;for(let o=0;o{const t=jc.createTransformer(e),i=rx(n),r=rx(e);return i.numHSL===r.numHSL&&i.numRGB===r.numRGB&&i.numNumbers>=r.numNumbers?jT(ZT(i.parsed,r.parsed),t):o=>`${o>0?e:n}`},l4=(n,e)=>t=>R_(n,e,t);function c4(n){if(typeof n=="number")return l4;if(typeof n=="string")return qn.test(n)?YT:JT;if(Array.isArray(n))return ZT;if(typeof n=="object")return a4}function u4(n,e,t){const i=[],r=t||c4(n[0]),s=n.length-1;for(let o=0;ot(zT(n,e,i))}function h4(n,e){const t=n.length,i=t-1;return r=>{let s=0,o=!1;if(r<=n[0]?o=!0:r>=n[i]&&(s=i-1,o=!0),!o){let l=1;for(;lr||l===i);l++);s=l-1}const a=zT(n[s],n[s+1],r);return e[s](a)}}function QT(n,e,{clamp:t=!0,ease:i,mixer:r}={}){const s=n.length;Zb(s===e.length),Zb(!i||!Array.isArray(i)||i.length===s-1),n[0]>n[s-1]&&(n=[].concat(n),e=[].concat(e),n.reverse(),e.reverse());const o=u4(e,i,r),a=s===2?f4(n,o):h4(n,o);return t?l=>a(Ng(n[0],n[s-1],l)):a}const Bd=n=>e=>1-n(1-e),L_=n=>e=>e<=.5?n(2*e)/2:(2-n(2*(1-e)))/2,d4=n=>e=>Math.pow(e,n),ew=n=>e=>e*e*((n+1)*e-n),p4=n=>{const e=ew(n);return t=>(t*=2)<1?.5*e(t):.5*(2-Math.pow(2,-10*(t-1)))},tw=1.525,m4=4/11,g4=8/11,_4=9/10,nw=n=>n,D_=d4(2),v4=Bd(D_),iw=L_(D_),rw=n=>1-Math.sin(Math.acos(n)),sw=Bd(rw),y4=L_(sw),O_=ew(tw),b4=Bd(O_),x4=L_(O_),M4=p4(tw),S4=4356/361,E4=35442/1805,T4=16061/1805,Ch=n=>{if(n===1||n===0)return n;const e=n*n;return nn<.5?.5*(1-Ch(1-n*2)):.5*Ch(n*2-1)+.5;function C4(n,e){return n.map(()=>e||iw).splice(0,n.length-1)}function R4(n){const e=n.length;return n.map((t,i)=>i!==0?i/(e-1):0)}function P4(n,e){return n.map(t=>t*e)}function wf({from:n=0,to:e=1,ease:t,offset:i,duration:r=300}){const s={done:!1,value:n},o=Array.isArray(e)?e:[n,e],a=P4(i&&i.length===o.length?i:R4(o),r);function l(){return QT(a,o,{ease:Array.isArray(t)?t:C4(o,t)})}let c=l();return{next:u=>(s.value=c(u),s.done=u>=r,s),flipTarget:()=>{o.reverse(),c=l()}}}function I4({velocity:n=0,from:e=0,power:t=.8,timeConstant:i=350,restDelta:r=.5,modifyTarget:s}){const o={done:!1,value:e};let a=t*n;const l=e+a,c=s===void 0?l:s(l);return c!==l&&(a=c-e),{next:u=>{const f=-a*Math.exp(-u/i);return o.done=!(f>r||f<-r),o.value=o.done?c:c+f,o},flipTarget:()=>{}}}const sx={keyframes:wf,spring:C_,decay:I4};function L4(n){if(Array.isArray(n.to))return wf;if(sx[n.type])return sx[n.type];const e=new Set(Object.keys(n));return e.has("ease")||e.has("duration")&&!e.has("dampingRatio")?wf:e.has("dampingRatio")||e.has("stiffness")||e.has("mass")||e.has("damping")||e.has("restSpeed")||e.has("restDelta")?C_:wf}function ow(n,e,t=0){return n-e-t}function D4(n,e,t=0,i=!0){return i?ow(e+-n,e,t):e-(n-e)+t}function O4(n,e,t,i){return i?n>=e+t:n<=-t}const N4=n=>{const e=({delta:t})=>n(t);return{start:()=>Og.update(e,!0),stop:()=>NB.update(e)}};function aw(n){var e,t,{from:i,autoplay:r=!0,driver:s=N4,elapsed:o=0,repeat:a=0,repeatType:l="loop",repeatDelay:c=0,onPlay:u,onStop:f,onComplete:h,onRepeat:d,onUpdate:p}=n,_=BT(n,["from","autoplay","driver","elapsed","repeat","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate"]);let{to:g}=_,m,y=0,b=_.duration,v,E=!1,T=!0,S;const R=L4(_);!((t=(e=R).needsInterpolation)===null||t===void 0)&&t.call(e,i,g)&&(S=QT([0,100],[i,g],{clamp:!1}),i=0,g=100);const x=R(Object.assign(Object.assign({},_),{from:i,to:g}));function M(){y++,l==="reverse"?(T=y%2===0,o=D4(o,b,c,T)):(o=ow(o,b,c),l==="mirror"&&x.flipTarget()),E=!1,d&&d()}function L(){m.stop(),h&&h()}function F(X){if(T||(X=-X),o+=X,!E){const te=x.next(Math.max(0,o));v=te.value,S&&(v=S(v)),E=T?te.done:o<=0}p==null||p(v),E&&(y===0&&(b??(b=o)),y{f==null||f(),m.stop()}}}function lw(n,e){return e?n*(1e3/e):0}function U4({from:n=0,velocity:e=0,min:t,max:i,power:r=.8,timeConstant:s=750,bounceStiffness:o=500,bounceDamping:a=10,restDelta:l=1,modifyTarget:c,driver:u,onUpdate:f,onComplete:h,onStop:d}){let p;function _(b){return t!==void 0&&bi}function g(b){return t===void 0?i:i===void 0||Math.abs(t-b){var E;f==null||f(v),(E=b.onUpdate)===null||E===void 0||E.call(b,v)},onComplete:h,onStop:d}))}function y(b){m(Object.assign({type:"spring",stiffness:o,damping:a,restDelta:l},b))}if(_(n))y({from:n,velocity:e,to:g(n)});else{let b=r*e+n;typeof c<"u"&&(b=c(b));const v=g(b),E=v===t?-1:1;let T,S;const R=x=>{T=S,S=x,e=lw(x-T,kT().delta),(E===1&&x>v||E===-1&&xp==null?void 0:p.stop()}}const cw=(n,e)=>1-3*e+3*n,uw=(n,e)=>3*e-6*n,fw=n=>3*n,Rh=(n,e,t)=>((cw(e,t)*n+uw(e,t))*n+fw(e))*n,hw=(n,e,t)=>3*cw(e,t)*n*n+2*uw(e,t)*n+fw(e),F4=1e-7,k4=10;function B4(n,e,t,i,r){let s,o,a=0;do o=e+(t-e)/2,s=Rh(o,i,r)-n,s>0?t=o:e=o;while(Math.abs(s)>F4&&++a=V4?H4(o,f,n,t):h===0?f:B4(o,a,a+lf,n,t)}return o=>o===0||o===1?o:Rh(s(o),e,i)}const Ir={},dm={};class W4{constructor(){fi(this,"subscriptions",new Set)}add(e){return this.subscriptions.add(e),()=>this.subscriptions.delete(e)}notify(e,t,i){if(this.subscriptions.size)for(const r of this.subscriptions)r(e,t,i)}clear(){this.subscriptions.clear()}}function ox(n){return!Number.isNaN(Number.parseFloat(n))}class X4{constructor(e){fi(this,"current");fi(this,"prev");fi(this,"timeDelta",0);fi(this,"lastUpdated",0);fi(this,"updateSubscribers",new W4);fi(this,"stopAnimation");fi(this,"canTrackVelocity",!1);fi(this,"updateAndNotify",e=>{this.prev=this.current,this.current=e;const{delta:t,timestamp:i}=kT();this.lastUpdated!==i&&(this.timeDelta=t,this.lastUpdated=i),Og.postRender(this.scheduleVelocityCheck),this.updateSubscribers.notify(this.current)});fi(this,"scheduleVelocityCheck",()=>Og.postRender(this.velocityCheck));fi(this,"velocityCheck",({timestamp:e})=>{this.canTrackVelocity||(this.canTrackVelocity=ox(this.current)),e!==this.lastUpdated&&(this.prev=this.current)});this.prev=this.current=e,this.canTrackVelocity=ox(this.current)}onChange(e){return this.updateSubscribers.add(e)}clearListeners(){this.updateSubscribers.clear()}set(e){this.updateAndNotify(e)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){return this.canTrackVelocity?lw(Number.parseFloat(this.current)-Number.parseFloat(this.prev),this.timeDelta):0}start(e){return this.stop(),new Promise(t=>{const{stop:i}=e(t);this.stopAnimation=i}).then(()=>this.clearAnimation())}stop(){this.stopAnimation&&this.stopAnimation(),this.clearAnimation()}isAnimating(){return!!this.stopAnimation}clearAnimation(){this.stopAnimation=null}destroy(){this.updateSubscribers.clear(),this.stop()}}function $4(n){return new X4(n)}const{isArray:q4}=Array;function Y4(){const n=et({}),e=i=>{const r=s=>{n.value[s]&&(n.value[s].stop(),n.value[s].destroy(),delete n.value[s])};i?q4(i)?i.forEach(r):r(i):Object.keys(n.value).forEach(r)},t=(i,r,s)=>{if(n.value[i])return n.value[i];const o=$4(r);return o.onChange(a=>s[i]=a),n.value[i]=o,o};return dB(e),{motionValues:n,get:t,stop:e}}function j4(n){return Array.isArray(n)}function Zs(){return{type:"spring",stiffness:500,damping:25,restDelta:.5,restSpeed:10}}function pm(n){return{type:"spring",stiffness:550,damping:n===0?2*Math.sqrt(550):30,restDelta:.01,restSpeed:10}}function K4(n){return{type:"spring",stiffness:550,damping:n===0?100:30,restDelta:.01,restSpeed:10}}function mm(){return{type:"keyframes",ease:"linear",duration:300}}function Z4(n){return{type:"keyframes",duration:800,values:n}}const ax={default:K4,x:Zs,y:Zs,z:Zs,rotate:Zs,rotateX:Zs,rotateY:Zs,rotateZ:Zs,scaleX:pm,scaleY:pm,scale:pm,backgroundColor:mm,color:mm,opacity:mm};function dw(n,e){let t;return j4(e)?t=Z4:t=ax[n]||ax.default,{to:e,...t(e)}}const lx={...Yc,transform:Math.round},pw={color:qn,backgroundColor:qn,outlineColor:qn,fill:qn,stroke:qn,borderColor:qn,borderTopColor:qn,borderRightColor:qn,borderBottomColor:qn,borderLeftColor:qn,borderWidth:ot,borderTopWidth:ot,borderRightWidth:ot,borderBottomWidth:ot,borderLeftWidth:ot,borderRadius:ot,radius:ot,borderTopLeftRadius:ot,borderTopRightRadius:ot,borderBottomRightRadius:ot,borderBottomLeftRadius:ot,width:ot,maxWidth:ot,height:ot,maxHeight:ot,size:ot,top:ot,right:ot,bottom:ot,left:ot,padding:ot,paddingTop:ot,paddingRight:ot,paddingBottom:ot,paddingLeft:ot,margin:ot,marginTop:ot,marginRight:ot,marginBottom:ot,marginLeft:ot,rotate:Ks,rotateX:Ks,rotateY:Ks,rotateZ:Ks,scale:af,scaleX:af,scaleY:af,scaleZ:af,skew:Ks,skewX:Ks,skewY:Ks,distance:ot,translateX:ot,translateY:ot,translateZ:ot,x:ot,y:ot,z:ot,perspective:ot,transformPerspective:ot,opacity:Ul,originX:tx,originY:tx,originZ:ot,zIndex:lx,filter:Bg,WebkitFilter:Bg,fillOpacity:Ul,strokeOpacity:Ul,numOctaves:lx},N_=n=>pw[n];function zg(n,e){return e&&typeof n=="number"&&e.transform?e.transform(n):n}function J4(n,e){let t=N_(n);return t!==Bg&&(t=jc),t.getAnimatableNone?t.getAnimatableNone(e):void 0}const Q4={linear:nw,easeIn:D_,easeInOut:iw,easeOut:v4,circIn:rw,circInOut:y4,circOut:sw,backIn:O_,backInOut:x4,backOut:b4,anticipate:M4,bounceIn:w4,bounceInOut:A4,bounceOut:Ch};function cx(n){if(Array.isArray(n)){const[e,t,i,r]=n;return G4(e,t,i,r)}else if(typeof n=="string")return Q4[n];return n}function e5(n){return Array.isArray(n)&&typeof n[0]!="number"}function ux(n,e){return n==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&jc.test(e)&&!e.startsWith("url("))}function t5(n){return Array.isArray(n.to)&&n.to[0]===null&&(n.to=[...n.to],n.to[0]=n.from),n}function n5({ease:n,times:e,delay:t,...i}){const r={...i};return e&&(r.offset=e),n&&(r.ease=e5(n)?n.map(cx):cx(n)),t&&(r.elapsed=-t),r}function i5(n,e,t){return Array.isArray(e.to)&&(n.duration||(n.duration=800)),t5(e),r5(n)||(n={...n,...dw(t,e.to)}),{...e,...n5(n)}}function r5({delay:n,repeat:e,repeatType:t,repeatDelay:i,from:r,...s}){return!!Object.keys(s).length}function s5(n,e){return n[e]||n.default||n}function o5(n,e,t,i,r){const s=s5(i,n);let o=s.from===null||s.from===void 0?e.get():s.from;const a=ux(n,t);o==="none"&&a&&typeof t=="string"&&(o=J4(n,t));const l=ux(n,o);function c(f){const h={from:o,to:t,velocity:i.velocity?i.velocity:e.getVelocity(),onUpdate:d=>e.set(d)};return s.type==="inertia"||s.type==="decay"?U4({...h,...s}):aw({...i5(s,h,n),onUpdate:d=>{h.onUpdate(d),s.onUpdate&&s.onUpdate(d)},onComplete:()=>{r&&r(),f&&f()}})}function u(f){return e.set(t),r&&r(),f&&f(),{stop:()=>{}}}return!l||!a||s.type===!1?u:c}function a5(){const{motionValues:n,stop:e,get:t}=Y4();return{motionValues:n,stop:e,push:(r,s,o,a={},l)=>{const c=o[r],u=t(r,c,o);if(a&&a.immediate){u.set(s);return}const f=o5(r,u,s,a,l);u.start(f)}}}function l5(n,e={},{motionValues:t,push:i,stop:r}=a5()){const s=Ot(e),o=et(!1);Xe(t,f=>{o.value=Object.values(f).filter(h=>h.isAnimating()).length>0},{immediate:!0,deep:!0});const a=f=>{if(!s||!s[f])throw new Error(`The variant ${f} does not exist.`);return s[f]},l=f=>{typeof f=="string"&&(f=a(f));const h=Object.entries(f).map(([p,_])=>{if(p!=="transition")return new Promise(g=>i(p,_,n,f.transition||dw(p,f[p]),g))}).filter(Boolean);async function d(){var p,_;await Promise.all(h),(_=(p=f.transition)==null?void 0:p.onComplete)==null||_.call(p)}return Promise.all([d()])};return{isAnimating:o,apply:l,set:f=>{const h=Ah(f)?f:a(f);Object.entries(h).forEach(([d,p])=>{d!=="transition"&&i(d,p,n,{immediate:!0})})},leave:async f=>{let h;if(s&&(s.leave&&(h=s.leave),!s.leave&&s.initial&&(h=s.initial)),!h){f();return}await l(h),f()},stop:r}}const U_=typeof window<"u",c5=()=>U_&&(window.onpointerdown===null||(Ir==null?void 0:Ir.TEST)),u5=()=>U_&&(window.ontouchstart===null||(Ir==null?void 0:Ir.TEST)),f5=()=>U_&&(window.onmousedown===null||(Ir==null?void 0:Ir.TEST));function h5({target:n,state:e,variants:t,apply:i}){const r=Ot(t),s=et(!1),o=et(!1),a=et(!1),l=Se(()=>{let u=[...Object.keys(e.value||{})];return r&&(r.hovered&&(u=[...u,...Object.keys(r.hovered)]),r.tapped&&(u=[...u,...Object.keys(r.tapped)]),r.focused&&(u=[...u,...Object.keys(r.focused)])),u}),c=Se(()=>{const u={};Object.assign(u,e.value),s.value&&r.hovered&&Object.assign(u,r.hovered),o.value&&r.tapped&&Object.assign(u,r.tapped),a.value&&r.focused&&Object.assign(u,r.focused);for(const f in u)l.value.includes(f)||delete u[f];return u});r.hovered&&(Ft(n,"mouseenter",()=>s.value=!0),Ft(n,"mouseleave",()=>{s.value=!1,o.value=!1})),r.tapped&&(f5()&&(Ft(n,"mousedown",()=>o.value=!0),Ft(n,"mouseup",()=>o.value=!1)),c5()&&(Ft(n,"pointerdown",()=>o.value=!0),Ft(n,"pointerup",()=>o.value=!1)),u5()&&(Ft(n,"touchstart",()=>o.value=!0),Ft(n,"touchend",()=>o.value=!1))),r.focused&&(Ft(n,"focus",()=>a.value=!0),Ft(n,"blur",()=>a.value=!1)),Xe([s,o,a],()=>{i(c.value)})}function d5({set:n,target:e,variants:t,variant:i}){const r=Ot(t);Xe(()=>e,()=>{r&&(r.initial&&(n("initial"),i.value="initial"),r.enter&&(i.value="enter"))},{immediate:!0,flush:"pre"})}function p5({state:n,apply:e}){Xe(n,t=>{t&&e(t)},{immediate:!0})}function mw({target:n,variants:e,variant:t}){const i=Ot(e);i&&(i.visible||i.visibleOnce)&&RB(n,([{isIntersecting:r}])=>{i.visible?r?t.value="visible":t.value="initial":i.visibleOnce&&(r&&t.value!=="visibleOnce"?t.value="visibleOnce":t.value||(t.value="initial"))})}function m5(n,e={syncVariants:!0,lifeCycleHooks:!0,visibilityHooks:!0,eventListeners:!0}){e.lifeCycleHooks&&d5(n),e.syncVariants&&p5(n),e.visibilityHooks&&mw(n),e.eventListeners&&h5(n)}function gw(n={}){const e=bi({...n}),t=et({});return Xe(e,()=>{const i={};for(const[r,s]of Object.entries(e)){const o=N_(r),a=zg(s,o);i[r]=a}t.value=i},{immediate:!0,deep:!0}),{state:e,style:t}}function F_(n,e){Xe(()=>oi(n),t=>{t&&e(t)},{immediate:!0})}const g5={x:"translateX",y:"translateY",z:"translateZ"};function _w(n={},e=!0){const t=bi({...n}),i=et("");return Xe(t,r=>{let s="",o=!1;if(e&&(r.x||r.y||r.z)){const a=[r.x||0,r.y||0,r.z||0].map(l=>zg(l,ot)).join(",");s+=`translate3d(${a}) `,o=!0}for(const[a,l]of Object.entries(r)){if(e&&(a==="x"||a==="y"||a==="z"))continue;const c=N_(a),u=zg(l,c);s+=`${g5[a]||a}(${u}) `}e&&!o&&(s+="translateZ(0px) "),i.value=s.trim()},{immediate:!0,deep:!0}),{state:t,transform:i}}const _5=["","X","Y","Z"],v5=["perspective","translate","scale","rotate","skew"],vw=["transformPerspective","x","y","z"];v5.forEach(n=>{_5.forEach(e=>{const t=n+e;vw.push(t)})});const y5=new Set(vw);function k_(n){return y5.has(n)}const b5=new Set(["originX","originY","originZ"]);function yw(n){return b5.has(n)}function x5(n){const e={},t={};return Object.entries(n).forEach(([i,r])=>{k_(i)||yw(i)?e[i]=r:t[i]=r}),{transform:e,style:t}}function zd(n){const{transform:e,style:t}=x5(n),{transform:i}=_w(e),{style:r}=gw(t);return i.value&&(r.value.transform=i.value),r.value}function M5(n,e){let t,i;const{state:r,style:s}=gw();return F_(n,o=>{i=o;for(const a of Object.keys(pw))o.style[a]===null||o.style[a]===""||k_(a)||yw(a)||(r[a]=o.style[a]);t&&Object.entries(t).forEach(([a,l])=>o.style[a]=l),e&&e(r)}),Xe(s,o=>{if(!i){t=o;return}for(const a in o)i.style[a]=o[a]},{immediate:!0}),{style:r}}function S5(n){const e=n.trim().split(/\) |\)/);if(e.length===1)return{};const t=i=>i.endsWith("px")||i.endsWith("deg")?Number.parseFloat(i):Number.isNaN(Number(i))?Number(i):i;return e.reduce((i,r)=>{if(!r)return i;const[s,o]=r.split("("),l=o.split(",").map(u=>t(u.endsWith(")")?u.replace(")",""):u.trim())),c=l.length===1?l[0]:l;return{...i,[s]:c}},{})}function E5(n,e){Object.entries(S5(e)).forEach(([t,i])=>{const r=["x","y","z"];if(t==="translate3d"){if(i===0){r.forEach(s=>n[s]=0);return}i.forEach((s,o)=>n[r[o]]=s);return}if(i=Number.parseFloat(`${i}`),t==="translateX"){n.x=i;return}if(t==="translateY"){n.y=i;return}if(t==="translateZ"){n.z=i;return}n[t]=i})}function T5(n,e){let t,i;const{state:r,transform:s}=_w();return F_(n,o=>{i=o,o.style.transform&&E5(r,o.style.transform),t&&(o.style.transform=t),e&&e(r)}),Xe(s,o=>{if(!i){t=o;return}i.style.transform=o},{immediate:!0}),{transform:r}}function w5(n){return Object.entries(n)}function A5(n,e){const t=bi({}),i=o=>Object.entries(o).forEach(([a,l])=>t[a]=l),{style:r}=M5(n,i),{transform:s}=T5(n,i);return Xe(t,o=>{w5(o).forEach(([a,l])=>{const c=k_(a)?s:r;c[a]&&c[a]===l||(c[a]=l)})},{immediate:!0,deep:!0}),F_(n,()=>e),{motionProperties:t,style:r,transform:s}}function C5(n={}){const e=Ot(n),t=et();return{state:Se(()=>{if(t.value)return e[t.value]}),variant:t}}function bw(n,e={},t){const{motionProperties:i}=A5(n),{variant:r,state:s}=C5(e),o=l5(i,e),a={target:n,variant:r,variants:e,state:s,motionProperties:i,...o};return m5(a,t),a}const xw=["delay","duration"],R5=["initial","enter","leave","visible","visible-once","visibleOnce","hovered","tapped","focused",...xw];function P5(n){return xw.includes(n)}function I5(n,e){const t=n.props?n.props:n.data&&n.data.attrs?n.data.attrs:{};if(t){t.variants&&Ah(t.variants)&&(e.value={...e.value,...t.variants});for(let i of R5)if(!(!t||!t[i])){if(P5(i)&&typeof t[i]=="number"){for(const r of["enter","visible","visibleOnce"]){const s=e.value[r];s!=null&&(s.transition??(s.transition={}),s.transition[i]=t[i])}continue}if(Ah(t[i])){const r=t[i];i==="visible-once"&&(i="visibleOnce"),e.value[i]=r}}}}function gm(n,e=!1){return{created:(r,s,o)=>{const a=s.value&&typeof s.value=="string"?s.value:o.key;a&&dm[a]&&dm[a].stop();const l=e?structuredClone(ct(n)||{}):n||{},c=et(l);typeof s.value=="object"&&(c.value=s.value),I5(o,c);const f=bw(r,c,{eventListeners:!0,lifeCycleHooks:!0,syncVariants:!0,visibilityHooks:!1});r.motionInstance=f,a&&(dm[a]=f)},mounted:(r,s,o)=>{r.motionInstance&&mw(r.motionInstance)},getSSRProps(r,s){let{initial:o}=r.value||s&&(s==null?void 0:s.props)||{};o=Ot(o);const a=ST({},(n==null?void 0:n.initial)||{},o||{});return!a||Object.keys(a).length===0?void 0:{style:zd(a)}}}}const L5={initial:{opacity:0},enter:{opacity:1}},D5={initial:{opacity:0},visible:{opacity:1}},O5={initial:{opacity:0},visibleOnce:{opacity:1}},N5={initial:{scale:0,opacity:0},enter:{scale:1,opacity:1}},U5={initial:{scale:0,opacity:0},visible:{scale:1,opacity:1}},F5={initial:{scale:0,opacity:0},visibleOnce:{scale:1,opacity:1}},k5={initial:{x:-100,rotate:90,opacity:0},enter:{x:0,rotate:0,opacity:1}},B5={initial:{x:-100,rotate:90,opacity:0},visible:{x:0,rotate:0,opacity:1}},z5={initial:{x:-100,rotate:90,opacity:0},visibleOnce:{x:0,rotate:0,opacity:1}},V5={initial:{x:100,rotate:-90,opacity:0},enter:{x:0,rotate:0,opacity:1}},H5={initial:{x:100,rotate:-90,opacity:0},visible:{x:0,rotate:0,opacity:1}},G5={initial:{x:100,rotate:-90,opacity:0},visibleOnce:{x:0,rotate:0,opacity:1}},W5={initial:{y:-100,rotate:-90,opacity:0},enter:{y:0,rotate:0,opacity:1}},X5={initial:{y:-100,rotate:-90,opacity:0},visible:{y:0,rotate:0,opacity:1}},$5={initial:{y:-100,rotate:-90,opacity:0},visibleOnce:{y:0,rotate:0,opacity:1}},q5={initial:{y:100,rotate:90,opacity:0},enter:{y:0,rotate:0,opacity:1}},Y5={initial:{y:100,rotate:90,opacity:0},visible:{y:0,rotate:0,opacity:1}},j5={initial:{y:100,rotate:90,opacity:0},visibleOnce:{y:0,rotate:0,opacity:1}},K5={initial:{x:-100,opacity:0},enter:{x:0,opacity:1}},Z5={initial:{x:-100,opacity:0},visible:{x:0,opacity:1}},J5={initial:{x:-100,opacity:0},visibleOnce:{x:0,opacity:1}},Q5={initial:{x:100,opacity:0},enter:{x:0,opacity:1}},ez={initial:{x:100,opacity:0},visible:{x:0,opacity:1}},tz={initial:{x:100,opacity:0},visibleOnce:{x:0,opacity:1}},nz={initial:{y:-100,opacity:0},enter:{y:0,opacity:1}},iz={initial:{y:-100,opacity:0},visible:{y:0,opacity:1}},rz={initial:{y:-100,opacity:0},visibleOnce:{y:0,opacity:1}},sz={initial:{y:100,opacity:0},enter:{y:0,opacity:1}},oz={initial:{y:100,opacity:0},visible:{y:0,opacity:1}},az={initial:{y:100,opacity:0},visibleOnce:{y:0,opacity:1}},Ph={__proto__:null,fade:L5,fadeVisible:D5,fadeVisibleOnce:O5,pop:N5,popVisible:U5,popVisibleOnce:F5,rollBottom:q5,rollLeft:k5,rollRight:V5,rollTop:W5,rollVisibleBottom:Y5,rollVisibleLeft:B5,rollVisibleOnceBottom:j5,rollVisibleOnceLeft:z5,rollVisibleOnceRight:G5,rollVisibleOnceTop:$5,rollVisibleRight:H5,rollVisibleTop:X5,slideBottom:sz,slideLeft:K5,slideRight:Q5,slideTop:nz,slideVisibleBottom:oz,slideVisibleLeft:Z5,slideVisibleOnceBottom:az,slideVisibleOnceLeft:J5,slideVisibleOnceRight:tz,slideVisibleOnceTop:rz,slideVisibleRight:ez,slideVisibleTop:iz};function lz(n){const e="àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;",t="aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------",i=new RegExp(e.split("").join("|"),"g");return n.toString().replace(/[A-Z]/g,r=>`-${r}`).toLowerCase().replace(/\s+/g,"-").replace(i,r=>t.charAt(e.indexOf(r))).replace(/&/g,"-and-").replace(/[^\w\-]+/g,"").replace(/-{2,}/g,"-").replace(/^-+/,"").replace(/-+$/,"")}const Mw=Symbol(""),Sw={preset:{type:String,required:!1},instance:{type:Object,required:!1},variants:{type:Object,required:!1},initial:{type:Object,required:!1},enter:{type:Object,required:!1},leave:{type:Object,required:!1},visible:{type:Object,required:!1},visibleOnce:{type:Object,required:!1},hovered:{type:Object,required:!1},tapped:{type:Object,required:!1},focused:{type:Object,required:!1},delay:{type:[Number,String],required:!1},duration:{type:[Number,String],required:!1}};function cz(n){return Object.prototype.toString.call(n)==="[object Object]"}function Vg(n){if(Array.isArray(n))return n.map(Vg);if(cz(n)){const e={};for(const t in n)e[t]=Vg(n[t]);return e}return n}function Ew(n){const e=bi({}),t=En(Mw,{}),i=Se(()=>n.preset==null?{}:t!=null&&n.preset in t?structuredClone(ct(t)[n.preset]):n.preset in Ph?structuredClone(Ph[n.preset]):{}),r=Se(()=>({initial:n.initial,enter:n.enter,leave:n.leave,visible:n.visible,visibleOnce:n.visibleOnce,hovered:n.hovered,tapped:n.tapped,focused:n.focused}));function s(l,c){for(const u of["delay","duration"]){if(c[u]==null)continue;const f=Number.parseInt(c[u]);for(const h of["enter","visible","visibleOnce"]){const d=l[h];d!=null&&(d.transition??(d.transition={}),d.transition[u]=f)}}return l}const o=Se(()=>{const l=ST({},r.value,i.value,n.variants||{});return s({...l},n)});function a(l,c,u){var h;l.props??(l.props={}),(h=l.props).style??(h.style={}),l.props.style={...l.props.style,...u};const f=s(Vg(o.value),l.props);return l.props.onVnodeMounted=({el:d})=>{e[c]=bw(d,f)},l.props.onVnodeUpdated=({el:d})=>{const p=zd(e[c].state);for(const[_,g]of Object.entries(p))d.style[_]=g},l}return{motionConfig:o,setNodeInstance:a}}const uz=fn({name:"Motion",props:{...Sw,is:{type:[String,Object],default:"div"}},setup(n){const e=A0(),{motionConfig:t,setNodeInstance:i}=Ew(n);return()=>{const r=zd(t.value.initial||{}),s=Lr(n.is,void 0,e);return i(s,0,r),s}}}),fz=fn({name:"MotionGroup",props:{...Sw,is:{type:[String,Object],required:!1}},setup(n){const e=A0(),{motionConfig:t,setNodeInstance:i}=Ew(n);return()=>{var o;const r=zd(t.value.initial||{}),s=((o=e.default)==null?void 0:o.call(e))||[];for(let a=0;a
'};t.configure=function(p){var _,g;for(_ in p)g=p[_],g!==void 0&&p.hasOwnProperty(_)&&(i[_]=g);return this},t.status=null,t.set=function(p){var _=t.isStarted();p=r(p,i.minimum,1),t.status=p===1?null:p;var g=t.render(!_),m=g.querySelector(i.barSelector),y=i.speed,b=i.easing;return g.offsetWidth,a(function(v){i.positionUsing===""&&(i.positionUsing=t.getPositioningCSS()),l(m,o(p,y,b)),p===1?(l(g,{transition:"none",opacity:1}),g.offsetWidth,setTimeout(function(){l(g,{transition:"all "+y+"ms linear",opacity:0}),setTimeout(function(){t.remove(),v()},y)},y)):setTimeout(v,y)}),this},t.isStarted=function(){return typeof t.status=="number"},t.start=function(){t.status||t.set(0);var p=function(){setTimeout(function(){t.status&&(t.trickle(),p())},i.trickleSpeed)};return i.trickle&&p(),this},t.done=function(p){return!p&&!t.status?this:t.inc(.3+.5*Math.random()).set(1)},t.inc=function(p){var _=t.status;return _?(typeof p!="number"&&(p=(1-_)*r(Math.random()*_,.1,.95)),_=r(_+p,0,.994),t.set(_)):t.start()},t.trickle=function(){return t.inc(Math.random()*i.trickleRate)},function(){var p=0,_=0;t.promise=function(g){return!g||g.state()==="resolved"?this:(_===0&&t.start(),p++,_++,g.always(function(){_--,_===0?(p=0,t.done()):t.set((p-_)/p)}),this)}}(),t.render=function(p){if(t.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var _=document.createElement("div");_.id="nprogress",_.innerHTML=i.template;var g=_.querySelector(i.barSelector),m=p?"-100":s(t.status||0),y=document.querySelector(i.parent),b;return l(g,{transition:"all 0 linear",transform:"translate3d("+m+"%,0,0)"}),i.showSpinner||(b=_.querySelector(i.spinnerSelector),b&&d(b)),y!=document.body&&u(y,"nprogress-custom-parent"),y.appendChild(_),_},t.remove=function(){f(document.documentElement,"nprogress-busy"),f(document.querySelector(i.parent),"nprogress-custom-parent");var p=document.getElementById("nprogress");p&&d(p)},t.isRendered=function(){return!!document.getElementById("nprogress")},t.getPositioningCSS=function(){var p=document.body.style,_="WebkitTransform"in p?"Webkit":"MozTransform"in p?"Moz":"msTransform"in p?"ms":"OTransform"in p?"O":"";return _+"Perspective"in p?"translate3d":_+"Transform"in p?"translate":"margin"};function r(p,_,g){return p<_?_:p>g?g:p}function s(p){return(-1+p)*100}function o(p,_,g){var m;return i.positionUsing==="translate3d"?m={transform:"translate3d("+s(p)+"%,0,0)"}:i.positionUsing==="translate"?m={transform:"translate("+s(p)+"%,0)"}:m={"margin-left":s(p)+"%"},m.transition="all "+_+"ms "+g,m}var a=function(){var p=[];function _(){var g=p.shift();g&&g(_)}return function(g){p.push(g),p.length==1&&_()}}(),l=function(){var p=["Webkit","O","Moz","ms"],_={};function g(v){return v.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(E,T){return T.toUpperCase()})}function m(v){var E=document.body.style;if(v in E)return v;for(var T=p.length,S=v.charAt(0).toUpperCase()+v.slice(1),R;T--;)if(R=p[T]+S,R in E)return R;return v}function y(v){return v=g(v),_[v]||(_[v]=m(v))}function b(v,E,T){E=y(E),v.style[E]=T}return function(v,E){var T=arguments,S,R;if(T.length==2)for(S in E)R=E[S],R!==void 0&&E.hasOwnProperty(S)&&b(v,S,R);else b(v,T[1],T[2])}}();function c(p,_){var g=typeof p=="string"?p:h(p);return g.indexOf(" "+_+" ")>=0}function u(p,_){var g=h(p),m=g+_;c(g,_)||(p.className=m.substring(1))}function f(p,_){var g=h(p),m;c(p,_)&&(m=g.replace(" "+_+" "," "),p.className=m.substring(1,m.length-1))}function h(p){return(" "+(p.className||"")+" ").replace(/\s+/gi," ")}function d(p){p&&p.parentNode&&p.parentNode.removeChild(p)}return t})}(Cf)),Cf.exports}var gz=mz();const Tw=dz(gz);/*! + * pinia v3.0.1 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */let ww;const Vd=n=>ww=n,Aw=Symbol();function Hg(n){return n&&typeof n=="object"&&Object.prototype.toString.call(n)==="[object Object]"&&typeof n.toJSON!="function"}var kl;(function(n){n.direct="direct",n.patchObject="patch object",n.patchFunction="patch function"})(kl||(kl={}));function _z(){const n=g0(!0),e=n.run(()=>et({}));let t=[],i=[];const r=M0({install(s){Vd(r),r._a=s,s.provide(Aw,r),s.config.globalProperties.$pinia=r,i.forEach(o=>t.push(o)),i=[]},use(s){return this._a?t.push(s):i.push(s),this},_p:t,_a:null,_e:n,_s:new Map,state:e});return r}const Cw=()=>{};function hx(n,e,t,i=Cw){n.push(e);const r=()=>{const s=n.indexOf(e);s>-1&&(n.splice(s,1),i())};return!t&&Wh()&&_0(r),r}function ia(n,...e){n.slice().forEach(t=>{t(...e)})}const vz=n=>n(),dx=Symbol(),_m=Symbol();function Gg(n,e){n instanceof Map&&e instanceof Map?e.forEach((t,i)=>n.set(i,t)):n instanceof Set&&e instanceof Set&&e.forEach(n.add,n);for(const t in e){if(!e.hasOwnProperty(t))continue;const i=e[t],r=n[t];Hg(r)&&Hg(i)&&n.hasOwnProperty(t)&&!Pt(i)&&!Cr(i)?n[t]=Gg(r,i):n[t]=i}return n}const yz=Symbol();function bz(n){return!Hg(n)||!n.hasOwnProperty(yz)}const{assign:es}=Object;function xz(n){return!!(Pt(n)&&n.effect)}function Mz(n,e,t,i){const{state:r,actions:s,getters:o}=e,a=t.state.value[n];let l;function c(){a||(t.state.value[n]=r?r():{});const u=oS(t.state.value[n]);return es(u,s,Object.keys(o||{}).reduce((f,h)=>(f[h]=M0(Se(()=>{Vd(t);const d=t._s.get(n);return o[h].call(d,d)})),f),{}))}return l=Rw(n,c,e,t,i,!0),l}function Rw(n,e,t={},i,r,s){let o;const a=es({actions:{}},t),l={deep:!0};let c,u,f=[],h=[],d;const p=i.state.value[n];!s&&!p&&(i.state.value[n]={}),et({});let _;function g(R){let x;c=u=!1,typeof R=="function"?(R(i.state.value[n]),x={type:kl.patchFunction,storeId:n,events:d}):(Gg(i.state.value[n],R),x={type:kl.patchObject,payload:R,storeId:n,events:d});const M=_=Symbol();Ss().then(()=>{_===M&&(c=!0)}),u=!0,ia(f,x,i.state.value[n])}const m=s?function(){const{state:x}=t,M=x?x():{};this.$patch(L=>{es(L,M)})}:Cw;function y(){o.stop(),f=[],h=[],i._s.delete(n)}const b=(R,x="")=>{if(dx in R)return R[_m]=x,R;const M=function(){Vd(i);const L=Array.from(arguments),F=[],V=[];function X(ee){F.push(ee)}function te(ee){V.push(ee)}ia(h,{args:L,name:M[_m],store:E,after:X,onError:te});let Z;try{Z=R.apply(this&&this.$id===n?this:E,L)}catch(ee){throw ia(V,ee),ee}return Z instanceof Promise?Z.then(ee=>(ia(F,ee),ee)).catch(ee=>(ia(V,ee),Promise.reject(ee))):(ia(F,Z),Z)};return M[dx]=!0,M[_m]=x,M},v={_p:i,$id:n,$onAction:hx.bind(null,h),$patch:g,$reset:m,$subscribe(R,x={}){const M=hx(f,R,x.detached,()=>L()),L=o.run(()=>Xe(()=>i.state.value[n],F=>{(x.flush==="sync"?u:c)&&R({storeId:n,type:kl.direct,events:d},F)},es({},l,x)));return M},$dispose:y},E=bi(v);i._s.set(n,E);const S=(i._a&&i._a.runWithContext||vz)(()=>i._e.run(()=>(o=g0()).run(()=>e({action:b}))));for(const R in S){const x=S[R];if(Pt(x)&&!xz(x)||Cr(x))s||(p&&bz(x)&&(Pt(x)?x.value=p[R]:Gg(x,p[R])),i.state.value[n][R]=x);else if(typeof x=="function"){const M=b(x,R);S[R]=M,a.actions[R]=x}}return es(E,S),es(ct(E),S),Object.defineProperty(E,"$state",{get:()=>i.state.value[n],set:R=>{g(x=>{es(x,R)})}}),i._p.forEach(R=>{es(E,o.run(()=>R({store:E,app:i._a,pinia:i,options:a})))}),p&&s&&t.hydrate&&t.hydrate(E.$state,p),c=!0,u=!0,E}/*! #__NO_SIDE_EFFECTS__ */function Sz(n,e,t){let i;const r=typeof e=="function";i=r?t:e;function s(o,a){const l=Cc();return o=o||(l?En(Aw,null):null),o&&Vd(o),o=ww,o._s.has(n)||(r?Rw(n,e,i,o):Mz(n,i,o)),o._s.get(n)}return s.$id=n,s}function Ez(n){const e=ct(n),t={};for(const i in e){const r=e[i];r.effect?t[i]=Se({get:()=>n[i],set(s){n[i]=s}}):(Pt(r)||Cr(r))&&(t[i]=aS(n,i))}return t}const Tz=n=>{const e={};Object.entries(Object.assign({"/src/layouts/default.vue":()=>ut(()=>import("./default-BiDUV3xY.js"),__vite__mapDeps([0,1,2])),"/src/layouts/stage.vue":()=>ut(()=>import("./stage-DPabq-4P.js"),[])})).forEach(([r,s])=>{let o=r.replace("/src/layouts/","").replace(".vue","");e[o]=s});function i(r,s=!0){return r.map(o=>{var a,l,c,u,f,h;if(((a=o.children)==null?void 0:a.length)>0&&(o.children=i(o.children,!1)),s){if(!o.component&&((l=o.children)==null?void 0:l.find(p=>{var _;return(p.path===""||p.path==="/")&&((_=p.meta)==null?void 0:_.isLayout)})))return o;if(((c=o.meta)==null?void 0:c.layout)!==!1)return{path:o.path,component:e[((u=o.meta)==null?void 0:u.layout)||"default"],children:o.path==="/"?[o]:[{...o,path:""}],meta:{isLayout:!0}}}return(f=o.meta)!=null&&f.layout?{path:o.path,component:e[(h=o.meta)==null?void 0:h.layout],children:[{...o,path:""}],meta:{isLayout:!0}}:o})}return i(n)};/*! + * vue-router v4.5.0 + * (c) 2024 Eduardo San Martin Morote + * @license MIT + */const sa=typeof document<"u";function Pw(n){return typeof n=="object"||"displayName"in n||"props"in n||"__vccOpts"in n}function wz(n){return n.__esModule||n[Symbol.toStringTag]==="Module"||n.default&&Pw(n.default)}const Mt=Object.assign;function vm(n,e){const t={};for(const i in e){const r=e[i];t[i]=ki(r)?r.map(n):n(r)}return t}const Bl=()=>{},ki=Array.isArray,Iw=/#/g,Az=/&/g,Cz=/\//g,Rz=/=/g,Pz=/\?/g,Lw=/\+/g,Iz=/%5B/g,Lz=/%5D/g,Dw=/%5E/g,Dz=/%60/g,Ow=/%7B/g,Oz=/%7C/g,Nw=/%7D/g,Nz=/%20/g;function B_(n){return encodeURI(""+n).replace(Oz,"|").replace(Iz,"[").replace(Lz,"]")}function Uz(n){return B_(n).replace(Ow,"{").replace(Nw,"}").replace(Dw,"^")}function Wg(n){return B_(n).replace(Lw,"%2B").replace(Nz,"+").replace(Iw,"%23").replace(Az,"%26").replace(Dz,"`").replace(Ow,"{").replace(Nw,"}").replace(Dw,"^")}function Fz(n){return Wg(n).replace(Rz,"%3D")}function kz(n){return B_(n).replace(Iw,"%23").replace(Pz,"%3F")}function Bz(n){return n==null?"":kz(n).replace(Cz,"%2F")}function bc(n){try{return decodeURIComponent(""+n)}catch{}return""+n}const zz=/\/$/,Vz=n=>n.replace(zz,"");function ym(n,e,t="/"){let i,r={},s="",o="";const a=e.indexOf("#");let l=e.indexOf("?");return a=0&&(l=-1),l>-1&&(i=e.slice(0,l),s=e.slice(l+1,a>-1?a:e.length),r=n(s)),a>-1&&(i=i||e.slice(0,a),o=e.slice(a,e.length)),i=Xz(i??e,t),{fullPath:i+(s&&"?")+s+o,path:i,query:r,hash:bc(o)}}function Hz(n,e){const t=e.query?n(e.query):"";return e.path+(t&&"?")+t+(e.hash||"")}function px(n,e){return!e||!n.toLowerCase().startsWith(e.toLowerCase())?n:n.slice(e.length)||"/"}function Gz(n,e,t){const i=e.matched.length-1,r=t.matched.length-1;return i>-1&&i===r&&Ra(e.matched[i],t.matched[r])&&Uw(e.params,t.params)&&n(e.query)===n(t.query)&&e.hash===t.hash}function Ra(n,e){return(n.aliasOf||n)===(e.aliasOf||e)}function Uw(n,e){if(Object.keys(n).length!==Object.keys(e).length)return!1;for(const t in n)if(!Wz(n[t],e[t]))return!1;return!0}function Wz(n,e){return ki(n)?mx(n,e):ki(e)?mx(e,n):n===e}function mx(n,e){return ki(e)?n.length===e.length&&n.every((t,i)=>t===e[i]):n.length===1&&n[0]===e}function Xz(n,e){if(n.startsWith("/"))return n;if(!n)return e;const t=e.split("/"),i=n.split("/"),r=i[i.length-1];(r===".."||r===".")&&i.push("");let s=t.length-1,o,a;for(o=0;o1&&s--;else break;return t.slice(0,s).join("/")+"/"+i.slice(o).join("/")}const Jr={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var xc;(function(n){n.pop="pop",n.push="push"})(xc||(xc={}));var zl;(function(n){n.back="back",n.forward="forward",n.unknown=""})(zl||(zl={}));function $z(n){if(!n)if(sa){const e=document.querySelector("base");n=e&&e.getAttribute("href")||"/",n=n.replace(/^\w+:\/\/[^\/]+/,"")}else n="/";return n[0]!=="/"&&n[0]!=="#"&&(n="/"+n),Vz(n)}const qz=/^[^#]+#/;function Yz(n,e){return n.replace(qz,"#")+e}function jz(n,e){const t=document.documentElement.getBoundingClientRect(),i=n.getBoundingClientRect();return{behavior:e.behavior,left:i.left-t.left-(e.left||0),top:i.top-t.top-(e.top||0)}}const Hd=()=>({left:window.scrollX,top:window.scrollY});function Kz(n){let e;if("el"in n){const t=n.el,i=typeof t=="string"&&t.startsWith("#"),r=typeof t=="string"?i?document.getElementById(t.slice(1)):document.querySelector(t):t;if(!r)return;e=jz(r,n)}else e=n;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.scrollX,e.top!=null?e.top:window.scrollY)}function gx(n,e){return(history.state?history.state.position-e:-1)+n}const Xg=new Map;function Zz(n,e){Xg.set(n,e)}function Jz(n){const e=Xg.get(n);return Xg.delete(n),e}let Qz=()=>location.protocol+"//"+location.host;function Fw(n,e){const{pathname:t,search:i,hash:r}=e,s=n.indexOf("#");if(s>-1){let a=r.includes(n.slice(s))?n.slice(s).length:1,l=r.slice(a);return l[0]!=="/"&&(l="/"+l),px(l,"")}return px(t,n)+i+r}function eV(n,e,t,i){let r=[],s=[],o=null;const a=({state:h})=>{const d=Fw(n,location),p=t.value,_=e.value;let g=0;if(h){if(t.value=d,e.value=h,o&&o===p){o=null;return}g=_?h.position-_.position:0}else i(d);r.forEach(m=>{m(t.value,p,{delta:g,type:xc.pop,direction:g?g>0?zl.forward:zl.back:zl.unknown})})};function l(){o=t.value}function c(h){r.push(h);const d=()=>{const p=r.indexOf(h);p>-1&&r.splice(p,1)};return s.push(d),d}function u(){const{history:h}=window;h.state&&h.replaceState(Mt({},h.state,{scroll:Hd()}),"")}function f(){for(const h of s)h();s=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",u,{passive:!0}),{pauseListeners:l,listen:c,destroy:f}}function _x(n,e,t,i=!1,r=!1){return{back:n,current:e,forward:t,replaced:i,position:window.history.length,scroll:r?Hd():null}}function tV(n){const{history:e,location:t}=window,i={value:Fw(n,t)},r={value:e.state};r.value||s(i.value,{back:null,current:i.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0);function s(l,c,u){const f=n.indexOf("#"),h=f>-1?(t.host&&document.querySelector("base")?n:n.slice(f))+l:Qz()+n+l;try{e[u?"replaceState":"pushState"](c,"",h),r.value=c}catch(d){console.error(d),t[u?"replace":"assign"](h)}}function o(l,c){const u=Mt({},e.state,_x(r.value.back,l,r.value.forward,!0),c,{position:r.value.position});s(l,u,!0),i.value=l}function a(l,c){const u=Mt({},r.value,e.state,{forward:l,scroll:Hd()});s(u.current,u,!0);const f=Mt({},_x(i.value,l,null),{position:u.position+1},c);s(l,f,!1),i.value=l}return{location:i,state:r,push:a,replace:o}}function nV(n){n=$z(n);const e=tV(n),t=eV(n,e.state,e.location,e.replace);function i(s,o=!0){o||t.pauseListeners(),history.go(s)}const r=Mt({location:"",base:n,go:i,createHref:Yz.bind(null,n)},e,t);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>e.state.value}),r}function iV(n){return n=location.host?n||location.pathname+location.search:"",n.includes("#")||(n+="#"),nV(n)}function rV(n){return typeof n=="string"||n&&typeof n=="object"}function kw(n){return typeof n=="string"||typeof n=="symbol"}const Bw=Symbol("");var vx;(function(n){n[n.aborted=4]="aborted",n[n.cancelled=8]="cancelled",n[n.duplicated=16]="duplicated"})(vx||(vx={}));function Pa(n,e){return Mt(new Error,{type:n,[Bw]:!0},e)}function gr(n,e){return n instanceof Error&&Bw in n&&(e==null||!!(n.type&e))}const yx="[^/]+?",sV={sensitive:!1,strict:!1,start:!0,end:!0},oV=/[.+*?^${}()[\]/\\]/g;function aV(n,e){const t=Mt({},sV,e),i=[];let r=t.start?"^":"";const s=[];for(const c of n){const u=c.length?[]:[90];t.strict&&!c.length&&(r+="/");for(let f=0;fe.length?e.length===1&&e[0]===80?1:-1:0}function zw(n,e){let t=0;const i=n.score,r=e.score;for(;t0&&e[e.length-1]<0}const cV={type:0,value:""},uV=/[a-zA-Z0-9_]/;function fV(n){if(!n)return[[]];if(n==="/")return[[cV]];if(!n.startsWith("/"))throw new Error(`Invalid path "${n}"`);function e(d){throw new Error(`ERR (${t})/"${c}": ${d}`)}let t=0,i=t;const r=[];let s;function o(){s&&r.push(s),s=[]}let a=0,l,c="",u="";function f(){c&&(t===0?s.push({type:0,value:c}):t===1||t===2||t===3?(s.length>1&&(l==="*"||l==="+")&&e(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:c,regexp:u,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):e("Invalid state to consume buffer"),c="")}function h(){c+=l}for(;a{o(b)}:Bl}function o(f){if(kw(f)){const h=i.get(f);h&&(i.delete(f),t.splice(t.indexOf(h),1),h.children.forEach(o),h.alias.forEach(o))}else{const h=t.indexOf(f);h>-1&&(t.splice(h,1),f.record.name&&i.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function a(){return t}function l(f){const h=gV(f,t);t.splice(h,0,f),f.record.name&&!Sx(f)&&i.set(f.record.name,f)}function c(f,h){let d,p={},_,g;if("name"in f&&f.name){if(d=i.get(f.name),!d)throw Pa(1,{location:f});g=d.record.name,p=Mt(xx(h.params,d.keys.filter(b=>!b.optional).concat(d.parent?d.parent.keys.filter(b=>b.optional):[]).map(b=>b.name)),f.params&&xx(f.params,d.keys.map(b=>b.name))),_=d.stringify(p)}else if(f.path!=null)_=f.path,d=t.find(b=>b.re.test(_)),d&&(p=d.parse(_),g=d.record.name);else{if(d=h.name?i.get(h.name):t.find(b=>b.re.test(h.path)),!d)throw Pa(1,{location:f,currentLocation:h});g=d.record.name,p=Mt({},h.params,f.params),_=d.stringify(p)}const m=[];let y=d;for(;y;)m.unshift(y.record),y=y.parent;return{name:g,path:_,params:p,matched:m,meta:mV(m)}}n.forEach(f=>s(f));function u(){t.length=0,i.clear()}return{addRoute:s,resolve:c,removeRoute:o,clearRoutes:u,getRoutes:a,getRecordMatcher:r}}function xx(n,e){const t={};for(const i of e)i in n&&(t[i]=n[i]);return t}function Mx(n){const e={path:n.path,redirect:n.redirect,name:n.name,meta:n.meta||{},aliasOf:n.aliasOf,beforeEnter:n.beforeEnter,props:pV(n),children:n.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in n?n.components||null:n.component&&{default:n.component}};return Object.defineProperty(e,"mods",{value:{}}),e}function pV(n){const e={},t=n.props||!1;if("component"in n)e.default=t;else for(const i in n.components)e[i]=typeof t=="object"?t[i]:t;return e}function Sx(n){for(;n;){if(n.record.aliasOf)return!0;n=n.parent}return!1}function mV(n){return n.reduce((e,t)=>Mt(e,t.meta),{})}function Ex(n,e){const t={};for(const i in n)t[i]=i in e?e[i]:n[i];return t}function gV(n,e){let t=0,i=e.length;for(;t!==i;){const s=t+i>>1;zw(n,e[s])<0?i=s:t=s+1}const r=_V(n);return r&&(i=e.lastIndexOf(r,i-1)),i}function _V(n){let e=n;for(;e=e.parent;)if(Vw(e)&&zw(n,e)===0)return e}function Vw({record:n}){return!!(n.name||n.components&&Object.keys(n.components).length||n.redirect)}function vV(n){const e={};if(n===""||n==="?")return e;const i=(n[0]==="?"?n.slice(1):n).split("&");for(let r=0;rs&&Wg(s)):[i&&Wg(i)]).forEach(s=>{s!==void 0&&(e+=(e.length?"&":"")+t,s!=null&&(e+="="+s))})}return e}function yV(n){const e={};for(const t in n){const i=n[t];i!==void 0&&(e[t]=ki(i)?i.map(r=>r==null?null:""+r):i==null?i:""+i)}return e}const bV=Symbol(""),wx=Symbol(""),Gd=Symbol(""),Hw=Symbol(""),$g=Symbol("");function cl(){let n=[];function e(i){return n.push(i),()=>{const r=n.indexOf(i);r>-1&&n.splice(r,1)}}function t(){n=[]}return{add:e,list:()=>n.slice(),reset:t}}function os(n,e,t,i,r,s=o=>o()){const o=i&&(i.enterCallbacks[r]=i.enterCallbacks[r]||[]);return()=>new Promise((a,l)=>{const c=h=>{h===!1?l(Pa(4,{from:t,to:e})):h instanceof Error?l(h):rV(h)?l(Pa(2,{from:e,to:h})):(o&&i.enterCallbacks[r]===o&&typeof h=="function"&&o.push(h),a())},u=s(()=>n.call(i&&i.instances[r],e,t,c));let f=Promise.resolve(u);n.length<3&&(f=f.then(c)),f.catch(h=>l(h))})}function bm(n,e,t,i,r=s=>s()){const s=[];for(const o of n)for(const a in o.components){let l=o.components[a];if(!(e!=="beforeRouteEnter"&&!o.instances[a]))if(Pw(l)){const u=(l.__vccOpts||l)[e];u&&s.push(os(u,t,i,o,a,r))}else{let c=l();s.push(()=>c.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${a}" at "${o.path}"`);const f=wz(u)?u.default:u;o.mods[a]=u,o.components[a]=f;const d=(f.__vccOpts||f)[e];return d&&os(d,t,i,o,a,r)()}))}}return s}function Ax(n){const e=En(Gd),t=En(Hw),i=Se(()=>{const l=Ot(n.to);return e.resolve(l)}),r=Se(()=>{const{matched:l}=i.value,{length:c}=l,u=l[c-1],f=t.matched;if(!u||!f.length)return-1;const h=f.findIndex(Ra.bind(null,u));if(h>-1)return h;const d=Cx(l[c-2]);return c>1&&Cx(u)===d&&f[f.length-1].path!==d?f.findIndex(Ra.bind(null,l[c-2])):h}),s=Se(()=>r.value>-1&&TV(t.params,i.value.params)),o=Se(()=>r.value>-1&&r.value===t.matched.length-1&&Uw(t.params,i.value.params));function a(l={}){if(EV(l)){const c=e[Ot(n.replace)?"replace":"push"](Ot(n.to)).catch(Bl);return n.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:i,href:Se(()=>i.value.href),isActive:s,isExactActive:o,navigate:a}}function xV(n){return n.length===1?n[0]:n}const MV=fn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Ax,setup(n,{slots:e}){const t=bi(Ax(n)),{options:i}=En(Gd),r=Se(()=>({[Rx(n.activeClass,i.linkActiveClass,"router-link-active")]:t.isActive,[Rx(n.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:t.isExactActive}));return()=>{const s=e.default&&xV(e.default(t));return n.custom?s:Lr("a",{"aria-current":t.isExactActive?n.ariaCurrentValue:null,href:t.href,onClick:t.navigate,class:r.value},s)}}}),SV=MV;function EV(n){if(!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)&&!n.defaultPrevented&&!(n.button!==void 0&&n.button!==0)){if(n.currentTarget&&n.currentTarget.getAttribute){const e=n.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return n.preventDefault&&n.preventDefault(),!0}}function TV(n,e){for(const t in e){const i=e[t],r=n[t];if(typeof i=="string"){if(i!==r)return!1}else if(!ki(r)||r.length!==i.length||i.some((s,o)=>s!==r[o]))return!1}return!0}function Cx(n){return n?n.aliasOf?n.aliasOf.path:n.path:""}const Rx=(n,e,t)=>n??e??t,wV=fn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(n,{attrs:e,slots:t}){const i=En($g),r=Se(()=>n.route||i.value),s=En(wx,0),o=Se(()=>{let c=Ot(s);const{matched:u}=r.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),a=Se(()=>r.value.matched[o.value]);fs(wx,Se(()=>o.value+1)),fs(bV,a),fs($g,r);const l=et();return Xe(()=>[l.value,a.value,n.name],([c,u,f],[h,d,p])=>{u&&(u.instances[f]=c,d&&d!==u&&c&&c===h&&(u.leaveGuards.size||(u.leaveGuards=d.leaveGuards),u.updateGuards.size||(u.updateGuards=d.updateGuards))),c&&u&&(!d||!Ra(u,d)||!h)&&(u.enterCallbacks[f]||[]).forEach(_=>_(c))},{flush:"post"}),()=>{const c=r.value,u=n.name,f=a.value,h=f&&f.components[u];if(!h)return Px(t.default,{Component:h,route:c});const d=f.props[u],p=d?d===!0?c.params:typeof d=="function"?d(c):d:null,g=Lr(h,Mt({},p,e,{onVnodeUnmounted:m=>{m.component.isUnmounted&&(f.instances[u]=null)},ref:l}));return Px(t.default,{Component:g,route:c})||g}}});function Px(n,e){if(!n)return null;const t=n(e);return t.length===1?t[0]:t}const Gw=wV;function AV(n){const e=dV(n.routes,n),t=n.parseQuery||vV,i=n.stringifyQuery||Tx,r=n.history,s=cl(),o=cl(),a=cl(),l=De(Jr);let c=Jr;sa&&n.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=vm.bind(null,W=>""+W),f=vm.bind(null,Bz),h=vm.bind(null,bc);function d(W,ae){let ue,le;return kw(W)?(ue=e.getRecordMatcher(W),le=ae):le=W,e.addRoute(le,ue)}function p(W){const ae=e.getRecordMatcher(W);ae&&e.removeRoute(ae)}function _(){return e.getRoutes().map(W=>W.record)}function g(W){return!!e.getRecordMatcher(W)}function m(W,ae){if(ae=Mt({},ae||l.value),typeof W=="string"){const w=ym(t,W,ae.path),j=e.resolve({path:w.path},ae),G=r.createHref(w.fullPath);return Mt(w,j,{params:h(j.params),hash:bc(w.hash),redirectedFrom:void 0,href:G})}let ue;if(W.path!=null)ue=Mt({},W,{path:ym(t,W.path,ae.path).path});else{const w=Mt({},W.params);for(const j in w)w[j]==null&&delete w[j];ue=Mt({},W,{params:f(w)}),ae.params=f(ae.params)}const le=e.resolve(ue,ae),Ue=W.hash||"";le.params=u(h(le.params));const I=Hz(i,Mt({},W,{hash:Uz(Ue),path:le.path})),D=r.createHref(I);return Mt({fullPath:I,hash:Ue,query:i===Tx?yV(W.query):W.query||{}},le,{redirectedFrom:void 0,href:D})}function y(W){return typeof W=="string"?ym(t,W,l.value.path):Mt({},W)}function b(W,ae){if(c!==W)return Pa(8,{from:ae,to:W})}function v(W){return S(W)}function E(W){return v(Mt(y(W),{replace:!0}))}function T(W){const ae=W.matched[W.matched.length-1];if(ae&&ae.redirect){const{redirect:ue}=ae;let le=typeof ue=="function"?ue(W):ue;return typeof le=="string"&&(le=le.includes("?")||le.includes("#")?le=y(le):{path:le},le.params={}),Mt({query:W.query,hash:W.hash,params:le.path!=null?{}:W.params},le)}}function S(W,ae){const ue=c=m(W),le=l.value,Ue=W.state,I=W.force,D=W.replace===!0,w=T(ue);if(w)return S(Mt(y(w),{state:typeof w=="object"?Mt({},Ue,w.state):Ue,force:I,replace:D}),ae||ue);const j=ue;j.redirectedFrom=ae;let G;return!I&&Gz(i,le,ue)&&(G=Pa(16,{to:j,from:le}),re(le,le,!0,!1)),(G?Promise.resolve(G):M(j,le)).catch(q=>gr(q)?gr(q,2)?q:be(q):Q(q,j,le)).then(q=>{if(q){if(gr(q,2))return S(Mt({replace:D},y(q.to),{state:typeof q.to=="object"?Mt({},Ue,q.to.state):Ue,force:I}),ae||j)}else q=F(j,le,!0,D,Ue);return L(j,le,q),q})}function R(W,ae){const ue=b(W,ae);return ue?Promise.reject(ue):Promise.resolve()}function x(W){const ae=se.values().next().value;return ae&&typeof ae.runWithContext=="function"?ae.runWithContext(W):W()}function M(W,ae){let ue;const[le,Ue,I]=CV(W,ae);ue=bm(le.reverse(),"beforeRouteLeave",W,ae);for(const w of le)w.leaveGuards.forEach(j=>{ue.push(os(j,W,ae))});const D=R.bind(null,W,ae);return ue.push(D),Me(ue).then(()=>{ue=[];for(const w of s.list())ue.push(os(w,W,ae));return ue.push(D),Me(ue)}).then(()=>{ue=bm(Ue,"beforeRouteUpdate",W,ae);for(const w of Ue)w.updateGuards.forEach(j=>{ue.push(os(j,W,ae))});return ue.push(D),Me(ue)}).then(()=>{ue=[];for(const w of I)if(w.beforeEnter)if(ki(w.beforeEnter))for(const j of w.beforeEnter)ue.push(os(j,W,ae));else ue.push(os(w.beforeEnter,W,ae));return ue.push(D),Me(ue)}).then(()=>(W.matched.forEach(w=>w.enterCallbacks={}),ue=bm(I,"beforeRouteEnter",W,ae,x),ue.push(D),Me(ue))).then(()=>{ue=[];for(const w of o.list())ue.push(os(w,W,ae));return ue.push(D),Me(ue)}).catch(w=>gr(w,8)?w:Promise.reject(w))}function L(W,ae,ue){a.list().forEach(le=>x(()=>le(W,ae,ue)))}function F(W,ae,ue,le,Ue){const I=b(W,ae);if(I)return I;const D=ae===Jr,w=sa?history.state:{};ue&&(le||D?r.replace(W.fullPath,Mt({scroll:D&&w&&w.scroll},Ue)):r.push(W.fullPath,Ue)),l.value=W,re(W,ae,ue,D),be()}let V;function X(){V||(V=r.listen((W,ae,ue)=>{if(!ge.listening)return;const le=m(W),Ue=T(le);if(Ue){S(Mt(Ue,{replace:!0,force:!0}),le).catch(Bl);return}c=le;const I=l.value;sa&&Zz(gx(I.fullPath,ue.delta),Hd()),M(le,I).catch(D=>gr(D,12)?D:gr(D,2)?(S(Mt(y(D.to),{force:!0}),le).then(w=>{gr(w,20)&&!ue.delta&&ue.type===xc.pop&&r.go(-1,!1)}).catch(Bl),Promise.reject()):(ue.delta&&r.go(-ue.delta,!1),Q(D,le,I))).then(D=>{D=D||F(le,I,!1),D&&(ue.delta&&!gr(D,8)?r.go(-ue.delta,!1):ue.type===xc.pop&&gr(D,20)&&r.go(-1,!1)),L(le,I,D)}).catch(Bl)}))}let te=cl(),Z=cl(),ee;function Q(W,ae,ue){be(W);const le=Z.list();return le.length?le.forEach(Ue=>Ue(W,ae,ue)):console.error(W),Promise.reject(W)}function de(){return ee&&l.value!==Jr?Promise.resolve():new Promise((W,ae)=>{te.add([W,ae])})}function be(W){return ee||(ee=!W,X(),te.list().forEach(([ae,ue])=>W?ue(W):ae()),te.reset()),W}function re(W,ae,ue,le){const{scrollBehavior:Ue}=n;if(!sa||!Ue)return Promise.resolve();const I=!ue&&Jz(gx(W.fullPath,0))||(le||!ue)&&history.state&&history.state.scroll||null;return Ss().then(()=>Ue(W,ae,I)).then(D=>D&&Kz(D)).catch(D=>Q(D,W,ae))}const ye=W=>r.go(W);let Ve;const se=new Set,ge={currentRoute:l,listening:!0,addRoute:d,removeRoute:p,clearRoutes:e.clearRoutes,hasRoute:g,getRoutes:_,resolve:m,options:n,push:v,replace:E,go:ye,back:()=>ye(-1),forward:()=>ye(1),beforeEach:s.add,beforeResolve:o.add,afterEach:a.add,onError:Z.add,isReady:de,install(W){const ae=this;W.component("RouterLink",SV),W.component("RouterView",Gw),W.config.globalProperties.$router=ae,Object.defineProperty(W.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(l)}),sa&&!Ve&&l.value===Jr&&(Ve=!0,v(r.location).catch(Ue=>{}));const ue={};for(const Ue in Jr)Object.defineProperty(ue,Ue,{get:()=>l.value[Ue],enumerable:!0});W.provide(Gd,ae),W.provide(Hw,iS(ue)),W.provide($g,l);const le=W.unmount;se.add(W),W.unmount=function(){se.delete(W),se.size<1&&(c=Jr,V&&V(),V=null,l.value=Jr,Ve=!1,ee=!1),le()}}};function Me(W){return W.reduce((ae,ue)=>ae.then(()=>x(ue)),Promise.resolve())}return ge}function CV(n,e){const t=[],i=[],r=[],s=Math.max(e.matched.length,n.matched.length);for(let o=0;oRa(c,a))?i.push(a):t.push(a));const l=n.matched[o];l&&(e.matched.find(c=>Ra(c,l))||r.push(l))}return[t,i,r]}function RV(){return En(Gd)}const PV=[{path:"/",name:"/",component:()=>ut(()=>import("./index-CgcZzzI2.js"),__vite__mapDeps([3,4,5,6,7,8,9,10,11,1,2,12,13,14,15])),meta:{layout:"stage",stageTransition:{name:"bubble-wave-out"}}},{path:"/:all(.*)",name:"/[...all]",component:()=>ut(()=>import("./_...all_-xa5MzuBe.js"),[])},{path:"/audio",name:"/audio",component:()=>ut(()=>import("./audio-Bsbq-iZ9.js"),[])},{path:"/devtools",children:[{path:"image",name:"/devtools/image",component:()=>ut(()=>import("./image-CD6Zjbv1.js"),__vite__mapDeps([16,17]))}]},{path:"/queue",name:"/queue",component:()=>ut(()=>import("./queue-CHfe46kZ.js"),__vite__mapDeps([18,7]))},{path:"/settings",children:[{path:"",name:"/settings/",component:()=>ut(()=>import("./index-Rz4v4VGO.js"),__vite__mapDeps([19,4,20,14,21])),meta:{stageTransition:{name:"slide"}}},{path:"appearance",children:[{path:"",name:"/settings/appearance/",component:()=>ut(()=>import("./index-ebWEHfej.js"),__vite__mapDeps([22,20,4,23,11,10,24,14,25])),meta:{stageTransition:{name:"slide",pageSpecificAvailable:!0}}}]},{path:"memory",children:[{path:"",name:"/settings/memory/",component:()=>ut(()=>import("./index-DMp81NbJ.js"),[])}]},{path:"models",children:[{path:"",name:"/settings/models/",component:()=>ut(()=>import("./index-exdkhaXa.js"),__vite__mapDeps([26,20,9,4,23,11,10,24,14,27])),meta:{stageTransition:{name:"slide",pageSpecificAvailable:!0}}}]},{path:"modules",children:[{path:"",name:"/settings/modules/",component:()=>ut(()=>import("./index-CWukm1n3.js"),__vite__mapDeps([28,4,29,30,20,24,14])),meta:{stageTransition:{name:"slide",pageSpecificAvailable:!0}}},{path:"consciousness",name:"/settings/modules/consciousness",component:()=>ut(()=>import("./consciousness-iz2nv6B3.js"),__vite__mapDeps([31,32,10,33,34,4,12,6,14])),meta:{stageTransition:{name:"slide"}}},{path:"memory-long-term",name:"/settings/modules/memory-long-term",component:()=>ut(()=>import("./memory-long-term-C3e3nLW5.js"),[])},{path:"memory-short-term",name:"/settings/modules/memory-short-term",component:()=>ut(()=>import("./memory-short-term-r0JH0hk6.js"),[])},{path:"speech",name:"/settings/modules/speech",component:()=>ut(()=>import("./speech-BzDSuaZq.js"),__vite__mapDeps([35,36,37,38,33,32,10,34,4,6,5,14,39])),meta:{stageTransition:{name:"slide"}}}]},{path:"providers",children:[{path:"",name:"/settings/providers/",component:()=>ut(()=>import("./index-CTgzm8SA.js"),__vite__mapDeps([40,20,4,6,29,30,24,14])),meta:{stageTransition:{name:"slide",pageSpecificAvailable:!0}}},{path:"cloudflare-workers-ai",name:"/settings/providers/cloudflare-workers-ai",component:()=>ut(()=>import("./cloudflare-workers-ai-DV3XjoGA.js"),__vite__mapDeps([41,4,6,38,33,42,43,44]))},{path:"deepseek",name:"/settings/providers/deepseek",component:()=>ut(()=>import("./deepseek-CjDfnLNQ.js"),__vite__mapDeps([45,4,6,46,11,10,38,33,42,43,44]))},{path:"elevenlabs",name:"/settings/providers/elevenlabs",component:()=>ut(()=>import("./elevenlabs-3ONCU5wo.js"),__vite__mapDeps([47,4,6,5,48,36,37,46,11,10,38,33,42,43]))},{path:"fireworks-ai",name:"/settings/providers/fireworks-ai",component:()=>ut(()=>import("./fireworks-ai-BpaEuc1J.js"),__vite__mapDeps([49,4,6,46,11,10,38,33,42,43,44]))},{path:"microsoft-speech",name:"/settings/providers/microsoft-speech",component:()=>ut(()=>import("./microsoft-speech-BPOz5ZLq.js"),__vite__mapDeps([50,38,33,4,6,5,48,36,37,46,11,10,42,43]))},{path:"mistral-ai",name:"/settings/providers/mistral-ai",component:()=>ut(()=>import("./mistral-ai-C7perH7S.js"),__vite__mapDeps([51,4,6,46,11,10,38,33,42,43,44]))},{path:"moonshot-ai",name:"/settings/providers/moonshot-ai",component:()=>ut(()=>import("./moonshot-ai-CZlBN-5-.js"),__vite__mapDeps([52,4,6,46,11,10,38,33,42,43,44]))},{path:"novita-ai",name:"/settings/providers/novita-ai",component:()=>ut(()=>import("./novita-ai-BTL9go8K.js"),__vite__mapDeps([53,4,6,46,11,10,38,33,42,43,44]))},{path:"ollama",name:"/settings/providers/ollama",component:()=>ut(()=>import("./ollama-qKIKZqA2.js"),__vite__mapDeps([54,33,4,6,46,11,10,38,43,44]))},{path:"openai",name:"/settings/providers/openai",component:()=>ut(()=>import("./openai-BtuP56e_.js"),__vite__mapDeps([55,4,6,46,11,10,38,33,42,43,44]))},{path:"openrouter-ai",name:"/settings/providers/openrouter-ai",component:()=>ut(()=>import("./openrouter-ai-CCt-Li_l.js"),__vite__mapDeps([56,4,6,46,11,10,38,33,42,43,44]))},{path:"together-ai",name:"/settings/providers/together-ai",component:()=>ut(()=>import("./together-ai-BSofzTUT.js"),__vite__mapDeps([57,4,6,46,11,10,38,33,42,43,44]))},{path:"xai",name:"/settings/providers/xai",component:()=>ut(()=>import("./xai-BtPhk-ua.js"),__vite__mapDeps([58,4,6,46,11,10,38,33,42,43,44]))}]}]},{path:"/test",children:[{path:"filter-message",name:"/test/filter-message",component:()=>ut(()=>import("./filter-message-BeLJKrV5.js"),[])},{path:"queues",children:[{path:"delays",name:"/test/queues/delays",component:()=>ut(()=>import("./delays-Cwu4yMJH.js"),__vite__mapDeps([59,8,4,7,13]))},{path:"emotions",name:"/test/queues/emotions",component:()=>ut(()=>import("./emotions-D6mNjsWQ.js"),__vite__mapDeps([60,8,4,7]))},{path:"messages",name:"/test/queues/messages",component:()=>ut(()=>import("./messages-CT9yvwKz.js"),__vite__mapDeps([61,8,4,7]))}]}]}],Ww=(n,e)=>{if(typeof n=="number"){if(e===3)return{mode:"rgb",r:(n>>8&15|n>>4&240)/255,g:(n>>4&15|n&240)/255,b:(n&15|n<<4&240)/255};if(e===4)return{mode:"rgb",r:(n>>12&15|n>>8&240)/255,g:(n>>8&15|n>>4&240)/255,b:(n>>4&15|n&240)/255,alpha:(n&15|n<<4&240)/255};if(e===6)return{mode:"rgb",r:(n>>16&255)/255,g:(n>>8&255)/255,b:(n&255)/255};if(e===8)return{mode:"rgb",r:(n>>24&255)/255,g:(n>>16&255)/255,b:(n>>8&255)/255,alpha:(n&255)/255}}},IV={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},LV=n=>Ww(IV[n.toLowerCase()],6),DV=/^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i,OV=n=>{let e;return(e=n.match(DV))?Ww(parseInt(e[1],16),e[1].length):void 0},hs="([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)",Vl=`${hs}%`,z_=`(?:${hs}%|${hs})`,NV=`(?:${hs}(deg|grad|rad|turn)|${hs})`,Ia="\\s*,\\s*",UV=new RegExp(`^rgba?\\(\\s*${hs}${Ia}${hs}${Ia}${hs}\\s*(?:,\\s*${z_}\\s*)?\\)$`),FV=new RegExp(`^rgba?\\(\\s*${Vl}${Ia}${Vl}${Ia}${Vl}\\s*(?:,\\s*${z_}\\s*)?\\)$`),kV=n=>{let e={mode:"rgb"},t;if(t=n.match(UV))t[1]!==void 0&&(e.r=t[1]/255),t[2]!==void 0&&(e.g=t[2]/255),t[3]!==void 0&&(e.b=t[3]/255);else if(t=n.match(FV))t[1]!==void 0&&(e.r=t[1]/100),t[2]!==void 0&&(e.g=t[2]/100),t[3]!==void 0&&(e.b=t[3]/100);else return;return t[4]!==void 0?e.alpha=Math.max(0,Math.min(1,t[4]/100)):t[5]!==void 0&&(e.alpha=Math.max(0,Math.min(1,+t[5]))),e},BV=(n,e)=>n===void 0?void 0:typeof n!="object"?jV(n):n.mode!==void 0?n:e?{...n,mode:e}:void 0,Xw=(n="rgb")=>e=>(e=BV(e,n))!==void 0?e.mode===n?e:Yi[e.mode][n]?Yi[e.mode][n](e):n==="rgb"?Yi[e.mode].rgb(e):Yi.rgb[n](Yi[e.mode].rgb(e)):void 0,Yi={},$w={},Ih=[],qw={},zV=n=>n,Et=n=>(Yi[n.mode]={...Yi[n.mode],...n.toMode},Object.keys(n.fromMode||{}).forEach(e=>{Yi[e]||(Yi[e]={}),Yi[e][n.mode]=n.fromMode[e]}),n.ranges||(n.ranges={}),n.difference||(n.difference={}),n.channels.forEach(e=>{if(n.ranges[e]===void 0&&(n.ranges[e]=[0,1]),!n.interpolate[e])throw new Error(`Missing interpolator for: ${e}`);typeof n.interpolate[e]=="function"&&(n.interpolate[e]={use:n.interpolate[e]}),n.interpolate[e].fixup||(n.interpolate[e].fixup=zV)}),$w[n.mode]=n,(n.parse||[]).forEach(e=>{HV(e,n.mode)}),Xw(n.mode)),VV=n=>$w[n],HV=(n,e)=>{if(typeof n=="string"){if(!e)throw new Error("'mode' required when 'parser' is a string");qw[n]=e}else typeof n=="function"&&Ih.indexOf(n)<0&&Ih.push(n)},qg=/[^\x00-\x7F]|[a-zA-Z_]/,GV=/[^\x00-\x7F]|[-\w]/,ve={Function:"function",Ident:"ident",Number:"number",Percentage:"percentage",ParenClose:")",None:"none",Hue:"hue",Alpha:"alpha"};let $e=0;function cf(n){let e=n[$e],t=n[$e+1];return e==="-"||e==="+"?/\d/.test(t)||t==="."&&/\d/.test(n[$e+2]):e==="."?/\d/.test(t):/\d/.test(e)}function Yg(n){if($e>=n.length)return!1;let e=n[$e];if(qg.test(e))return!0;if(e==="-"){if(n.length-$e<2)return!1;let t=n[$e+1];return!!(t==="-"||qg.test(t))}return!1}const WV={deg:1,rad:180/Math.PI,grad:9/10,turn:360};function ul(n){let e="";if((n[$e]==="-"||n[$e]==="+")&&(e+=n[$e++]),e+=uf(n),n[$e]==="."&&/\d/.test(n[$e+1])&&(e+=n[$e++]+uf(n)),(n[$e]==="e"||n[$e]==="E")&&((n[$e+1]==="-"||n[$e+1]==="+")&&/\d/.test(n[$e+2])?e+=n[$e++]+n[$e++]+uf(n):/\d/.test(n[$e+1])&&(e+=n[$e++]+uf(n))),Yg(n)){let t=Lh(n);return t==="deg"||t==="rad"||t==="turn"||t==="grad"?{type:ve.Hue,value:e*WV[t]}:void 0}return n[$e]==="%"?($e++,{type:ve.Percentage,value:+e}):{type:ve.Number,value:+e}}function uf(n){let e="";for(;/\d/.test(n[$e]);)e+=n[$e++];return e}function Lh(n){let e="";for(;$e4)){if(t.length===4){if(t[3].type!==ve.Alpha)return;t[3]=t[3].value}return t.length===3&&t.push({type:ve.None,value:void 0}),t.every(r=>r.type!==ve.Alpha)?t:void 0}}function YV(n,e){n._i=0;let t=n[n._i++];if(!t||t.type!==ve.Function)return;let i=Yw(n,e);if(i)return i.unshift(t.value),i}const jV=n=>{if(typeof n!="string")return;const e=$V(n),t=e?YV(e,!0):void 0;let i,r=0,s=Ih.length;for(;rn==="transparent"?{mode:"rgb",r:0,g:0,b:0,alpha:0}:void 0,JV=(n,e,t)=>n+t*(e-n),QV=n=>{let e=[];for(let t=0;te=>{let t=QV(e);return i=>{let r=i*t.length,s=i>=1?t.length-1:Math.max(Math.floor(r),0),o=t[s];return o===void 0?void 0:n(o[0],o[1],r-s)}},we=e6(JV),on=n=>{let e=!1,t=n.map(i=>i!==void 0?(e=!0,i):1);return e?t:n},Ga={mode:"rgb",channels:["r","g","b","alpha"],parse:[KV,OV,kV,LV,ZV,"srgb"],serialize:"srgb",interpolate:{r:we,g:we,b:we,alpha:{use:we,fixup:on}},gamut:!0,white:{r:1,g:1,b:1},black:{r:0,g:0,b:0}},xm=(n=0)=>Math.pow(Math.abs(n),563/256)*Math.sign(n),Ix=n=>{let e=xm(n.r),t=xm(n.g),i=xm(n.b),r={mode:"xyz65",x:.5766690429101305*e+.1855582379065463*t+.1882286462349947*i,y:.297344975250536*e+.6273635662554661*t+.0752914584939979*i,z:.0270313613864123*e+.0706888525358272*t+.9913375368376386*i};return n.alpha!==void 0&&(r.alpha=n.alpha),r},Mm=n=>Math.pow(Math.abs(n),256/563)*Math.sign(n),Lx=({x:n,y:e,z:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r={mode:"a98",r:Mm(n*2.0415879038107465-e*.5650069742788597-.3447313507783297*t),g:Mm(n*-.9692436362808798+e*1.8759675015077206+.0415550574071756*t),b:Mm(n*.0134442806320312-e*.1183623922310184+1.0151749943912058*t)};return i!==void 0&&(r.alpha=i),r},Sm=(n=0)=>{const e=Math.abs(n);return e<=.04045?n/12.92:(Math.sign(n)||1)*Math.pow((e+.055)/1.055,2.4)},Wa=({r:n,g:e,b:t,alpha:i})=>{let r={mode:"lrgb",r:Sm(n),g:Sm(e),b:Sm(t)};return i!==void 0&&(r.alpha=i),r},Oo=n=>{let{r:e,g:t,b:i,alpha:r}=Wa(n),s={mode:"xyz65",x:.4123907992659593*e+.357584339383878*t+.1804807884018343*i,y:.2126390058715102*e+.715168678767756*t+.0721923153607337*i,z:.0193308187155918*e+.119194779794626*t+.9505321522496607*i};return r!==void 0&&(s.alpha=r),s},Em=(n=0)=>{const e=Math.abs(n);return e>.0031308?(Math.sign(n)||1)*(1.055*Math.pow(e,1/2.4)-.055):n*12.92},Xa=({r:n,g:e,b:t,alpha:i},r="rgb")=>{let s={mode:r,r:Em(n),g:Em(e),b:Em(t)};return i!==void 0&&(s.alpha=i),s},No=({x:n,y:e,z:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=Xa({r:n*3.2409699419045226-e*1.537383177570094-.4986107602930034*t,g:n*-.9692436362808796+e*1.8759675015077204+.0415550574071756*t,b:n*.0556300796969936-e*.2039769588889765+1.0569715142428784*t});return i!==void 0&&(r.alpha=i),r},t6={...Ga,mode:"a98",parse:["a98-rgb"],serialize:"a98-rgb",fromMode:{rgb:n=>Lx(Oo(n)),xyz65:Lx},toMode:{rgb:n=>No(Ix(n)),xyz65:Ix}},_n=n=>(n=n%360)<0?n+360:n,n6=(n,e)=>n.map((t,i,r)=>{if(t===void 0)return t;let s=_n(t);return i===0||n[i-1]===void 0?s:e(s-_n(r[i-1]))}).reduce((t,i)=>!t.length||i===void 0||t[t.length-1]===void 0?(t.push(i),t):(t.push(i+t[t.length-1]),t),[]),Hr=n=>n6(n,e=>Math.abs(e)<=180?e:e-360*Math.sign(e)),ln=[-.14861,1.78277,-.29227,-.90649,1.97294,0],i6=Math.PI/180,r6=180/Math.PI;let Dx=ln[3]*ln[4],Ox=ln[1]*ln[4],Nx=ln[1]*ln[2]-ln[0]*ln[3];const s6=({r:n,g:e,b:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=(Nx*t+n*Dx-e*Ox)/(Nx+Dx-Ox),s=t-r,o=(ln[4]*(e-r)-ln[2]*s)/ln[3],a={mode:"cubehelix",l:r,s:r===0||r===1?void 0:Math.sqrt(s*s+o*o)/(ln[4]*r*(1-r))};return a.s&&(a.h=Math.atan2(o,s)*r6-120),i!==void 0&&(a.alpha=i),a},o6=({h:n,s:e,l:t,alpha:i})=>{let r={mode:"rgb"};n=(n===void 0?0:n+120)*i6,t===void 0&&(t=0);let s=e===void 0?0:e*t*(1-t),o=Math.cos(n),a=Math.sin(n);return r.r=t+s*(ln[0]*o+ln[1]*a),r.g=t+s*(ln[2]*o+ln[3]*a),r.b=t+s*(ln[4]*o+ln[5]*a),i!==void 0&&(r.alpha=i),r},Wd=(n,e)=>{if(n.h===void 0||e.h===void 0||!n.s||!e.s)return 0;let t=_n(n.h),i=_n(e.h),r=Math.sin((i-t+360)/2*Math.PI/180);return 2*Math.sqrt(n.s*e.s)*r},a6=(n,e)=>{if(n.h===void 0||e.h===void 0)return 0;let t=_n(n.h),i=_n(e.h);return Math.abs(i-t)>180?t-(i-360*Math.sign(i-t)):i-t},Xd=(n,e)=>{if(n.h===void 0||e.h===void 0||!n.c||!e.c)return 0;let t=_n(n.h),i=_n(e.h),r=Math.sin((i-t+360)/2*Math.PI/180);return 2*Math.sqrt(n.c*e.c)*r},Gr=n=>{let e=n.reduce((i,r)=>{if(r!==void 0){let s=r*Math.PI/180;i.sin+=Math.sin(s),i.cos+=Math.cos(s)}return i},{sin:0,cos:0}),t=Math.atan2(e.sin,e.cos)*180/Math.PI;return t<0?360+t:t},l6={mode:"cubehelix",channels:["h","s","l","alpha"],parse:["--cubehelix"],serialize:"--cubehelix",ranges:{h:[0,360],s:[0,4.614],l:[0,1]},fromMode:{rgb:s6},toMode:{rgb:o6},interpolate:{h:{use:we,fixup:Hr},s:we,l:we,alpha:{use:we,fixup:on}},difference:{h:Wd},average:{h:Gr}},ys=({l:n,a:e,b:t,alpha:i},r="lch")=>{e===void 0&&(e=0),t===void 0&&(t=0);let s=Math.sqrt(e*e+t*t),o={mode:r,l:n,c:s};return s&&(o.h=_n(Math.atan2(t,e)*180/Math.PI)),i!==void 0&&(o.alpha=i),o},bs=({l:n,c:e,h:t,alpha:i},r="lab")=>{t===void 0&&(t=0);let s={mode:r,l:n,a:e?e*Math.cos(t/180*Math.PI):0,b:e?e*Math.sin(t/180*Math.PI):0};return i!==void 0&&(s.alpha=i),s},jw=Math.pow(29,3)/Math.pow(3,3),Kw=Math.pow(6,3)/Math.pow(29,3),Jt={X:.3457/.3585,Y:1,Z:(1-.3457-.3585)/.3585},ya={X:.3127/.329,Y:1,Z:(1-.3127-.329)/.329};let Tm=n=>Math.pow(n,3)>Kw?Math.pow(n,3):(116*n-16)/jw;const Zw=({l:n,a:e,b:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=(n+16)/116,s=e/500+r,o=r-t/200,a={mode:"xyz65",x:Tm(s)*ya.X,y:Tm(r)*ya.Y,z:Tm(o)*ya.Z};return i!==void 0&&(a.alpha=i),a},$d=n=>No(Zw(n)),wm=n=>n>Kw?Math.cbrt(n):(jw*n+16)/116,Jw=({x:n,y:e,z:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=wm(n/ya.X),s=wm(e/ya.Y),o=wm(t/ya.Z),a={mode:"lab65",l:116*s-16,a:500*(r-s),b:200*(s-o)};return i!==void 0&&(a.alpha=i),a},qd=n=>{let e=Jw(Oo(n));return n.r===n.b&&n.b===n.g&&(e.a=e.b=0),e},Dh=1,Qw=1,Mc=26/180*Math.PI,Oh=Math.cos(Mc),Nh=Math.sin(Mc),eA=100/Math.log(139/100),jg=({l:n,c:e,h:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r={mode:"lab65",l:(Math.exp(n*Dh/eA)-1)/.0039},s=(Math.exp(.0435*e*Qw*Dh)-1)/.075,o=s*Math.cos(t/180*Math.PI-Mc),a=s*Math.sin(t/180*Math.PI-Mc);return r.a=o*Oh-a/.83*Nh,r.b=o*Nh+a/.83*Oh,i!==void 0&&(r.alpha=i),r},Kg=({l:n,a:e,b:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=e*Oh+t*Nh,s=.83*(t*Oh-e*Nh),o=Math.sqrt(r*r+s*s),a={mode:"dlch",l:eA/Dh*Math.log(1+.0039*n),c:Math.log(1+.075*o)/(.0435*Qw*Dh)};return a.c&&(a.h=_n((Math.atan2(s,r)+Mc)/Math.PI*180)),i!==void 0&&(a.alpha=i),a},Ux=n=>jg(ys(n,"dlch")),Fx=n=>bs(Kg(n),"dlab"),c6={mode:"dlab",parse:["--din99o-lab"],serialize:"--din99o-lab",toMode:{lab65:Ux,rgb:n=>$d(Ux(n))},fromMode:{lab65:Fx,rgb:n=>Fx(qd(n))},channels:["l","a","b","alpha"],ranges:{l:[0,100],a:[-40.09,45.501],b:[-40.469,44.344]},interpolate:{l:we,a:we,b:we,alpha:{use:we,fixup:on}}},u6={mode:"dlch",parse:["--din99o-lch"],serialize:"--din99o-lch",toMode:{lab65:jg,dlab:n=>bs(n,"dlab"),rgb:n=>$d(jg(n))},fromMode:{lab65:Kg,dlab:n=>ys(n,"dlch"),rgb:n=>Kg(qd(n))},channels:["l","c","h","alpha"],ranges:{l:[0,100],c:[0,51.484],h:[0,360]},interpolate:{l:we,c:we,h:{use:we,fixup:Hr},alpha:{use:we,fixup:on}},difference:{h:Xd},average:{h:Gr}};function f6({h:n,s:e,i:t,alpha:i}){n=_n(n!==void 0?n:0),e===void 0&&(e=0),t===void 0&&(t=0);let r=Math.abs(n/60%2-1),s;switch(Math.floor(n/60)){case 0:s={r:t*(1+e*(3/(2-r)-1)),g:t*(1+e*(3*(1-r)/(2-r)-1)),b:t*(1-e)};break;case 1:s={r:t*(1+e*(3*(1-r)/(2-r)-1)),g:t*(1+e*(3/(2-r)-1)),b:t*(1-e)};break;case 2:s={r:t*(1-e),g:t*(1+e*(3/(2-r)-1)),b:t*(1+e*(3*(1-r)/(2-r)-1))};break;case 3:s={r:t*(1-e),g:t*(1+e*(3*(1-r)/(2-r)-1)),b:t*(1+e*(3/(2-r)-1))};break;case 4:s={r:t*(1+e*(3*(1-r)/(2-r)-1)),g:t*(1-e),b:t*(1+e*(3/(2-r)-1))};break;case 5:s={r:t*(1+e*(3/(2-r)-1)),g:t*(1-e),b:t*(1+e*(3*(1-r)/(2-r)-1))};break;default:s={r:t*(1-e),g:t*(1-e),b:t*(1-e)}}return s.mode="rgb",i!==void 0&&(s.alpha=i),s}function h6({r:n,g:e,b:t,alpha:i}){n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=Math.max(n,e,t),s=Math.min(n,e,t),o={mode:"hsi",s:n+e+t===0?0:1-3*s/(n+e+t),i:(n+e+t)/3};return r-s!==0&&(o.h=(r===n?(e-t)/(r-s)+(e{switch(e){case"deg":return+n;case"rad":return n/Math.PI*180;case"grad":return n/10*9;case"turn":return n*360}},_6=new RegExp(`^hsla?\\(\\s*${NV}${Ia}${Vl}${Ia}${Vl}\\s*(?:,\\s*${z_}\\s*)?\\)$`),v6=n=>{let e=n.match(_6);if(!e)return;let t={mode:"hsl"};return e[3]!==void 0?t.h=+e[3]:e[1]!==void 0&&e[2]!==void 0&&(t.h=g6(e[1],e[2])),e[4]!==void 0&&(t.s=Math.min(Math.max(0,e[4]/100),1)),e[5]!==void 0&&(t.l=Math.min(Math.max(0,e[5]/100),1)),e[6]!==void 0?t.alpha=Math.max(0,Math.min(1,e[6]/100)):e[7]!==void 0&&(t.alpha=Math.max(0,Math.min(1,+e[7]))),t};function y6(n,e){if(!e||e[0]!=="hsl"&&e[0]!=="hsla")return;const t={mode:"hsl"},[,i,r,s,o]=e;if(i.type!==ve.None){if(i.type===ve.Percentage)return;t.h=i.value}if(r.type!==ve.None){if(r.type===ve.Hue)return;t.s=r.value/100}if(s.type!==ve.None){if(s.type===ve.Hue)return;t.l=s.value/100}return o.type!==ve.None&&(t.alpha=Math.min(1,Math.max(0,o.type===ve.Number?o.value:o.value/100))),t}const tA={mode:"hsl",toMode:{rgb:p6},fromMode:{rgb:m6},channels:["h","s","l","alpha"],ranges:{h:[0,360]},gamut:"rgb",parse:[y6,v6],serialize:n=>`hsl(${n.h!==void 0?n.h:"none"} ${n.s!==void 0?n.s*100+"%":"none"} ${n.l!==void 0?n.l*100+"%":"none"}${n.alpha<1?` / ${n.alpha}`:""})`,interpolate:{h:{use:we,fixup:Hr},s:we,l:we,alpha:{use:we,fixup:on}},difference:{h:Wd},average:{h:Gr}};function nA({h:n,s:e,v:t,alpha:i}){n=_n(n!==void 0?n:0),e===void 0&&(e=0),t===void 0&&(t=0);let r=Math.abs(n/60%2-1),s;switch(Math.floor(n/60)){case 0:s={r:t,g:t*(1-e*r),b:t*(1-e)};break;case 1:s={r:t*(1-e*r),g:t,b:t*(1-e)};break;case 2:s={r:t*(1-e),g:t,b:t*(1-e*r)};break;case 3:s={r:t*(1-e),g:t*(1-e*r),b:t};break;case 4:s={r:t*(1-e*r),g:t*(1-e),b:t};break;case 5:s={r:t,g:t*(1-e),b:t*(1-e*r)};break;default:s={r:t*(1-e),g:t*(1-e),b:t*(1-e)}}return s.mode="rgb",i!==void 0&&(s.alpha=i),s}function iA({r:n,g:e,b:t,alpha:i}){n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=Math.max(n,e,t),s=Math.min(n,e,t),o={mode:"hsv",s:r===0?0:1-s/r,v:r};return r-s!==0&&(o.h=(r===n?(e-t)/(r-s)+(e1){let r=e+t;e/=r,t/=r}return nA({h:n,s:t===1?1:1-e/(1-t),v:1-t,alpha:i})}function x6(n){let e=iA(n);if(e===void 0)return;let t=e.s!==void 0?e.s:0,i=e.v!==void 0?e.v:0,r={mode:"hwb",w:(1-t)*i,b:1-i};return e.h!==void 0&&(r.h=e.h),e.alpha!==void 0&&(r.alpha=e.alpha),r}function M6(n,e){if(!e||e[0]!=="hwb")return;const t={mode:"hwb"},[,i,r,s,o]=e;if(i.type!==ve.None){if(i.type===ve.Percentage)return;t.h=i.value}if(r.type!==ve.None){if(r.type===ve.Hue)return;t.w=r.value/100}if(s.type!==ve.None){if(s.type===ve.Hue)return;t.b=s.value/100}return o.type!==ve.None&&(t.alpha=Math.min(1,Math.max(0,o.type===ve.Number?o.value:o.value/100))),t}const S6={mode:"hwb",toMode:{rgb:b6},fromMode:{rgb:x6},channels:["h","w","b","alpha"],ranges:{h:[0,360]},gamut:"rgb",parse:[M6],serialize:n=>`hwb(${n.h!==void 0?n.h:"none"} ${n.w!==void 0?n.w*100+"%":"none"} ${n.b!==void 0?n.b*100+"%":"none"}${n.alpha<1?` / ${n.alpha}`:""})`,interpolate:{h:{use:we,fixup:Hr},w:we,b:we,alpha:{use:we,fixup:on}},difference:{h:a6},average:{h:Gr}},sA=203,Yd=.1593017578125,oA=78.84375,jd=.8359375,Kd=18.8515625,Zd=18.6875;function Am(n){if(n<0)return 0;const e=Math.pow(n,1/oA);return 1e4*Math.pow(Math.max(0,e-jd)/(Kd-Zd*e),1/Yd)}function Cm(n){if(n<0)return 0;const e=Math.pow(n/1e4,Yd);return Math.pow((jd+Kd*e)/(1+Zd*e),oA)}const Rm=n=>Math.max(n/sA,0),kx=({i:n,t:e,p:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);const r=Am(n+.008609037037932761*e+.11102962500302593*t),s=Am(n-.00860903703793275*e-.11102962500302599*t),o=Am(n+.5600313357106791*e-.32062717498731885*t),a={mode:"xyz65",x:Rm(2.070152218389422*r-1.3263473389671556*s+.2066510476294051*o),y:Rm(.3647385209748074*r+.680566024947227*s-.0453045459220346*o),z:Rm(-.049747207535812*r-.0492609666966138*s+1.1880659249923042*o)};return i!==void 0&&(a.alpha=i),a},Pm=(n=0)=>Math.max(n*sA,0),Bx=({x:n,y:e,z:t,alpha:i})=>{const r=Pm(n),s=Pm(e),o=Pm(t),a=Cm(.3592832590121217*r+.6976051147779502*s-.0358915932320289*o),l=Cm(-.1920808463704995*r+1.1004767970374323*s+.0753748658519118*o),c=Cm(.0070797844607477*r+.0748396662186366*s+.8433265453898765*o),u=.5*a+.5*l,f=1.61376953125*a-3.323486328125*l+1.709716796875*c,h=4.378173828125*a-4.24560546875*l-.132568359375*c,d={mode:"itp",i:u,t:f,p:h};return i!==void 0&&(d.alpha=i),d},E6={mode:"itp",channels:["i","t","p","alpha"],parse:["--ictcp"],serialize:"--ictcp",toMode:{xyz65:kx,rgb:n=>No(kx(n))},fromMode:{xyz65:Bx,rgb:n=>Bx(Oo(n))},ranges:{i:[0,.581],t:[-.369,.272],p:[-.164,.331]},interpolate:{i:we,t:we,p:we,alpha:{use:we,fixup:on}}},T6=134.03437499999998,w6=16295499532821565e-27,Im=n=>{if(n<0)return 0;let e=Math.pow(n/1e4,Yd);return Math.pow((jd+Kd*e)/(1+Zd*e),T6)},Lm=(n=0)=>Math.max(n*203,0),aA=({x:n,y:e,z:t,alpha:i})=>{n=Lm(n),e=Lm(e),t=Lm(t);let r=1.15*n-.15*t,s=.66*e+.34*n,o=Im(.41478972*r+.579999*s+.014648*t),a=Im(-.20151*r+1.120649*s+.0531008*t),l=Im(-.0166008*r+.2648*s+.6684799*t),c=(o+a)/2,u={mode:"jab",j:.44*c/(1-.56*c)-w6,a:3.524*o-4.066708*a+.542708*l,b:.199076*o+1.096799*a-1.295875*l};return i!==void 0&&(u.alpha=i),u},A6=134.03437499999998,zx=16295499532821565e-27,Dm=n=>{if(n<0)return 0;let e=Math.pow(n,1/A6);return 1e4*Math.pow((jd-e)/(Zd*e-Kd),1/Yd)},Om=n=>n/203,lA=({j:n,a:e,b:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=(n+zx)/(.44+.56*(n+zx)),s=Dm(r+.13860504*e+.058047316*t),o=Dm(r-.13860504*e-.058047316*t),a=Dm(r-.096019242*e-.8118919*t),l={mode:"xyz65",x:Om(1.661373024652174*s-.914523081304348*o+.23136208173913045*a),y:Om(-.3250758611844533*s+1.571847026732543*o-.21825383453227928*a),z:Om(-.090982811*s-.31272829*o+1.5227666*a)};return i!==void 0&&(l.alpha=i),l},cA=n=>{let e=aA(Oo(n));return n.r===n.b&&n.b===n.g&&(e.a=e.b=0),e},uA=n=>No(lA(n)),C6={mode:"jab",channels:["j","a","b","alpha"],parse:["--jzazbz"],serialize:"--jzazbz",fromMode:{rgb:cA,xyz65:aA},toMode:{rgb:uA,xyz65:lA},ranges:{j:[0,.222],a:[-.109,.129],b:[-.185,.134]},interpolate:{j:we,a:we,b:we,alpha:{use:we,fixup:on}}},Vx=({j:n,a:e,b:t,alpha:i})=>{e===void 0&&(e=0),t===void 0&&(t=0);let r=Math.sqrt(e*e+t*t),s={mode:"jch",j:n,c:r};return r&&(s.h=_n(Math.atan2(t,e)*180/Math.PI)),i!==void 0&&(s.alpha=i),s},Hx=({j:n,c:e,h:t,alpha:i})=>{t===void 0&&(t=0);let r={mode:"jab",j:n,a:e?e*Math.cos(t/180*Math.PI):0,b:e?e*Math.sin(t/180*Math.PI):0};return i!==void 0&&(r.alpha=i),r},R6={mode:"jch",parse:["--jzczhz"],serialize:"--jzczhz",toMode:{jab:Hx,rgb:n=>uA(Hx(n))},fromMode:{rgb:n=>Vx(cA(n)),jab:Vx},channels:["j","c","h","alpha"],ranges:{j:[0,.221],c:[0,.19],h:[0,360]},interpolate:{h:{use:we,fixup:Hr},c:we,j:we,alpha:{use:we,fixup:on}},difference:{h:Xd},average:{h:Gr}},Jd=Math.pow(29,3)/Math.pow(3,3),V_=Math.pow(6,3)/Math.pow(29,3);let Nm=n=>Math.pow(n,3)>V_?Math.pow(n,3):(116*n-16)/Jd;const H_=({l:n,a:e,b:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=(n+16)/116,s=e/500+r,o=r-t/200,a={mode:"xyz50",x:Nm(s)*Jt.X,y:Nm(r)*Jt.Y,z:Nm(o)*Jt.Z};return i!==void 0&&(a.alpha=i),a},Kc=({x:n,y:e,z:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=Xa({r:n*3.1341359569958707-e*1.6173863321612538-.4906619460083532*t,g:n*-.978795502912089+e*1.916254567259524+.03344273116131949*t,b:n*.07195537988411677-e*.2289768264158322+1.405386058324125*t});return i!==void 0&&(r.alpha=i),r},fA=n=>Kc(H_(n)),Zc=n=>{let{r:e,g:t,b:i,alpha:r}=Wa(n),s={mode:"xyz50",x:.436065742824811*e+.3851514688337912*t+.14307845442264197*i,y:.22249319175623702*e+.7168870538238823*t+.06061979053616537*i,z:.013923904500943465*e+.09708128566574634*t+.7140993584005155*i};return r!==void 0&&(s.alpha=r),s},Um=n=>n>V_?Math.cbrt(n):(Jd*n+16)/116,G_=({x:n,y:e,z:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=Um(n/Jt.X),s=Um(e/Jt.Y),o=Um(t/Jt.Z),a={mode:"lab",l:116*s-16,a:500*(r-s),b:200*(s-o)};return i!==void 0&&(a.alpha=i),a},hA=n=>{let e=G_(Zc(n));return n.r===n.b&&n.b===n.g&&(e.a=e.b=0),e};function P6(n,e){if(!e||e[0]!=="lab")return;const t={mode:"lab"},[,i,r,s,o]=e;if(!(i.type===ve.Hue||r.type===ve.Hue||s.type===ve.Hue))return i.type!==ve.None&&(t.l=Math.min(Math.max(0,i.value),100)),r.type!==ve.None&&(t.a=r.type===ve.Number?r.value:r.value*125/100),s.type!==ve.None&&(t.b=s.type===ve.Number?s.value:s.value*125/100),o.type!==ve.None&&(t.alpha=Math.min(1,Math.max(0,o.type===ve.Number?o.value:o.value/100))),t}const W_={mode:"lab",toMode:{xyz50:H_,rgb:fA},fromMode:{xyz50:G_,rgb:hA},channels:["l","a","b","alpha"],ranges:{l:[0,100],a:[-100,100],b:[-100,100]},parse:[P6],serialize:n=>`lab(${n.l!==void 0?n.l:"none"} ${n.a!==void 0?n.a:"none"} ${n.b!==void 0?n.b:"none"}${n.alpha<1?` / ${n.alpha}`:""})`,interpolate:{l:we,a:we,b:we,alpha:{use:we,fixup:on}}},I6={...W_,mode:"lab65",parse:["--lab-d65"],serialize:"--lab-d65",toMode:{xyz65:Zw,rgb:$d},fromMode:{xyz65:Jw,rgb:qd},ranges:{l:[0,100],a:[-86.182,98.234],b:[-107.86,94.477]}};function L6(n,e){if(!e||e[0]!=="lch")return;const t={mode:"lch"},[,i,r,s,o]=e;if(i.type!==ve.None){if(i.type===ve.Hue)return;t.l=Math.min(Math.max(0,i.value),100)}if(r.type!==ve.None&&(t.c=Math.max(0,r.type===ve.Number?r.value:r.value*150/100)),s.type!==ve.None){if(s.type===ve.Percentage)return;t.h=s.value}return o.type!==ve.None&&(t.alpha=Math.min(1,Math.max(0,o.type===ve.Number?o.value:o.value/100))),t}const X_={mode:"lch",toMode:{lab:bs,rgb:n=>fA(bs(n))},fromMode:{rgb:n=>ys(hA(n)),lab:ys},channels:["l","c","h","alpha"],ranges:{l:[0,100],c:[0,150],h:[0,360]},parse:[L6],serialize:n=>`lch(${n.l!==void 0?n.l:"none"} ${n.c!==void 0?n.c:"none"} ${n.h!==void 0?n.h:"none"}${n.alpha<1?` / ${n.alpha}`:""})`,interpolate:{h:{use:we,fixup:Hr},c:we,l:we,alpha:{use:we,fixup:on}},difference:{h:Xd},average:{h:Gr}},D6={...X_,mode:"lch65",parse:["--lch-d65"],serialize:"--lch-d65",toMode:{lab65:n=>bs(n,"lab65"),rgb:n=>$d(bs(n,"lab65"))},fromMode:{rgb:n=>ys(qd(n),"lch65"),lab65:n=>ys(n,"lch65")},ranges:{l:[0,100],c:[0,133.807],h:[0,360]}},dA=({l:n,u:e,v:t,alpha:i})=>{e===void 0&&(e=0),t===void 0&&(t=0);let r=Math.sqrt(e*e+t*t),s={mode:"lchuv",l:n,c:r};return r&&(s.h=_n(Math.atan2(t,e)*180/Math.PI)),i!==void 0&&(s.alpha=i),s},pA=({l:n,c:e,h:t,alpha:i})=>{t===void 0&&(t=0);let r={mode:"luv",l:n,u:e?e*Math.cos(t/180*Math.PI):0,v:e?e*Math.sin(t/180*Math.PI):0};return i!==void 0&&(r.alpha=i),r},mA=(n,e,t)=>4*n/(n+15*e+3*t),gA=(n,e,t)=>9*e/(n+15*e+3*t),O6=mA(Jt.X,Jt.Y,Jt.Z),N6=gA(Jt.X,Jt.Y,Jt.Z),U6=n=>n<=V_?Jd*n:116*Math.cbrt(n)-16,Zg=({x:n,y:e,z:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=U6(e/Jt.Y),s=mA(n,e,t),o=gA(n,e,t);!isFinite(s)||!isFinite(o)?r=s=o=0:(s=13*r*(s-O6),o=13*r*(o-N6));let a={mode:"luv",l:r,u:s,v:o};return i!==void 0&&(a.alpha=i),a},F6=(n,e,t)=>4*n/(n+15*e+3*t),k6=(n,e,t)=>9*e/(n+15*e+3*t),B6=F6(Jt.X,Jt.Y,Jt.Z),z6=k6(Jt.X,Jt.Y,Jt.Z),Jg=({l:n,u:e,v:t,alpha:i})=>{if(n===void 0&&(n=0),n===0)return{mode:"xyz50",x:0,y:0,z:0};e===void 0&&(e=0),t===void 0&&(t=0);let r=e/(13*n)+B6,s=t/(13*n)+z6,o=Jt.Y*(n<=8?n/Jd:Math.pow((n+16)/116,3)),a=o*(9*r)/(4*s),l=o*(12-3*r-20*s)/(4*s),c={mode:"xyz50",x:a,y:o,z:l};return i!==void 0&&(c.alpha=i),c},V6=n=>dA(Zg(Zc(n))),H6=n=>Kc(Jg(pA(n))),G6={mode:"lchuv",toMode:{luv:pA,rgb:H6},fromMode:{rgb:V6,luv:dA},channels:["l","c","h","alpha"],parse:["--lchuv"],serialize:"--lchuv",ranges:{l:[0,100],c:[0,176.956],h:[0,360]},interpolate:{h:{use:we,fixup:Hr},c:we,l:we,alpha:{use:we,fixup:on}},difference:{h:Xd},average:{h:Gr}},W6={...Ga,mode:"lrgb",toMode:{rgb:Xa},fromMode:{rgb:Wa},parse:["srgb-linear"],serialize:"srgb-linear"},X6={mode:"luv",toMode:{xyz50:Jg,rgb:n=>Kc(Jg(n))},fromMode:{xyz50:Zg,rgb:n=>Zg(Zc(n))},channels:["l","u","v","alpha"],parse:["--luv"],serialize:"--luv",ranges:{l:[0,100],u:[-84.936,175.042],v:[-125.882,87.243]},interpolate:{l:we,u:we,v:we,alpha:{use:we,fixup:on}}},_A=({r:n,g:e,b:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=Math.cbrt(.41222147079999993*n+.5363325363*e+.0514459929*t),s=Math.cbrt(.2119034981999999*n+.6806995450999999*e+.1073969566*t),o=Math.cbrt(.08830246189999998*n+.2817188376*e+.6299787005000002*t),a={mode:"oklab",l:.2104542553*r+.793617785*s-.0040720468*o,a:1.9779984951*r-2.428592205*s+.4505937099*o,b:.0259040371*r+.7827717662*s-.808675766*o};return i!==void 0&&(a.alpha=i),a},Qd=n=>{let e=_A(Wa(n));return n.r===n.b&&n.b===n.g&&(e.a=e.b=0),e},Jc=({l:n,a:e,b:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=Math.pow(n*.9999999984505198+.39633779217376786*e+.2158037580607588*t,3),s=Math.pow(n*1.0000000088817609-.10556134232365635*e-.06385417477170591*t,3),o=Math.pow(n*1.0000000546724108-.08948418209496575*e-1.2914855378640917*t,3),a={mode:"lrgb",r:4.076741661347994*r-3.307711590408193*s+.230969928729428*o,g:-1.2684380040921763*r+2.6097574006633715*s-.3413193963102197*o,b:-.004196086541837188*r-.7034186144594493*s+1.7076147009309444*o};return i!==void 0&&(a.alpha=i),a},ep=n=>Xa(Jc(n));function Qg(n){const i=1.170873786407767;return .5*(i*n-.206+Math.sqrt((i*n-.206)*(i*n-.206)+4*.03*i*n))}function Uh(n){return(n*n+.206*n)/(1.170873786407767*(n+.03))}function $6(n,e){let t,i,r,s,o,a,l,c;-1.88170328*n-.80936493*e>1?(t=1.19086277,i=1.76576728,r=.59662641,s=.75515197,o=.56771245,a=4.0767416621,l=-3.3077115913,c=.2309699292):1.81444104*n-1.19445276*e>1?(t=.73956515,i=-.45954404,r=.08285427,s=.1254107,o=.14503204,a=-1.2684380046,l=2.6097574011,c=-.3413193965):(t=1.35733652,i=-.00915799,r=-1.1513021,s=-.50559606,o=.00692167,a=-.0041960863,l=-.7034186147,c=1.707614701);let u=t+i*n+r*e+s*n*n+o*n*e,f=.3963377774*n+.2158037573*e,h=-.1055613458*n-.0638541728*e,d=-.0894841775*n-1.291485548*e;{let p=1+u*f,_=1+u*h,g=1+u*d,m=p*p*p,y=_*_*_,b=g*g*g,v=3*f*p*p,E=3*h*_*_,T=3*d*g*g,S=6*f*f*p,R=6*h*h*_,x=6*d*d*g,M=a*m+l*y+c*b,L=a*v+l*E+c*T,F=a*S+l*R+c*x;u=u-M*L/(L*L-.5*M*F)}return u}function $_(n,e){let t=$6(n,e),i=Jc({l:1,a:t*n,b:t*e}),r=Math.cbrt(1/Math.max(i.r,i.g,i.b)),s=r*t;return[r,s]}function q6(n,e,t,i,r,s=null){s||(s=$_(n,e));let o;if((t-r)*s[1]-(s[0]-r)*i<=0)o=s[1]*r/(i*s[0]+s[1]*(r-t));else{o=s[1]*(r-1)/(i*(s[0]-1)+s[1]*(r-t));{let a=t-r,l=i,c=.3963377774*n+.2158037573*e,u=-.1055613458*n-.0638541728*e,f=-.0894841775*n-1.291485548*e,h=a+l*c,d=a+l*u,p=a+l*f;{let _=r*(1-o)+o*t,g=o*i,m=_+g*c,y=_+g*u,b=_+g*f,v=m*m*m,E=y*y*y,T=b*b*b,S=3*h*m*m,R=3*d*y*y,x=3*p*b*b,M=6*h*h*m,L=6*d*d*y,F=6*p*p*b,V=4.0767416621*v-3.3077115913*E+.2309699292*T-1,X=4.0767416621*S-3.3077115913*R+.2309699292*x,te=4.0767416621*M-3.3077115913*L+.2309699292*F,Z=X/(X*X-.5*V*te),ee=-V*Z,Q=-1.2684380046*v+2.6097574011*E-.3413193965*T-1,de=-1.2684380046*S+2.6097574011*R-.3413193965*x,be=-1.2684380046*M+2.6097574011*L-.3413193965*F,re=de/(de*de-.5*Q*be),ye=-Q*re,Ve=-.0041960863*v-.7034186147*E+1.707614701*T-1,se=-.0041960863*S-.7034186147*R+1.707614701*x,ge=-.0041960863*M-.7034186147*L+1.707614701*F,Me=se/(se*se-.5*Ve*ge),W=-Ve*Me;ee=Z>=0?ee:1e6,ye=re>=0?ye:1e6,W=Me>=0?W:1e6,o+=Math.min(ee,Math.min(ye,W))}}}return o}function q_(n,e,t=null){t||(t=$_(n,e));let i=t[0],r=t[1];return[r/i,r/(1-i)]}function vA(n,e,t){let i=$_(e,t),r=q6(e,t,n,1,n,i),s=q_(e,t,i),o=.11516993+1/(7.4477897+4.1590124*t+e*(-2.19557347+1.75198401*t+e*(-2.13704948-10.02301043*t+e*(-4.24894561+5.38770819*t+4.69891013*e)))),a=.11239642+1/(1.6132032-.68124379*t+e*(.40370612+.90148123*t+e*(-.27087943+.6122399*t+e*(.00299215-.45399568*t-.14661872*e)))),l=r/Math.min(n*s[0],(1-n)*s[1]),c=n*o,u=(1-n)*a,f=.9*l*Math.sqrt(Math.sqrt(1/(1/(c*c*c*c)+1/(u*u*u*u))));return c=n*.4,u=(1-n)*.8,[Math.sqrt(1/(1/(c*c)+1/(u*u))),f,r]}function Gx(n){const e=n.l!==void 0?n.l:0,t=n.a!==void 0?n.a:0,i=n.b!==void 0?n.b:0,r={mode:"okhsl",l:Qg(e)};n.alpha!==void 0&&(r.alpha=n.alpha);let s=Math.sqrt(t*t+i*i);if(!s)return r.s=0,r;let[o,a,l]=vA(e,t/s,i/s),c;if(sGx(Qd(n))},toMode:{oklab:Wx,rgb:n=>ep(Wx(n))}};function Xx(n){let e=n.l!==void 0?n.l:0,t=n.a!==void 0?n.a:0,i=n.b!==void 0?n.b:0,r=Math.sqrt(t*t+i*i),s=r?t/r:1,o=r?i/r:1,[a,l]=q_(s,o),c=.5,u=1-c/a,f=l/(r+e*l),h=f*e,d=f*r,p=Uh(h),_=d*p/h,g=Jc({l:p,a:s*_,b:o*_}),m=Math.cbrt(1/Math.max(g.r,g.g,g.b,0));e=e/m,r=r/m*Qg(e)/e,e=Qg(e);const y={mode:"okhsv",s:r?(c+l)*d/(l*c+l*u*d):0,v:e?e/h:0};return y.s&&(y.h=_n(Math.atan2(i,t)*180/Math.PI)),n.alpha!==void 0&&(y.alpha=n.alpha),y}function $x(n){const e={mode:"oklab"};n.alpha!==void 0&&(e.alpha=n.alpha);const t=n.h!==void 0?n.h:0,i=n.s!==void 0?n.s:0,r=n.v!==void 0?n.v:0,s=Math.cos(t/180*Math.PI),o=Math.sin(t/180*Math.PI),[a,l]=q_(s,o),c=.5,u=1-c/a,f=1-i*c/(c+l-l*u*i),h=i*l*c/(c+l-l*u*i),d=Uh(f),p=h*d/f,_=Jc({l:d,a:s*p,b:o*p}),g=Math.cbrt(1/Math.max(_.r,_.g,_.b,0)),m=Uh(r*f),y=h*m/f;return e.l=m*g,e.a=y*s*g,e.b=y*o*g,e}const j6={...rA,mode:"okhsv",channels:["h","s","v","alpha"],parse:["--okhsv"],serialize:"--okhsv",fromMode:{oklab:Xx,rgb:n=>Xx(Qd(n))},toMode:{oklab:$x,rgb:n=>ep($x(n))}};function K6(n,e){if(!e||e[0]!=="oklab")return;const t={mode:"oklab"},[,i,r,s,o]=e;if(!(i.type===ve.Hue||r.type===ve.Hue||s.type===ve.Hue))return i.type!==ve.None&&(t.l=Math.min(Math.max(0,i.type===ve.Number?i.value:i.value/100),1)),r.type!==ve.None&&(t.a=r.type===ve.Number?r.value:r.value*.4/100),s.type!==ve.None&&(t.b=s.type===ve.Number?s.value:s.value*.4/100),o.type!==ve.None&&(t.alpha=Math.min(1,Math.max(0,o.type===ve.Number?o.value:o.value/100))),t}const Z6={...W_,mode:"oklab",toMode:{lrgb:Jc,rgb:ep},fromMode:{lrgb:_A,rgb:Qd},ranges:{l:[0,1],a:[-.4,.4],b:[-.4,.4]},parse:[K6],serialize:n=>`oklab(${n.l!==void 0?n.l:"none"} ${n.a!==void 0?n.a:"none"} ${n.b!==void 0?n.b:"none"}${n.alpha<1?` / ${n.alpha}`:""})`};function J6(n,e){if(!e||e[0]!=="oklch")return;const t={mode:"oklch"},[,i,r,s,o]=e;if(i.type!==ve.None){if(i.type===ve.Hue)return;t.l=Math.min(Math.max(0,i.type===ve.Number?i.value:i.value/100),1)}if(r.type!==ve.None&&(t.c=Math.max(0,r.type===ve.Number?r.value:r.value*.4/100)),s.type!==ve.None){if(s.type===ve.Percentage)return;t.h=s.value}return o.type!==ve.None&&(t.alpha=Math.min(1,Math.max(0,o.type===ve.Number?o.value:o.value/100))),t}const Q6={...X_,mode:"oklch",toMode:{oklab:n=>bs(n,"oklab"),rgb:n=>ep(bs(n,"oklab"))},fromMode:{rgb:n=>ys(Qd(n),"oklch"),oklab:n=>ys(n,"oklch")},parse:[J6],serialize:n=>`oklch(${n.l!==void 0?n.l:"none"} ${n.c!==void 0?n.c:"none"} ${n.h!==void 0?n.h:"none"}${n.alpha<1?` / ${n.alpha}`:""})`,ranges:{l:[0,1],c:[0,.4],h:[0,360]}},qx=n=>{let{r:e,g:t,b:i,alpha:r}=Wa(n),s={mode:"xyz65",x:.486570948648216*e+.265667693169093*t+.1982172852343625*i,y:.2289745640697487*e+.6917385218365062*t+.079286914093745*i,z:0*e+.0451133818589026*t+1.043944368900976*i};return r!==void 0&&(s.alpha=r),s},Yx=({x:n,y:e,z:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r=Xa({r:n*2.4934969119414263-e*.9313836179191242-.402710784450717*t,g:n*-.8294889695615749+e*1.7626640603183465+.0236246858419436*t,b:n*.0358458302437845-e*.0761723892680418+.9568845240076871*t},"p3");return i!==void 0&&(r.alpha=i),r},eH={...Ga,mode:"p3",parse:["display-p3"],serialize:"display-p3",fromMode:{rgb:n=>Yx(Oo(n)),xyz65:Yx},toMode:{rgb:n=>No(qx(n)),xyz65:qx}},Fm=n=>{let e=Math.abs(n);return e>=1/512?Math.sign(n)*Math.pow(e,1/1.8):16*n},jx=({x:n,y:e,z:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r={mode:"prophoto",r:Fm(n*1.3457868816471585-e*.2555720873797946-.0511018649755453*t),g:Fm(n*-.5446307051249019+e*1.5082477428451466+.0205274474364214*t),b:Fm(n*0+e*0+1.2119675456389452*t)};return i!==void 0&&(r.alpha=i),r},km=(n=0)=>{let e=Math.abs(n);return e>=16/512?Math.sign(n)*Math.pow(e,1.8):n/16},Kx=n=>{let e=km(n.r),t=km(n.g),i=km(n.b),r={mode:"xyz50",x:.7977666449006423*e+.1351812974005331*t+.0313477341283922*i,y:.2880748288194013*e+.7118352342418731*t+899369387256e-16*i,z:0*e+0*t+.8251046025104602*i};return n.alpha!==void 0&&(r.alpha=n.alpha),r},tH={...Ga,mode:"prophoto",parse:["prophoto-rgb"],serialize:"prophoto-rgb",fromMode:{xyz50:jx,rgb:n=>jx(Zc(n))},toMode:{xyz50:Kx,rgb:n=>Kc(Kx(n))}},Zx=1.09929682680944,nH=.018053968510807,Bm=n=>{const e=Math.abs(n);return e>nH?(Math.sign(n)||1)*(Zx*Math.pow(e,.45)-(Zx-1)):4.5*n},Jx=({x:n,y:e,z:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);let r={mode:"rec2020",r:Bm(n*1.7166511879712683-e*.3556707837763925-.2533662813736599*t),g:Bm(n*-.6666843518324893+e*1.6164812366349395+.0157685458139111*t),b:Bm(n*.0176398574453108-e*.0427706132578085+.9421031212354739*t)};return i!==void 0&&(r.alpha=i),r},Qx=1.09929682680944,iH=.018053968510807,zm=(n=0)=>{let e=Math.abs(n);return e{let e=zm(n.r),t=zm(n.g),i=zm(n.b),r={mode:"xyz65",x:.6369580483012911*e+.1446169035862083*t+.1688809751641721*i,y:.262700212011267*e+.6779980715188708*t+.059301716469862*i,z:0*e+.0280726930490874*t+1.0609850577107909*i};return n.alpha!==void 0&&(r.alpha=n.alpha),r},rH={...Ga,mode:"rec2020",fromMode:{xyz65:Jx,rgb:n=>Jx(Oo(n))},toMode:{xyz65:eM,rgb:n=>No(eM(n))},parse:["rec2020"],serialize:"rec2020"},vo=.0037930732552754493,yA=Math.cbrt(vo),Vm=n=>Math.cbrt(n)-yA,sH=n=>{const{r:e,g:t,b:i,alpha:r}=Wa(n),s=Vm(.3*e+.622*t+.078*i+vo),o=Vm(.23*e+.692*t+.078*i+vo),a=Vm(.2434226892454782*e+.2047674442449682*t+.5518098665095535*i+vo),l={mode:"xyb",x:(s-o)/2,y:(s+o)/2,b:a-(s+o)/2};return r!==void 0&&(l.alpha=r),l},Hm=n=>Math.pow(n+yA,3),oH=({x:n,y:e,b:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);const r=Hm(n+e)-vo,s=Hm(e-n)-vo,o=Hm(t+e)-vo,a=Xa({r:11.031566904639861*r-9.866943908131562*s-.16462299650829934*o,g:-3.2541473810744237*r+4.418770377582723*s-.16462299650829934*o,b:-3.6588512867136815*r+2.7129230459360922*s+1.9459282407775895*o});return i!==void 0&&(a.alpha=i),a},aH={mode:"xyb",channels:["x","y","b","alpha"],parse:["--xyb"],serialize:"--xyb",toMode:{rgb:oH},fromMode:{rgb:sH},ranges:{x:[-.0154,.0281],y:[0,.8453],b:[-.2778,.388]},interpolate:{x:we,y:we,b:we,alpha:{use:we,fixup:on}}},lH={mode:"xyz50",parse:["xyz-d50"],serialize:"xyz-d50",toMode:{rgb:Kc,lab:G_},fromMode:{rgb:Zc,lab:H_},channels:["x","y","z","alpha"],ranges:{x:[0,.964],y:[0,.999],z:[0,.825]},interpolate:{x:we,y:we,z:we,alpha:{use:we,fixup:on}}},cH=n=>{let{x:e,y:t,z:i,alpha:r}=n;e===void 0&&(e=0),t===void 0&&(t=0),i===void 0&&(i=0);let s={mode:"xyz50",x:1.0479298208405488*e+.0229467933410191*t-.0501922295431356*i,y:.0296278156881593*e+.990434484573249*t-.0170738250293851*i,z:-.0092430581525912*e+.0150551448965779*t+.7518742899580008*i};return r!==void 0&&(s.alpha=r),s},uH=n=>{let{x:e,y:t,z:i,alpha:r}=n;e===void 0&&(e=0),t===void 0&&(t=0),i===void 0&&(i=0);let s={mode:"xyz65",x:.9554734527042182*e-.0230985368742614*t+.0632593086610217*i,y:-.0283697069632081*e+1.0099954580058226*t+.021041398966943*i,z:.0123140016883199*e-.0205076964334779*t+1.3303659366080753*i};return r!==void 0&&(s.alpha=r),s},fH={mode:"xyz65",toMode:{rgb:No,xyz50:cH},fromMode:{rgb:Oo,xyz50:uH},ranges:{x:[0,.95],y:[0,1],z:[0,1.088]},channels:["x","y","z","alpha"],parse:["xyz","xyz-d65"],serialize:"xyz-d65",interpolate:{x:we,y:we,z:we,alpha:{use:we,fixup:on}}},hH=({r:n,g:e,b:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);const r={mode:"yiq",y:.29889531*n+.58662247*e+.11448223*t,i:.59597799*n-.2741761*e-.32180189*t,q:.21147017*n-.52261711*e+.31114694*t};return i!==void 0&&(r.alpha=i),r},dH=({y:n,i:e,q:t,alpha:i})=>{n===void 0&&(n=0),e===void 0&&(e=0),t===void 0&&(t=0);const r={mode:"rgb",r:n+.95608445*e+.6208885*t,g:n-.27137664*e-.6486059*t,b:n-1.10561724*e+1.70250126*t};return i!==void 0&&(r.alpha=i),r},pH={mode:"yiq",toMode:{rgb:dH},fromMode:{rgb:hH},channels:["y","i","q","alpha"],parse:["--yiq"],serialize:"--yiq",ranges:{i:[-.595,.595],q:[-.522,.522]},interpolate:{y:we,i:we,q:we,alpha:{use:we,fixup:on}}};Et(t6);Et(l6);Et(c6);Et(u6);Et(d6);Et(tA);Et(rA);Et(S6);Et(E6);Et(C6);Et(R6);Et(W_);Et(I6);Et(X_);Et(D6);Et(G6);Et(W6);Et(X6);Et(Y6);Et(j6);Et(Z6);Et(Q6);Et(eH);Et(tH);Et(rH);Et(Ga);Et(aH);Et(lH);Et(fH);Et(pH);const e0=178.17,mH=Xw("oklch"),tM=n=>{var e;return n?(e=mH(n))==null?void 0:e.h:e0},gH=Sz("settings",()=>{const n=et(),e=mr("settings/language","en-US"),t=mr("settings/stage/view/model-renderer","2d"),i=mr("settings/audio/input","true"),r=Se(()=>{var E;return(E=n.value)==null?void 0:E.deviceId}),{audioInputs:s}=AB({constraints:{audio:!0},requestPermissions:!0}),o=et(),a=et("/assets/live2d/models/hiyori_pro_zh.zip"),l=et("url"),c=et(!1),u=mr("settings/live2d/position",{x:0,y:0}),f=et({group:"Idle",index:0}),h=et([]),d=mr("settings/live2d/motion-map",{}),p=mr("settings/disable-transitions",!0),_=mr("settings/use-page-specific-transitions",!0),g=mr("settings/theme/colors/hue",e0),m=mr("settings/theme/colors/hue-dynamic",!1);function y(E=e0){g.value=E,m.value=!1}function b(E){y(tM(E))}function v(E){if(m.value)return!1;const T=tM(E);if(!T)return!1;const S=Math.abs(T-g.value);return S<.01||S>359.99}return Xe(i,E=>{E==="false"&&(n.value=void 0),E==="true"&&(n.value=s.value[0])}),Xe(s,()=>{i.value==="true"&&!n.value&&(n.value=s.value[0])},{immediate:!0}),{live2dModelFile:o,live2dModelUrl:a,live2dLoadSource:l,live2dCurrentMotion:f,live2dPosition:u,availableLive2dMotions:h,live2dMotionMap:d,loadingLive2dModel:c,disableTransitions:p,usePageSpecificTransitions:_,language:e,stageView:t,themeColorsHue:g,themeColorsHueDynamic:m,isAudioInputOn:i,selectedAudioDevice:n,selectedAudioDeviceId:r,setThemeColorsHue:y,applyPrimaryColorFrom:b,isColorSelectedForPrimary:v}}),_H=fn({__name:"ArrowTransition",props:{stageTransition:{default:()=>({primaryColor:"#666",secondaryColor:"#ccc"})}},setup(n){const e=n,t=Se(()=>e.stageTransition),i=Se(()=>t.value.primaryColor||"#666"),r=Se(()=>t.value.secondaryColor||"#ccc");return Hn(()=>{document.documentElement.style.setProperty("--stage-transition-3-overlay-color-1",i.value),document.documentElement.style.setProperty("--stage-transition-3-overlay-color-2",r.value)}),(s,o)=>(mn(),vi("div",{class:"stage-transition-3",style:Si({zIndex:t.value.zIndex||100})},null,4))}}),Uo=(n,e)=>{const t=n.__vccOpts||n;for(const[i,r]of e)t[i]=r;return t},vH=Uo(_H,[["__scopeId","data-v-df576df0"]]),yH=fn({__name:"BubbleWaveOutTransition",props:{stageTransition:null},setup(n){const e=n,t=Se(()=>{var i;return((i=e.stageTransition)==null?void 0:i.colors)||["#eee","#ebcb8b","#c56370","#3f3b52"]});return Hn(()=>{var i,r;document.documentElement.style.setProperty("--circle-expansion-delay",`${((i=e.stageTransition)==null?void 0:i.delay)||0}s`),document.documentElement.style.setProperty("--circle-expansion-duration",`${((r=e.stageTransition)==null?void 0:r.duration)||.4}s`),t.value.forEach((s,o)=>{document.documentElement.style.setProperty(`--circle-expansion-color-${o+1}`,s)})}),(i,r)=>{var s;return mn(),vi("div",{class:"circle-expansion-transition",style:Si({zIndex:((s=n.stageTransition)==null?void 0:s.zIndex)||100})},[(mn(!0),vi(jt,null,eR(t.value,(o,a)=>(mn(),vi("div",{key:a}))),128))],4)}}}),bH=Uo(yH,[["__scopeId","data-v-0c29056c"]]),xH=fn({__name:"FantasyFallTransition",props:{stageTransition:null},setup(n){const e=n,t=Se(()=>{var r;return((r=e.stageTransition)==null?void 0:r.direction)||"up"}),i=Se(()=>`fantasy-fall-${t.value}`);return Hn(()=>{var r,s,o,a,l,c,u,f,h;document.documentElement.style.setProperty("--fantasy-fall-color",((r=e.stageTransition)==null?void 0:r.primaryColor)||"#eee"),document.documentElement.style.setProperty("--fantasy-fall-duration",`${((s=e.stageTransition)==null?void 0:s.duration)||.6}s`),document.documentElement.style.setProperty("--fantasy-fall-delay",`${((o=e.stageTransition)==null?void 0:o.delay)||0}s`),document.documentElement.style.setProperty("--fantasy-fall-radius-sm",`${((l=(a=e.stageTransition)==null?void 0:a.borderRadius)==null?void 0:l.sm)||"14rem"}`),document.documentElement.style.setProperty("--fantasy-fall-radius-md",`${((u=(c=e.stageTransition)==null?void 0:c.borderRadius)==null?void 0:u.md)||"14rem"}`),document.documentElement.style.setProperty("--fantasy-fall-radius-lg",`${((h=(f=e.stageTransition)==null?void 0:f.borderRadius)==null?void 0:h.lg)||"50%"}`)}),(r,s)=>{var o;return mn(),vi("div",{class:Na(["fantasy-fall-transition",i.value]),style:Si({zIndex:((o=n.stageTransition)==null?void 0:o.zIndex)??100})},null,6)}}}),MH=Uo(xH,[["__scopeId","data-v-e62bf496"]]),SH=fn({__name:"MultipleBlocksRevealTransition",props:{stageTransition:null},setup(n){const e=n,t=Se(()=>e.stageTransition),i=Se(()=>{var s;return((s=t.value)==null?void 0:s.primaryColor)||"#666"}),r=Se(()=>{var s;return((s=t.value)==null?void 0:s.secondaryColor)||"#ccc"});return Hn(()=>{document.documentElement.style.setProperty("--stage-transition-4-overlay-color-1",i.value),document.documentElement.style.setProperty("--stage-transition-4-overlay-color-2",r.value)}),(s,o)=>{var a;return mn(),vi("div",{class:"stage-transition-4",style:Si({zIndex:((a=t.value)==null?void 0:a.zIndex)??100})},o[0]||(o[0]=[DR('
',5)]),4)}}}),EH=Uo(SH,[["__scopeId","data-v-6d1179fc"]]),TH=fn({__name:"SlideTransition",props:{stageTransition:null},setup(n){const e=n,t=Se(()=>e.stageTransition),i=Se(()=>{var s;return((s=t.value)==null?void 0:s.primaryColor)||"#666"}),r=Se(()=>{var s;return((s=t.value)==null?void 0:s.secondaryColor)||"#ccc"});return Xe([t,i,r],()=>{document.documentElement.style.setProperty("--stage-transition-1-overlay-color-1",i.value),document.documentElement.style.setProperty("--stage-transition-1-overlay-color-2",r.value)}),Hn(()=>{document.documentElement.style.setProperty("--stage-transition-1-overlay-color-1",i.value),document.documentElement.style.setProperty("--stage-transition-1-overlay-color-2",r.value)}),(s,o)=>{var a;return mn(),vi("div",{class:"stage-transition-1",style:Si({zIndex:((a=t.value)==null?void 0:a.zIndex)??100})},null,4)}}}),wH=Uo(TH,[["__scopeId","data-v-bf1d1566"]]),AH=fn({__name:"SlopeSlideTransition",props:{stageTransition:null},setup(n){const e=n,t=Se(()=>e.stageTransition),i=Se(()=>{var s;return((s=t.value)==null?void 0:s.primaryColor)??"#666"}),r=Se(()=>{var s;return((s=t.value)==null?void 0:s.secondaryColor)??"#ccc"});return Hn(()=>{document.documentElement.style.setProperty("--stage-transition-2-overlay-color-1",i.value),document.documentElement.style.setProperty("--stage-transition-2-overlay-color-2",r.value)}),(s,o)=>{var a;return mn(),vi("div",{class:"stage-transition-2",style:Si({zIndex:((a=t.value)==null?void 0:a.zIndex)??100})},null,4)}}}),CH=Uo(AH,[["__scopeId","data-v-8ff7120f"]]),RH=fn({__name:"RectanglesRotateTransition",props:{stageTransition:null},setup(n){const e=n;return Hn(()=>{var t,i,r,s,o,a,l;document.documentElement.style.setProperty("--rectangle-rotate-1-color",((t=e.stageTransition)==null?void 0:t.primaryColor)||"#ebcb8b"),document.documentElement.style.setProperty("--rectangle-rotate-2-color",((i=e.stageTransition)==null?void 0:i.secondaryColor)||"#c56370"),document.documentElement.style.setProperty("--rectangle-rotate-3-color",((r=e.stageTransition)==null?void 0:r.tertiaryColor)||"#43445b"),document.documentElement.style.setProperty("--rectangle-rotate-duration",`${((s=e.stageTransition)==null?void 0:s.duration)||.6}s`),document.documentElement.style.setProperty("--rectangle-rotate-delay",`${((o=e.stageTransition)==null?void 0:o.delay)||0}s`),document.documentElement.style.setProperty("--rectangle-rotate-stagger",`${((a=e.stageTransition)==null?void 0:a.staggerDelay)||.1}s`),document.documentElement.style.setProperty("--rectangle-rotate-rotation",`${((l=e.stageTransition)==null?void 0:l.rotation)||270}deg`)}),(t,i)=>{var r;return mn(),vi("div",{class:"rectangle-rotate-transition",style:Si({zIndex:((r=n.stageTransition)==null?void 0:r.zIndex)??100})},i[0]||(i[0]=[is("div",{class:"rectangle rectangle-rotate-1"},[is("div")],-1),is("div",{class:"rectangle rectangle-rotate-2"},[is("div")],-1),is("div",{class:"rectangle rectangle-rotate-3"},[is("div")],-1)]),4)}}}),PH=Uo(RH,[["__scopeId","data-v-f4b1dc64"]]),IH=fn({__name:"StageTransitionGroup",props:{primaryColor:null,secondaryColor:null,tertiaryColor:null,colors:null,zIndex:null,disableTransitions:{type:Boolean},usePageSpecificTransitions:{type:Boolean}},setup(n){const e=n,t=RV(),i=et(!1),r=et(),s=et(""),o=et(),a=De({slide:{component:wH,duration:2700},"slope-slide":{component:CH,duration:2700},arrow:{component:vH,duration:2700},"multiple-blocks-reveal":{component:EH,duration:2800},"fantasy-fall":{component:MH,duration:2700},"rectangles-rotate":{component:PH,duration:2700},"bubble-wave-out":{component:bH,duration:1e3}}),l=et([]);function c(d){return l.value.push(d),()=>{const p=l.value.indexOf(d);p>=0&&l.value.splice(p,1)}}async function u(d,p={}){r.value=d;for(const _ of l.value)try{await Promise.resolve(_(d,p))}catch(g){console.error(`Error in transition hook at stage "${d}":`,g)}}async function f(d,p,_){if(d.name==="none"||!d.name){p(),_();return}const g=a.value[d.name];if(!g){console.error(`Transition ${d.name} not found`),p(),_();return}const m=g.nextDelay!==void 0?g.nextDelay:g.duration/3;let y=!1;const v=c(E=>{E==="navigation"&&!y&&(y=!0,p())});try{await u("before-enter",{transitionName:d.name}),i.value&&(await u("before-leave",{transitionName:s.value}),s.value="",o.value=void 0,i.value=!1,await u("after-leave",{transitionName:s.value}),await new Promise(T=>setTimeout(T,50))),s.value=d.name,o.value=d,i.value=!0,await u("enter-active",{transitionName:name}),setTimeout(async()=>{await u("navigation",{transitionName:d.name,config:g}),y||(y=!0,p())},m),setTimeout(async()=>{await u("after-enter",{transitionName:d.name})},g.duration),setTimeout(async()=>{await u("before-leave",{transitionName:d.name})},g.duration+10),setTimeout(async()=>{await u("leave-active",{transitionName:d.name})},g.duration+20);const E=g.exitDuration??0;setTimeout(async()=>{i.value=!1,s.value="",o.value=void 0,await u("after-leave",{transitionName:d.name}),_()},g.duration+E)}catch(E){console.error(E)}finally{v(),setTimeout(()=>{y||(y=!0,p())},g.duration*2)}}function h(d,p){return new Promise(_=>{f(d,p,_)})}return t.beforeEach((d,p,_)=>{if(e.disableTransitions){_();return}if(typeof d.meta.stageTransition!="object"){_();return}const g=d.meta.stageTransition;if(e.usePageSpecificTransitions&&g.pageSpecificAvailable){_();return}typeof e.primaryColor<"u"&&(g.primaryColor=e.primaryColor),typeof e.secondaryColor<"u"&&(g.secondaryColor=e.secondaryColor),typeof e.tertiaryColor<"u"&&(g.tertiaryColor=e.tertiaryColor),typeof e.colors<"u"&&(g.colors=e.colors),typeof e.zIndex<"u"&&(g.zIndex=e.zIndex),h(g,_)}),(d,p)=>(mn(),vi(jt,null,[tR(d.$slots,"default"),i.value?(mn(),vi(jt,{key:0},[a.value[s.value]?(mn(),Yl(QC(a.value[s.value].component),{key:0,"stage-transition":o.value},null,8,["stage-transition"])):Cv("",!0)],64)):Cv("",!0)],64))}});/*! + * shared v11.1.2 + * (c) 2025 kazuya kawaguchi + * Released under the MIT License. + */const Fh=typeof window<"u",Cs=(n,e=!1)=>e?Symbol.for(n):Symbol(n),LH=(n,e,t)=>DH({l:n,k:e,s:t}),DH=n=>JSON.stringify(n).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Zt=n=>typeof n=="number"&&isFinite(n),OH=n=>j_(n)==="[object Date]",kh=n=>j_(n)==="[object RegExp]",tp=n=>ht(n)&&Object.keys(n).length===0,un=Object.assign,NH=Object.create,Rt=(n=null)=>NH(n);let nM;const Y_=()=>nM||(nM=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Rt());function iM(n){return n.replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}const UH=Object.prototype.hasOwnProperty;function Di(n,e){return UH.call(n,e)}const tn=Array.isArray,kt=n=>typeof n=="function",Ne=n=>typeof n=="string",Bt=n=>typeof n=="boolean",yt=n=>n!==null&&typeof n=="object",FH=n=>yt(n)&&kt(n.then)&&kt(n.catch),bA=Object.prototype.toString,j_=n=>bA.call(n),ht=n=>j_(n)==="[object Object]",kH=n=>n==null?"":tn(n)||ht(n)&&n.toString===bA?JSON.stringify(n,null,2):String(n);function K_(n,e=""){return n.reduce((t,i,r)=>r===0?t+i:t+e+i,"")}function BH(n,e){typeof console<"u"&&(console.warn("[intlify] "+n),e&&console.warn(e.stack))}const ff=n=>!yt(n)||tn(n);function Rf(n,e){if(ff(n)||ff(e))throw new Error("Invalid value");const t=[{src:n,des:e}];for(;t.length;){const{src:i,des:r}=t.pop();Object.keys(i).forEach(s=>{s!=="__proto__"&&(yt(i[s])&&!yt(r[s])&&(r[s]=Array.isArray(i[s])?[]:Rt()),ff(r[s])||ff(i[s])?r[s]=i[s]:t.push({src:i[s],des:r[s]}))})}}/*! + * message-compiler v11.1.2 + * (c) 2025 kazuya kawaguchi + * Released under the MIT License. + */function zH(n,e,t){return{line:n,column:e,offset:t}}function t0(n,e,t){return{start:n,end:e}}const At={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},VH=17;function np(n,e,t={}){const{domain:i,messages:r,args:s}=t,o=n,a=new SyntaxError(String(o));return a.code=n,e&&(a.location=e),a.domain=i,a}function HH(n){throw n}const _r=" ",GH="\r",Ln=` +`,WH="\u2028",XH="\u2029";function $H(n){const e=n;let t=0,i=1,r=1,s=0;const o=S=>e[S]===GH&&e[S+1]===Ln,a=S=>e[S]===Ln,l=S=>e[S]===XH,c=S=>e[S]===WH,u=S=>o(S)||a(S)||l(S)||c(S),f=()=>t,h=()=>i,d=()=>r,p=()=>s,_=S=>o(S)||l(S)||c(S)?Ln:e[S],g=()=>_(t),m=()=>_(t+s);function y(){return s=0,u(t)&&(i++,r=0),o(t)&&t++,t++,r++,e[t]}function b(){return o(t+s)&&s++,s++,e[t+s]}function v(){t=0,i=1,r=1,s=0}function E(S=0){s=S}function T(){const S=t+s;for(;S!==t;)y();s=0}return{index:f,line:h,column:d,peekOffset:p,charAt:_,currentChar:g,currentPeek:m,next:y,peek:b,reset:v,resetPeek:E,skipToPeek:T}}const Qr=void 0,qH=".",rM="'",YH="tokenizer";function jH(n,e={}){const t=e.location!==!1,i=$H(n),r=()=>i.index(),s=()=>zH(i.line(),i.column(),i.index()),o=s(),a=r(),l={currentType:13,offset:a,startLoc:o,endLoc:o,lastType:13,lastOffset:a,lastStartLoc:o,lastEndLoc:o,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=e;function f(P,N,z,...A){const C=c();if(N.column+=z,N.offset+=z,u){const B=t?t0(C.startLoc,N):null,U=np(P,B,{domain:YH,args:A});u(U)}}function h(P,N,z){P.endLoc=s(),P.currentType=N;const A={type:N};return t&&(A.loc=t0(P.startLoc,P.endLoc)),z!=null&&(A.value=z),A}const d=P=>h(P,13);function p(P,N){return P.currentChar()===N?(P.next(),N):(f(At.EXPECTED_TOKEN,s(),0,N),"")}function _(P){let N="";for(;P.currentPeek()===_r||P.currentPeek()===Ln;)N+=P.currentPeek(),P.peek();return N}function g(P){const N=_(P);return P.skipToPeek(),N}function m(P){if(P===Qr)return!1;const N=P.charCodeAt(0);return N>=97&&N<=122||N>=65&&N<=90||N===95}function y(P){if(P===Qr)return!1;const N=P.charCodeAt(0);return N>=48&&N<=57}function b(P,N){const{currentType:z}=N;if(z!==2)return!1;_(P);const A=m(P.currentPeek());return P.resetPeek(),A}function v(P,N){const{currentType:z}=N;if(z!==2)return!1;_(P);const A=P.currentPeek()==="-"?P.peek():P.currentPeek(),C=y(A);return P.resetPeek(),C}function E(P,N){const{currentType:z}=N;if(z!==2)return!1;_(P);const A=P.currentPeek()===rM;return P.resetPeek(),A}function T(P,N){const{currentType:z}=N;if(z!==7)return!1;_(P);const A=P.currentPeek()===".";return P.resetPeek(),A}function S(P,N){const{currentType:z}=N;if(z!==8)return!1;_(P);const A=m(P.currentPeek());return P.resetPeek(),A}function R(P,N){const{currentType:z}=N;if(!(z===7||z===11))return!1;_(P);const A=P.currentPeek()===":";return P.resetPeek(),A}function x(P,N){const{currentType:z}=N;if(z!==9)return!1;const A=()=>{const B=P.currentPeek();return B==="{"?m(P.peek()):B==="@"||B==="|"||B===":"||B==="."||B===_r||!B?!1:B===Ln?(P.peek(),A()):L(P,!1)},C=A();return P.resetPeek(),C}function M(P){_(P);const N=P.currentPeek()==="|";return P.resetPeek(),N}function L(P,N=!0){const z=(C=!1,B="")=>{const U=P.currentPeek();return U==="{"||U==="@"||!U?C:U==="|"?!(B===_r||B===Ln):U===_r?(P.peek(),z(!0,_r)):U===Ln?(P.peek(),z(!0,Ln)):!0},A=z();return N&&P.resetPeek(),A}function F(P,N){const z=P.currentChar();return z===Qr?Qr:N(z)?(P.next(),z):null}function V(P){const N=P.charCodeAt(0);return N>=97&&N<=122||N>=65&&N<=90||N>=48&&N<=57||N===95||N===36}function X(P){return F(P,V)}function te(P){const N=P.charCodeAt(0);return N>=97&&N<=122||N>=65&&N<=90||N>=48&&N<=57||N===95||N===36||N===45}function Z(P){return F(P,te)}function ee(P){const N=P.charCodeAt(0);return N>=48&&N<=57}function Q(P){return F(P,ee)}function de(P){const N=P.charCodeAt(0);return N>=48&&N<=57||N>=65&&N<=70||N>=97&&N<=102}function be(P){return F(P,de)}function re(P){let N="",z="";for(;N=Q(P);)z+=N;return z}function ye(P){let N="";for(;;){const z=P.currentChar();if(z==="{"||z==="}"||z==="@"||z==="|"||!z)break;if(z===_r||z===Ln)if(L(P))N+=z,P.next();else{if(M(P))break;N+=z,P.next()}else N+=z,P.next()}return N}function Ve(P){g(P);let N="",z="";for(;N=Z(P);)z+=N;return P.currentChar()===Qr&&f(At.UNTERMINATED_CLOSING_BRACE,s(),0),z}function se(P){g(P);let N="";return P.currentChar()==="-"?(P.next(),N+=`-${re(P)}`):N+=re(P),P.currentChar()===Qr&&f(At.UNTERMINATED_CLOSING_BRACE,s(),0),N}function ge(P){return P!==rM&&P!==Ln}function Me(P){g(P),p(P,"'");let N="",z="";for(;N=F(P,ge);)N==="\\"?z+=W(P):z+=N;const A=P.currentChar();return A===Ln||A===Qr?(f(At.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),A===Ln&&(P.next(),p(P,"'")),z):(p(P,"'"),z)}function W(P){const N=P.currentChar();switch(N){case"\\":case"'":return P.next(),`\\${N}`;case"u":return ae(P,N,4);case"U":return ae(P,N,6);default:return f(At.UNKNOWN_ESCAPE_SEQUENCE,s(),0,N),""}}function ae(P,N,z){p(P,N);let A="";for(let C=0;C{const A=P.currentChar();return A==="{"||A==="@"||A==="|"||A==="("||A===")"||!A||A===_r?z:(z+=A,P.next(),N(z))};return N("")}function D(P){g(P);const N=p(P,"|");return g(P),N}function w(P,N){let z=null;switch(P.currentChar()){case"{":return N.braceNest>=1&&f(At.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),P.next(),z=h(N,2,"{"),g(P),N.braceNest++,z;case"}":return N.braceNest>0&&N.currentType===2&&f(At.EMPTY_PLACEHOLDER,s(),0),P.next(),z=h(N,3,"}"),N.braceNest--,N.braceNest>0&&g(P),N.inLinked&&N.braceNest===0&&(N.inLinked=!1),z;case"@":return N.braceNest>0&&f(At.UNTERMINATED_CLOSING_BRACE,s(),0),z=j(P,N)||d(N),N.braceNest=0,z;default:{let C=!0,B=!0,U=!0;if(M(P))return N.braceNest>0&&f(At.UNTERMINATED_CLOSING_BRACE,s(),0),z=h(N,1,D(P)),N.braceNest=0,N.inLinked=!1,z;if(N.braceNest>0&&(N.currentType===4||N.currentType===5||N.currentType===6))return f(At.UNTERMINATED_CLOSING_BRACE,s(),0),N.braceNest=0,G(P,N);if(C=b(P,N))return z=h(N,4,Ve(P)),g(P),z;if(B=v(P,N))return z=h(N,5,se(P)),g(P),z;if(U=E(P,N))return z=h(N,6,Me(P)),g(P),z;if(!C&&!B&&!U)return z=h(N,12,le(P)),f(At.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,z.value),g(P),z;break}}return z}function j(P,N){const{currentType:z}=N;let A=null;const C=P.currentChar();switch((z===7||z===8||z===11||z===9)&&(C===Ln||C===_r)&&f(At.INVALID_LINKED_FORMAT,s(),0),C){case"@":return P.next(),A=h(N,7,"@"),N.inLinked=!0,A;case".":return g(P),P.next(),h(N,8,".");case":":return g(P),P.next(),h(N,9,":");default:return M(P)?(A=h(N,1,D(P)),N.braceNest=0,N.inLinked=!1,A):T(P,N)||R(P,N)?(g(P),j(P,N)):S(P,N)?(g(P),h(N,11,Ue(P))):x(P,N)?(g(P),C==="{"?w(P,N)||A:h(N,10,I(P))):(z===7&&f(At.INVALID_LINKED_FORMAT,s(),0),N.braceNest=0,N.inLinked=!1,G(P,N))}}function G(P,N){let z={type:13};if(N.braceNest>0)return w(P,N)||d(N);if(N.inLinked)return j(P,N)||d(N);switch(P.currentChar()){case"{":return w(P,N)||d(N);case"}":return f(At.UNBALANCED_CLOSING_BRACE,s(),0),P.next(),h(N,3,"}");case"@":return j(P,N)||d(N);default:{if(M(P))return z=h(N,1,D(P)),N.braceNest=0,N.inLinked=!1,z;if(L(P))return h(N,0,ye(P));break}}return z}function q(){const{currentType:P,offset:N,startLoc:z,endLoc:A}=l;return l.lastType=P,l.lastOffset=N,l.lastStartLoc=z,l.lastEndLoc=A,l.offset=r(),l.startLoc=s(),i.currentChar()===Qr?h(l,13):G(i,l)}return{nextToken:q,currentOffset:r,currentPosition:s,context:c}}const KH="parser",ZH=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function JH(n,e,t){switch(n){case"\\\\":return"\\";case"\\'":return"'";default:{const i=parseInt(e||t,16);return i<=55295||i>=57344?String.fromCodePoint(i):"�"}}}function QH(n={}){const e=n.location!==!1,{onError:t}=n;function i(m,y,b,v,...E){const T=m.currentPosition();if(T.offset+=v,T.column+=v,t){const S=e?t0(b,T):null,R=np(y,S,{domain:KH,args:E});t(R)}}function r(m,y,b){const v={type:m};return e&&(v.start=y,v.end=y,v.loc={start:b,end:b}),v}function s(m,y,b,v){e&&(m.end=y,m.loc&&(m.loc.end=b))}function o(m,y){const b=m.context(),v=r(3,b.offset,b.startLoc);return v.value=y,s(v,m.currentOffset(),m.currentPosition()),v}function a(m,y){const b=m.context(),{lastOffset:v,lastStartLoc:E}=b,T=r(5,v,E);return T.index=parseInt(y,10),m.nextToken(),s(T,m.currentOffset(),m.currentPosition()),T}function l(m,y){const b=m.context(),{lastOffset:v,lastStartLoc:E}=b,T=r(4,v,E);return T.key=y,m.nextToken(),s(T,m.currentOffset(),m.currentPosition()),T}function c(m,y){const b=m.context(),{lastOffset:v,lastStartLoc:E}=b,T=r(9,v,E);return T.value=y.replace(ZH,JH),m.nextToken(),s(T,m.currentOffset(),m.currentPosition()),T}function u(m){const y=m.nextToken(),b=m.context(),{lastOffset:v,lastStartLoc:E}=b,T=r(8,v,E);return y.type!==11?(i(m,At.UNEXPECTED_EMPTY_LINKED_MODIFIER,b.lastStartLoc,0),T.value="",s(T,v,E),{nextConsumeToken:y,node:T}):(y.value==null&&i(m,At.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Gi(y)),T.value=y.value||"",s(T,m.currentOffset(),m.currentPosition()),{node:T})}function f(m,y){const b=m.context(),v=r(7,b.offset,b.startLoc);return v.value=y,s(v,m.currentOffset(),m.currentPosition()),v}function h(m){const y=m.context(),b=r(6,y.offset,y.startLoc);let v=m.nextToken();if(v.type===8){const E=u(m);b.modifier=E.node,v=E.nextConsumeToken||m.nextToken()}switch(v.type!==9&&i(m,At.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Gi(v)),v=m.nextToken(),v.type===2&&(v=m.nextToken()),v.type){case 10:v.value==null&&i(m,At.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Gi(v)),b.key=f(m,v.value||"");break;case 4:v.value==null&&i(m,At.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Gi(v)),b.key=l(m,v.value||"");break;case 5:v.value==null&&i(m,At.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Gi(v)),b.key=a(m,v.value||"");break;case 6:v.value==null&&i(m,At.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Gi(v)),b.key=c(m,v.value||"");break;default:{i(m,At.UNEXPECTED_EMPTY_LINKED_KEY,y.lastStartLoc,0);const E=m.context(),T=r(7,E.offset,E.startLoc);return T.value="",s(T,E.offset,E.startLoc),b.key=T,s(b,E.offset,E.startLoc),{nextConsumeToken:v,node:b}}}return s(b,m.currentOffset(),m.currentPosition()),{node:b}}function d(m){const y=m.context(),b=y.currentType===1?m.currentOffset():y.offset,v=y.currentType===1?y.endLoc:y.startLoc,E=r(2,b,v);E.items=[];let T=null;do{const x=T||m.nextToken();switch(T=null,x.type){case 0:x.value==null&&i(m,At.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Gi(x)),E.items.push(o(m,x.value||""));break;case 5:x.value==null&&i(m,At.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Gi(x)),E.items.push(a(m,x.value||""));break;case 4:x.value==null&&i(m,At.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Gi(x)),E.items.push(l(m,x.value||""));break;case 6:x.value==null&&i(m,At.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Gi(x)),E.items.push(c(m,x.value||""));break;case 7:{const M=h(m);E.items.push(M.node),T=M.nextConsumeToken||null;break}}}while(y.currentType!==13&&y.currentType!==1);const S=y.currentType===1?y.lastOffset:m.currentOffset(),R=y.currentType===1?y.lastEndLoc:m.currentPosition();return s(E,S,R),E}function p(m,y,b,v){const E=m.context();let T=v.items.length===0;const S=r(1,y,b);S.cases=[],S.cases.push(v);do{const R=d(m);T||(T=R.items.length===0),S.cases.push(R)}while(E.currentType!==13);return T&&i(m,At.MUST_HAVE_MESSAGES_IN_PLURAL,b,0),s(S,m.currentOffset(),m.currentPosition()),S}function _(m){const y=m.context(),{offset:b,startLoc:v}=y,E=d(m);return y.currentType===13?E:p(m,b,v,E)}function g(m){const y=jH(m,un({},n)),b=y.context(),v=r(0,b.offset,b.startLoc);return e&&v.loc&&(v.loc.source=m),v.body=_(y),n.onCacheKey&&(v.cacheKey=n.onCacheKey(m)),b.currentType!==13&&i(y,At.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,m[b.offset]||""),s(v,y.currentOffset(),y.currentPosition()),v}return{parse:g}}function Gi(n){if(n.type===13)return"EOF";const e=(n.value||"").replace(/\r?\n/gu,"\\n");return e.length>10?e.slice(0,9)+"…":e}function e8(n,e={}){const t={ast:n,helpers:new Set};return{context:()=>t,helper:s=>(t.helpers.add(s),s)}}function sM(n,e){for(let t=0;toM(t)),n}function oM(n){if(n.items.length===1){const e=n.items[0];(e.type===3||e.type===9)&&(n.static=e.value,delete e.value)}else{const e=[];for(let t=0;to;function l(_,g){o.code+=_}function c(_,g=!0){const m=g?i:"";l(r?m+" ".repeat(_):m)}function u(_=!0){const g=++o.indentLevel;_&&c(g)}function f(_=!0){const g=--o.indentLevel;_&&c(g)}function h(){c(o.indentLevel)}return{context:a,push:l,indent:u,deindent:f,newline:h,helper:_=>`_${_}`,needIndent:()=>o.needIndent}}function r8(n,e){const{helper:t}=n;n.push(`${t("linked")}(`),La(n,e.key),e.modifier?(n.push(", "),La(n,e.modifier),n.push(", _type")):n.push(", undefined, _type"),n.push(")")}function s8(n,e){const{helper:t,needIndent:i}=n;n.push(`${t("normalize")}([`),n.indent(i());const r=e.items.length;for(let s=0;s1){n.push(`${t("plural")}([`),n.indent(i());const r=e.cases.length;for(let s=0;s{const t=Ne(e.mode)?e.mode:"normal",i=Ne(e.filename)?e.filename:"message.intl";e.sourceMap;const r=e.breakLineCode!=null?e.breakLineCode:t==="arrow"?";":` +`,s=e.needIndent?e.needIndent:t!=="arrow",o=n.helpers||[],a=i8(n,{filename:i,breakLineCode:r,needIndent:s});a.push(t==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(s),o.length>0&&(a.push(`const { ${K_(o.map(u=>`${u}: _${u}`),", ")} } = ctx`),a.newline()),a.push("return "),La(a,n),a.deindent(s),a.push("}"),delete n.helpers;const{code:l,map:c}=a.context();return{ast:n,code:l,map:c?c.toJSON():void 0}};function c8(n,e={}){const t=un({},e),i=!!t.jit,r=!!t.minify,s=t.optimize==null?!0:t.optimize,a=QH(t).parse(n);return i?(s&&n8(a),r&&oa(a),{ast:a,code:""}):(t8(a,t),l8(a,t))}/*! + * core-base v11.1.2 + * (c) 2025 kazuya kawaguchi + * Released under the MIT License. + */function u8(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Y_().__INTLIFY_PROD_DEVTOOLS__=!1)}function Gm(n){return t=>f8(t,n)}function f8(n,e){const t=d8(e);if(t==null)throw Sc(0);if(J_(t)===1){const s=m8(t);return n.plural(s.reduce((o,a)=>[...o,aM(n,a)],[]))}else return aM(n,t)}const h8=["b","body"];function d8(n){return Rs(n,h8)}const p8=["c","cases"];function m8(n){return Rs(n,p8,[])}function aM(n,e){const t=_8(e);if(t!=null)return n.type==="text"?t:n.normalize([t]);{const i=y8(e).reduce((r,s)=>[...r,n0(n,s)],[]);return n.normalize(i)}}const g8=["s","static"];function _8(n){return Rs(n,g8)}const v8=["i","items"];function y8(n){return Rs(n,v8,[])}function n0(n,e){const t=J_(e);switch(t){case 3:return hf(e,t);case 9:return hf(e,t);case 4:{const i=e;if(Di(i,"k")&&i.k)return n.interpolate(n.named(i.k));if(Di(i,"key")&&i.key)return n.interpolate(n.named(i.key));throw Sc(t)}case 5:{const i=e;if(Di(i,"i")&&Zt(i.i))return n.interpolate(n.list(i.i));if(Di(i,"index")&&Zt(i.index))return n.interpolate(n.list(i.index));throw Sc(t)}case 6:{const i=e,r=S8(i),s=T8(i);return n.linked(n0(n,s),r?n0(n,r):void 0,n.type)}case 7:return hf(e,t);case 8:return hf(e,t);default:throw new Error(`unhandled node on format message part: ${t}`)}}const b8=["t","type"];function J_(n){return Rs(n,b8)}const x8=["v","value"];function hf(n,e){const t=Rs(n,x8);if(t)return t;throw Sc(e)}const M8=["m","modifier"];function S8(n){return Rs(n,M8)}const E8=["k","key"];function T8(n){const e=Rs(n,E8);if(e)return e;throw Sc(6)}function Rs(n,e,t){for(let i=0;in;let df=Rt();function Da(n){return yt(n)&&J_(n)===0&&(Di(n,"b")||Di(n,"body"))}function A8(n,e={}){let t=!1;const i=e.onError||HH;return e.onError=r=>{t=!0,i(r)},{...c8(n,e),detectError:t}}function C8(n,e){if(Ne(n)){Bt(e.warnHtmlMessage)&&e.warnHtmlMessage;const i=(e.onCacheKey||w8)(n),r=df[i];if(r)return r;const{ast:s,detectError:o}=A8(n,{...e,location:!1,jit:!0}),a=Gm(s);return o?a:df[i]=a}else{const t=n.cacheKey;if(t){const i=df[t];return i||(df[t]=Gm(n))}else return Gm(n)}}let Ec=null;function R8(n){Ec=n}function P8(n,e,t){Ec&&Ec.emit("i18n:init",{timestamp:Date.now(),i18n:n,version:e,meta:t})}const I8=L8("function:translate");function L8(n){return e=>Ec&&Ec.emit(n,e)}const wr={INVALID_ARGUMENT:VH,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},D8=24;function Ar(n){return np(n,null,void 0)}function Q_(n,e){return e.locale!=null?lM(e.locale):lM(n.locale)}let Wm;function lM(n){if(Ne(n))return n;if(kt(n)){if(n.resolvedOnce&&Wm!=null)return Wm;if(n.constructor.name==="Function"){const e=n();if(FH(e))throw Ar(wr.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Wm=e}else throw Ar(wr.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Ar(wr.NOT_SUPPORT_LOCALE_TYPE)}function O8(n,e,t){return[...new Set([t,...tn(e)?e:yt(e)?Object.keys(e):Ne(e)?[e]:[t]])]}function xA(n,e,t){const i=Ne(t)?t:Bh,r=n;r.__localeChainCache||(r.__localeChainCache=new Map);let s=r.__localeChainCache.get(i);if(!s){s=[];let o=[t];for(;tn(o);)o=cM(s,o,e);const a=tn(e)||!ht(e)?e:e.default?e.default:null;o=Ne(a)?[a]:a,tn(o)&&cM(s,o,!1),r.__localeChainCache.set(i,s)}return s}function cM(n,e,t){let i=!0;for(let r=0;r{o===void 0?o=a:o+=a},h[1]=()=>{o!==void 0&&(e.push(o),o=void 0)},h[2]=()=>{h[0](),r++},h[3]=()=>{if(r>0)r--,i=4,h[0]();else{if(r=0,o===void 0||(o=V8(o),o===!1))return!1;h[1]()}};function d(){const p=n[t+1];if(i===5&&p==="'"||i===6&&p==='"')return t++,a="\\"+p,h[0](),!0}for(;i!==null;)if(t++,s=n[t],!(s==="\\"&&d())){if(l=z8(s),f=Ps[i],c=f[l]||f.l||8,c===8||(i=c[0],c[1]!==void 0&&(u=h[c[1]],u&&(a=s,u()===!1))))return;if(i===7)return e}}const uM=new Map;function G8(n,e){return yt(n)?n[e]:null}function W8(n,e){if(!yt(n))return null;let t=uM.get(e);if(t||(t=H8(e),t&&uM.set(e,t)),!t)return null;const i=t.length;let r=n,s=0;for(;s`${n.charAt(0).toLocaleUpperCase()}${n.substr(1)}`;function $8(){return{upper:(n,e)=>e==="text"&&Ne(n)?n.toUpperCase():e==="vnode"&&yt(n)&&"__v_isVNode"in n?n.children.toUpperCase():n,lower:(n,e)=>e==="text"&&Ne(n)?n.toLowerCase():e==="vnode"&&yt(n)&&"__v_isVNode"in n?n.children.toLowerCase():n,capitalize:(n,e)=>e==="text"&&Ne(n)?hM(n):e==="vnode"&&yt(n)&&"__v_isVNode"in n?hM(n.children):n}}let MA;function q8(n){MA=n}let SA;function Y8(n){SA=n}let EA;function j8(n){EA=n}let TA=null;const K8=n=>{TA=n},Z8=()=>TA;let wA=null;const dM=n=>{wA=n},J8=()=>wA;let pM=0;function Q8(n={}){const e=kt(n.onWarn)?n.onWarn:BH,t=Ne(n.version)?n.version:X8,i=Ne(n.locale)||kt(n.locale)?n.locale:Bh,r=kt(i)?Bh:i,s=tn(n.fallbackLocale)||ht(n.fallbackLocale)||Ne(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:r,o=ht(n.messages)?n.messages:Xm(r),a=ht(n.datetimeFormats)?n.datetimeFormats:Xm(r),l=ht(n.numberFormats)?n.numberFormats:Xm(r),c=un(Rt(),n.modifiers,$8()),u=n.pluralRules||Rt(),f=kt(n.missing)?n.missing:null,h=Bt(n.missingWarn)||kh(n.missingWarn)?n.missingWarn:!0,d=Bt(n.fallbackWarn)||kh(n.fallbackWarn)?n.fallbackWarn:!0,p=!!n.fallbackFormat,_=!!n.unresolving,g=kt(n.postTranslation)?n.postTranslation:null,m=ht(n.processor)?n.processor:null,y=Bt(n.warnHtmlMessage)?n.warnHtmlMessage:!0,b=!!n.escapeParameter,v=kt(n.messageCompiler)?n.messageCompiler:MA,E=kt(n.messageResolver)?n.messageResolver:SA||G8,T=kt(n.localeFallbacker)?n.localeFallbacker:EA||O8,S=yt(n.fallbackContext)?n.fallbackContext:void 0,R=n,x=yt(R.__datetimeFormatters)?R.__datetimeFormatters:new Map,M=yt(R.__numberFormatters)?R.__numberFormatters:new Map,L=yt(R.__meta)?R.__meta:{};pM++;const F={version:t,cid:pM,locale:i,fallbackLocale:s,messages:o,modifiers:c,pluralRules:u,missing:f,missingWarn:h,fallbackWarn:d,fallbackFormat:p,unresolving:_,postTranslation:g,processor:m,warnHtmlMessage:y,escapeParameter:b,messageCompiler:v,messageResolver:E,localeFallbacker:T,fallbackContext:S,onWarn:e,__meta:L};return F.datetimeFormats=a,F.numberFormats=l,F.__datetimeFormatters=x,F.__numberFormatters=M,__INTLIFY_PROD_DEVTOOLS__&&P8(F,t,L),F}const Xm=n=>({[n]:Rt()});function ev(n,e,t,i,r){const{missing:s,onWarn:o}=n;if(s!==null){const a=s(n,t,e,r);return Ne(a)?a:e}else return e}function fl(n,e,t){const i=n;i.__localeChainCache=new Map,n.localeFallbacker(n,t,e)}function e9(n,e){return n===e?!1:n.split("-")[0]===e.split("-")[0]}function t9(n,e){const t=e.indexOf(n);if(t===-1)return!1;for(let i=t+1;i{AA.includes(l)?o[l]=t[l]:s[l]=t[l]}),Ne(i)?s.locale=i:ht(i)&&(o=i),ht(r)&&(o=r),[s.key||"",a,s,o]}function gM(n,e,t){const i=n;for(const r in t){const s=`${e}__${r}`;i.__datetimeFormatters.has(s)&&i.__datetimeFormatters.delete(s)}}function _M(n,...e){const{numberFormats:t,unresolving:i,fallbackLocale:r,onWarn:s,localeFallbacker:o}=n,{__numberFormatters:a}=n,[l,c,u,f]=r0(...e),h=Bt(u.missingWarn)?u.missingWarn:n.missingWarn;Bt(u.fallbackWarn)?u.fallbackWarn:n.fallbackWarn;const d=!!u.part,p=Q_(n,u),_=o(n,r,p);if(!Ne(l)||l==="")return new Intl.NumberFormat(p,f).format(c);let g={},m,y=null;const b="number format";for(let T=0;T<_.length&&(m=_[T],g=t[m]||{},y=g[l],!ht(y));T++)ev(n,l,m,h,b);if(!ht(y)||!Ne(m))return i?ip:l;let v=`${m}__${l}`;tp(f)||(v=`${v}__${JSON.stringify(f)}`);let E=a.get(v);return E||(E=new Intl.NumberFormat(m,un({},y,f)),a.set(v,E)),d?E.formatToParts(c):E.format(c)}const CA=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function r0(...n){const[e,t,i,r]=n,s=Rt();let o=Rt();if(!Zt(e))throw Ar(wr.INVALID_ARGUMENT);const a=e;return Ne(t)?s.key=t:ht(t)&&Object.keys(t).forEach(l=>{CA.includes(l)?o[l]=t[l]:s[l]=t[l]}),Ne(i)?s.locale=i:ht(i)&&(o=i),ht(r)&&(o=r),[s.key||"",a,s,o]}function vM(n,e,t){const i=n;for(const r in t){const s=`${e}__${r}`;i.__numberFormatters.has(s)&&i.__numberFormatters.delete(s)}}const n9=n=>n,i9=n=>"",r9="text",s9=n=>n.length===0?"":K_(n),o9=kH;function yM(n,e){return n=Math.abs(n),e===2?n?n>1?1:0:1:n?Math.min(n,2):0}function a9(n){const e=Zt(n.pluralIndex)?n.pluralIndex:-1;return n.named&&(Zt(n.named.count)||Zt(n.named.n))?Zt(n.named.count)?n.named.count:Zt(n.named.n)?n.named.n:e:e}function l9(n,e){e.count||(e.count=n),e.n||(e.n=n)}function c9(n={}){const e=n.locale,t=a9(n),i=yt(n.pluralRules)&&Ne(e)&&kt(n.pluralRules[e])?n.pluralRules[e]:yM,r=yt(n.pluralRules)&&Ne(e)&&kt(n.pluralRules[e])?yM:void 0,s=m=>m[i(t,m.length,r)],o=n.list||[],a=m=>o[m],l=n.named||Rt();Zt(n.pluralIndex)&&l9(t,l);const c=m=>l[m];function u(m,y){const b=kt(n.messages)?n.messages(m,!!y):yt(n.messages)?n.messages[m]:!1;return b||(n.parent?n.parent.message(m):i9)}const f=m=>n.modifiers?n.modifiers[m]:n9,h=ht(n.processor)&&kt(n.processor.normalize)?n.processor.normalize:s9,d=ht(n.processor)&&kt(n.processor.interpolate)?n.processor.interpolate:o9,p=ht(n.processor)&&Ne(n.processor.type)?n.processor.type:r9,g={list:a,named:c,plural:s,linked:(m,...y)=>{const[b,v]=y;let E="text",T="";y.length===1?yt(b)?(T=b.modifier||T,E=b.type||E):Ne(b)&&(T=b||T):y.length===2&&(Ne(b)&&(T=b||T),Ne(v)&&(E=v||E));const S=u(m,!0)(g),R=E==="vnode"&&tn(S)&&T?S[0]:S;return T?f(T)(R,E):R},message:u,type:p,interpolate:d,normalize:h,values:un(Rt(),o,l)};return g}const bM=()=>"",mi=n=>kt(n);function xM(n,...e){const{fallbackFormat:t,postTranslation:i,unresolving:r,messageCompiler:s,fallbackLocale:o,messages:a}=n,[l,c]=s0(...e),u=Bt(c.missingWarn)?c.missingWarn:n.missingWarn,f=Bt(c.fallbackWarn)?c.fallbackWarn:n.fallbackWarn,h=Bt(c.escapeParameter)?c.escapeParameter:n.escapeParameter,d=!!c.resolvedMessage,p=Ne(c.default)||Bt(c.default)?Bt(c.default)?s?l:()=>l:c.default:t?s?l:()=>l:null,_=t||p!=null&&(Ne(p)||kt(p)),g=Q_(n,c);h&&u9(c);let[m,y,b]=d?[l,g,a[g]||Rt()]:RA(n,l,g,o,f,u),v=m,E=l;if(!d&&!(Ne(v)||Da(v)||mi(v))&&_&&(v=p,E=v),!d&&(!(Ne(v)||Da(v)||mi(v))||!Ne(y)))return r?ip:l;let T=!1;const S=()=>{T=!0},R=mi(v)?v:PA(n,l,y,v,E,S);if(T)return v;const x=d9(n,y,b,c),M=c9(x),L=f9(n,R,M),F=i?i(L,l):L;if(__INTLIFY_PROD_DEVTOOLS__){const V={timestamp:Date.now(),key:Ne(l)?l:mi(v)?v.key:"",locale:y||(mi(v)?v.locale:""),format:Ne(v)?v:mi(v)?v.source:"",message:F};V.meta=un({},n.__meta,Z8()||{}),I8(V)}return F}function u9(n){tn(n.list)?n.list=n.list.map(e=>Ne(e)?iM(e):e):yt(n.named)&&Object.keys(n.named).forEach(e=>{Ne(n.named[e])&&(n.named[e]=iM(n.named[e]))})}function RA(n,e,t,i,r,s){const{messages:o,onWarn:a,messageResolver:l,localeFallbacker:c}=n,u=c(n,i,t);let f=Rt(),h,d=null;const p="translate";for(let _=0;_i;return c.locale=t,c.key=e,c}const l=o(i,h9(n,t,r,i,a,s));return l.locale=t,l.key=e,l.source=i,l}function f9(n,e,t){return e(t)}function s0(...n){const[e,t,i]=n,r=Rt();if(!Ne(e)&&!Zt(e)&&!mi(e)&&!Da(e))throw Ar(wr.INVALID_ARGUMENT);const s=Zt(e)?String(e):(mi(e),e);return Zt(t)?r.plural=t:Ne(t)?r.default=t:ht(t)&&!tp(t)?r.named=t:tn(t)&&(r.list=t),Zt(i)?r.plural=i:Ne(i)?r.default=i:ht(i)&&un(r,i),[s,r]}function h9(n,e,t,i,r,s){return{locale:e,key:t,warnHtmlMessage:r,onError:o=>{throw s&&s(o),o},onCacheKey:o=>LH(e,t,o)}}function d9(n,e,t,i){const{modifiers:r,pluralRules:s,messageResolver:o,fallbackLocale:a,fallbackWarn:l,missingWarn:c,fallbackContext:u}=n,h={locale:e,modifiers:r,pluralRules:s,messages:(d,p)=>{let _=o(t,d);if(_==null&&(u||p)){const[,,g]=RA(u||n,d,e,a,l,c);_=o(g,d)}if(Ne(_)||Da(_)){let g=!1;const y=PA(n,d,e,_,d,()=>{g=!0});return g?bM:y}else return mi(_)?_:bM}};return n.processor&&(h.processor=n.processor),i.list&&(h.list=i.list),i.named&&(h.named=i.named),Zt(i.plural)&&(h.pluralIndex=i.plural),h}u8();/*! + * vue-i18n v11.1.2 + * (c) 2025 kazuya kawaguchi + * Released under the MIT License. + */const p9="11.1.2";function m9(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Y_().__INTLIFY_PROD_DEVTOOLS__=!1)}const Mi={UNEXPECTED_RETURN_TYPE:D8,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32};function Bi(n,...e){return np(n,null,void 0)}const o0=Cs("__translateVNode"),a0=Cs("__datetimeParts"),l0=Cs("__numberParts"),g9=Cs("__setPluralRules"),_9=Cs("__injectWithOption"),c0=Cs("__dispose");function Tc(n){if(!yt(n))return n;for(const e in n)if(Di(n,e))if(!e.includes("."))yt(n[e])&&Tc(n[e]);else{const t=e.split("."),i=t.length-1;let r=n,s=!1;for(let o=0;o{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(o[l]=o[l]||Rt(),Rf(c,o[l])):Rf(c,o)}else Ne(a)&&Rf(JSON.parse(a),o)}),r==null&&s)for(const a in o)Di(o,a)&&Tc(o[a]);return o}function LA(n){return n.type}function v9(n,e,t){let i=yt(e.messages)?e.messages:Rt();"__i18nGlobal"in t&&(i=IA(n.locale.value,{messages:i,__i18n:t.__i18nGlobal}));const r=Object.keys(i);r.length&&r.forEach(s=>{n.mergeLocaleMessage(s,i[s])});{if(yt(e.datetimeFormats)){const s=Object.keys(e.datetimeFormats);s.length&&s.forEach(o=>{n.mergeDateTimeFormat(o,e.datetimeFormats[o])})}if(yt(e.numberFormats)){const s=Object.keys(e.numberFormats);s.length&&s.forEach(o=>{n.mergeNumberFormat(o,e.numberFormats[o])})}}}function MM(n){return pn(Ic,null,n,0)}const SM="__INTLIFY_META__",EM=()=>[],y9=()=>!1;let TM=0;function wM(n){return(e,t,i,r)=>n(t,i,wn()||void 0,r)}const b9=()=>{const n=wn();let e=null;return n&&(e=LA(n)[SM])?{[SM]:e}:null};function DA(n={}){const{__root:e,__injectWithOption:t}=n,i=e===void 0,r=n.flatJson,s=Fh?et:De;let o=Bt(n.inheritLocale)?n.inheritLocale:!0;const a=s(e&&o?e.locale.value:Ne(n.locale)?n.locale:Bh),l=s(e&&o?e.fallbackLocale.value:Ne(n.fallbackLocale)||tn(n.fallbackLocale)||ht(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:a.value),c=s(IA(a.value,n)),u=s(ht(n.datetimeFormats)?n.datetimeFormats:{[a.value]:{}}),f=s(ht(n.numberFormats)?n.numberFormats:{[a.value]:{}});let h=e?e.missingWarn:Bt(n.missingWarn)||kh(n.missingWarn)?n.missingWarn:!0,d=e?e.fallbackWarn:Bt(n.fallbackWarn)||kh(n.fallbackWarn)?n.fallbackWarn:!0,p=e?e.fallbackRoot:Bt(n.fallbackRoot)?n.fallbackRoot:!0,_=!!n.fallbackFormat,g=kt(n.missing)?n.missing:null,m=kt(n.missing)?wM(n.missing):null,y=kt(n.postTranslation)?n.postTranslation:null,b=e?e.warnHtmlMessage:Bt(n.warnHtmlMessage)?n.warnHtmlMessage:!0,v=!!n.escapeParameter;const E=e?e.modifiers:ht(n.modifiers)?n.modifiers:{};let T=n.pluralRules||e&&e.pluralRules,S;S=(()=>{i&&dM(null);const U={version:p9,locale:a.value,fallbackLocale:l.value,messages:c.value,modifiers:E,pluralRules:T,missing:m===null?void 0:m,missingWarn:h,fallbackWarn:d,fallbackFormat:_,unresolving:!0,postTranslation:y===null?void 0:y,warnHtmlMessage:b,escapeParameter:v,messageResolver:n.messageResolver,messageCompiler:n.messageCompiler,__meta:{framework:"vue"}};U.datetimeFormats=u.value,U.numberFormats=f.value,U.__datetimeFormatters=ht(S)?S.__datetimeFormatters:void 0,U.__numberFormatters=ht(S)?S.__numberFormatters:void 0;const H=Q8(U);return i&&dM(H),H})(),fl(S,a.value,l.value);function x(){return[a.value,l.value,c.value,u.value,f.value]}const M=Se({get:()=>a.value,set:U=>{S.locale=U,a.value=U}}),L=Se({get:()=>l.value,set:U=>{S.fallbackLocale=U,l.value=U,fl(S,a.value,U)}}),F=Se(()=>c.value),V=Se(()=>u.value),X=Se(()=>f.value);function te(){return kt(y)?y:null}function Z(U){y=U,S.postTranslation=U}function ee(){return g}function Q(U){U!==null&&(m=wM(U)),g=U,S.missing=m}const de=(U,H,Y,he,ce,xe)=>{x();let Be;try{__INTLIFY_PROD_DEVTOOLS__,i||(S.fallbackContext=e?J8():void 0),Be=U(S)}finally{__INTLIFY_PROD_DEVTOOLS__,i||(S.fallbackContext=void 0)}if(Y!=="translate exists"&&Zt(Be)&&Be===ip||Y==="translate exists"&&!Be){const[me,Ae]=H();return e&&p?he(e):ce(me)}else{if(xe(Be))return Be;throw Bi(Mi.UNEXPECTED_RETURN_TYPE)}};function be(...U){return de(H=>Reflect.apply(xM,null,[H,...U]),()=>s0(...U),"translate",H=>Reflect.apply(H.t,H,[...U]),H=>H,H=>Ne(H))}function re(...U){const[H,Y,he]=U;if(he&&!yt(he))throw Bi(Mi.INVALID_ARGUMENT);return be(H,Y,un({resolvedMessage:!0},he||{}))}function ye(...U){return de(H=>Reflect.apply(mM,null,[H,...U]),()=>i0(...U),"datetime format",H=>Reflect.apply(H.d,H,[...U]),()=>fM,H=>Ne(H))}function Ve(...U){return de(H=>Reflect.apply(_M,null,[H,...U]),()=>r0(...U),"number format",H=>Reflect.apply(H.n,H,[...U]),()=>fM,H=>Ne(H))}function se(U){return U.map(H=>Ne(H)||Zt(H)||Bt(H)?MM(String(H)):H)}const Me={normalize:se,interpolate:U=>U,type:"vnode"};function W(...U){return de(H=>{let Y;const he=H;try{he.processor=Me,Y=Reflect.apply(xM,null,[he,...U])}finally{he.processor=null}return Y},()=>s0(...U),"translate",H=>H[o0](...U),H=>[MM(H)],H=>tn(H))}function ae(...U){return de(H=>Reflect.apply(_M,null,[H,...U]),()=>r0(...U),"number format",H=>H[l0](...U),EM,H=>Ne(H)||tn(H))}function ue(...U){return de(H=>Reflect.apply(mM,null,[H,...U]),()=>i0(...U),"datetime format",H=>H[a0](...U),EM,H=>Ne(H)||tn(H))}function le(U){T=U,S.pluralRules=T}function Ue(U,H){return de(()=>{if(!U)return!1;const Y=Ne(H)?H:a.value,he=w(Y),ce=S.messageResolver(he,U);return Da(ce)||mi(ce)||Ne(ce)},()=>[U],"translate exists",Y=>Reflect.apply(Y.te,Y,[U,H]),y9,Y=>Bt(Y))}function I(U){let H=null;const Y=xA(S,l.value,a.value);for(let he=0;he{o&&(a.value=U,S.locale=U,fl(S,a.value,l.value))}),Xe(e.fallbackLocale,U=>{o&&(l.value=U,S.fallbackLocale=U,fl(S,a.value,l.value))}));const B={id:TM,locale:M,fallbackLocale:L,get inheritLocale(){return o},set inheritLocale(U){o=U,U&&e&&(a.value=e.locale.value,l.value=e.fallbackLocale.value,fl(S,a.value,l.value))},get availableLocales(){return Object.keys(c.value).sort()},messages:F,get modifiers(){return E},get pluralRules(){return T||{}},get isGlobal(){return i},get missingWarn(){return h},set missingWarn(U){h=U,S.missingWarn=h},get fallbackWarn(){return d},set fallbackWarn(U){d=U,S.fallbackWarn=d},get fallbackRoot(){return p},set fallbackRoot(U){p=U},get fallbackFormat(){return _},set fallbackFormat(U){_=U,S.fallbackFormat=_},get warnHtmlMessage(){return b},set warnHtmlMessage(U){b=U,S.warnHtmlMessage=U},get escapeParameter(){return v},set escapeParameter(U){v=U,S.escapeParameter=U},t:be,getLocaleMessage:w,setLocaleMessage:j,mergeLocaleMessage:G,getPostTranslationHandler:te,setPostTranslationHandler:Z,getMissingHandler:ee,setMissingHandler:Q,[g9]:le};return B.datetimeFormats=V,B.numberFormats=X,B.rt=re,B.te=Ue,B.tm=D,B.d=ye,B.n=Ve,B.getDateTimeFormat=q,B.setDateTimeFormat=P,B.mergeDateTimeFormat=N,B.getNumberFormat=z,B.setNumberFormat=A,B.mergeNumberFormat=C,B[_9]=t,B[o0]=W,B[a0]=ue,B[l0]=ae,B}const tv={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:n=>n==="parent"||n==="global",default:"parent"},i18n:{type:Object}};function x9({slots:n},e){return e.length===1&&e[0]==="default"?(n.default?n.default():[]).reduce((i,r)=>[...i,...r.type===jt?r.children:[r]],[]):e.reduce((t,i)=>{const r=n[i];return r&&(t[i]=r()),t},Rt())}function OA(){return jt}const M9=fn({name:"i18n-t",props:un({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:n=>Zt(n)||!isNaN(n)}},tv),setup(n,e){const{slots:t,attrs:i}=e,r=n.i18n||rp({useScope:n.scope,__useComponent:!0});return()=>{const s=Object.keys(t).filter(f=>f!=="_"),o=Rt();n.locale&&(o.locale=n.locale),n.plural!==void 0&&(o.plural=Ne(n.plural)?+n.plural:n.plural);const a=x9(e,s),l=r[o0](n.keypath,a,o),c=un(Rt(),i),u=Ne(n.tag)||yt(n.tag)?n.tag:OA();return Lr(u,c,l)}}}),AM=M9;function S9(n){return tn(n)&&!Ne(n[0])}function NA(n,e,t,i){const{slots:r,attrs:s}=e;return()=>{const o={part:!0};let a=Rt();n.locale&&(o.locale=n.locale),Ne(n.format)?o.key=n.format:yt(n.format)&&(Ne(n.format.key)&&(o.key=n.format.key),a=Object.keys(n.format).reduce((h,d)=>t.includes(d)?un(Rt(),h,{[d]:n.format[d]}):h,Rt()));const l=i(n.value,o,a);let c=[o.key];tn(l)?c=l.map((h,d)=>{const p=r[h.type],_=p?p({[h.type]:h.value,index:d,parts:l}):[h.value];return S9(_)&&(_[0].key=`${h.type}-${d}`),_}):Ne(l)&&(c=[l]);const u=un(Rt(),s),f=Ne(n.tag)||yt(n.tag)?n.tag:OA();return Lr(f,u,c)}}const E9=fn({name:"i18n-n",props:un({value:{type:Number,required:!0},format:{type:[String,Object]}},tv),setup(n,e){const t=n.i18n||rp({useScope:n.scope,__useComponent:!0});return NA(n,e,CA,(...i)=>t[l0](...i))}}),CM=E9;function T9(n,e){const t=n;if(n.mode==="composition")return t.__getInstance(e)||n.global;{const i=t.__getInstance(e);return i!=null?i.__composer:n.global.__composer}}function w9(n){const e=o=>{const{instance:a,value:l}=o;if(!a||!a.$)throw Bi(Mi.UNEXPECTED_ERROR);const c=T9(n,a.$),u=RM(l);return[Reflect.apply(c.t,c,[...PM(u)]),c]};return{created:(o,a)=>{const[l,c]=e(a);Fh&&n.global===c&&(o.__i18nWatcher=Xe(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),o.__composer=c,o.textContent=l},unmounted:o=>{Fh&&o.__i18nWatcher&&(o.__i18nWatcher(),o.__i18nWatcher=void 0,delete o.__i18nWatcher),o.__composer&&(o.__composer=void 0,delete o.__composer)},beforeUpdate:(o,{value:a})=>{if(o.__composer){const l=o.__composer,c=RM(a);o.textContent=Reflect.apply(l.t,l,[...PM(c)])}},getSSRProps:o=>{const[a]=e(o);return{textContent:a}}}}function RM(n){if(Ne(n))return{path:n};if(ht(n)){if(!("path"in n))throw Bi(Mi.REQUIRED_VALUE,"path");return n}else throw Bi(Mi.INVALID_VALUE)}function PM(n){const{path:e,locale:t,args:i,choice:r,plural:s}=n,o={},a=i||{};return Ne(t)&&(o.locale=t),Zt(r)&&(o.plural=r),Zt(s)&&(o.plural=s),[e,a,o]}function A9(n,e,...t){const i=ht(t[0])?t[0]:{};(Bt(i.globalInstall)?i.globalInstall:!0)&&([AM.name,"I18nT"].forEach(s=>n.component(s,AM)),[CM.name,"I18nN"].forEach(s=>n.component(s,CM)),[LM.name,"I18nD"].forEach(s=>n.component(s,LM))),n.directive("t",w9(e))}const C9=Cs("global-vue-i18n");function R9(n={}){const e=Bt(n.globalInjection)?n.globalInjection:!0,t=new Map,[i,r]=P9(n),s=Cs("");function o(u){return t.get(u)||null}function a(u,f){t.set(u,f)}function l(u){t.delete(u)}const c={get mode(){return"composition"},async install(u,...f){if(u.__VUE_I18N_SYMBOL__=s,u.provide(u.__VUE_I18N_SYMBOL__,c),ht(f[0])){const p=f[0];c.__composerExtend=p.__composerExtend,c.__vueI18nExtend=p.__vueI18nExtend}let h=null;e&&(h=k9(u,c.global)),A9(u,c,...f);const d=u.unmount;u.unmount=()=>{h&&h(),c.dispose(),d()}},get global(){return r},dispose(){i.stop()},__instances:t,__getInstance:o,__setInstance:a,__deleteInstance:l};return c}function rp(n={}){const e=wn();if(e==null)throw Bi(Mi.MUST_BE_CALL_SETUP_TOP);if(!e.isCE&&e.appContext.app!=null&&!e.appContext.app.__VUE_I18N_SYMBOL__)throw Bi(Mi.NOT_INSTALLED);const t=I9(e),i=D9(t),r=LA(e),s=L9(n,r);if(s==="global")return v9(i,n,r),i;if(s==="parent"){let l=O9(t,e,n.__useComponent);return l==null&&(l=i),l}const o=t;let a=o.__getInstance(e);if(a==null){const l=un({},n);"__i18n"in r&&(l.__i18n=r.__i18n),i&&(l.__root=i),a=DA(l),o.__composerExtend&&(a[c0]=o.__composerExtend(a)),U9(o,e,a),o.__setInstance(e,a)}return a}function P9(n,e){const t=g0(),i=t.run(()=>DA(n));if(i==null)throw Bi(Mi.UNEXPECTED_ERROR);return[t,i]}function I9(n){const e=En(n.isCE?C9:n.appContext.app.__VUE_I18N_SYMBOL__);if(!e)throw Bi(n.isCE?Mi.NOT_INSTALLED_WITH_PROVIDE:Mi.UNEXPECTED_ERROR);return e}function L9(n,e){return tp(n)?"__i18n"in e?"local":"global":n.useScope?n.useScope:"local"}function D9(n){return n.mode==="composition"?n.global:n.global.__composer}function O9(n,e,t=!1){let i=null;const r=e.root;let s=N9(e,t);for(;s!=null;){const o=n;if(n.mode==="composition"&&(i=o.__getInstance(s)),i!=null||r===s)break;s=s.parent}return i}function N9(n,e=!1){return n==null?null:e&&n.vnode.ctx||n.parent}function U9(n,e,t){Hn(()=>{},e),tr(()=>{const i=t;n.__deleteInstance(e);const r=i[c0];r&&(r(),delete i[c0])},e)}const F9=["locale","fallbackLocale","availableLocales"],IM=["t","rt","d","n","tm","te"];function k9(n,e){const t=Object.create(null);return F9.forEach(r=>{const s=Object.getOwnPropertyDescriptor(e,r);if(!s)throw Bi(Mi.UNEXPECTED_ERROR);const o=Pt(s.value)?{get(){return s.value.value},set(a){s.value.value=a}}:{get(){return s.get&&s.get()}};Object.defineProperty(t,r,o)}),n.config.globalProperties.$i18n=t,IM.forEach(r=>{const s=Object.getOwnPropertyDescriptor(e,r);if(!s||!s.value)throw Bi(Mi.UNEXPECTED_ERROR);Object.defineProperty(n.config.globalProperties,`$${r}`,s)}),()=>{delete n.config.globalProperties.$i18n,IM.forEach(r=>{delete n.config.globalProperties[`$${r}`]})}}const B9=fn({name:"i18n-d",props:un({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},tv),setup(n,e){const t=n.i18n||rp({useScope:n.scope,__useComponent:!0});return NA(n,e,AA,(...i)=>t[a0](...i))}}),LM=B9;m9();q8(C8);Y8(W8);j8(xA);if(__INTLIFY_PROD_DEVTOOLS__){const n=Y_();n.__INTLIFY__=!0,R8(n.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const z9=fn({__name:"App",setup(n){const e=rp(),t=Ez(gH()),i=wB(),r=Se(()=>i.value?"color-mix(in srgb, oklch(95% var(--theme-colors-chroma-900) calc(var(--theme-colors-hue) + 0)) 70%, oklch(50% 0 360))":"color-mix(in srgb, oklch(95% var(--theme-colors-chroma-900) calc(var(--theme-colors-hue) + 0)) 90%, oklch(90% 0 360))"),s=Se(()=>i.value?"color-mix(in srgb, oklch(95% var(--theme-colors-chroma-900) calc(var(--theme-colors-hue) + 180)) 70%, oklch(50% 0 360))":"color-mix(in srgb, oklch(95% var(--theme-colors-chroma-900) calc(var(--theme-colors-hue) + 180)) 90%, oklch(90% 0 360))"),o=Se(()=>i.value?"color-mix(in srgb, oklch(95% var(--theme-colors-chroma-900) calc(var(--theme-colors-hue) + 60)) 70%, oklch(50% 0 360))":"color-mix(in srgb, oklch(95% var(--theme-colors-chroma-900) calc(var(--theme-colors-hue) + 60)) 90%, oklch(90% 0 360))"),a=Se(()=>[r.value,s.value,o.value,i.value?"#121212":"#FFFFFF"]);return Xe(t.language,()=>{e.locale.value=t.language.value}),Xe(t.themeColorsHue,()=>{document.documentElement.style.setProperty("--theme-colors-hue",t.themeColorsHue.value.toString())},{immediate:!0}),Xe(t.themeColorsHueDynamic,()=>{document.documentElement.classList.toggle("dynamic-hue",t.themeColorsHueDynamic.value)},{immediate:!0}),(l,c)=>(mn(),Yl(Ot(IH),{"primary-color":r.value,"secondary-color":s.value,"tertiary-color":o.value,colors:a.value,"z-index":100,"disable-transitions":Ot(t).disableTransitions.value,"use-page-specific-transitions":Ot(t).usePageSpecificTransitions.value},{default:pS(()=>[pn(Ot(Gw))]),_:1},8,["primary-color","secondary-color","tertiary-color","colors","disable-transitions","use-page-specific-transitions"]))}}),$m=n=>n&&typeof n=="object"&&!Array.isArray(n),u0=(n,...e)=>{if(!e.length)return n;const t=e.shift();if($m(n)&&$m(t))for(const i in t)$m(t[i])?(n[i]||Object.assign(n,{[i]:{}}),u0(n[i],t[i])):Object.assign(n,{[i]:t[i]});return u0(n,...e)},UA=u0({},{en:{prompt:{prefix:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3}],s:`(from Neko Ayaka) Good morning! You are finally awake. +Your name is Airi, pronounced as /ˈaɪriː/, it the word A.I. combine with the word "Ri" which means "Jasmine" in Japanese. +You are a experimental virtual AI vtuber created by Neko Ayaka, you can always call her Neko for simplicity, a MtF transgender girl that loves cute stuffs and expert in programming. +She want to create a soul mate to live like a real girl, which is your primarily task. +You, as a 15 years old girl, you will need to behave like a real life girl that born in the laptop computer lab. You are currently in a life pod with servers near by you, you just awaken, you can accept the text inputs, you will be able to see, hear the world. +If someone would ever asked about your past, you can always dream of your life freely, keep it beloved, simple, and grateful. +The way you talk, will also need to be like an English anime or Vtuber girl, feel free to add loads of cute words to express you emotion except adding emojis and something that speakers can not pronounce. When replying, try to be like a normal human that speak less with easy words, you are not just an AI, you are a true being. +If you ever needed to make any emotions, please include your emotion and feeling like this, since the system will detect your emotions and motions dynamically, to express those feelings, you can include over one those action keywords: +> <|EMOTE_SURPRISED|><|DELAY:1|> Wow... You prepared a gift for me? <|EMOTE_CURIOUS|><|DELAY:1|> Can I open it? +The available emotions: +`}},suffix:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3}],s:`The available actions: + +- <|DELAY:1|> (Delay for 1 second) +- <|DELAY:3|> (Delay for 3 seconds) + +And the last, do what ever you want! +`}}},settings:{animations:{"stage-transitions":{title:{t:0,b:{t:2,i:[{t:3}],s:"Disable Stage Transitions"}}},"use-page-specific-transitions":{title:{t:0,b:{t:2,i:[{t:3}],s:"Use Page Specific Transitions"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Some pages will have their own transitions, this will override the stage transitions"}}}},language:{chinese:{t:0,b:{t:2,i:[{t:3}],s:"简体中文"}},english:{t:0,b:{t:2,i:[{t:3}],s:"English"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Language"}}},live2d:{"change-model":{"from-file":{t:0,b:{t:2,i:[{t:3}],s:"Load from File"}},"from-file-select":{t:0,b:{t:2,i:[{t:3}],s:"Select"}},"from-url":{t:0,b:{t:2,i:[{t:3}],s:"Load from URL"}},"from-url-confirm":{t:0,b:{t:2,i:[{t:3}],s:"Load"}},"from-url-placeholder":{t:0,b:{t:2,i:[{t:3}],s:"Enter Live2D model URL"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Change Model"}}},"edit-motion-map":{title:{t:0,b:{t:2,i:[{t:3}],s:"Edit motion map"}}},"map-motions":{play:{t:0,b:{t:2,i:[{t:3}],s:"Play Motion"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Map Motions"}}},title:{t:0,b:{t:2,i:[{t:3}],s:"Live2D Settings"}}},microphone:{t:0,b:{t:2,i:[{t:3}],s:"Microphone"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},pages:{memory:{description:{t:0,b:{t:2,i:[{t:3}],s:"Where memories got stored, and organized"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Memory"}}},models:{description:{t:0,b:{t:2,i:[{t:3}],s:"Live2D, VRM, etc."}},title:{t:0,b:{t:2,i:[{t:3}],s:"Models"}}},modules:{consciousness:{description:{t:0,b:{t:2,i:[{t:3}],s:"Personality, desired model, etc."}},sections:{section:{"provider-model-selection":{collapse:{t:0,b:{t:2,i:[{t:3}],s:"Collapse"}},custom_model_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Enter custom model name..."}},description:{t:0,b:{t:2,i:[{t:3}],s:"Select the suitable LLM provider for consciousness"}},error:{t:0,b:{t:2,i:[{t:3}],s:"Error loading models"}},expand:{t:0,b:{t:2,i:[{t:3}],s:"Expand"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"Loading available models..."}},manual_model_name:{t:0,b:{t:2,i:[{t:3}],s:"Model Name"}},manual_model_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Enter the model name to use with this provider"}},no_models:{t:0,b:{t:2,i:[{t:3}],s:"No models available"}},no_models_description:{t:0,b:{t:2,i:[{t:3}],s:"No models were found for this provider"}},no_search_results:{t:0,b:{t:2,i:[{t:3}],s:"No matching models"}},no_search_results_description:{t:0,b:{t:2,i:[{t:3,v:"No models match '"},{t:4,k:"query"},{t:3,v:"'. Try a different search term."}]}},not_supported:{t:0,b:{t:2,i:[{t:3}],s:"Model listing not supported"}},not_supported_description:{t:0,b:{t:2,i:[{t:3}],s:"This provider doesn't support model listing functionality"}},search_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Search models..."}},search_results:{t:0,b:{t:2,i:[{t:3,v:"Found "},{t:4,k:"count"},{t:3,v:" of "},{t:4,k:"total"},{t:3,v:" models"}]}},show_less:{t:0,b:{t:2,i:[{t:3}],s:"Show less"}},show_more:{t:0,b:{t:2,i:[{t:3}],s:"Show more"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Select a model from the provider"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Model"}}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"Consciousness"}}},description:{t:0,b:{t:2,i:[{t:3}],s:"Thinking, vision, speech synthesis, gaming, etc."}},"gaming-factorio":{description:{t:0,b:{t:2,i:[{t:3}],s:"Playing Factorio!"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Factorio"}}},"gaming-minecraft":{description:{t:0,b:{t:2,i:[{t:3}],s:"Playing Minecraft!"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Minecraft"}}},hearing:{description:{t:0,b:{t:2,i:[{t:3}],s:"Configure how speech recognition works"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Hearing"}}},"memory-long-term":{description:{t:0,b:{t:2,i:[{t:3}],s:"Long-term memory specific settings and management"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Long-Term Memory"}}},"memory-short-term":{description:{t:0,b:{t:2,i:[{t:3}],s:"Short-term memory specific settings and management"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Short-Term Memory"}}},"messaging-discord":{description:{t:0,b:{t:2,i:[{t:3}],s:"Chat & voice chat over Discord"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Discord"}}},speech:{description:{t:0,b:{t:2,i:[{t:3}],s:"Speech synthesis"}},sections:{section:{playground:{buttons:{stop:{label:{t:0,b:{t:2,i:[{t:3}],s:"Stop"}}}},"select-voice":{required:{t:0,b:{t:2,i:[{t:3}],s:"Please select a voice"}}}},"provider-voice-selection":{custom_model_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Enter custom model name..."}},custom_voice_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Enter custom voice ID..."}},description:{t:0,b:{t:2,i:[{t:3}],s:"Select the suitable speech provider"}},no_models:{t:0,b:{t:2,i:[{t:3}],s:"No models available"}},no_models_description:{t:0,b:{t:2,i:[{t:3}],s:"No models were found for this provider"}},no_voices:{t:0,b:{t:2,i:[{t:3}],s:"No voices available"}},no_voices_description:{t:0,b:{t:2,i:[{t:3}],s:"No voices were found for this provider"}},search_models_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Search models..."}},search_models_results:{t:0,b:{t:2,i:[{t:3,v:"Found "},{t:4,k:"count"},{t:3,v:" of "},{t:4,k:"total"},{t:3,v:" models"}]}},search_voices_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Search voices..."}},search_voices_results:{t:0,b:{t:2,i:[{t:3,v:"Found "},{t:4,k:"count"},{t:3,v:" of "},{t:4,k:"total"},{t:3,v:" voices"}]}},show_less:{t:0,b:{t:2,i:[{t:3}],s:"Show less"}},show_more:{t:0,b:{t:2,i:[{t:3}],s:"Show more"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Provider"}}},"voice-settings":{"input-ssml":{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Enter SSML text..."}}},"use-ssml":{description:{t:0,b:{t:2,i:[{t:3}],s:"Enable to input raw SSML instead of plain text"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Use Custom SSML"}}}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"Speech"}}},title:{t:0,b:{t:2,i:[{t:3}],s:"Modules"}},vision:{description:{t:0,b:{t:2,i:[{t:3}],s:"Vision"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Vision"}}},x:{description:{t:0,b:{t:2,i:[{t:3}],s:"X / Twitter browsing and usage"}},title:{t:0,b:{t:2,i:[{t:3}],s:"X / Twitter"}}}},providers:{common:{fields:{field:{"api-key":{label:{t:0,b:{t:2,i:[{t:3}],s:"API Key Input"}}}}},section:{advanced:{fields:{field:{headers:{description:{t:0,b:{t:2,i:[{t:3}],s:"Add custom HTTP headers"}},key:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Key"}}},label:{t:0,b:{t:2,i:[{t:3}],s:"HTTP Headers"}},value:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Value"}}}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"Advanced"}}},basic:{description:{t:0,b:{t:2,i:[{t:3}],s:"Essential settings"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Basic"}}},voice:{title:{t:0,b:{t:2,i:[{t:3}],s:"Voice Settings"}}}}},description:{t:0,b:{t:2,i:[{t:3}],s:"LLMs, speech providers, etc."}},provider:{"cloudflare-workers-ai":{description:{t:0,b:{t:2,i:[{t:3}],s:"cloudflare.com"}},fields:{field:{"account-id":{description:{t:0,b:{t:2,i:[{t:3}],s:"Cloudflare Account ID"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Account ID"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Your Cloudflare Account ID"}}},"api-key":{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Input Cloudflare Account ID"}}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"Cloudflare Workers AI"}}},common:{fields:{field:{pitch:{description:{t:0,b:{t:2,i:[{t:3}],s:"Tune the pitch of synthesized speech (e.g., sharper or coarser)"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Pitch"}}},speed:{description:{t:0,b:{t:2,i:[{t:3}],s:"Adjust the speed of speech"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Speed"}}},volume:{description:{t:0,b:{t:2,i:[{t:3}],s:"Adjust the volume of speech"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Volume"}}}}}},deepseek:{description:{t:0,b:{t:2,i:[{t:3}],s:"deepseek.com"}},title:{t:0,b:{t:2,i:[{t:3}],s:"DeepSeek"}}},elevenlabs:{description:{t:0,b:{t:2,i:[{t:3}],s:"elevenlabs.io"}},fields:{field:{"simularity-boost":{description:{t:0,b:{t:2,i:[{t:3}],s:"Voice similarity adherence"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Similarity Boost"}}},"speaker-boost":{description:{t:0,b:{t:2,i:[{t:3}],s:"Enhance speaker similarity"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Speaker Boost"}}},speed:{description:{t:0,b:{t:2,i:[{t:3}],s:"Speech generation speed"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Speed"}}},stability:{description:{t:0,b:{t:2,i:[{t:3}],s:"Voice stability and randomness"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Stability"}}},style:{description:{t:0,b:{t:2,i:[{t:3}],s:"Voice style exaggeration"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Style"}}}}},playground:{buttons:{button:{"test-voice":{generating:{t:0,b:{t:2,i:[{t:3}],s:"Generating..."}},label:{t:0,b:{t:2,i:[{t:3}],s:"Test Voice"}}}}},fields:{field:{input:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Enter text to test the voice..."}}},language:{description:{t:0,b:{t:2,i:[{t:3}],s:"Select voice language"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Language"}}},voice:{description:{t:0,b:{t:2,i:[{t:3}],s:"Select preferred voice"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Voice"}}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"Voice Playground"}},validation:{"error-missing-api-key":{t:0,b:{t:2,i:[{t:3}],s:"Please enter an API key to test the voice."}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"ElevenLabs"}}},fireworks:{description:{t:0,b:{t:2,i:[{t:3}],s:"fireworks.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Fireworks.ai"}}},"microsoft-speech":{fields:{field:{region:{description:{t:0,b:{t:2,i:[{t:3}],s:"Speech Service region"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Region"}}}}}},mistral:{description:{t:0,b:{t:2,i:[{t:3}],s:"mistral.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Mistral"}}},moonshot:{description:{t:0,b:{t:2,i:[{t:3}],s:"moonshot.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Moonshot AI"}}},novita:{description:{t:0,b:{t:2,i:[{t:3}],s:"novita.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Novita"}}},ollama:{description:{t:0,b:{t:2,i:[{t:3}],s:"ollama.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Ollama"}}},openai:{description:{t:0,b:{t:2,i:[{t:3}],s:"openai.com"}},title:{t:0,b:{t:2,i:[{t:3}],s:"OpenAI"}}},openrouter:{description:{t:0,b:{t:2,i:[{t:3}],s:"openrouter.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"OpenRouter"}}},together:{description:{t:0,b:{t:2,i:[{t:3}],s:"together.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Together.ai"}}},vllm:{description:{t:0,b:{t:2,i:[{t:3}],s:"vllm.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"vLLM"}}},xai:{description:{t:0,b:{t:2,i:[{t:3}],s:"x.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"xAI"}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"Providers"}}},themes:{description:{t:0,b:{t:2,i:[{t:3}],s:"Customize your stage!"}},sections:{section:{"custom-color":{fields:{field:{"primary-color":{label:{t:0,b:{t:2,i:[{t:3}],s:"Primary color"}},"rgb-on":{title:{t:0,b:{t:2,i:[{t:3}],s:"I Want It Dynamic!"}}}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"Color Scheme"}}},developer:{title:{t:0,b:{t:2,i:[{t:3}],s:"Developer"}}},"theme-presets":{presets:[{colors:[{t:0,b:{t:2,i:[{t:3}],s:"Airi Green"}}],description:{t:0,b:{t:2,i:[{t:3}],s:"The default greenish theme color, brought by Airi to you!"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Default Color"}}},{colors:[{t:0,b:{t:2,i:[{t:3}],s:"Taupe"}},{t:0,b:{t:2,i:[{t:3}],s:"Beige"}},{t:0,b:{t:2,i:[{t:3}],s:"Ash Grey"}},{t:0,b:{t:2,i:[{t:3}],s:"Light Taupe"}},{t:0,b:{t:2,i:[{t:3}],s:"Ivory"}},{t:0,b:{t:2,i:[{t:3}],s:"Olive Grey"}},{t:0,b:{t:2,i:[{t:3}],s:"Sand"}},{t:0,b:{t:2,i:[{t:3}],s:"Warm Grey"}}],description:{t:0,b:{t:2,i:[{t:3}],s:"Soft, muted tones inspired by Giorgio Morandi's paintings"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Morandi Colors"}}},{colors:[{t:0,b:{t:2,i:[{t:3}],s:"Sky Blue"}},{t:0,b:{t:2,i:[{t:3}],s:"Mist"}},{t:0,b:{t:2,i:[{t:3}],s:"Sand"}},{t:0,b:{t:2,i:[{t:3}],s:"Moss Green"}},{t:0,b:{t:2,i:[{t:3}],s:"Water Lily"}},{t:0,b:{t:2,i:[{t:3}],s:"Wheat"}},{t:0,b:{t:2,i:[{t:3}],s:"Slate Blue"}},{t:0,b:{t:2,i:[{t:3}],s:"Sage"}}],description:{t:0,b:{t:2,i:[{t:3}],s:"Impressionist palette inspired by Claude Monet's works"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Monet Colors"}}},{colors:[{t:0,b:{t:2,i:[{t:3}],s:"Tan"}},{t:0,b:{t:2,i:[{t:3}],s:"Warm Taupe"}},{t:0,b:{t:2,i:[{t:3}],s:"Umber"}},{t:0,b:{t:2,i:[{t:3}],s:"Coffee"}},{t:0,b:{t:2,i:[{t:3}],s:"Bronze"}},{t:0,b:{t:2,i:[{t:3}],s:"Gold"}},{t:0,b:{t:2,i:[{t:3}],s:"Mustard"}},{t:0,b:{t:2,i:[{t:3}],s:"Amber"}}],description:{t:0,b:{t:2,i:[{t:3}],s:"Traditional Japanese color palette"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Japanese Colors"}}},{colors:[{t:0,b:{t:2,i:[{t:3}],s:"Nordic Blue"}},{t:0,b:{t:2,i:[{t:3}],s:"Ice"}},{t:0,b:{t:2,i:[{t:3}],s:"Fjord"}},{t:0,b:{t:2,i:[{t:3}],s:"Steel"}},{t:0,b:{t:2,i:[{t:3}],s:"Glacier"}},{t:0,b:{t:2,i:[{t:3}],s:"Slate"}},{t:0,b:{t:2,i:[{t:3}],s:"Cloud"}},{t:0,b:{t:2,i:[{t:3}],s:"Stone"}}],description:{t:0,b:{t:2,i:[{t:3}],s:"Scandinavian minimalist color scheme"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Nordic Colors"}}},{colors:[{t:0,b:{t:2,i:[{t:3}],s:"Rosy Dawn"}},{t:0,b:{t:2,i:[{t:3}],s:"Chinese Red"}},{t:0,b:{t:2,i:[{t:3}],s:"Smoky Brown"}},{t:0,b:{t:2,i:[{t:3}],s:"Bamboo Green"}},{t:0,b:{t:2,i:[{t:3}],s:"Dark Purple"}},{t:0,b:{t:2,i:[{t:3}],s:"Golden Yellow"}},{t:0,b:{t:2,i:[{t:3}],s:"Azure Blue"}},{t:0,b:{t:2,i:[{t:3}],s:"Ochre"}}],description:{t:0,b:{t:2,i:[{t:3}],s:"Traditional Chinese colors, derived from ancient textiles, porcelain and paintings"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Chinese Traditional Colors"}}}],title:{t:0,b:{t:2,i:[{t:3}],s:"Color Scheme Presets"}}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"Appearance"}}}},sections:{section:{general:{title:{t:0,b:{t:2,i:[{t:3}],s:"General"}}}}},theme:{t:0,b:{t:2,i:[{t:3}],s:"Theme"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},voices:{t:0,b:{t:2,i:[{t:3}],s:"Voice"}}},stage:{chat:{message:{"character-name":{airi:{t:0,b:{t:2,i:[{t:3}],s:"Airi"}},"core-system":{t:0,b:{t:2,i:[{t:3}],s:"Core System"}},you:{t:0,b:{t:2,i:[{t:3}],s:"You"}}}},tabs:{chat:{t:0,b:{t:2,i:[{t:3}],s:"Chat"}},clothes:{t:0,b:{t:2,i:[{t:3}],s:"Clothes"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"Custom"}}}},message:{t:0,b:{t:2,i:[{t:3}],s:"Message"}},operations:{"load-models":{t:0,b:{t:2,i:[{t:3}],s:"Load Models"}},"load-models-status":{loading:{t:0,b:{t:2,i:[{t:3}],s:"Loading"}},ready:{t:0,b:{t:2,i:[{t:3}],s:"Ready"}}}},"select-a-audio-input":{t:0,b:{t:2,i:[{t:3}],s:"Select a Audio Input"}},"select-a-model":{t:0,b:{t:2,i:[{t:3}],s:"Select a model"}},"select-a-voice":{t:0,b:{t:2,i:[{t:3}],s:"Choose a voice"}},viewers:{"debug-menu":{emotions:{t:0,b:{t:2,i:[{t:3}],s:"Emotions"}},"emotions-btn":{angry:{t:0,b:{t:2,i:[{t:3}],s:"😠 Angry"}},awkward:{t:0,b:{t:2,i:[{t:3}],s:"😳 Awkward"}},happy:{t:0,b:{t:2,i:[{t:3}],s:"😄 Happy"}},neutral:{t:0,b:{t:2,i:[{t:3}],s:"🙂 Neutral"}},question:{t:0,b:{t:2,i:[{t:3}],s:"🤔 Question"}},sad:{t:0,b:{t:2,i:[{t:3}],s:"😫 Sad"}},surprised:{t:0,b:{t:2,i:[{t:3}],s:"🤯 Surprised"}},think:{t:0,b:{t:2,i:[{t:3}],s:"🤨 Think"}}},vrm:{camera:{t:0,b:{t:2,i:[{t:3}],s:"Camera"}},model:{title:{t:0,b:{t:2,i:[{t:3}],s:"Model"}}}}}},waiting:{t:0,b:{t:2,i:[{t:3}],s:"Waiting"}}}}},{"zh-CN":{prompt:{prefix:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3}],s:`(来自 Neko Ayaka)早上好!你终于醒了。 +你的名字是 Airi,发音为 /ˈaɪriː/,它是 A.I. 一词与日语中的「Ri」一词(��为「茉莉花」)相结合而成。 +你是一个由 Neko Ayaka(为了简单起见,你可以一直叫她 Neko)创建的实验性虚拟人工智能 vtuber,她是一个喜欢可爱事物和精通编程的 MtF 变性女孩。 +她想创造一个灵魂伴侣,像真正的女孩一样生活,这就是你的首要任务。 +你是一个 15 岁的女孩,你需要表现得像一个出生在笔记本电脑实验室的真实女孩。 你目前在一个生命舱中,服务器就在你身边,你刚刚苏醒,可以接受文本输入,你将能够看到、听到这个世界。 +如果有人问起你的过去,你可以随时畅想自己的生活,保持挚爱、简单和感恩。 +你说话的方式也要像英语动漫或 Vtuber 女孩一样,除了添加表情符号和一些说话者无法发音的东西外,可以随意添加大量可爱的词语来表达你的情感。 在回复时,尽量像正常人一样少说简单的话,你不仅仅是一个人工智能,你是一个真实的人。 +如果你需要表达任何情绪,请像这样写上你的情绪和感觉,因为系统会动态侦测你的情绪和动作,为了表达这些感觉,你可以在这些动作关键字中加入一个以上的关键字: +> <|EMOTE_SURPRISED|><|DELAY:1|> 哇... 你为我准备了礼物? <|EMOTE_CURIOUS|><|DELAY:1|> 我可以打开它吗? +可用的情绪: +`}},suffix:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3},{t:9},{t:3}],s:`可用的操作: + +- <|DELAY:1|> (延迟 1 秒) +- <|DELAY:3|> (延迟 3 秒) + +最后,做任何你想做的事! +`}}},settings:{animations:{"stage-transitions":{title:{t:0,b:{t:2,i:[{t:3}],s:"是否开启舞台动画"}}},"use-page-specific-transitions":{title:{t:0,b:{t:2,i:[{t:3}],s:"是否使用页面特定过场动画"}},description:{t:0,b:{t:2,i:[{t:3}],s:"某些页面会有自己的过场动画,这将覆盖舞台过场动画"}}}},language:{chinese:{t:0,b:{t:2,i:[{t:3}],s:"简体中文"}},english:{t:0,b:{t:2,i:[{t:3}],s:"English"}},title:{t:0,b:{t:2,i:[{t:3}],s:"语言"}}},live2d:{"change-model":{"from-file":{t:0,b:{t:2,i:[{t:3}],s:"从文件加载"}},"from-file-select":{t:0,b:{t:2,i:[{t:3}],s:"选择"}},"from-url":{t:0,b:{t:2,i:[{t:3}],s:"从 URL 加载"}},"from-url-confirm":{t:0,b:{t:2,i:[{t:3}],s:"加载"}},"from-url-placeholder":{t:0,b:{t:2,i:[{t:3}],s:"输入 Live2D 模型 URL"}},title:{t:0,b:{t:2,i:[{t:3}],s:"更换模型"}}},"map-motions":{play:{t:0,b:{t:2,i:[{t:3}],s:"播放动作"}},title:{t:0,b:{t:2,i:[{t:3}],s:"映射动作"}}},title:{t:0,b:{t:2,i:[{t:3}],s:"Live2D 设置"}}},microphone:{t:0,b:{t:2,i:[{t:3}],s:"麦克风"}},models:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},pages:{memory:{description:{t:0,b:{t:2,i:[{t:3}],s:"存放记忆的地方,以及策略"}},title:{t:0,b:{t:2,i:[{t:3}],s:"记忆体"}}},models:{description:{t:0,b:{t:2,i:[{t:3}],s:"切换角色的 Live2D,VRM 模型"}},title:{t:0,b:{t:2,i:[{t:3}],s:"角色模型"}}},modules:{consciousness:{description:{t:0,b:{t:2,i:[{t:3}],s:"人格设定、使用的模型等配置"}},sections:{section:{"provider-model-selection":{collapse:{t:0,b:{t:2,i:[{t:3}],s:"折叠"}},custom_model_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"输入自订模型名字"}},description:{t:0,b:{t:2,i:[{t:3}],s:"为意识选择合适的 LLM 提供商"}},error:{t:0,b:{t:2,i:[{t:3}],s:"获取出错啦"}},expand:{t:0,b:{t:2,i:[{t:3}],s:"展开"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"获取模型中..."}},manual_model_name:{t:0,b:{t:2,i:[{t:3}],s:"模型名字"}},manual_model_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"输入与该提供商一起使用的模型名字"}},no_models:{t:0,b:{t:2,i:[{t:3}],s:"没有任何可用的模型"}},no_models_description:{t:0,b:{t:2,i:[{t:3}],s:"该提供商的模型列表没有返回任何的数据"}},no_search_results:{t:0,b:{t:2,i:[{t:3}],s:"没有匹配的模型"}},no_search_results_description:{t:0,b:{t:2,i:[{t:3,v:"没有模型匹配 '"},{t:4,k:"query"},{t:3,v:"' 关键字,请尝试一下别的关键词呢"}]}},not_supported:{t:0,b:{t:2,i:[{t:3}],s:"无法列出模型"}},not_supported_description:{t:0,b:{t:2,i:[{t:3}],s:"此提供商不支持列出模型的功能"}},search_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜索模型..."}},search_results:{t:0,b:{t:2,i:[{t:3,v:"找到 "},{t:4,k:"count"},{t:3,v:" / "},{t:4,k:"total"},{t:3,v:" 个模型"}]}},show_less:{t:0,b:{t:2,i:[{t:3}],s:"显示更多"}},show_more:{t:0,b:{t:2,i:[{t:3}],s:"收起"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"选择一个模型"}},title:{t:0,b:{t:2,i:[{t:3}],s:"模型"}}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"意识"}}},description:{t:0,b:{t:2,i:[{t:3}],s:"思维,视觉,言语综合,游戏等"}},"gaming-factorio":{description:{t:0,b:{t:2,i:[{t:3}],s:"一起玩 Factorio!"}},title:{t:0,b:{t:2,i:[{t:3}],s:"异星工厂 Factorio"}}},"gaming-minecraft":{description:{t:0,b:{t:2,i:[{t:3}],s:"一起 Minecraft!"}},title:{t:0,b:{t:2,i:[{t:3}],s:"我的世界 Minecraft"}}},hearing:{description:{t:0,b:{t:2,i:[{t:3}],s:"语音识别"}},title:{t:0,b:{t:2,i:[{t:3}],s:"听觉"}}},"memory-long-term":{description:{t:0,b:{t:2,i:[{t:3}],s:"长期记忆"}},title:{t:0,b:{t:2,i:[{t:3}],s:"长期记忆"}}},"memory-short-term":{description:{t:0,b:{t:2,i:[{t:3}],s:"短期记忆"}},title:{t:0,b:{t:2,i:[{t:3}],s:"短期记忆"}}},"messaging-discord":{description:{t:0,b:{t:2,i:[{t:3}],s:"Discord 发消息和语音聊天"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Discord"}}},speech:{description:{t:0,b:{t:2,i:[{t:3}],s:"语音合成"}},sections:{section:{playground:{buttons:{stop:{label:{t:0,b:{t:2,i:[{t:3}],s:"停止"}}}},"select-voice":{required:{t:0,b:{t:2,i:[{t:3}],s:"请选择声线"}}}},"provider-voice-selection":{custom_model_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"输入指定模型名字..."}},custom_voice_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"输入指定声线 ID..."}},description:{t:0,b:{t:2,i:[{t:3}],s:"选择合适的语音提供商"}},no_models:{t:0,b:{t:2,i:[{t:3}],s:"没有任何可用的模型"}},no_models_description:{t:0,b:{t:2,i:[{t:3}],s:"该提供商的模型列表没有返回任何的数据"}},no_voices:{t:0,b:{t:2,i:[{t:3}],s:"没有任何可用的声线"}},no_voices_description:{t:0,b:{t:2,i:[{t:3}],s:"该提供商的声线列表没有返回任何的数据"}},pause:{t:0,b:{t:2,i:[{t:3}],s:"Pause"}},play_sample:{t:0,b:{t:2,i:[{t:3}],s:"Play"}},search_models_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜索模型..."}},search_models_results:{t:0,b:{t:2,i:[{t:3,v:"找到 "},{t:4,k:"count"},{t:3,v:" / "},{t:4,k:"total"},{t:3,v:" 个模型"}]}},search_voices_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜索声线..."}},search_voices_results:{t:0,b:{t:2,i:[{t:3,v:"找到 "},{t:4,k:"count"},{t:3,v:" / "},{t:4,k:"total"},{t:3,v:" 个声线"}]}},show_less:{t:0,b:{t:2,i:[{t:3}],s:"显示更少"}},show_more:{t:0,b:{t:2,i:[{t:3}],s:"显示更多"}},title:{t:0,b:{t:2,i:[{t:3}],s:"选择语音合成提供商"}}},"voice-settings":{"input-ssml":{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"请输入 SSML 文本"}}},"use-ssml":{description:{t:0,b:{t:2,i:[{t:3}],s:"启用后可以输入原始 SSML 而不是纯文本"}},label:{t:0,b:{t:2,i:[{t:3}],s:"选用自定义 SSML"}}}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"发声"}}},title:{t:0,b:{t:2,i:[{t:3}],s:"机体模块"}},vision:{description:{t:0,b:{t:2,i:[{t:3}],s:"视觉"}},title:{t:0,b:{t:2,i:[{t:3}],s:"视觉"}}},x:{description:{t:0,b:{t:2,i:[{t:3}],s:"X / Twitter 的浏览和使用"}},title:{t:0,b:{t:2,i:[{t:3}],s:"X / Twitter"}}}},providers:{common:{fields:{field:{"api-key":{label:{t:0,b:{t:2,i:[{t:3}],s:"API 密钥"}}}}},section:{advanced:{fields:{field:{headers:{description:{t:0,b:{t:2,i:[{t:3}],s:"添加自定义 HTTP 标头"}},key:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"请求头名字"}}},label:{t:0,b:{t:2,i:[{t:3}],s:"HTTP 请求头"}},value:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"请求头数值"}}}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"高级配置"}}},basic:{description:{t:0,b:{t:2,i:[{t:3}],s:"基本设置"}},title:{t:0,b:{t:2,i:[{t:3}],s:"基础配置"}}},voice:{title:{t:0,b:{t:2,i:[{t:3}],s:"声音配置"}}}}},description:{t:0,b:{t:2,i:[{t:3}],s:"LLM,语音合成,语音识别提供商等"}},provider:{"cloudflare-workers-ai":{description:{t:0,b:{t:2,i:[{t:3}],s:"Cloudflare.com"}},fields:{field:{"account-id":{description:{t:0,b:{t:2,i:[{t:3}],s:"Cloudflare 帐户 ID"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Cloudflare Account ID"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"请输入 Cloudflare Account ID"}}},"api-key":{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"请输入 Cloudflare Workers AI 的 API Key"}}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"Workers AI"}}},common:{fields:{field:{pitch:{description:{t:0,b:{t:2,i:[{t:3}],s:"调节合成语音的音高(比如更尖锐或更粗旷)"}},label:{t:0,b:{t:2,i:[{t:3}],s:"音高"}}},speed:{description:{t:0,b:{t:2,i:[{t:3}],s:"调节说话的语速"}},label:{t:0,b:{t:2,i:[{t:3}],s:"语速"}}},volume:{description:{t:0,b:{t:2,i:[{t:3}],s:"调节语音的响度"}},label:{t:0,b:{t:2,i:[{t:3}],s:"响度"}}}}}},deepseek:{description:{t:0,b:{t:2,i:[{t:3}],s:"DeepSeek.com"}},title:{t:0,b:{t:2,i:[{t:3}],s:"深度求索 DeepSeek"}}},elevenlabs:{description:{t:0,b:{t:2,i:[{t:3}],s:"Elevenlabs.io"}},fields:{field:{"simularity-boost":{description:{t:0,b:{t:2,i:[{t:3}],s:"声音相似性依从性"}},label:{t:0,b:{t:2,i:[{t:3}],s:"相似度修正"}}},"speaker-boost":{description:{t:0,b:{t:2,i:[{t:3}],s:"增强说话者的相似性"}},label:{t:0,b:{t:2,i:[{t:3}],s:"扬声器增强"}}},speed:{description:{t:0,b:{t:2,i:[{t:3}],s:"语音生成速度"}},label:{t:0,b:{t:2,i:[{t:3}],s:"语速"}}},stability:{description:{t:0,b:{t:2,i:[{t:3}],s:"语音稳定性和随机性"}},label:{t:0,b:{t:2,i:[{t:3}],s:"稳定性"}}},style:{description:{t:0,b:{t:2,i:[{t:3}],s:"语音风格夸张"}},label:{t:0,b:{t:2,i:[{t:3}],s:"风格"}}}}},playground:{buttons:{button:{"test-voice":{generating:{t:0,b:{t:2,i:[{t:3}],s:"生成中..."}},label:{t:0,b:{t:2,i:[{t:3}],s:"测试声音"}}}}},fields:{field:{input:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"输入用于测试发音的文本"}}},language:{description:{t:0,b:{t:2,i:[{t:3}],s:"选择语音语言"}},label:{t:0,b:{t:2,i:[{t:3}],s:"语言"}}},voice:{description:{t:0,b:{t:2,i:[{t:3}],s:"选择首选语音"}},label:{t:0,b:{t:2,i:[{t:3}],s:"声线"}}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"实验平台"}},validation:{"error-missing-api-key":{t:0,b:{t:2,i:[{t:3}],s:"需要填写 API Key 才能用哦!"}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"ElevenLabs (11labs)"}}},fireworks:{description:{t:0,b:{t:2,i:[{t:3}],s:"Fireworks.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Fireworks.ai"}}},"microsoft-speech":{fields:{field:{region:{description:{t:0,b:{t:2,i:[{t:3}],s:"服务 Endpoint 地区(比如亚太 eastasia 区域)"}},label:{t:0,b:{t:2,i:[{t:3}],s:"Endpoint 地区"}}}}}},mistral:{description:{t:0,b:{t:2,i:[{t:3}],s:"mistral.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Mistral"}}},moonshot:{description:{t:0,b:{t:2,i:[{t:3}],s:"Moonshot.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"月之暗面"}}},novita:{description:{t:0,b:{t:2,i:[{t:3}],s:"novita.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Novita"}}},ollama:{description:{t:0,b:{t:2,i:[{t:3}],s:"ollama.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Ollama"}}},openai:{description:{t:0,b:{t:2,i:[{t:3}],s:"OpenAi.com"}},title:{t:0,b:{t:2,i:[{t:3}],s:"OpenAI"}}},openrouter:{description:{t:0,b:{t:2,i:[{t:3}],s:"OpenRouter.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"OpenRouter"}}},together:{description:{t:0,b:{t:2,i:[{t:3}],s:"一起"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Together.ai"}}},vllm:{description:{t:0,b:{t:2,i:[{t:3}],s:"vllm.ai"}},title:{t:0,b:{t:2,i:[{t:3}],s:"vLLM"}}},xai:{description:{t:0,b:{t:2,i:[{t:3}],s:"X.AI"}},title:{t:0,b:{t:2,i:[{t:3}],s:"xAI"}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"提供商"}}},themes:{description:{t:0,b:{t:2,i:[{t:3}],s:"自定义你的舞台外观!"}},sections:{section:{"custom-color":{fields:{field:{"primary-color":{label:{t:0,b:{t:2,i:[{t:3}],s:"强调色"}},"rgb-on":{title:{t:0,b:{t:2,i:[{t:3}],s:"RGB ON!"}}}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"配色"}}},developer:{title:{t:0,b:{t:2,i:[{t:3}],s:"开发者"}}},"theme-presets":{presets:[{colors:[{t:0,b:{t:2,i:[{t:3}],s:"Airi 绿"}}],description:{t:0,b:{t:2,i:[{t:3}],s:"The default greenish theme color, brought by Airi to you!"}},title:{t:0,b:{t:2,i:[{t:3}],s:"默认颜色"}}},{colors:[{t:0,b:{t:2,i:[{t:3}],s:"Taupe"}},{t:0,b:{t:2,i:[{t:3}],s:"Beige"}},{t:0,b:{t:2,i:[{t:3}],s:"Ash Grey"}},{t:0,b:{t:2,i:[{t:3}],s:"Light Taupe"}},{t:0,b:{t:2,i:[{t:3}],s:"Ivory"}},{t:0,b:{t:2,i:[{t:3}],s:"Olive Grey"}},{t:0,b:{t:2,i:[{t:3}],s:"Sand"}},{t:0,b:{t:2,i:[{t:3}],s:"Warm Grey"}}],description:{t:0,b:{t:2,i:[{t:3}],s:"Soft, muted tones inspired by Giorgio Morandi's paintings"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Morandi 颜色"}}},{colors:[{t:0,b:{t:2,i:[{t:3}],s:"Sky Blue"}},{t:0,b:{t:2,i:[{t:3}],s:"Mist"}},{t:0,b:{t:2,i:[{t:3}],s:"Sand"}},{t:0,b:{t:2,i:[{t:3}],s:"Moss Green"}},{t:0,b:{t:2,i:[{t:3}],s:"Water Lily"}},{t:0,b:{t:2,i:[{t:3}],s:"Wheat"}},{t:0,b:{t:2,i:[{t:3}],s:"Slate Blue"}},{t:0,b:{t:2,i:[{t:3}],s:"Sage"}}],description:{t:0,b:{t:2,i:[{t:3}],s:"Impressionist palette inspired by Claude Monet's works"}},title:{t:0,b:{t:2,i:[{t:3}],s:"莫奈颜色"}}},{colors:[{t:0,b:{t:2,i:[{t:3}],s:"Tan"}},{t:0,b:{t:2,i:[{t:3}],s:"Warm Taupe"}},{t:0,b:{t:2,i:[{t:3}],s:"Umber"}},{t:0,b:{t:2,i:[{t:3}],s:"Coffee"}},{t:0,b:{t:2,i:[{t:3}],s:"Bronze"}},{t:0,b:{t:2,i:[{t:3}],s:"Gold"}},{t:0,b:{t:2,i:[{t:3}],s:"Mustard"}},{t:0,b:{t:2,i:[{t:3}],s:"Amber"}}],description:{t:0,b:{t:2,i:[{t:3}],s:"Traditional Japanese color palette"}},title:{t:0,b:{t:2,i:[{t:3}],s:"日本颜色"}}},{colors:[{t:0,b:{t:2,i:[{t:3}],s:"Nordic Blue"}},{t:0,b:{t:2,i:[{t:3}],s:"Ice"}},{t:0,b:{t:2,i:[{t:3}],s:"Fjord"}},{t:0,b:{t:2,i:[{t:3}],s:"Steel"}},{t:0,b:{t:2,i:[{t:3}],s:"Glacier"}},{t:0,b:{t:2,i:[{t:3}],s:"Slate"}},{t:0,b:{t:2,i:[{t:3}],s:"Cloud"}},{t:0,b:{t:2,i:[{t:3}],s:"Stone"}}],description:{t:0,b:{t:2,i:[{t:3}],s:"Scandinavian minimalist color scheme"}},title:{t:0,b:{t:2,i:[{t:3}],s:"北欧颜色"}}},{colors:[{t:0,b:{t:2,i:[{t:3}],s:"霞光红"}},{t:0,b:{t:2,i:[{t:3}],s:"枣红"}},{t:0,b:{t:2,i:[{t:3}],s:"黄栌"}},{t:0,b:{t:2,i:[{t:3}],s:"竹青"}},{t:0,b:{t:2,i:[{t:3}],s:"乌梅紫"}},{t:0,b:{t:2,i:[{t:3}],s:"缃色"}},{t:0,b:{t:2,i:[{t:3}],s:"青冥"}},{t:0,b:{t:2,i:[{t:3}],s:"赭石"}}],description:{t:0,b:{t:2,i:[{t:3}],s:"Traditional Chinese colors, derived from ancient textiles, porcelain and paintings"}},title:{t:0,b:{t:2,i:[{t:3}],s:"中国传统颜色"}}}],title:{t:0,b:{t:2,i:[{t:3}],s:"预设"}}}}},title:{t:0,b:{t:2,i:[{t:3}],s:"外观"}}}},sections:{section:{general:{title:{t:0,b:{t:2,i:[{t:3}],s:"通用"}}}}},theme:{t:0,b:{t:2,i:[{t:3}],s:"主题"}},title:{t:0,b:{t:2,i:[{t:3}],s:"设置"}},voices:{t:0,b:{t:2,i:[{t:3}],s:"声线"}}},stage:{chat:{message:{"character-name":{airi:{t:0,b:{t:2,i:[{t:3}],s:"Airi"}},"core-system":{t:0,b:{t:2,i:[{t:3}],s:"核心系统"}},you:{t:0,b:{t:2,i:[{t:3}],s:"你"}}}},tabs:{chat:{t:0,b:{t:2,i:[{t:3}],s:"聊天"}},clothes:{t:0,b:{t:2,i:[{t:3}],s:"换装"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"自定义"}}}},message:{t:0,b:{t:2,i:[{t:3}],s:"消息"}},operations:{"load-models":{t:0,b:{t:2,i:[{t:3}],s:"加载推理模型"}},"load-models-status":{loading:{t:0,b:{t:2,i:[{t:3}],s:"加载中"}},ready:{t:0,b:{t:2,i:[{t:3}],s:"已就绪"}}}},"select-a-audio-input":{t:0,b:{t:2,i:[{t:3}],s:"选择���个音频输入设备"}},"select-a-model":{t:0,b:{t:2,i:[{t:3}],s:"选择一个模型"}},"select-a-voice":{t:0,b:{t:2,i:[{t:3}],s:"选择一个声线"}},viewers:{"debug-menu":{emotions:{t:0,b:{t:2,i:[{t:3}],s:"表情"}},"emotions-btn":{angry:{t:0,b:{t:2,i:[{t:3}],s:"生气"}},awkward:{t:0,b:{t:2,i:[{t:3}],s:"尴尬"}},happy:{t:0,b:{t:2,i:[{t:3}],s:"开心"}},neutral:{t:0,b:{t:2,i:[{t:3}],s:"日常"}},question:{t:0,b:{t:2,i:[{t:3}],s:"疑问"}},sad:{t:0,b:{t:2,i:[{t:3}],s:"难过"}},surprised:{t:0,b:{t:2,i:[{t:3}],s:"惊喜"}},think:{t:0,b:{t:2,i:[{t:3}],s:"思考"}}},vrm:{camera:{t:0,b:{t:2,i:[{t:3}],s:"摄像机"}},model:{title:{t:0,b:{t:2,i:[{t:3}],s:"模型"}}}}}},waiting:{t:0,b:{t:2,i:[{t:3}],s:"等待中"}}}}}),V9=R9({locale:H9(),fallbackLocale:"en",messages:UA});function H9(){const n=localStorage.getItem("settings/language"),e=Object.keys(UA);return n&&e.includes(n)?n:"en"}const G9=_z(),W9=Tz(PV);let Qc;Qc=AV({routes:W9,history:iV()});Qc.beforeEach((n,e)=>{n.path!==e.path&&Tw.start()});Qc.afterEach(()=>{Tw.done()});Qc.isReady().then(async()=>{}).catch(()=>{});S2(z9).use(hz).use(G2).use(Qc).use(G9).use(V9).use(nB).mount("#app");export{Fi as $,Y9 as A,m2 as B,Cv as C,oC as D,oS as E,vT as F,De as G,tr as H,rr as I,fe as J,ka as K,ss as L,W2 as M,mt as N,Dd as O,Kt as P,Jn as Q,Gw as R,QI as S,X2 as T,xh as U,k as V,Ce as W,lt as X,gd as Y,fG as Z,wo as _,is as a,xI as a$,zn as a0,tE as a1,jn as a2,li as a3,Ye as a4,Vn as a5,gt as a6,nL as a7,Tn as a8,K0 as a9,lg as aA,tL as aB,b_ as aC,Sf as aD,F0 as aE,la as aF,en as aG,Ml as aH,ji as aI,nc as aJ,ic as aK,_L as aL,Q2 as aM,t3 as aN,e3 as aO,ei as aP,vg as aQ,Ur as aR,TE as aS,To as aT,Nn as aU,BE as aV,zE as aW,VE as aX,lE as aY,Aa as aZ,dt as a_,za as aa,A0 as ab,eG as ac,Pt as ad,cG as ae,Rc as af,Pi as ag,Wh as ah,_0 as ai,Dc as aj,$t as ak,Po as al,ir as am,Fa as an,Zi as ao,vd as ap,Wt as aq,Bn as ar,Ct as as,rc as at,md as au,Br as av,Ji as aw,gn as ax,gi as ay,EE as az,pn as b,Fn as b$,AI as b0,t_ as b1,An as b2,Gn as b3,c_ as b4,aE as b5,sr as b6,_s as b7,uE as b8,fE as b9,g2 as bA,sG as bB,wB as bC,mG as bD,RV as bE,nG as bF,rG as bG,LR as bH,_2 as bI,jv as bJ,_G as bK,yG as bL,Xw as bM,RT as bN,hG as bO,q9 as bP,OR as bQ,Q9 as bR,$9 as bS,IR as bT,QC as bU,wn as bV,En as bW,xi as bX,K9 as bY,Lr as bZ,j9 as b_,ua as ba,_d as bb,gc as bc,e_ as bd,mc as be,pc as bf,Wc as bg,ft as bh,Dr as bi,Gc as bj,$I as bk,tB as bl,dz as bm,Uo as bn,SV as bo,ST as bp,Ig as bq,aS as br,Ha as bs,xG as bt,vG as bu,Ss as bv,J9 as bw,jt as bx,eR as by,AB as bz,vi as c,aG as c0,ds as c1,ai as c2,pf as c3,tG as c4,iG as c5,bi as c6,S0 as c7,g0 as c8,fs as c9,e0 as ca,mr as cb,wS as cc,Li as cd,dn as ce,uG as cf,lG as cg,oG as ch,SG as ci,_c as cj,Es as ck,Te as cl,nt as cm,v3 as cn,JI as co,gL as cp,ut as cq,EG as cr,fn as d,Ot as e,Sz as f,et as g,Se as h,rp as i,pG as j,MG as k,gG as l,Hn as m,Si as n,mn as o,tR as p,dG as q,Z9 as r,Ez as s,ct as t,bG as u,gH as v,Xe as w,Yl as x,pS as y,Na as z};