diff --git "a/assets/Scenes-PSPm2F9L.js" "b/assets/Scenes-PSPm2F9L.js" new file mode 100644--- /dev/null +++ "b/assets/Scenes-PSPm2F9L.js" @@ -0,0 +1,3753 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/__vite-browser-external-BulQMdUI.js","assets/index-DCvpfiHG.js","assets/index-CofDR9_Z.css","assets/default-node-rOqXPBPi.js","assets/import-url-browser-CXhM7gkL.js","assets/import-url-browser-VKajNDYM.js","assets/duckdb-mvp-CIsUbAtz.js","assets/import-url-node-DcfQpSzu.js"])))=>i.map(i=>d[i]); +import{G as e,H as t,I as n,J as r,K as i,L as a,M as o,N as s,O as c,P as l,Q as u,R as d,S as f,T as p,Y as m,Z as h,_ as g,a$ as _,a6 as v,aA as y,aJ as b,aK as x,aL as S,aS as C,aT as w,ab as T,aj as E,at as D,aw as O,ax as ee,ay as te,az as ne,b$ as k,b0 as A,b1 as re,b2 as j,b3 as ie,b4 as ae,b5 as oe,b6 as se,b7 as M,b8 as ce,b9 as N,bA as le,bB as ue,bC as de,bD as fe,bE as pe,bF as me,bG as he,bH as ge,bI as _e,bJ as ve,bK as ye,bL as be,bM as xe,bN as Se,bO as Ce,bP as we,bQ as Te,bR as Ee,bS as De,bT as Oe,bU as ke,bV as Ae,bW as je,bX as Me,bY as Ne,bZ as Pe,b_ as Fe,ba as Ie,bb as Le,bc as Re,bd as ze,be as Be,bf as Ve,bg as He,bh as Ue,bi as We,bj as Ge,bk as Ke,bl as qe,bm as Je,bn as Ye,bo as Xe,bp as Ze,bq as Qe,br as $e,bs as et,bt as P,bu as tt,bv as nt,bw as rt,bx as it,by as at,bz as ot,c$ as st,c0 as ct,c1 as lt,c2 as ut,c3 as dt,c4 as ft,c5 as pt,c6 as mt,c7 as ht,c8 as gt,c9 as _t,cA as vt,cB as yt,cC as bt,cD as xt,cE as St,cF as Ct,cG as wt,cH as Tt,cI as Et,cJ as Dt,cK as F,cL as Ot,cM as kt,cN as At,cO as jt,cP as Mt,cQ as Nt,cR as Pt,cS as Ft,cW as It,cZ as I,c_ as Lt,ca as Rt,cb as zt,cc as Bt,cd as Vt,ce as Ht,cf as Ut,cg as Wt,ch as Gt,ci as Kt,cj as qt,ck as Jt,cl as Yt,cm as Xt,cn as Zt,co as Qt,cp as $t,cq as en,cr as tn,cs as nn,ct as rn,cu as an,cv as on,cw as sn,cx as cn,cy as ln,cz as un,d0 as dn,d2 as fn,d3 as pn,d4 as mn,d6 as hn,d7 as gn,d8 as _n,d9 as vn,dA as L,dB as yn,dC as bn,dD as xn,dE as Sn,dF as Cn,dG as wn,dH as Tn,dI as En,dK as Dn,da as On,db as kn,dc as An,dd as R,df as z,dh as jn,di as Mn,dj as B,dk as Nn,dl as Pn,dm as V,dn as Fn,do as In,dq as Ln,dr as Rn,ds as zn,dt as Bn,du as H,dv as Vn,dw as Hn,dx as Un,dy as Wn,dz as U,q as Gn,r as Kn,t as qn,u as Jn,v as Yn,x as Xn,z as Zn}from"./index-DCvpfiHG.js";import{b as Qn}from"./import-url-browser-VKajNDYM.js";var $n=B({__name:`Range`,props:{modelValue:{},min:{default:0},max:{default:100},step:{default:1},disabled:{type:Boolean,default:!1}},emits:[`update:modelValue`,`mousedown`],setup(e,{emit:t}){let n=e,r=t,i=U(null);function a(e,t,n){return Math.min(Math.max(e,t),n)}function o(e){let t=e.toString();if(t.includes(`e-`))return Number.parseInt(t.split(`e-`)[1],10);let n=t.includes(`.`)?t.split(`.`)[1].length:0;return n}function s(e,t){let n=o(t),r=10**(n+3);return Number.parseFloat((e*r/r).toFixed(n))}let c=gn(()=>s(a(n.modelValue,n.min,n.max),n.step)),l=gn(()=>{let e=(c.value-n.min)/(n.max-n.min)*100;return{width:`${e}%`,backgroundSize:`${e}% 100%`}});function u(e){if(!i.value)return c.value;let t=i.value.getBoundingClientRect(),r=e.clientX-t.left,a=r/t.width,o=n.max-n.min,s=n.min+o*a,l=Math.round(s/n.step)*n.step;return Math.min(Math.max(l,n.min),n.max)}function d(e){if(n.disabled)return;let t=u(e);r(`update:modelValue`,t)}function f(e){if(n.disabled)return;e.preventDefault();let t=u(e);r(`update:modelValue`,t),window.addEventListener(`mousemove`,d),window.addEventListener(`mouseup`,p)}function p(e){window.removeEventListener(`mousemove`,d),window.removeEventListener(`mouseup`,p)}return In(()=>{window.removeEventListener(`mousemove`,d),window.removeEventListener(`mouseup`,p)}),(e,t)=>(z(),V(`span`,{ref_key:`sliderRef`,ref:i,class:Cn([`range-slider disabled:pointer-events-none disabled:cursor-default disabled:opacity-50`,{disabled:e.disabled}]),bg:`[#e6e1fc] dark:[#676085]`,"touch-action-none":``,relative:``,"inline-block":``,"w-full":``,"cursor-ew-resize":``,"rounded-sm":``,onMousedown:f},[I(`span`,{style:xn(l.value),bg:`[#cabeff] dark:[#4e34b9]`,relative:``,block:``,"rounded-sm":``,h:`[14px]`},null,4),I(`span`,{role:`slider`,class:`slider-thumb`,style:xn({left:`${(c.value-e.min)/(e.max-e.min)*100}%`}),absolute:``,"rounded-sm":``,w:`[1px]`,h:`[14px]`,bg:`neutral-100 dark:neutral-400`,top:`50%`,transform:`translate-x-[50%] translate-y-[-50%]`},null,4)],34))}}),er=$n,tr;(function(e){e[e.WEBGL_LEGACY=0]=`WEBGL_LEGACY`,e[e.WEBGL=1]=`WEBGL`,e[e.WEBGL2=2]=`WEBGL2`})(tr||={});var nr;(function(e){e[e.UNKNOWN=0]=`UNKNOWN`,e[e.WEBGL=1]=`WEBGL`,e[e.CANVAS=2]=`CANVAS`})(nr||={});var rr;(function(e){e[e.COLOR=16384]=`COLOR`,e[e.DEPTH=256]=`DEPTH`,e[e.STENCIL=1024]=`STENCIL`})(rr||={});var ir;(function(e){e[e.NORMAL=0]=`NORMAL`,e[e.ADD=1]=`ADD`,e[e.MULTIPLY=2]=`MULTIPLY`,e[e.SCREEN=3]=`SCREEN`,e[e.OVERLAY=4]=`OVERLAY`,e[e.DARKEN=5]=`DARKEN`,e[e.LIGHTEN=6]=`LIGHTEN`,e[e.COLOR_DODGE=7]=`COLOR_DODGE`,e[e.COLOR_BURN=8]=`COLOR_BURN`,e[e.HARD_LIGHT=9]=`HARD_LIGHT`,e[e.SOFT_LIGHT=10]=`SOFT_LIGHT`,e[e.DIFFERENCE=11]=`DIFFERENCE`,e[e.EXCLUSION=12]=`EXCLUSION`,e[e.HUE=13]=`HUE`,e[e.SATURATION=14]=`SATURATION`,e[e.COLOR=15]=`COLOR`,e[e.LUMINOSITY=16]=`LUMINOSITY`,e[e.NORMAL_NPM=17]=`NORMAL_NPM`,e[e.ADD_NPM=18]=`ADD_NPM`,e[e.SCREEN_NPM=19]=`SCREEN_NPM`,e[e.NONE=20]=`NONE`,e[e.SRC_OVER=0]=`SRC_OVER`,e[e.SRC_IN=21]=`SRC_IN`,e[e.SRC_OUT=22]=`SRC_OUT`,e[e.SRC_ATOP=23]=`SRC_ATOP`,e[e.DST_OVER=24]=`DST_OVER`,e[e.DST_IN=25]=`DST_IN`,e[e.DST_OUT=26]=`DST_OUT`,e[e.DST_ATOP=27]=`DST_ATOP`,e[e.ERASE=26]=`ERASE`,e[e.SUBTRACT=28]=`SUBTRACT`,e[e.XOR=29]=`XOR`})(ir||={});var ar;(function(e){e[e.POINTS=0]=`POINTS`,e[e.LINES=1]=`LINES`,e[e.LINE_LOOP=2]=`LINE_LOOP`,e[e.LINE_STRIP=3]=`LINE_STRIP`,e[e.TRIANGLES=4]=`TRIANGLES`,e[e.TRIANGLE_STRIP=5]=`TRIANGLE_STRIP`,e[e.TRIANGLE_FAN=6]=`TRIANGLE_FAN`})(ar||={});var W;(function(e){e[e.RGBA=6408]=`RGBA`,e[e.RGB=6407]=`RGB`,e[e.RG=33319]=`RG`,e[e.RED=6403]=`RED`,e[e.RGBA_INTEGER=36249]=`RGBA_INTEGER`,e[e.RGB_INTEGER=36248]=`RGB_INTEGER`,e[e.RG_INTEGER=33320]=`RG_INTEGER`,e[e.RED_INTEGER=36244]=`RED_INTEGER`,e[e.ALPHA=6406]=`ALPHA`,e[e.LUMINANCE=6409]=`LUMINANCE`,e[e.LUMINANCE_ALPHA=6410]=`LUMINANCE_ALPHA`,e[e.DEPTH_COMPONENT=6402]=`DEPTH_COMPONENT`,e[e.DEPTH_STENCIL=34041]=`DEPTH_STENCIL`})(W||={});var or;(function(e){e[e.TEXTURE_2D=3553]=`TEXTURE_2D`,e[e.TEXTURE_CUBE_MAP=34067]=`TEXTURE_CUBE_MAP`,e[e.TEXTURE_2D_ARRAY=35866]=`TEXTURE_2D_ARRAY`,e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]=`TEXTURE_CUBE_MAP_POSITIVE_X`,e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]=`TEXTURE_CUBE_MAP_NEGATIVE_X`,e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]=`TEXTURE_CUBE_MAP_POSITIVE_Y`,e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]=`TEXTURE_CUBE_MAP_NEGATIVE_Y`,e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]=`TEXTURE_CUBE_MAP_POSITIVE_Z`,e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]=`TEXTURE_CUBE_MAP_NEGATIVE_Z`})(or||={});var sr;(function(e){e[e.UNSIGNED_BYTE=5121]=`UNSIGNED_BYTE`,e[e.UNSIGNED_SHORT=5123]=`UNSIGNED_SHORT`,e[e.UNSIGNED_SHORT_5_6_5=33635]=`UNSIGNED_SHORT_5_6_5`,e[e.UNSIGNED_SHORT_4_4_4_4=32819]=`UNSIGNED_SHORT_4_4_4_4`,e[e.UNSIGNED_SHORT_5_5_5_1=32820]=`UNSIGNED_SHORT_5_5_5_1`,e[e.UNSIGNED_INT=5125]=`UNSIGNED_INT`,e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]=`UNSIGNED_INT_10F_11F_11F_REV`,e[e.UNSIGNED_INT_2_10_10_10_REV=33640]=`UNSIGNED_INT_2_10_10_10_REV`,e[e.UNSIGNED_INT_24_8=34042]=`UNSIGNED_INT_24_8`,e[e.UNSIGNED_INT_5_9_9_9_REV=35902]=`UNSIGNED_INT_5_9_9_9_REV`,e[e.BYTE=5120]=`BYTE`,e[e.SHORT=5122]=`SHORT`,e[e.INT=5124]=`INT`,e[e.FLOAT=5126]=`FLOAT`,e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]=`FLOAT_32_UNSIGNED_INT_24_8_REV`,e[e.HALF_FLOAT=36193]=`HALF_FLOAT`})(sr||={});var cr;(function(e){e[e.FLOAT=0]=`FLOAT`,e[e.INT=1]=`INT`,e[e.UINT=2]=`UINT`})(cr||={});var lr;(function(e){e[e.NEAREST=0]=`NEAREST`,e[e.LINEAR=1]=`LINEAR`})(lr||={});var ur;(function(e){e[e.CLAMP=33071]=`CLAMP`,e[e.REPEAT=10497]=`REPEAT`,e[e.MIRRORED_REPEAT=33648]=`MIRRORED_REPEAT`})(ur||={});var dr;(function(e){e[e.OFF=0]=`OFF`,e[e.POW2=1]=`POW2`,e[e.ON=2]=`ON`,e[e.ON_MANUAL=3]=`ON_MANUAL`})(dr||={});var fr;(function(e){e[e.NPM=0]=`NPM`,e[e.UNPACK=1]=`UNPACK`,e[e.PMA=2]=`PMA`,e[e.NO_PREMULTIPLIED_ALPHA=0]=`NO_PREMULTIPLIED_ALPHA`,e[e.PREMULTIPLY_ON_UPLOAD=1]=`PREMULTIPLY_ON_UPLOAD`,e[e.PREMULTIPLY_ALPHA=2]=`PREMULTIPLY_ALPHA`,e[e.PREMULTIPLIED_ALPHA=2]=`PREMULTIPLIED_ALPHA`})(fr||={});var pr;(function(e){e[e.NO=0]=`NO`,e[e.YES=1]=`YES`,e[e.AUTO=2]=`AUTO`,e[e.BLEND=0]=`BLEND`,e[e.CLEAR=1]=`CLEAR`,e[e.BLIT=2]=`BLIT`})(pr||={});var mr;(function(e){e[e.AUTO=0]=`AUTO`,e[e.MANUAL=1]=`MANUAL`})(mr||={});var hr;(function(e){e.LOW=`lowp`,e.MEDIUM=`mediump`,e.HIGH=`highp`})(hr||={});var gr;(function(e){e[e.NONE=0]=`NONE`,e[e.SCISSOR=1]=`SCISSOR`,e[e.STENCIL=2]=`STENCIL`,e[e.SPRITE=3]=`SPRITE`,e[e.COLOR=4]=`COLOR`})(gr||={});var _r;(function(e){e[e.RED=1]=`RED`,e[e.GREEN=2]=`GREEN`,e[e.BLUE=4]=`BLUE`,e[e.ALPHA=8]=`ALPHA`})(_r||={});var vr;(function(e){e[e.NONE=0]=`NONE`,e[e.LOW=2]=`LOW`,e[e.MEDIUM=4]=`MEDIUM`,e[e.HIGH=8]=`HIGH`})(vr||={});var yr;(function(e){e[e.ELEMENT_ARRAY_BUFFER=34963]=`ELEMENT_ARRAY_BUFFER`,e[e.ARRAY_BUFFER=34962]=`ARRAY_BUFFER`,e[e.UNIFORM_BUFFER=35345]=`UNIFORM_BUFFER`})(yr||={});var br={createCanvas:function(e,t){var n=document.createElement(`canvas`);return n.width=e,n.height=t,n},getWebGLRenderingContext:function(){return WebGLRenderingContext},getNavigator:function(){return navigator},getBaseUrl:function(){var e;return(e=document.baseURI)??window.location.href},fetch:function(e,t){return fetch(e,t)}},xr=/iPhone/i,Sr=/iPod/i,Cr=/iPad/i,wr=/\biOS-universal(?:.+)Mac\b/i,Tr=/\bAndroid(?:.+)Mobile\b/i,Er=/Android/i,Dr=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,Or=/Silk/i,kr=/Windows Phone/i,Ar=/\bWindows(?:.+)ARM\b/i,jr=/BlackBerry/i,Mr=/BB10/i,Nr=/Opera Mini/i,Pr=/\b(CriOS|Chrome)(?:.+)Mobile/i,Fr=/Mobile(?:.+)Firefox\b/i,Ir=function(e){return e!==void 0&&e.platform===`MacIntel`&&typeof e.maxTouchPoints==`number`&&e.maxTouchPoints>1&&typeof MSStream>`u`};function Lr(e){return function(t){return t.test(e)}}function Rr(e){var t={userAgent:``,platform:``,maxTouchPoints:0};!e&&typeof navigator<`u`?t={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof e==`string`?t.userAgent=e:e&&e.userAgent&&(t={userAgent:e.userAgent,platform:e.platform,maxTouchPoints:e.maxTouchPoints||0});var n=t.userAgent,r=n.split(`[FBAN`);r[1]!==void 0&&(n=r[0]),r=n.split(`Twitter`),r[1]!==void 0&&(n=r[0]);var i=Lr(n),a={apple:{phone:i(xr)&&!i(kr),ipod:i(Sr),tablet:!i(xr)&&(i(Cr)||Ir(t))&&!i(kr),universal:i(wr),device:(i(xr)||i(Sr)||i(Cr)||i(wr)||Ir(t))&&!i(kr)},amazon:{phone:i(Dr),tablet:!i(Dr)&&i(Or),device:i(Dr)||i(Or)},android:{phone:!i(kr)&&i(Dr)||!i(kr)&&i(Tr),tablet:!i(kr)&&!i(Dr)&&!i(Tr)&&(i(Or)||i(Er)),device:!i(kr)&&(i(Dr)||i(Or)||i(Tr)||i(Er))||i(/\bokhttp\b/i)},windows:{phone:i(kr),tablet:i(Ar),device:i(kr)||i(Ar)},other:{blackberry:i(jr),blackberry10:i(Mr),opera:i(Nr),firefox:i(Fr),chrome:i(Pr),device:i(jr)||i(Mr)||i(Nr)||i(Fr)||i(Pr)},any:!1,phone:!1,tablet:!1};return a.any=a.apple.device||a.android.device||a.windows.device||a.other.device,a.phone=a.apple.phone||a.android.phone||a.windows.phone,a.tablet=a.apple.tablet||a.android.tablet||a.windows.tablet,a}var zr=Rr(globalThis.navigator);function Br(){return!zr.apple.device}function Vr(e){var t=!0;if(zr.tablet||zr.phone){if(zr.apple.device){var n=navigator.userAgent.match(/OS (\d+)_(\d+)?/);if(n){var r=parseInt(n[1],10);r<11&&(t=!1)}}if(zr.android.device){var n=navigator.userAgent.match(/Android\s([0-9.]*)/);if(n){var r=parseInt(n[1],10);r<7&&(t=!1)}}}return t?e:4}var G={ADAPTER:br,MIPMAP_TEXTURES:dr.POW2,ANISOTROPIC_LEVEL:0,RESOLUTION:1,FILTER_RESOLUTION:1,FILTER_MULTISAMPLE:vr.NONE,SPRITE_MAX_TEXTURES:Vr(32),SPRITE_BATCH_SIZE:4096,RENDER_OPTIONS:{view:null,width:800,height:600,autoDensity:!1,backgroundColor:0,backgroundAlpha:1,useContextAlpha:!0,clearBeforeRender:!0,antialias:!1,preserveDrawingBuffer:!1},GC_MODE:mr.AUTO,GC_MAX_IDLE:60*60,GC_MAX_CHECK_COUNT:60*10,WRAP_MODE:ur.CLAMP,SCALE_MODE:lr.LINEAR,PRECISION_VERTEX:hr.HIGH,PRECISION_FRAGMENT:zr.apple.device?hr.HIGH:hr.MEDIUM,CAN_UPLOAD_SAME_BUFFER:Br(),CREATE_IMAGE_BITMAP:!1,ROUND_PIXELS:!1},Hr=wn((exports,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i{t.exports=n,t.exports.default=n;function n(e,t,n){n||=2;var i=t&&t.length,o=i?t[0]*n:e.length,s=r(e,0,o,n,!0),c=[];if(!s||s.next===s.prev)return c;var l,d,f,p,m,h,g;if(i&&(s=u(e,t,s,n)),e.length>80*n){l=f=e[0],d=p=e[1];for(var _=n;_f&&(f=m),h>p&&(p=h);g=Math.max(f-l,p-d),g=g===0?0:32767/g}return a(s,c,n,l,d,g,0),c}function r(e,t,n,r,i){var a,o;if(i===A(e,t,n,r)>0)for(a=t;a=t;a-=r)o=te(a,e[a],e[a+1],o);return o&&S(o,o.next)&&(ne(o),o=o.next),o}function i(e,t){if(!e)return e;t||=e;var n=e,r;do if(r=!1,!n.steiner&&(S(n,n.next)||x(n.prev,n,n.next)===0)){if(ne(n),n=t=n.prev,n===n.next)break;r=!0}else n=n.next;while(r||n!==t);return t}function a(e,t,n,r,u,d,f){if(e){!f&&d&&h(e,r,u,d);for(var p=e,m,g;e.prev!==e.next;){if(m=e.prev,g=e.next,d?s(e,r,u,d):o(e)){t.push(m.i/n|0),t.push(e.i/n|0),t.push(g.i/n|0),ne(e),e=g.next,p=g.next;continue}if(e=g,e===p){f?f===1?(e=c(i(e),t,n),a(e,t,n,r,u,d,2)):f===2&&l(e,t,n,r,u,d):a(i(e),t,n,r,u,d,1);break}}}}function o(e){var t=e.prev,n=e,r=e.next;if(x(t,n,r)>=0)return!1;for(var i=t.x,a=n.x,o=r.x,s=t.y,c=n.y,l=r.y,u=ia?i>o?i:o:a>o?a:o,p=s>c?s>l?s:l:c>l?c:l,m=r.next;m!==t;){if(m.x>=u&&m.x<=f&&m.y>=d&&m.y<=p&&y(i,s,a,c,o,l,m.x,m.y)&&x(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function s(e,t,n,r){var i=e.prev,a=e,o=e.next;if(x(i,a,o)>=0)return!1;for(var s=i.x,c=a.x,l=o.x,u=i.y,d=a.y,f=o.y,p=sc?s>l?s:l:c>l?c:l,g=u>d?u>f?u:f:d>f?d:f,v=_(p,m,t,n,r),b=_(h,g,t,n,r),S=e.prevZ,C=e.nextZ;S&&S.z>=v&&C&&C.z<=b;){if(S.x>=p&&S.x<=h&&S.y>=m&&S.y<=g&&S!==i&&S!==o&&y(s,u,c,d,l,f,S.x,S.y)&&x(S.prev,S,S.next)>=0||(S=S.prevZ,C.x>=p&&C.x<=h&&C.y>=m&&C.y<=g&&C!==i&&C!==o&&y(s,u,c,d,l,f,C.x,C.y)&&x(C.prev,C,C.next)>=0))return!1;C=C.nextZ}for(;S&&S.z>=v;){if(S.x>=p&&S.x<=h&&S.y>=m&&S.y<=g&&S!==i&&S!==o&&y(s,u,c,d,l,f,S.x,S.y)&&x(S.prev,S,S.next)>=0)return!1;S=S.prevZ}for(;C&&C.z<=b;){if(C.x>=p&&C.x<=h&&C.y>=m&&C.y<=g&&C!==i&&C!==o&&y(s,u,c,d,l,f,C.x,C.y)&&x(C.prev,C,C.next)>=0)return!1;C=C.nextZ}return!0}function c(e,t,n){var r=e;do{var a=r.prev,o=r.next.next;!S(a,o)&&C(a,r,r.next,o)&&D(a,o)&&D(o,a)&&(t.push(a.i/n|0),t.push(r.i/n|0),t.push(o.i/n|0),ne(r),ne(r.next),r=e=o),r=r.next}while(r!==e);return i(r)}function l(e,t,n,r,o,s){var c=e;do{for(var l=c.next.next;l!==c.prev;){if(c.i!==l.i&&b(c,l)){var u=ee(c,l);c=i(c,c.next),u=i(u,u.next),a(c,t,n,r,o,s,0),a(u,t,n,r,o,s,0);return}l=l.next}c=c.next}while(c!==e)}function u(e,t,n,i){var a=[],o,s,c,l,u;for(o=0,s=t.length;o=n.next.y&&n.next.y!==n.y){var s=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=r&&s>a&&(a=s,o=n.x=n.x&&n.x>=l&&r!==n.x&&y(io.x||n.x===o.x&&m(o,n)))&&(o=n,d=f)),n=n.next;while(n!==c);return o}function m(e,t){return x(e.prev,e,t.prev)<0&&x(t.next,e,e.next)<0}function h(e,t,n,r){var i=e;do i.z===0&&(i.z=_(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,g(i)}function g(e){var t,n,r,i,a,o,s,c,l=1;do{for(n=e,e=null,a=null,o=0;n;){for(o++,r=n,s=0,t=0;t0||c>0&&r;)s!==0&&(c===0||!r||n.z<=r.z)?(i=n,n=n.nextZ,s--):(i=r,r=r.nextZ,c--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;n=r}a.nextZ=null,l*=2}while(o>1);return e}function _(e,t,n,r,i){return e=(e-n)*i|0,t=(t-r)*i|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function v(e){var t=e,n=e;do(t.x=(e-o)*(a-s)&&(e-o)*(r-s)>=(n-o)*(t-s)&&(n-o)*(a-s)>=(i-o)*(r-s)}function b(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!E(e,t)&&(D(e,t)&&D(t,e)&&O(e,t)&&(x(e.prev,e,t.prev)||x(e,t.prev,t))||S(e,t)&&x(e.prev,e,e.next)>0&&x(t.prev,t,t.next)>0)}function x(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function S(e,t){return e.x===t.x&&e.y===t.y}function C(e,t,n,r){var i=T(x(e,t,n)),a=T(x(e,t,r)),o=T(x(n,r,e)),s=T(x(n,r,t));return!!(i!==a&&o!==s||i===0&&w(e,n,t)||a===0&&w(e,r,t)||o===0&&w(n,e,r)||s===0&&w(n,t,r))}function w(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function T(e){return e>0?1:e<0?-1:0}function E(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&C(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function D(e,t){return x(e.prev,e,e.next)<0?x(e,t,e.next)>=0&&x(e,e.prev,t)>=0:x(e,t,e.prev)<0||x(e,e.next,t)<0}function O(e,t){var n=e,r=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do n.y>a!=n.next.y>a&&n.next.y!==n.y&&i<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next;while(n!==e);return r}function ee(e,t){var n=new k(e.i,e.x,e.y),r=new k(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function te(e,t,n,r){var i=new k(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function ne(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function k(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}n.deviation=function(e,t,n,r){var i=t&&t.length,a=i?t[0]*n:e.length,o=Math.abs(A(e,0,a,n));if(i)for(var s=0,c=t.length;s0&&(r+=e[i-1].length,n.holes.push(r))}return n}}),Wr=wn((exports,t)=>{(function(n){var r=typeof exports==`object`&&exports&&!exports.nodeType&&exports,i=typeof t==`object`&&t&&!t.nodeType&&t,a=typeof global==`object`&&global;(a.global===a||a.window===a||a.self===a)&&(n=a);var o,s=2147483647,c=36,l=1,u=26,d=38,f=700,p=72,m=128,h=`-`,g=/^xn--/,_=/[^\x20-\x7E]/,v=/[\x2E\u3002\uFF0E\uFF61]/g,y={overflow:`Overflow: input needs wider integers to process`,"not-basic":`Illegal input >= 0x80 (not a basic code point)`,"invalid-input":`Invalid input`},b=c-l,x=Math.floor,S=String.fromCharCode,C;function w(e){throw RangeError(y[e])}function T(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function E(e,t){var n=e.split(`@`),r=``;n.length>1&&(r=n[0]+`@`,e=n[1]),e=e.replace(v,`.`);var i=e.split(`.`),a=T(i,t).join(`.`);return r+a}function D(e){for(var t=[],n=0,r=e.length,i,a;n=55296&&i<=56319&&n65535&&(e-=65536,t+=S(e>>>10&1023|55296),e=56320|e&1023),t+=S(e),t}).join(``)}function ee(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:c}function te(e,t){return e+22+75*(e<26)-((t!=0)<<5)}function ne(e,t,n){var r=0;for(e=n?x(e/f):e>>1,e+=x(e/t);e>b*u>>1;r+=c)e=x(e/b);return x(r+(b+1)*e/(e+d))}function k(e){var t=[],n=e.length,r,i=0,a=m,o=p,d,f,g,_,v,y,b,S,C;for(d=e.lastIndexOf(h),d<0&&(d=0),f=0;f=128&&w(`not-basic`),t.push(e.charCodeAt(f));for(g=d>0?d+1:0;g=n&&w(`invalid-input`),b=ee(e.charCodeAt(g++)),(b>=c||b>x((s-i)/v))&&w(`overflow`),i+=b*v,S=y<=o?l:y>=o+u?u:y-o,!(bx(s/C)&&w(`overflow`),v*=C;r=t.length+1,o=ne(i-_,r,_==0),x(i/r)>s-a&&w(`overflow`),a+=x(i/r),i%=r,t.splice(i++,0,a)}return O(t)}function A(e){var t,n,r,i,a,o,d,f,g,_,v,y=[],b,C,T,E;for(e=D(e),b=e.length,t=m,n=0,a=p,o=0;o=t&&vx((s-n)/C)&&w(`overflow`),n+=(d-t)*C,t=d,o=0;os&&w(`overflow`),v==t){for(f=n,g=c;_=g<=a?l:g>=a+u?u:g-a,!(f<_);g+=c)E=f-_,T=c-_,y.push(S(te(_+E%T,0))),f=x(E/T);y.push(S(te(f,0))),a=ne(n,C,r==i),n=0,++r}++n,++t}return y.join(``)}function re(e){return E(e,function(e){return g.test(e)?k(e.slice(4).toLowerCase()):e})}function j(e){return E(e,function(e){return _.test(e)?`xn--`+A(e):e})}if(o={version:`1.4.1`,ucs2:{decode:D,encode:O},decode:k,encode:A,toASCII:j,toUnicode:re},typeof define==`function`&&typeof define.amd==`object`&&define.amd)define(`punycode`,function(){return o});else if(r&&i)if(t.exports==r)i.exports=o;else for(C in o)o.hasOwnProperty(C)&&(r[C]=o[C]);else n.punycode=o})(exports)}),Gr=wn((exports,t)=>{Object.defineProperty(exports,`__esModule`,{value:!0});function n(){let e,t,n=n=>{if(n&&(typeof n==`object`||typeof n==`function`)){if(e)return e.get(n)}else if(t)return t.get(n)},r=(n,r)=>{n&&(typeof n==`object`||typeof n==`function`)?(e||=new WeakMap,e.set(n,r)):(t||=new Map,t.set(n,r))},i=n=>{if(n&&(typeof n==`object`||typeof n==`function`)){if(e)return e.has(n)}else if(t)return t.has(n);return!1},a=e=>{if(!i(e))throw TypeError(`Side channel does not contain the given key`)};return{get:n,set:r,has:i,assert:a}}exports.default=n,(typeof exports.default==`object`&&exports.default!==null||typeof exports.default==`function`)&&(Object.assign(exports.default,exports),t.exports=exports.default)}),Kr=wn((exports,t)=>{var n=String.prototype.replace,r=/%20/g,i={RFC1738:`RFC1738`,RFC3986:`RFC3986`};t.exports={default:i.RFC3986,formatters:{RFC1738:function(e){return n.call(e,r,`+`)},RFC3986:function(e){return String(e)}},RFC1738:i.RFC1738,RFC3986:i.RFC3986}}),qr=wn((exports,t)=>{var n=Kr(),r=Object.prototype.hasOwnProperty,i=Array.isArray,a=function(){for(var e=[],t=0;t<256;++t)e.push(`%`+((t<16?`0`:``)+t.toString(16)).toUpperCase());return e}(),o=function(e){for(;e.length>1;){var t=e.pop(),n=t.obj[t.prop];if(i(n)){for(var r=[],a=0;a=d?s.slice(l,l+d):s,f=[],p=0;p=48&&m<=57||m>=65&&m<=90||m>=97&&m<=122||o===n.RFC1738&&(m===40||m===41)){f[f.length]=u.charAt(p);continue}if(m<128){f[f.length]=a[m];continue}if(m<2048){f[f.length]=a[192|m>>6]+a[128|m&63];continue}if(m<55296||m>=57344){f[f.length]=a[224|m>>12]+a[128|m>>6&63]+a[128|m&63];continue}p+=1,m=65536+((m&1023)<<10|u.charCodeAt(p)&1023),f[f.length]=a[240|m>>18]+a[128|m>>12&63]+a[128|m>>6&63]+a[128|m&63]}c+=f.join(``)}return c},p=function(e){for(var t=[{obj:{o:e},prop:`o`}],n=[],r=0;r{var n=Gr(),r=qr(),i=Kr(),a=Object.prototype.hasOwnProperty,o={brackets:function(e){return e+`[]`},comma:`comma`,indices:function(e,t){return e+`[`+t+`]`},repeat:function(e){return e}},s=Array.isArray,c=Array.prototype.push,l=function(e,t){c.apply(e,s(t)?t:[t])},u=Date.prototype.toISOString,d=i.default,f={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:`indices`,charset:`utf-8`,charsetSentinel:!1,commaRoundTrip:!1,delimiter:`&`,encode:!0,encodeDotInKeys:!1,encoder:r.encode,encodeValuesOnly:!1,filter:void 0,format:d,formatter:i.formatters[d],indices:!1,serializeDate:function(e){return u.call(e)},skipNulls:!1,strictNullHandling:!1},p=function(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`symbol`||typeof e==`bigint`},m={},h=function e(t,i,a,o,c,u,d,h,g,_,v,y,b,x,S,C,w,T){for(var E=t,D=T,O=0,ee=!1;(D=D.get(m))!==void 0&&!ee;){var te=D.get(t);if(O+=1,te!==void 0){if(te===O)throw RangeError(`Cyclic object value`);ee=!0}D.get(m)===void 0&&(O=0)}if(typeof _==`function`?E=_(i,E):E instanceof Date?E=b(E):a===`comma`&&s(E)&&(E=r.maybeMap(E,function(e){return e instanceof Date?b(e):e})),E===null){if(u)return g&&!C?g(i,f.encoder,w,`key`,x):i;E=``}if(p(E)||r.isBuffer(E)){if(g){var ne=C?i:g(i,f.encoder,w,`key`,x);return[S(ne)+`=`+S(g(E,f.encoder,w,`value`,x))]}return[S(i)+`=`+S(String(E))]}var k=[];if(E===void 0)return k;var A;if(a===`comma`&&s(E))C&&g&&(E=r.maybeMap(E,g)),A=[{value:E.length>0?E.join(`,`)||null:void 0}];else if(s(_))A=_;else{var re=Object.keys(E);A=v?re.sort(v):re}var j=h?String(i).replace(/\./g,`%2E`):String(i),ie=o&&s(E)&&E.length===1?j+`[]`:j;if(c&&s(E)&&E.length===0)return ie+`[]`;for(var ae=0;ae0?b+y:``}}),Yr=wn((exports,t)=>{var n=qr(),r=Object.prototype.hasOwnProperty,i=Array.isArray,a={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:`utf-8`,charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:n.decode,delimiter:`&`,depth:5,duplicates:`combine`,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},o=function(e){return e.replace(/&#(\d+);/g,function(e,t){return String.fromCharCode(parseInt(t,10))})},s=function(e,t,n){if(e&&typeof e==`string`&&t.comma&&e.indexOf(`,`)>-1)return e.split(`,`);if(t.throwOnLimitExceeded&&n>=t.arrayLimit)throw RangeError(`Array limit exceeded. Only `+t.arrayLimit+` element`+(t.arrayLimit===1?``:`s`)+` allowed in an array.`);return e},c=`utf8=%26%2310003%3B`,l=`utf8=%E2%9C%93`,u=function(e,t){var u={__proto__:null},d=t.ignoreQueryPrefix?e.replace(/^\?/,``):e;d=d.replace(/%5B/gi,`[`).replace(/%5D/gi,`]`);var f=t.parameterLimit===1/0?void 0:t.parameterLimit,p=d.split(t.delimiter,t.throwOnLimitExceeded?f+1:f);if(t.throwOnLimitExceeded&&p.length>f)throw RangeError(`Parameter limit exceeded. Only `+f+` parameter`+(f===1?``:`s`)+` allowed.`);var m=-1,h,g=t.charset;if(t.charsetSentinel)for(h=0;h-1&&(x=i(x)?[x]:x);var S=r.call(u,b);S&&t.duplicates===`combine`?u[b]=n.combine(u[b],x):(!S||t.duplicates===`last`)&&(u[b]=x)}return u},d=function(e,t,r,i){var a=0;if(e.length>0&&e[e.length-1]===`[]`){var o=e.slice(0,-1).join(``);a=Array.isArray(t)&&t[o]?t[o].length:0}for(var c=i?t:s(t,r,a),l=e.length-1;l>=0;--l){var u,d=e[l];if(d===`[]`&&r.parseArrays)u=r.allowEmptyArrays&&(c===``||r.strictNullHandling&&c===null)?[]:n.combine([],c);else{u=r.plainObjects?{__proto__:null}:{};var f=d.charAt(0)===`[`&&d.charAt(d.length-1)===`]`?d.slice(1,-1):d,p=r.decodeDotInKeys?f.replace(/%2E/g,`.`):f,m=parseInt(p,10);!r.parseArrays&&p===``?u={0:c}:!isNaN(m)&&d!==p&&String(m)===p&&m>=0&&r.parseArrays&&m<=r.arrayLimit?(u=[],u[m]=c):p!==`__proto__`&&(u[p]=c)}c=u}return c},f=function(e,t,n,i){if(e){var a=n.allowDots?e.replace(/\.([^.[]+)/g,`[$1]`):e,o=/(\[[^[\]]*])/,s=/(\[[^[\]]*])/g,c=n.depth>0&&o.exec(a),l=c?a.slice(0,c.index):a,u=[];if(l){if(!n.plainObjects&&r.call(Object.prototype,l)&&!n.allowPrototypes)return;u.push(l)}for(var f=0;n.depth>0&&(c=s.exec(a))!==null&&f{var n=Jr(),r=Yr(),i=Kr();t.exports={formats:i,parse:r,stringify:n}}),Zr=wn(exports=>{var t=Wr();function n(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var r=/^([a-z0-9.+-]+:)/i,i=/:[0-9]*$/,a=/^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/,o=[`<`,`>`,`"`,"`",` `,`\r`,` +`,` `],s=[`{`,`}`,`|`,`\\`,`^`,"`"].concat(o),c=[`'`].concat(s),l=[`%`,`/`,`?`,`;`,`#`].concat(c),u=[`/`,`?`,`#`],d=255,f=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},h={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},_=Xr();function v(e,t,r){if(e&&typeof e==`object`&&e instanceof n)return e;var i=new n;return i.parse(e,t,r),i}n.prototype.parse=function(e,n,i){if(typeof e!=`string`)throw TypeError(`Parameter 'url' must be a string, not `+typeof e);var o=e.indexOf(`?`),s=o!==-1&&o127?re+=`x`:re+=A[j];if(!re.match(f)){var ae=ne.slice(0,E),oe=ne.slice(E+1),se=A.match(p);se&&(ae.push(se[1]),oe.unshift(se[2])),oe.length&&(b=`/`+oe.join(`.`)+b),this.hostname=ae.join(`.`);break}}}this.hostname.length>d?this.hostname=``:this.hostname=this.hostname.toLowerCase(),te||(this.hostname=t.toASCII(this.hostname));var M=this.port?`:`+this.port:``,ce=this.hostname||``;this.host=ce+M,this.href+=this.host,te&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),b[0]!==`/`&&(b=`/`+b))}if(!m[C])for(var E=0,k=c.length;E0?r.host.split(`@`):!1;w&&(r.auth=w.shift(),r.hostname=w.shift(),r.host=r.hostname)}return r.search=e.search,r.query=e.query,(r.pathname!==null||r.search!==null)&&(r.path=(r.pathname?r.pathname:``)+(r.search?r.search:``)),r.href=r.format(),r}if(!S.length)return r.pathname=null,r.search?r.path=`/`+r.search:r.path=null,r.href=r.format(),r;for(var T=S.slice(-1)[0],E=(r.host||e.host||S.length>1)&&(T===`.`||T===`..`)||T===``,D=0,O=S.length;O>=0;O--)T=S[O],T===`.`?S.splice(O,1):T===`..`?(S.splice(O,1),D++):D&&(S.splice(O,1),D--);if(!b&&!x)for(;D--;)S.unshift(`..`);b&&S[0]!==``&&(!S[0]||S[0].charAt(0)!==`/`)&&S.unshift(``),E&&S.join(`/`).substr(-1)!==`/`&&S.push(``);var ee=S[0]===``||S[0]&&S[0].charAt(0)===`/`;if(C){r.hostname=ee?``:S.length?S.shift():``,r.host=r.hostname;var w=r.host&&r.host.indexOf(`@`)>0?r.host.split(`@`):!1;w&&(r.auth=w.shift(),r.hostname=w.shift(),r.host=r.hostname)}return b||=r.host&&S.length,b&&!ee&&S.unshift(``),S.length>0?r.pathname=S.join(`/`):(r.pathname=null,r.path=null),(r.pathname!==null||r.search!==null)&&(r.path=(r.pathname?r.pathname:``)+(r.search?r.search:``)),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},n.prototype.parseHost=function(){var e=this.host,t=i.exec(e);t&&(t=t[0],t!==`:`&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},exports.parse=v,exports.resolve=b,exports.format=y}),Qr=Dn(Hr(),1),$r=Dn(Ur(),1),ei=Dn(Zr(),1),ti={parse:ei.parse,format:ei.format,resolve:ei.resolve};G.RETINA_PREFIX=/@([0-9\.]+)x/,G.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT=!1;var ni=!1,ri=`6.5.10`;function ii(e){var t;if(!ni){if(G.ADAPTER.getNavigator().userAgent.toLowerCase().indexOf(`chrome`)>-1){var n=[` + %c %c %c PixiJS `+ri+` - ✰ `+e+` ✰ %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ + +`,`background: #ff66a5; padding:5px 0;`,`background: #ff66a5; padding:5px 0;`,`color: #ff66a5; background: #030307; padding:5px 0;`,`background: #ff66a5; padding:5px 0;`,`background: #ffc3dc; padding:5px 0;`,`background: #ff66a5; padding:5px 0;`,`color: #ff2424; background: #fff; padding:5px 0;`,`color: #ff2424; background: #fff; padding:5px 0;`,`color: #ff2424; background: #fff; padding:5px 0;`];(t=globalThis.console).log.apply(t,n)}else globalThis.console&&globalThis.console.log(`PixiJS `+ri+` - `+e+` - http://www.pixijs.com/`);ni=!0}}var ai;function oi(){return ai===void 0&&(ai=function(){var e={stencil:!0,failIfMajorPerformanceCaveat:G.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT};try{if(!G.ADAPTER.getWebGLRenderingContext())return!1;var t=G.ADAPTER.createCanvas(),n=t.getContext(`webgl`,e)||t.getContext(`experimental-webgl`,e),r=!!(n&&n.getContextAttributes().stencil);if(n){var i=n.getExtension(`WEBGL_lose_context`);i&&i.loseContext()}return n=null,r}catch{return!1}}()),ai}function si(e,t){return t===void 0&&(t=[]),t[0]=(e>>16&255)/255,t[1]=(e>>8&255)/255,t[2]=(e&255)/255,t}function ci(e){var t=e.toString(16);return t=`000000`.substring(0,6-t.length)+t,`#`+t}function li(e){return(e[0]*255<<16)+(e[1]*255<<8)+(e[2]*255|0)}function ui(){for(var e=[],t=[],n=0;n<32;n++)e[n]=n,t[n]=n;e[ir.NORMAL_NPM]=ir.NORMAL,e[ir.ADD_NPM]=ir.ADD,e[ir.SCREEN_NPM]=ir.SCREEN,t[ir.NORMAL]=ir.NORMAL_NPM,t[ir.ADD]=ir.ADD_NPM,t[ir.SCREEN]=ir.SCREEN_NPM;var r=[];return r.push(t),r.push(e),r}var di=ui();function fi(e,t){if(t===1)return(t*255<<24)+e;if(t===0)return 0;var n=e>>16&255,r=e>>8&255,i=e&255;return n=n*t+.5|0,r=r*t+.5|0,i=i*t+.5|0,(t*255<<24)+(n<<16)+(r<<8)+i}function pi(e){if(e.BYTES_PER_ELEMENT===4)return e instanceof Float32Array?`Float32Array`:e instanceof Uint32Array?`Uint32Array`:`Int32Array`;if(e.BYTES_PER_ELEMENT===2){if(e instanceof Uint16Array)return`Uint16Array`}else if(e.BYTES_PER_ELEMENT===1&&e instanceof Uint8Array)return`Uint8Array`;return null}function mi(e){return e+=e===0?1:0,--e,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+1}function hi(e){return!(e&e-1)&&!!e}function gi(e){var t=(e>65535?1:0)<<4;e>>>=t;var n=(e>255?1:0)<<3;return e>>>=n,t|=n,n=(e>15?1:0)<<2,e>>>=n,t|=n,n=(e>3?1:0)<<1,e>>>=n,t|=n,t|e>>1}function _i(e,t,n){var r=e.length,i;if(!(t>=r||n===0)){n=t+n>r?r-t:n;var a=r-n;for(i=t;i8)throw Error(`max arguments reached`);var c=this,l=c.name,u=c.items;this._aliasCount++;for(var d=0,f=u.length;d0&&this.items.length>1&&(this._aliasCount=0,this.items=this.items.slice(0))},e.prototype.add=function(e){return e[this._name]&&(this.ensureNonAliasedItems(),this.remove(e),this.items.push(e)),this},e.prototype.remove=function(e){var t=this.items.indexOf(e);return t!==-1&&(this.ensureNonAliasedItems(),this.items.splice(t,1)),this},e.prototype.contains=function(e){return this.items.indexOf(e)!==-1},e.prototype.removeAll=function(){return this.ensureNonAliasedItems(),this.items.length=0,this},e.prototype.destroy=function(){this.removeAll(),this.items=null,this._name=null},Object.defineProperty(e.prototype,`empty`,{get:function(){return this.items.length===0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`name`,{get:function(){return this._name},enumerable:!1,configurable:!0}),e}();Object.defineProperties(Ni.prototype,{dispatch:{value:Ni.prototype.emit},run:{value:Ni.prototype.emit}}),G.TARGET_FPMS=.06;var Pi;(function(e){e[e.INTERACTION=50]=`INTERACTION`,e[e.HIGH=25]=`HIGH`,e[e.NORMAL=0]=`NORMAL`,e[e.LOW=-25]=`LOW`,e[e.UTILITY=-50]=`UTILITY`})(Pi||={});var Fi=function(){function e(e,t,n,r){t===void 0&&(t=null),n===void 0&&(n=0),r===void 0&&(r=!1),this.next=null,this.previous=null,this._destroyed=!1,this.fn=e,this.context=t,this.priority=n,this.once=r}return e.prototype.match=function(e,t){return t===void 0&&(t=null),this.fn===e&&this.context===t},e.prototype.emit=function(e){this.fn&&(this.context?this.fn.call(this.context,e):this.fn(e));var t=this.next;return this.once&&this.destroy(!0),this._destroyed&&(this.next=null),t},e.prototype.connect=function(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this},e.prototype.destroy=function(e){e===void 0&&(e=!1),this._destroyed=!0,this.fn=null,this.context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);var t=this.next;return this.next=e?null:t,this.previous=null,t},e}(),Ii=function(){function e(){var e=this;this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new Fi(null,null,1/0),this.deltaMS=1/G.TARGET_FPMS,this.elapsedMS=1/G.TARGET_FPMS,this._tick=function(t){e._requestId=null,e.started&&(e.update(t),e.started&&e._requestId===null&&e._head.next&&(e._requestId=requestAnimationFrame(e._tick)))}}return e.prototype._requestIfNeeded=function(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))},e.prototype._cancelIfNeeded=function(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)},e.prototype._startIfPossible=function(){this.started?this._requestIfNeeded():this.autoStart&&this.start()},e.prototype.add=function(e,t,n){return n===void 0&&(n=Pi.NORMAL),this._addListener(new Fi(e,t,n))},e.prototype.addOnce=function(e,t,n){return n===void 0&&(n=Pi.NORMAL),this._addListener(new Fi(e,t,n,!0))},e.prototype._addListener=function(e){var t=this._head.next,n=this._head;if(!t)e.connect(n);else{for(;t;){if(e.priority>t.priority){e.connect(n);break}n=t,t=t.next}e.previous||e.connect(n)}return this._startIfPossible(),this},e.prototype.remove=function(e,t){for(var n=this._head.next;n;)n=n.match(e,t)?n.destroy():n.next;return this._head.next||this._cancelIfNeeded(),this},Object.defineProperty(e.prototype,`count`,{get:function(){if(!this._head)return 0;for(var e=0,t=this._head;t=t.next;)e++;return e},enumerable:!1,configurable:!0}),e.prototype.start=function(){this.started||(this.started=!0,this._requestIfNeeded())},e.prototype.stop=function(){this.started&&(this.started=!1,this._cancelIfNeeded())},e.prototype.destroy=function(){if(!this._protected){this.stop();for(var e=this._head.next;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}},e.prototype.update=function(e){e===void 0&&(e=performance.now());var t;if(e>this.lastTime){if(t=this.elapsedMS=e-this.lastTime,t>this._maxElapsedMS&&(t=this._maxElapsedMS),t*=this.speed,this._minElapsedMS){var n=e-this._lastFrame|0;if(n=this.x&&e=this.y&&te.right?e.right:this.right;if(r<=n)return!1;var i=this.ye.bottom?e.bottom:this.bottom;return a>i}var o=this.left,s=this.right,c=this.top,l=this.bottom;if(s<=o||l<=c)return!1;var u=Ui[0].set(e.left,e.top),d=Ui[1].set(e.left,e.bottom),f=Ui[2].set(e.right,e.top),p=Ui[3].set(e.right,e.bottom);if(f.x<=u.x||d.y<=u.y)return!1;var m=Math.sign(t.a*t.d-t.b*t.c);if(m===0||(t.apply(u,u),t.apply(d,d),t.apply(f,f),t.apply(p,p),Math.max(u.x,d.x,f.x,p.x)<=o||Math.min(u.x,d.x,f.x,p.x)>=s||Math.max(u.y,d.y,f.y,p.y)<=c||Math.min(u.y,d.y,f.y,p.y)>=l))return!1;var h=m*(d.y-u.y),g=m*(u.x-d.x),_=h*o+g*c,v=h*s+g*c,y=h*o+g*l,b=h*s+g*l;if(Math.max(_,v,y,b)<=h*u.x+g*u.y||Math.min(_,v,y,b)>=h*p.x+g*p.y)return!1;var x=m*(u.y-f.y),S=m*(f.x-u.x),C=x*o+S*c,w=x*s+S*c,T=x*o+S*l,E=x*s+S*l;return!(Math.max(C,w,T,E)<=x*u.x+S*u.y||Math.min(C,w,T,E)>=x*p.x+S*p.y)},e.prototype.pad=function(e,t){return e===void 0&&(e=0),t===void 0&&(t=e),this.x-=e,this.y-=t,this.width+=e*2,this.height+=t*2,this},e.prototype.fit=function(e){var t=Math.max(this.x,e.x),n=Math.min(this.x+this.width,e.x+e.width),r=Math.max(this.y,e.y),i=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(n-t,0),this.y=r,this.height=Math.max(i-r,0),this},e.prototype.ceil=function(e,t){e===void 0&&(e=1),t===void 0&&(t=.001);var n=Math.ceil((this.x+this.width-t)*e)/e,r=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=n-this.x,this.height=r-this.y,this},e.prototype.enlarge=function(e){var t=Math.min(this.x,e.x),n=Math.max(this.x+this.width,e.x+e.width),r=Math.min(this.y,e.y),i=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=n-t,this.y=r,this.height=i-r,this},e.prototype.toString=function(){return`[@pixi/math:Rectangle x=`+this.x+` y=`+this.y+` width=`+this.width+` height=`+this.height+`]`},e}(),Gi=function(){function e(e,t,n){e===void 0&&(e=0),t===void 0&&(t=0),n===void 0&&(n=0),this.x=e,this.y=t,this.radius=n,this.type=Vi.CIRC}return e.prototype.clone=function(){return new e(this.x,this.y,this.radius)},e.prototype.contains=function(e,t){if(this.radius<=0)return!1;var n=this.radius*this.radius,r=this.x-e,i=this.y-t;return r*=r,i*=i,r+i<=n},e.prototype.getBounds=function(){return new Wi(this.x-this.radius,this.y-this.radius,this.radius*2,this.radius*2)},e.prototype.toString=function(){return`[@pixi/math:Circle x=`+this.x+` y=`+this.y+` radius=`+this.radius+`]`},e}(),Ki=function(){function e(e,t,n,r){e===void 0&&(e=0),t===void 0&&(t=0),n===void 0&&(n=0),r===void 0&&(r=0),this.x=e,this.y=t,this.width=n,this.height=r,this.type=Vi.ELIP}return e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.contains=function(e,t){if(this.width<=0||this.height<=0)return!1;var n=(e-this.x)/this.width,r=(t-this.y)/this.height;return n*=n,r*=r,n+r<=1},e.prototype.getBounds=function(){return new Wi(this.x-this.width,this.y-this.height,this.width,this.height)},e.prototype.toString=function(){return`[@pixi/math:Ellipse x=`+this.x+` y=`+this.y+` width=`+this.width+` height=`+this.height+`]`},e}(),qi=function(){function e(){for(var e=arguments,t=[],n=0;nt!=l>t&&e<(c-o)*((t-s)/(l-s))+o;u&&(n=!n)}return n},e.prototype.toString=function(){return`[@pixi/math:Polygon`+(`closeStroke=`+this.closeStroke)+(`points=`+this.points.reduce(function(e,t){return e+`, `+t},``)+`]`)},e}(),Ji=function(){function e(e,t,n,r,i){e===void 0&&(e=0),t===void 0&&(t=0),n===void 0&&(n=0),r===void 0&&(r=0),i===void 0&&(i=20),this.x=e,this.y=t,this.width=n,this.height=r,this.radius=i,this.type=Vi.RREC}return e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height,this.radius)},e.prototype.contains=function(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){var n=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+n&&t<=this.y+this.height-n||e>=this.x+n&&e<=this.x+this.width-n)return!0;var r=e-(this.x+n),i=t-(this.y+n),a=n*n;if(r*r+i*i<=a||(r=e-(this.x+this.width-n),r*r+i*i<=a)||(i=t-(this.y+this.height-n),r*r+i*i<=a)||(r=e-(this.x+n),r*r+i*i<=a))return!0}return!1},e.prototype.toString=function(){return`[@pixi/math:RoundedRectangle x=`+this.x+` y=`+this.y+(`width=`+this.width+` height=`+this.height+` radius=`+this.radius+`]`)},e}(),Yi=function(){function e(e,t,n,r){n===void 0&&(n=0),r===void 0&&(r=0),this._x=n,this._y=r,this.cb=e,this.scope=t}return e.prototype.clone=function(t,n){return t===void 0&&(t=this.cb),n===void 0&&(n=this.scope),new e(t,n,this._x,this._y)},e.prototype.set=function(e,t){return e===void 0&&(e=0),t===void 0&&(t=e),(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this.cb.call(this.scope)),this},e.prototype.copyFrom=function(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this.cb.call(this.scope)),this},e.prototype.copyTo=function(e){return e.set(this._x,this._y),e},e.prototype.equals=function(e){return e.x===this._x&&e.y===this._y},e.prototype.toString=function(){return`[@pixi/math:ObservablePoint x=0 y=0 scope=`+this.scope+`]`},Object.defineProperty(e.prototype,`x`,{get:function(){return this._x},set:function(e){this._x!==e&&(this._x=e,this.cb.call(this.scope))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`y`,{get:function(){return this._y},set:function(e){this._y!==e&&(this._y=e,this.cb.call(this.scope))},enumerable:!1,configurable:!0}),e}(),Xi=function(){function e(e,t,n,r,i,a){e===void 0&&(e=1),t===void 0&&(t=0),n===void 0&&(n=0),r===void 0&&(r=1),i===void 0&&(i=0),a===void 0&&(a=0),this.array=null,this.a=e,this.b=t,this.c=n,this.d=r,this.tx=i,this.ty=a}return e.prototype.fromArray=function(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]},e.prototype.set=function(e,t,n,r,i,a){return this.a=e,this.b=t,this.c=n,this.d=r,this.tx=i,this.ty=a,this},e.prototype.toArray=function(e,t){this.array||=new Float32Array(9);var n=t||this.array;return e?(n[0]=this.a,n[1]=this.b,n[2]=0,n[3]=this.c,n[4]=this.d,n[5]=0,n[6]=this.tx,n[7]=this.ty,n[8]=1):(n[0]=this.a,n[1]=this.c,n[2]=this.tx,n[3]=this.b,n[4]=this.d,n[5]=this.ty,n[6]=0,n[7]=0,n[8]=1),n},e.prototype.apply=function(e,t){t||=new Hi;var n=e.x,r=e.y;return t.x=this.a*n+this.c*r+this.tx,t.y=this.b*n+this.d*r+this.ty,t},e.prototype.applyInverse=function(e,t){t||=new Hi;var n=1/(this.a*this.d+this.c*-this.b),r=e.x,i=e.y;return t.x=this.d*n*r+-this.c*n*i+(this.ty*this.c-this.tx*this.d)*n,t.y=this.a*n*i+-this.b*n*r+(-this.ty*this.a+this.tx*this.b)*n,t},e.prototype.translate=function(e,t){return this.tx+=e,this.ty+=t,this},e.prototype.scale=function(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this},e.prototype.rotate=function(e){var t=Math.cos(e),n=Math.sin(e),r=this.a,i=this.c,a=this.tx;return this.a=r*t-this.b*n,this.b=r*n+this.b*t,this.c=i*t-this.d*n,this.d=i*n+this.d*t,this.tx=a*t-this.ty*n,this.ty=a*n+this.ty*t,this},e.prototype.append=function(e){var t=this.a,n=this.b,r=this.c,i=this.d;return this.a=e.a*t+e.b*r,this.b=e.a*n+e.b*i,this.c=e.c*t+e.d*r,this.d=e.c*n+e.d*i,this.tx=e.tx*t+e.ty*r+this.tx,this.ty=e.tx*n+e.ty*i+this.ty,this},e.prototype.setTransform=function(e,t,n,r,i,a,o,s,c){return this.a=Math.cos(o+c)*i,this.b=Math.sin(o+c)*i,this.c=-Math.sin(o-s)*a,this.d=Math.cos(o-s)*a,this.tx=e-(n*this.a+r*this.c),this.ty=t-(n*this.b+r*this.d),this},e.prototype.prepend=function(e){var t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){var n=this.a,r=this.c;this.a=n*e.a+this.b*e.c,this.b=n*e.b+this.b*e.d,this.c=r*e.a+this.d*e.c,this.d=r*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this},e.prototype.decompose=function(e){var t=this.a,n=this.b,r=this.c,i=this.d,a=e.pivot,o=-Math.atan2(-r,i),s=Math.atan2(n,t),c=Math.abs(o+s);return c<1e-5||Math.abs(Ri-c)<1e-5?(e.rotation=s,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=o,e.skew.y=s),e.scale.x=Math.sqrt(t*t+n*n),e.scale.y=Math.sqrt(r*r+i*i),e.position.x=this.tx+(a.x*t+a.y*r),e.position.y=this.ty+(a.x*n+a.y*i),e},e.prototype.invert=function(){var e=this.a,t=this.b,n=this.c,r=this.d,i=this.tx,a=e*r-t*n;return this.a=r/a,this.b=-t/a,this.c=-n/a,this.d=e/a,this.tx=(n*this.ty-r*i)/a,this.ty=-(e*this.ty-t*i)/a,this},e.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this},e.prototype.clone=function(){var t=new e;return t.a=this.a,t.b=this.b,t.c=this.c,t.d=this.d,t.tx=this.tx,t.ty=this.ty,t},e.prototype.copyTo=function(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e},e.prototype.copyFrom=function(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this},e.prototype.toString=function(){return`[@pixi/math:Matrix a=`+this.a+` b=`+this.b+` c=`+this.c+` d=`+this.d+` tx=`+this.tx+` ty=`+this.ty+`]`},Object.defineProperty(e,`IDENTITY`,{get:function(){return new e},enumerable:!1,configurable:!0}),Object.defineProperty(e,`TEMP_MATRIX`,{get:function(){return new e},enumerable:!1,configurable:!0}),e}(),Zi=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],Qi=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],$i=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],ea=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],ta=[],na=[],ra=Math.sign;function ia(){for(var e=0;e<16;e++){var t=[];ta.push(t);for(var n=0;n<16;n++)for(var r=ra(Zi[e]*Zi[n]+$i[e]*Qi[n]),i=ra(Qi[e]*Zi[n]+ea[e]*Qi[n]),a=ra(Zi[e]*$i[n]+$i[e]*ea[n]),o=ra(Qi[e]*$i[n]+ea[e]*ea[n]),s=0;s<16;s++)if(Zi[s]===r&&Qi[s]===i&&$i[s]===a&&ea[s]===o){t.push(s);break}}for(var e=0;e<16;e++){var c=new Xi;c.set(Zi[e],Qi[e],$i[e],ea[e],0,0),na.push(c)}}ia();var aa={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:function(e){return Zi[e]},uY:function(e){return Qi[e]},vX:function(e){return $i[e]},vY:function(e){return ea[e]},inv:function(e){return e&8?e&15:-e&7},add:function(e,t){return ta[e][t]},sub:function(e,t){return ta[e][aa.inv(t)]},rotate180:function(e){return e^4},isVertical:function(e){return(e&3)==2},byDirection:function(e,t){return Math.abs(e)*2<=Math.abs(t)?t>=0?aa.S:aa.N:Math.abs(t)*2<=Math.abs(e)?e>0?aa.E:aa.W:t>0?e>0?aa.SE:aa.SW:e>0?aa.NE:aa.NW},matrixAppendRotationInv:function(e,t,n,r){n===void 0&&(n=0),r===void 0&&(r=0);var i=na[aa.inv(t)];i.tx=n,i.ty=r,e.append(i)}},oa=function(){function e(){this.worldTransform=new Xi,this.localTransform=new Xi,this.position=new Yi(this.onChange,this,0,0),this.scale=new Yi(this.onChange,this,1,1),this.pivot=new Yi(this.onChange,this,0,0),this.skew=new Yi(this.updateSkew,this,0,0),this._rotation=0,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._localID=0,this._currentLocalID=0,this._worldID=0,this._parentID=0}return e.prototype.onChange=function(){this._localID++},e.prototype.updateSkew=function(){this._cx=Math.cos(this._rotation+this.skew.y),this._sx=Math.sin(this._rotation+this.skew.y),this._cy=-Math.sin(this._rotation-this.skew.x),this._sy=Math.cos(this._rotation-this.skew.x),this._localID++},e.prototype.toString=function(){return`[@pixi/math:Transform `+(`position=(`+this.position.x+`, `+this.position.y+`) `)+(`rotation=`+this.rotation+` `)+(`scale=(`+this.scale.x+`, `+this.scale.y+`) `)+(`skew=(`+this.skew.x+`, `+this.skew.y+`) `)+`]`},e.prototype.updateLocalTransform=function(){var e=this.localTransform;this._localID!==this._currentLocalID&&(e.a=this._cx*this.scale.x,e.b=this._sx*this.scale.x,e.c=this._cy*this.scale.y,e.d=this._sy*this.scale.y,e.tx=this.position.x-(this.pivot.x*e.a+this.pivot.y*e.c),e.ty=this.position.y-(this.pivot.x*e.b+this.pivot.y*e.d),this._currentLocalID=this._localID,this._parentID=-1)},e.prototype.updateTransform=function(e){var t=this.localTransform;if(this._localID!==this._currentLocalID&&(t.a=this._cx*this.scale.x,t.b=this._sx*this.scale.x,t.c=this._cy*this.scale.y,t.d=this._sy*this.scale.y,t.tx=this.position.x-(this.pivot.x*t.a+this.pivot.y*t.c),t.ty=this.position.y-(this.pivot.x*t.b+this.pivot.y*t.d),this._currentLocalID=this._localID,this._parentID=-1),this._parentID!==e._worldID){var n=e.worldTransform,r=this.worldTransform;r.a=t.a*n.a+t.b*n.c,r.b=t.a*n.b+t.b*n.d,r.c=t.c*n.a+t.d*n.c,r.d=t.c*n.b+t.d*n.d,r.tx=t.tx*n.a+t.ty*n.c+n.tx,r.ty=t.tx*n.b+t.ty*n.d+n.ty,this._parentID=e._worldID,this._worldID++}},e.prototype.setFromMatrix=function(e){e.decompose(this),this._localID++},Object.defineProperty(e.prototype,`rotation`,{get:function(){return this._rotation},set:function(e){this._rotation!==e&&(this._rotation=e,this.updateSkew())},enumerable:!1,configurable:!0}),e.IDENTITY=new e,e}();G.PREFER_ENV=zr.any?tr.WEBGL:tr.WEBGL2,G.STRICT_TEXTURE_CACHE=!1;var sa=[];function ca(e,t){if(!e)return null;var n=``;if(typeof e==`string`){var r=/\.(\w{3,4})(?:$|\?|#)/i.exec(e);r&&(n=r[1].toLowerCase())}for(var i=sa.length-1;i>=0;--i){var a=sa[i];if(a.test&&a.test(e,n))return new a(e,t)}throw Error(`Unrecognized source type to auto-detect Resource`)} +/*! ***************************************************************************** + +Copyright (c) Microsoft Corporation. + + + +Permission to use, copy, modify, and/or distribute this software for any + +purpose with or without fee is hereby granted. + + + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + +PERFORMANCE OF THIS SOFTWARE. + +***************************************************************************** */ +var la=function(e,t){return la=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},la(e,t)};function ua(e,t){la(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var da=function(){return da=Object.assign||function(e){for(var t=arguments,n,r=1,i=arguments.length;r0&&l>0,r.textureCacheIds=[],r.destroyed=!1,r.resource=null,r._batchEnabled=0,r._batchLocation=0,r.parentTextureArray=null,r.setResource(t),r}return Object.defineProperty(t.prototype,`realWidth`,{get:function(){return Math.round(this.width*this.resolution)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`realHeight`,{get:function(){return Math.round(this.height*this.resolution)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`mipmap`,{get:function(){return this._mipmap},set:function(e){this._mipmap!==e&&(this._mipmap=e,this.dirtyStyleId++)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`scaleMode`,{get:function(){return this._scaleMode},set:function(e){this._scaleMode!==e&&(this._scaleMode=e,this.dirtyStyleId++)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`wrapMode`,{get:function(){return this._wrapMode},set:function(e){this._wrapMode!==e&&(this._wrapMode=e,this.dirtyStyleId++)},enumerable:!1,configurable:!0}),t.prototype.setStyle=function(e,t){var n;return e!==void 0&&e!==this.scaleMode&&(this.scaleMode=e,n=!0),t!==void 0&&t!==this.mipmap&&(this.mipmap=t,n=!0),n&&this.dirtyStyleId++,this},t.prototype.setSize=function(e,t,n){return n||=this.resolution,this.setRealSize(e*n,t*n,n)},t.prototype.setRealSize=function(e,t,n){return this.resolution=n||this.resolution,this.width=Math.round(e)/this.resolution,this.height=Math.round(t)/this.resolution,this._refreshPOT(),this.update(),this},t.prototype._refreshPOT=function(){this.isPowerOfTwo=hi(this.realWidth)&&hi(this.realHeight)},t.prototype.setResolution=function(e){var t=this.resolution;return t===e?this:(this.resolution=e,this.valid&&(this.width=Math.round(this.width*t)/e,this.height=Math.round(this.height*t)/e,this.emit(`update`,this)),this._refreshPOT(),this)},t.prototype.setResource=function(e){if(this.resource===e)return this;if(this.resource)throw Error(`Resource can be set only once`);return e.bind(this),this.resource=e,this},t.prototype.update=function(){this.valid?(this.dirtyId++,this.dirtyStyleId++,this.emit(`update`,this)):this.width>0&&this.height>0&&(this.valid=!0,this.emit(`loaded`,this),this.emit(`update`,this))},t.prototype.onError=function(e){this.emit(`error`,this,e)},t.prototype.destroy=function(){this.resource&&(this.resource.unbind(this),this.resource.internal&&this.resource.destroy(),this.resource=null),this.cacheId&&(delete wi[this.cacheId],delete Ci[this.cacheId],this.cacheId=null),this.dispose(),t.removeFromCache(this),this.textureCacheIds=null,this.destroyed=!0},t.prototype.dispose=function(){this.emit(`dispose`,this)},t.prototype.castToBaseTexture=function(){return this},t.from=function(e,n,r){r===void 0&&(r=G.STRICT_TEXTURE_CACHE);var i=typeof e==`string`,a=null;if(i)a=e;else{if(!e._pixiId){var o=n&&n.pixiIdPrefix||`pixiid`;e._pixiId=o+`_`+yi()}a=e._pixiId}var s=wi[a];if(i&&r&&!s)throw Error(`The cacheId "`+a+`" does not exist in BaseTextureCache.`);return s||(s=new t(e,n),s.cacheId=a,t.addToCache(s,a)),s},t.fromBuffer=function(e,n,r,i){e||=new Float32Array(n*r*4);var a=new ma(e,{width:n,height:r}),o=e instanceof Float32Array?sr.FLOAT:sr.UNSIGNED_BYTE;return new t(a,Object.assign({},ha,i||{width:n,height:r,type:o}))},t.addToCache=function(e,t){t&&(e.textureCacheIds.indexOf(t)===-1&&e.textureCacheIds.push(t),wi[t]&&console.warn(`BaseTexture added to the cache with an id [`+t+`] that already had an entry`),wi[t]=e)},t.removeFromCache=function(e){if(typeof e==`string`){var t=wi[e];if(t){var n=t.textureCacheIds.indexOf(e);return n>-1&&t.textureCacheIds.splice(n,1),delete wi[e],t}}else if(e&&e.textureCacheIds){for(var r=0;r0)if(e.resource)this.addResourceAt(e.resource,t);else throw Error(`CubeResource does not support copying of renderTexture.`);else e.target=or.TEXTURE_CUBE_MAP_POSITIVE_X+t,e.parentTextureArray=this.baseTexture,this.items[t]=e;return e.valid&&!this.valid&&this.resize(e.realWidth,e.realHeight),this.items[t]=e,this},t.prototype.upload=function(e,n,r){for(var i=this.itemDirtyIds,a=0;a)?\s*()]*-->)?\s*\]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i,t}(ya),wa=function(e){ua(t,e);function t(n,r){var i=this;if(r||={},!(n instanceof HTMLVideoElement)){var a=document.createElement(`video`);a.setAttribute(`preload`,`auto`),a.setAttribute(`webkit-playsinline`,``),a.setAttribute(`playsinline`,``),typeof n==`string`&&(n=[n]);var o=n[0].src||n[0];ya.crossOrigin(a,o,r.crossorigin);for(var s=0;s2},t.prototype._onPlayStart=function(){this.valid||this._onCanPlay(),this.autoUpdate&&!this._isConnectedToTicker&&(Ii.shared.add(this.update,this),this._isConnectedToTicker=!0)},t.prototype._onPlayStop=function(){this._isConnectedToTicker&&(Ii.shared.remove(this.update,this),this._isConnectedToTicker=!1)},t.prototype._onCanPlay=function(){var e=this.source;e.removeEventListener(`canplay`,this._onCanPlay),e.removeEventListener(`canplaythrough`,this._onCanPlay);var t=this.valid;this.resize(e.videoWidth,e.videoHeight),!t&&this._resolve&&(this._resolve(this),this._resolve=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&e.play()},t.prototype.dispose=function(){this._isConnectedToTicker&&(Ii.shared.remove(this.update,this),this._isConnectedToTicker=!1);var t=this.source;t&&(t.removeEventListener(`error`,this._onError,!0),t.pause(),t.src=``,t.load()),e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,`autoUpdate`,{get:function(){return this._autoUpdate},set:function(e){e!==this._autoUpdate&&(this._autoUpdate=e,!this._autoUpdate&&this._isConnectedToTicker?(Ii.shared.remove(this.update,this),this._isConnectedToTicker=!1):this._autoUpdate&&!this._isConnectedToTicker&&this._isSourcePlaying()&&(Ii.shared.add(this.update,this),this._isConnectedToTicker=!0))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`updateFPS`,{get:function(){return this._updateFPS},set:function(e){e!==this._updateFPS&&(this._updateFPS=e)},enumerable:!1,configurable:!0}),t.test=function(e,n){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement||t.TYPES.indexOf(n)>-1},t.TYPES=[`mp4`,`m4v`,`webm`,`ogg`,`ogv`,`h264`,`avi`,`mov`],t.MIME_TYPES={ogv:`video/ogg`,mov:`video/quicktime`,m4v:`video/mp4`},t}(ya),Ta=function(e){ua(t,e);function t(t){return e.call(this,t)||this}return t.test=function(e){return!!globalThis.createImageBitmap&&typeof ImageBitmap<`u`&&e instanceof ImageBitmap},t}(ya);sa.push(Sa,Ta,ba,wa,Ca,ma,xa,va);var Ea={__proto__:null,Resource:pa,BaseImageResource:ya,INSTALLED:sa,autoDetectResource:ca,AbstractMultiResource:_a,ArrayResource:va,BufferResource:ma,CanvasResource:ba,CubeResource:xa,ImageResource:Sa,SVGResource:Ca,VideoResource:wa,ImageBitmapResource:Ta},Da=function(e){ua(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.upload=function(e,t,n){var r=e.gl;r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.alphaMode===fr.UNPACK);var i=t.realWidth,a=t.realHeight;return n.width===i&&n.height===a?r.texSubImage2D(t.target,0,0,0,i,a,t.format,n.type,this.data):(n.width=i,n.height=a,r.texImage2D(t.target,0,n.internalFormat,i,a,0,t.format,n.type,this.data)),!0},t}(ma),Oa=function(){function e(e,t){this.width=Math.round(e||100),this.height=Math.round(t||100),this.stencil=!1,this.depth=!1,this.dirtyId=0,this.dirtyFormat=0,this.dirtySize=0,this.depthTexture=null,this.colorTextures=[],this.glFramebuffers={},this.disposeRunner=new Ni(`disposeFramebuffer`),this.multisample=vr.NONE}return Object.defineProperty(e.prototype,`colorTexture`,{get:function(){return this.colorTextures[0]},enumerable:!1,configurable:!0}),e.prototype.addColorTexture=function(e,t){return e===void 0&&(e=0),this.colorTextures[e]=t||new ga(null,{scaleMode:lr.NEAREST,resolution:1,mipmap:dr.OFF,width:this.width,height:this.height}),this.dirtyId++,this.dirtyFormat++,this},e.prototype.addDepthTexture=function(e){return this.depthTexture=e||new ga(new Da(null,{width:this.width,height:this.height}),{scaleMode:lr.NEAREST,resolution:1,width:this.width,height:this.height,mipmap:dr.OFF,format:W.DEPTH_COMPONENT,type:sr.UNSIGNED_SHORT}),this.dirtyId++,this.dirtyFormat++,this},e.prototype.enableDepth=function(){return this.depth=!0,this.dirtyId++,this.dirtyFormat++,this},e.prototype.enableStencil=function(){return this.stencil=!0,this.dirtyId++,this.dirtyFormat++,this},e.prototype.resize=function(e,t){if(e=Math.round(e),t=Math.round(t),!(e===this.width&&t===this.height)){this.width=e,this.height=t,this.dirtyId++,this.dirtySize++;for(var n=0;n-1&&t.textureCacheIds.splice(n,1),delete Ci[e],t}}else if(e&&e.textureCacheIds){for(var r=0;rthis.baseTexture.width,o=n+i>this.baseTexture.height;if(a||o){var s=a&&o?`and`:`or`,c=`X: `+t+` + `+r+` = `+(t+r)+` > `+this.baseTexture.width,l=`Y: `+n+` + `+i+` = `+(n+i)+` > `+this.baseTexture.height;throw Error(`Texture Error: frame does not fit inside the base Texture dimensions: `+(c+` `+s+` `+l))}this.valid=r&&i&&this.baseTexture.valid,!this.trim&&!this.rotate&&(this.orig=e),this.valid&&this.updateUvs()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`rotate`,{get:function(){return this._rotate},set:function(e){this._rotate=e,this.valid&&this.updateUvs()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`width`,{get:function(){return this.orig.width},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`height`,{get:function(){return this.orig.height},enumerable:!1,configurable:!0}),t.prototype.castToBaseTexture=function(){return this.baseTexture},Object.defineProperty(t,`EMPTY`,{get:function(){return t._EMPTY||(t._EMPTY=new t(new ga),Ma(t._EMPTY),Ma(t._EMPTY.baseTexture)),t._EMPTY},enumerable:!1,configurable:!0}),Object.defineProperty(t,`WHITE`,{get:function(){if(!t._WHITE){var e=G.ADAPTER.createCanvas(16,16),n=e.getContext(`2d`);e.width=16,e.height=16,n.fillStyle=`white`,n.fillRect(0,0,16,16),t._WHITE=new t(ga.from(e)),Ma(t._WHITE),Ma(t._WHITE.baseTexture)}return t._WHITE},enumerable:!1,configurable:!0}),t}(Qr.default),Pa=function(e){ua(t,e);function t(t,n){var r=e.call(this,t,n)||this;return r.valid=!0,r.filterFrame=null,r.filterPoolKey=null,r.updateUvs(),r}return Object.defineProperty(t.prototype,`framebuffer`,{get:function(){return this.baseTexture.framebuffer},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`multisample`,{get:function(){return this.framebuffer.multisample},set:function(e){this.framebuffer.multisample=e},enumerable:!1,configurable:!0}),t.prototype.resize=function(e,t,n){n===void 0&&(n=!0);var r=this.baseTexture.resolution,i=Math.round(e*r)/r,a=Math.round(t*r)/r;this.valid=i>0&&a>0,this._frame.width=this.orig.width=i,this._frame.height=this.orig.height=a,n&&this.baseTexture.resize(i,a),this.updateUvs()},t.prototype.setResolution=function(e){var t=this.baseTexture;t.resolution!==e&&(t.setResolution(e),this.resize(t.width,t.height,!1))},t.create=function(e){for(var n=arguments,r=[],i=1;i>>0,r>1&&(i+=r*4294967296)):i=r>1?-r:-1,this.texturePool[i]||(this.texturePool[i]=[]);var a=this.texturePool[i].pop();return a||=this.createTexture(e,t,r),a.filterPoolKey=i,a.setResolution(n),a},e.prototype.getFilterTexture=function(e,t,n){var r=this.getOptimalTexture(e.width,e.height,t||e.resolution,n||vr.NONE);return r.filterFrame=e.filterFrame,r},e.prototype.returnTexture=function(e){var t=e.filterPoolKey;e.filterFrame=null,this.texturePool[t].push(e)},e.prototype.returnFilterTexture=function(e){this.returnTexture(e)},e.prototype.clear=function(e){if(e=e!==!1,e)for(var t in this.texturePool){var n=this.texturePool[t];if(n)for(var r=0;r0&&e.height>0,this.texturePool){if(!(Number(t)<0))continue;var n=this.texturePool[t];if(n)for(var r=0;r1){for(var l=0;l1&&(u=this.getOptimalFilterTexture(l.width,l.height,t.resolution),u.filterFrame=l.filterFrame),n[d].apply(this,l,u,pr.CLEAR,t);var f=l;l=u,u=f}n[d].apply(this,l,c.renderTexture,pr.BLEND,t),d>1&&t.multisample>1&&this.returnFilterTexture(t.renderTexture),this.returnFilterTexture(l),this.returnFilterTexture(u)}t.clear(),this.statePool.push(t)},e.prototype.bindAndClear=function(e,t){t===void 0&&(t=pr.CLEAR);var n=this.renderer,r=n.renderTexture,i=n.state;if(e===this.defaultFilterStack[this.defaultFilterStack.length-1].renderTexture?this.renderer.projection.transform=this.activeState.transform:this.renderer.projection.transform=null,e&&e.filterFrame){var a=this.tempRect;a.x=0,a.y=0,a.width=e.filterFrame.width,a.height=e.filterFrame.height,r.bind(e,e.filterFrame,a)}else e===this.defaultFilterStack[this.defaultFilterStack.length-1].renderTexture?this.renderer.renderTexture.bind(e,this.activeState.bindingSourceFrame,this.activeState.bindingDestinationFrame):r.bind(e);var o=i.stateId&1||this.forceClear;(t===pr.CLEAR||t===pr.BLIT&&o)&&this.renderer.framebuffer.clear(0,0,0,0)},e.prototype.applyFilter=function(e,t,n,r){var i=this.renderer;i.state.set(e.state),this.bindAndClear(n,r),e.uniforms.uSampler=t,e.uniforms.filterGlobals=this.globalUniforms,i.shader.bind(e),e.legacy=!!e.program.attributeData.aTextureCoord,e.legacy?(this.quadUv.map(t._frame,t.filterFrame),i.geometry.bind(this.quadUv),i.geometry.draw(ar.TRIANGLES)):(i.geometry.bind(this.quad),i.geometry.draw(ar.TRIANGLE_STRIP))},e.prototype.calculateSpriteMatrix=function(e,t){var n=this.activeState,r=n.sourceFrame,i=n.destinationFrame,a=t._texture.orig,o=e.set(i.width,0,0,i.height,r.x,r.y),s=t.worldTransform.copyTo(Xi.TEMP_MATRIX);return s.invert(),o.prepend(s),o.scale(1/a.width,1/a.height),o.translate(t.anchor.x,t.anchor.y),o},e.prototype.destroy=function(){this.renderer=null,this.texturePool.clear(!1)},e.prototype.getOptimalFilterTexture=function(e,t,n,r){return n===void 0&&(n=1),r===void 0&&(r=vr.NONE),this.texturePool.getOptimalTexture(e,t,n,r)},e.prototype.getFilterTexture=function(e,t,n){if(typeof e==`number`){var r=e;e=t,t=r}e||=this.activeState.renderTexture;var i=this.texturePool.getOptimalTexture(e.width,e.height,t||e.resolution,n||vr.NONE);return i.filterFrame=e.filterFrame,i},e.prototype.returnFilterTexture=function(e){this.texturePool.returnTexture(e)},e.prototype.emptyPool=function(){this.texturePool.clear(!0)},e.prototype.resize=function(){this.texturePool.setScreenSize(this.renderer.view)},e.prototype.transformAABB=function(e,t){var n=Xa[0],r=Xa[1],i=Xa[2],a=Xa[3];n.set(t.left,t.top),r.set(t.left,t.bottom),i.set(t.right,t.top),a.set(t.right,t.bottom),e.apply(n,n),e.apply(r,r),e.apply(i,i),e.apply(a,a);var o=Math.min(n.x,r.x,i.x,a.x),s=Math.min(n.y,r.y,i.y,a.y),c=Math.max(n.x,r.x,i.x,a.x),l=Math.max(n.y,r.y,i.y,a.y);t.x=o,t.y=s,t.width=c-o,t.height=l-s},e.prototype.roundFrame=function(e,t,n,r,i){if(!(e.width<=0||e.height<=0||n.width<=0||n.height<=0)){if(i){var a=i.a,o=i.b,s=i.c,c=i.d;if((Math.abs(o)>1e-4||Math.abs(s)>1e-4)&&(Math.abs(a)>1e-4||Math.abs(c)>1e-4))return}i=i?Za.copyFrom(i):Za.identity(),i.translate(-n.x,-n.y).scale(r.width/n.width,r.height/n.height).translate(r.x,r.y),this.transformAABB(i,e),e.ceil(t),this.transformAABB(i.invert(),e)}},e}(),$a=function(){function e(e){this.renderer=e}return e.prototype.flush=function(){},e.prototype.destroy=function(){this.renderer=null},e.prototype.start=function(){},e.prototype.stop=function(){this.flush()},e.prototype.render=function(e){},e}(),eo=function(){function e(e){this.renderer=e,this.emptyRenderer=new $a(e),this.currentRenderer=this.emptyRenderer}return e.prototype.setObjectRenderer=function(e){this.currentRenderer!==e&&(this.currentRenderer.stop(),this.currentRenderer=e,this.currentRenderer.start())},e.prototype.flush=function(){this.setObjectRenderer(this.emptyRenderer)},e.prototype.reset=function(){this.setObjectRenderer(this.emptyRenderer)},e.prototype.copyBoundTextures=function(e,t){for(var n=this.renderer.texture.boundTextures,r=t-1;r>=0;--r)e[r]=n[r]||null,e[r]&&(e[r]._batchLocation=r)},e.prototype.boundArray=function(e,t,n,r){for(var i=e.elements,a=e.ids,o=e.count,s=0,c=0;c=0&&u=tr.WEBGL2&&(n=e.getContext(`webgl2`,t)),n)this.webGLVersion=2;else if(this.webGLVersion=1,n=e.getContext(`webgl`,t)||e.getContext(`experimental-webgl`,t),!n)throw Error(`This browser does not support WebGL. Try using the canvas renderer`);return this.gl=n,this.getExtensions(),this.gl},e.prototype.getExtensions=function(){var e=this.gl,t={loseContext:e.getExtension(`WEBGL_lose_context`),anisotropicFiltering:e.getExtension(`EXT_texture_filter_anisotropic`),floatTextureLinear:e.getExtension(`OES_texture_float_linear`),s3tc:e.getExtension(`WEBGL_compressed_texture_s3tc`),s3tc_sRGB:e.getExtension(`WEBGL_compressed_texture_s3tc_srgb`),etc:e.getExtension(`WEBGL_compressed_texture_etc`),etc1:e.getExtension(`WEBGL_compressed_texture_etc1`),pvrtc:e.getExtension(`WEBGL_compressed_texture_pvrtc`)||e.getExtension(`WEBKIT_WEBGL_compressed_texture_pvrtc`),atc:e.getExtension(`WEBGL_compressed_texture_atc`),astc:e.getExtension(`WEBGL_compressed_texture_astc`)};this.webGLVersion===1?Object.assign(this.extensions,t,{drawBuffers:e.getExtension(`WEBGL_draw_buffers`),depthTexture:e.getExtension(`WEBGL_depth_texture`),vertexArrayObject:e.getExtension(`OES_vertex_array_object`)||e.getExtension(`MOZ_OES_vertex_array_object`)||e.getExtension(`WEBKIT_OES_vertex_array_object`),uint32ElementIndex:e.getExtension(`OES_element_index_uint`),floatTexture:e.getExtension(`OES_texture_float`),floatTextureLinear:e.getExtension(`OES_texture_float_linear`),textureHalfFloat:e.getExtension(`OES_texture_half_float`),textureHalfFloatLinear:e.getExtension(`OES_texture_half_float_linear`)}):this.webGLVersion===2&&Object.assign(this.extensions,t,{colorBufferFloat:e.getExtension(`EXT_color_buffer_float`)})},e.prototype.handleContextLost=function(e){var t=this;e.preventDefault(),setTimeout(function(){t.gl.isContextLost()&&t.extensions.loseContext&&t.extensions.loseContext.restoreContext()},0)},e.prototype.handleContextRestored=function(){this.renderer.runners.contextChange.emit(this.gl)},e.prototype.destroy=function(){var e=this.renderer.view;this.renderer=null,e.removeEventListener(`webglcontextlost`,this.handleContextLost),e.removeEventListener(`webglcontextrestored`,this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext&&this.extensions.loseContext.loseContext()},e.prototype.postrender=function(){this.renderer.renderingToScreen&&this.gl.flush()},e.prototype.validateContext=function(e){var t=e.getContextAttributes(),n=`WebGL2RenderingContext`in globalThis&&e instanceof globalThis.WebGL2RenderingContext;n&&(this.webGLVersion=2),t&&!t.stencil&&console.warn(`Provided WebGL context does not have a stencil buffer, masks may not render correctly`);var r=n||!!e.getExtension(`OES_element_index_uint`);this.supports.uint32Indices=r,r||console.warn(`Provided WebGL context does not support 32 index buffer, complex graphics may not render correctly`)},e}(),ro=function(){function e(e){this.framebuffer=e,this.stencil=null,this.dirtyId=-1,this.dirtyFormat=-1,this.dirtySize=-1,this.multisample=vr.NONE,this.msaaBuffer=null,this.blitFramebuffer=null,this.mipLevel=0}return e}(),io=new Wi,ao=function(){function e(e){this.renderer=e,this.managedFramebuffers=[],this.unknownFramebuffer=new Oa(10,10),this.msaaSamples=null}return e.prototype.contextChange=function(){this.disposeAll(!0);var e=this.gl=this.renderer.gl;if(this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.current=this.unknownFramebuffer,this.viewport=new Wi,this.hasMRT=!0,this.writeDepthTexture=!0,this.renderer.context.webGLVersion===1){var t=this.renderer.context.extensions.drawBuffers,n=this.renderer.context.extensions.depthTexture;G.PREFER_ENV===tr.WEBGL_LEGACY&&(t=null,n=null),t?e.drawBuffers=function(e){return t.drawBuffersWEBGL(e)}:(this.hasMRT=!1,e.drawBuffers=function(){}),n||(this.writeDepthTexture=!1)}else this.msaaSamples=e.getInternalformatParameter(e.RENDERBUFFER,e.RGBA8,e.SAMPLES)},e.prototype.bind=function(e,t,n){n===void 0&&(n=0);var r=this.gl;if(e){var i=e.glFramebuffers[this.CONTEXT_UID]||this.initFramebuffer(e);this.current!==e&&(this.current=e,r.bindFramebuffer(r.FRAMEBUFFER,i.framebuffer)),i.mipLevel!==n&&(e.dirtyId++,e.dirtyFormat++,i.mipLevel=n),i.dirtyId!==e.dirtyId&&(i.dirtyId=e.dirtyId,i.dirtyFormat===e.dirtyFormat?i.dirtySize!==e.dirtySize&&(i.dirtySize=e.dirtySize,this.resizeFramebuffer(e)):(i.dirtyFormat=e.dirtyFormat,i.dirtySize=e.dirtySize,this.updateFramebuffer(e,n)));for(var a=0;a>n,c=t.height>>n,l=s/t.width;this.setViewport(t.x*l,t.y*l,s,c)}else{var s=e.width>>n,c=e.height>>n;this.setViewport(0,0,s,c)}}else this.current&&(this.current=null,r.bindFramebuffer(r.FRAMEBUFFER,null)),t?this.setViewport(t.x,t.y,t.width,t.height):this.setViewport(0,0,this.renderer.width,this.renderer.height)},e.prototype.setViewport=function(e,t,n,r){var i=this.viewport;e=Math.round(e),t=Math.round(t),n=Math.round(n),r=Math.round(r),(i.width!==n||i.height!==r||i.x!==e||i.y!==t)&&(i.x=e,i.y=t,i.width=n,i.height=r,this.gl.viewport(e,t,n,r))},Object.defineProperty(e.prototype,`size`,{get:function(){return this.current?{x:0,y:0,width:this.current.width,height:this.current.height}:{x:0,y:0,width:this.renderer.width,height:this.renderer.height}},enumerable:!1,configurable:!0}),e.prototype.clear=function(e,t,n,r,i){i===void 0&&(i=rr.COLOR|rr.DEPTH);var a=this.gl;a.clearColor(e,t,n,r),a.clear(i)},e.prototype.initFramebuffer=function(e){var t=this.gl,n=new ro(t.createFramebuffer());return n.multisample=this.detectSamples(e.multisample),e.glFramebuffers[this.CONTEXT_UID]=n,this.managedFramebuffers.push(e),e.disposeRunner.add(this),n},e.prototype.resizeFramebuffer=function(e){var t=this.gl,n=e.glFramebuffers[this.CONTEXT_UID];n.msaaBuffer&&(t.bindRenderbuffer(t.RENDERBUFFER,n.msaaBuffer),t.renderbufferStorageMultisample(t.RENDERBUFFER,n.multisample,t.RGBA8,e.width,e.height)),n.stencil&&(t.bindRenderbuffer(t.RENDERBUFFER,n.stencil),n.msaaBuffer?t.renderbufferStorageMultisample(t.RENDERBUFFER,n.multisample,t.DEPTH24_STENCIL8,e.width,e.height):t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,e.width,e.height));var r=e.colorTextures,i=r.length;t.drawBuffers||(i=Math.min(i,1));for(var a=0;a1&&this.canMultisampleFramebuffer(e)?(r.msaaBuffer=r.msaaBuffer||n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,r.msaaBuffer),n.renderbufferStorageMultisample(n.RENDERBUFFER,r.multisample,n.RGBA8,e.width,e.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.RENDERBUFFER,r.msaaBuffer)):r.msaaBuffer&&(n.deleteRenderbuffer(r.msaaBuffer),r.msaaBuffer=null,r.blitFramebuffer&&(r.blitFramebuffer.dispose(),r.blitFramebuffer=null));for(var o=[],s=0;s1&&n.drawBuffers(o),e.depthTexture){var u=this.writeDepthTexture;if(u){var d=e.depthTexture;this.renderer.texture.bind(d,0),n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,d._glTextures[this.CONTEXT_UID].texture,t)}}(e.stencil||e.depth)&&!(e.depthTexture&&this.writeDepthTexture)?(r.stencil=r.stencil||n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,r.stencil),r.msaaBuffer?n.renderbufferStorageMultisample(n.RENDERBUFFER,r.multisample,n.DEPTH24_STENCIL8,e.width,e.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,e.width,e.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,r.stencil)):r.stencil&&(n.deleteRenderbuffer(r.stencil),r.stencil=null)},e.prototype.canMultisampleFramebuffer=function(e){return this.renderer.context.webGLVersion!==1&&e.colorTextures.length<=1&&!e.depthTexture},e.prototype.detectSamples=function(e){var t=this.msaaSamples,n=vr.NONE;if(e<=1||t===null)return n;for(var r=0;r=0&&this.managedFramebuffers.splice(i,1),e.disposeRunner.remove(this),t||(r.deleteFramebuffer(n.framebuffer),n.msaaBuffer&&r.deleteRenderbuffer(n.msaaBuffer),n.stencil&&r.deleteRenderbuffer(n.stencil)),n.blitFramebuffer&&n.blitFramebuffer.dispose()}},e.prototype.disposeAll=function(e){var t=this.managedFramebuffers;this.managedFramebuffers=[];for(var n=0;n=tr.WEBGL2&&(t=e.getContext(`webgl2`,{})),t||(t=e.getContext(`webgl`,{})||e.getContext(`experimental-webgl`,{}),t?t.getExtension(`WEBGL_draw_buffers`):t=null),go=t}return go}var vo;function yo(){if(!vo){vo=hr.MEDIUM;var e=_o();if(e&&e.getShaderPrecisionFormat){var t=e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT);vo=t.precision?hr.HIGH:hr.MEDIUM}}return vo}function bo(e,t,n){if(e.substring(0,9)!==`precision`){var r=t;return t===hr.HIGH&&n!==hr.HIGH&&(r=hr.MEDIUM),`precision `+r+` float; +`+e}else if(n!==hr.HIGH&&e.substring(0,15)===`precision highp`)return e.replace(`precision highp`,`precision mediump`);return e}var xo={float:1,vec2:2,vec3:3,vec4:4,int:1,ivec2:2,ivec3:3,ivec4:4,uint:1,uvec2:2,uvec3:3,uvec4:4,bool:1,bvec2:2,bvec3:3,bvec4:4,mat2:4,mat3:9,mat4:16,sampler2D:1};function So(e){return xo[e]}var Co=null,wo={FLOAT:`float`,FLOAT_VEC2:`vec2`,FLOAT_VEC3:`vec3`,FLOAT_VEC4:`vec4`,INT:`int`,INT_VEC2:`ivec2`,INT_VEC3:`ivec3`,INT_VEC4:`ivec4`,UNSIGNED_INT:`uint`,UNSIGNED_INT_VEC2:`uvec2`,UNSIGNED_INT_VEC3:`uvec3`,UNSIGNED_INT_VEC4:`uvec4`,BOOL:`bool`,BOOL_VEC2:`bvec2`,BOOL_VEC3:`bvec3`,BOOL_VEC4:`bvec4`,FLOAT_MAT2:`mat2`,FLOAT_MAT3:`mat3`,FLOAT_MAT4:`mat4`,SAMPLER_2D:`sampler2D`,INT_SAMPLER_2D:`sampler2D`,UNSIGNED_INT_SAMPLER_2D:`sampler2D`,SAMPLER_CUBE:`samplerCube`,INT_SAMPLER_CUBE:`samplerCube`,UNSIGNED_INT_SAMPLER_CUBE:`samplerCube`,SAMPLER_2D_ARRAY:`sampler2DArray`,INT_SAMPLER_2D_ARRAY:`sampler2DArray`,UNSIGNED_INT_SAMPLER_2D_ARRAY:`sampler2DArray`};function To(e,t){if(!Co){var n=Object.keys(wo);Co={};for(var r=0;r0&&(t+=` +else `),n0?this.maskStack[this.maskStack.length-1]._colorMask:15;n!==t&&this.renderer.gl.colorMask((n&1)!=0,(n&2)!=0,(n&4)!=0,(n&8)!=0)},e.prototype.destroy=function(){this.renderer=null},e}(),rs=function(){function e(e){this.renderer=e,this.maskStack=[],this.glConst=0}return e.prototype.getStackLength=function(){return this.maskStack.length},e.prototype.setMaskStack=function(e){var t=this.renderer.gl,n=this.getStackLength();this.maskStack=e;var r=this.getStackLength();r!==n&&(r===0?t.disable(this.glConst):(t.enable(this.glConst),this._useCurrent()))},e.prototype._useCurrent=function(){},e.prototype.destroy=function(){this.renderer=null,this.maskStack=null},e}(),os=new Xi,ss=[],cs=function(e){ua(t,e);function t(t){var n=e.call(this,t)||this;return n.glConst=G.ADAPTER.getWebGLRenderingContext().SCISSOR_TEST,n}return t.prototype.getStackLength=function(){var e=this.maskStack[this.maskStack.length-1];return e?e._scissorCounter:0},t.prototype.calcScissorRect=function(e){var t;if(!e._scissorRectLocal){var n=e._scissorRect,r=e.maskObject,i=this.renderer,a=i.renderTexture,o=r.getBounds(!0,(t=ss.pop())??new Wi);this.roundFrameToPixels(o,a.current?a.current.resolution:i.resolution,a.sourceFrame,a.destinationFrame,i.projection.transform),n&&o.fit(n),e._scissorRectLocal=o}},t.isMatrixRotated=function(e){if(!e)return!1;var t=e.a,n=e.b,r=e.c,i=e.d;return(Math.abs(n)>1e-4||Math.abs(r)>1e-4)&&(Math.abs(t)>1e-4||Math.abs(i)>1e-4)},t.prototype.testScissor=function(e){var n=e.maskObject;if(!n.isFastRect||!n.isFastRect()||t.isMatrixRotated(n.worldTransform)||t.isMatrixRotated(this.renderer.projection.transform))return!1;this.calcScissorRect(e);var r=e._scissorRectLocal;return r.width>0&&r.height>0},t.prototype.roundFrameToPixels=function(e,n,r,i,a){t.isMatrixRotated(a)||(a=a?os.copyFrom(a):os.identity(),a.translate(-r.x,-r.y).scale(i.width/r.width,i.height/r.height).translate(i.x,i.y),this.renderer.filter.transformAABB(a,e),e.fit(i),e.x=Math.round(e.x*n),e.y=Math.round(e.y*n),e.width=Math.round(e.width*n),e.height=Math.round(e.height*n))},t.prototype.push=function(e){e._scissorRectLocal||this.calcScissorRect(e);var t=this.renderer.gl;e._scissorRect||t.enable(t.SCISSOR_TEST),e._scissorCounter++,e._scissorRect=e._scissorRectLocal,this._useCurrent()},t.prototype.pop=function(e){var t=this.renderer.gl;e&&ss.push(e._scissorRectLocal),this.getStackLength()>0?this._useCurrent():t.disable(t.SCISSOR_TEST)},t.prototype._useCurrent=function(){var e=this.maskStack[this.maskStack.length-1]._scissorRect,t;t=this.renderer.renderTexture.current?e.y:this.renderer.height-e.height-e.y,this.renderer.gl.scissor(e.x,t,e.width,e.height)},t}(rs),ls=function(e){ua(t,e);function t(t){var n=e.call(this,t)||this;return n.glConst=G.ADAPTER.getWebGLRenderingContext().STENCIL_TEST,n}return t.prototype.getStackLength=function(){var e=this.maskStack[this.maskStack.length-1];return e?e._stencilCounter:0},t.prototype.push=function(e){var t=e.maskObject,n=this.renderer.gl,r=e._stencilCounter;r===0&&(this.renderer.framebuffer.forceStencil(),n.clearStencil(0),n.clear(n.STENCIL_BUFFER_BIT),n.enable(n.STENCIL_TEST)),e._stencilCounter++;var i=e._colorMask;i!==0&&(e._colorMask=0,n.colorMask(!1,!1,!1,!1)),n.stencilFunc(n.EQUAL,r,4294967295),n.stencilOp(n.KEEP,n.KEEP,n.INCR),t.renderable=!0,t.render(this.renderer),this.renderer.batch.flush(),t.renderable=!1,i!==0&&(e._colorMask=i,n.colorMask((i&1)!=0,(i&2)!=0,(i&4)!=0,(i&8)!=0)),this._useCurrent()},t.prototype.pop=function(e){var t=this.renderer.gl;if(this.getStackLength()===0)t.disable(t.STENCIL_TEST);else{var n=this.maskStack.length===0?null:this.maskStack[this.maskStack.length-1],r=n?n._colorMask:15;r!==0&&(n._colorMask=0,t.colorMask(!1,!1,!1,!1)),t.stencilOp(t.KEEP,t.KEEP,t.DECR),e.renderable=!0,e.render(this.renderer),this.renderer.batch.flush(),e.renderable=!1,r!==0&&(n._colorMask=r,t.colorMask((r&1)!=0,(r&2)!=0,(r&4)!=0,(r&8)!=0)),this._useCurrent()}},t.prototype._useCurrent=function(){var e=this.renderer.gl;e.stencilFunc(e.EQUAL,this.getStackLength(),4294967295),e.stencilOp(e.KEEP,e.KEEP,e.KEEP)},t}(rs),us=function(){function e(e){this.renderer=e,this.destinationFrame=null,this.sourceFrame=null,this.defaultFrame=null,this.projectionMatrix=new Xi,this.transform=null}return e.prototype.update=function(e,t,n,r){this.destinationFrame=e||this.destinationFrame||this.defaultFrame,this.sourceFrame=t||this.sourceFrame||e,this.calculateProjection(this.destinationFrame,this.sourceFrame,n,r),this.transform&&this.projectionMatrix.append(this.transform);var i=this.renderer;i.globalUniforms.uniforms.projectionMatrix=this.projectionMatrix,i.globalUniforms.update(),i.shader.shader&&i.shader.syncUniformGroup(i.shader.shader.uniforms.globals)},e.prototype.calculateProjection=function(e,t,n,r){var i=this.projectionMatrix,a=r?-1:1;i.identity(),i.a=1/t.width*2,i.d=a*(1/t.height*2),i.tx=-1-t.x*i.a,i.ty=-a-t.y*i.d},e.prototype.setTransform=function(e){},e.prototype.destroy=function(){this.renderer=null},e}(),ds=new Wi,fs=new Wi,ps=function(){function e(e){this.renderer=e,this.clearColor=e._backgroundColorRgba,this.defaultMaskStack=[],this.current=null,this.sourceFrame=new Wi,this.destinationFrame=new Wi,this.viewportFrame=new Wi}return e.prototype.bind=function(e,t,n){e===void 0&&(e=null);var r=this.renderer;this.current=e;var i,a,o;e?(i=e.baseTexture,o=i.resolution,t||(ds.width=e.frame.width,ds.height=e.frame.height,t=ds),n||(fs.x=e.frame.x,fs.y=e.frame.y,fs.width=t.width,fs.height=t.height,n=fs),a=i.framebuffer):(o=r.resolution,t||(ds.width=r.screen.width,ds.height=r.screen.height,t=ds),n||(n=ds,n.width=t.width,n.height=t.height));var s=this.viewportFrame;s.x=n.x*o,s.y=n.y*o,s.width=n.width*o,s.height=n.height*o,e||(s.y=r.view.height-(s.y+s.height)),s.ceil(),this.renderer.framebuffer.bind(a,s),this.renderer.projection.update(n,t,o,!a),e?this.renderer.mask.setMaskStack(i.maskStack):this.renderer.mask.setMaskStack(this.defaultMaskStack),this.sourceFrame.copyFrom(t),this.destinationFrame.copyFrom(n)},e.prototype.clear=function(e,t){this.current?e||=this.current.baseTexture.clearColor:e||=this.clearColor;var n=this.destinationFrame,r=this.current?this.current.baseTexture:this.renderer.screen,i=n.width!==r.width||n.height!==r.height;if(i){var a=this.viewportFrame,o=a.x,s=a.y,c=a.width,l=a.height;o=Math.round(o),s=Math.round(s),c=Math.round(c),l=Math.round(l),this.renderer.gl.enable(this.renderer.gl.SCISSOR_TEST),this.renderer.gl.scissor(o,s,c,l)}this.renderer.framebuffer.clear(e[0],e[1],e[2],e[3],t),i&&this.renderer.scissor.pop()},e.prototype.resize=function(){this.bind(null)},e.prototype.reset=function(){this.bind(null)},e.prototype.destroy=function(){this.renderer=null},e}();function ms(e,t,n,r,i){n.buffer.update(i)}var hs={float:` + data[offset] = v; + `,vec2:` + data[offset] = v[0]; + data[offset+1] = v[1]; + `,vec3:` + data[offset] = v[0]; + data[offset+1] = v[1]; + data[offset+2] = v[2]; + + `,vec4:` + data[offset] = v[0]; + data[offset+1] = v[1]; + data[offset+2] = v[2]; + data[offset+3] = v[3]; + `,mat2:` + data[offset] = v[0]; + data[offset+1] = v[1]; + + data[offset+4] = v[2]; + data[offset+5] = v[3]; + `,mat3:` + data[offset] = v[0]; + data[offset+1] = v[1]; + data[offset+2] = v[2]; + + data[offset + 4] = v[3]; + data[offset + 5] = v[4]; + data[offset + 6] = v[5]; + + data[offset + 8] = v[6]; + data[offset + 9] = v[7]; + data[offset + 10] = v[8]; + `,mat4:` + for(var i = 0; i < 16; i++) + { + data[offset + i] = v[i]; + } + `},gs={float:4,vec2:8,vec3:12,vec4:16,int:4,ivec2:8,ivec3:12,ivec4:16,uint:4,uvec2:8,uvec3:12,uvec4:16,bool:4,bvec2:8,bvec3:12,bvec4:16,mat2:16*2,mat3:16*3,mat4:16*4};function _s(e){for(var t=e.map(function(e){return{data:e,offset:0,dataLen:0,dirty:0}}),n=0,r=0,i=0,a=0;a1&&(n=Math.max(n,16)*o.data.size),o.dataLen=n,r%n!==0&&r<16){var s=r%n%16;r+=s,i+=s}r+n>16?(i=Math.ceil(i/16)*16,o.offset=i,i+=n,r=n):(o.offset=i,r+=n,i+=n)}return i=Math.ceil(i/16)*16,{uboElements:t,size:i}}function vs(e,t){var n=[];for(var r in e)t[r]&&n.push(t[r]);return n.sort(function(e,t){return e.index-t.index}),n}function ys(e,t){if(!e.autoManage)return{size:0,syncFunc:ms};for(var n=vs(e.uniforms,t),r=_s(n),i=r.uboElements,a=r.size,o=[` + var v = null; + var v2 = null; + var cv = null; + var t = 0; + var gl = renderer.gl + var index = 0; + var data = buffer.data; + `],s=0;s1){var m=So(c.data.type),h=Math.max(gs[c.data.type]/16,1),g=m/h,_=(4-g%4)%4;o.push(` + cv = ud.`+u+`.value; + v = uv.`+u+`; + offset = `+c.offset/4+`; + + t = 0; + + for(var i=0; i < `+c.data.size*h+`; i++) + { + for(var j = 0; j < `+g+`; j++) + { + data[offset++] = v[t++]; + } + offset += `+_+`; + } + + `)}else{var v=hs[c.data.type];o.push(` + cv = ud.`+u+`.value; + v = uv.`+u+`; + offset = `+c.offset/4+`; + `+v+`; + `)}}return o.push(` + renderer.buffer.update(buffer); + `),{size:a,syncFunc:Function(`ud`,`uv`,`renderer`,`syncData`,`buffer`,o.join(` +`))}}var bs=function(){function e(){}return e}(),xs=function(){function e(e,t){this.program=e,this.uniformData=t,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBufferBindings={}}return e.prototype.destroy=function(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBufferBindings=null,this.program=null},e}();function Ss(e,t){for(var n={},r=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES),i=0;it?1:-1});for(var o=0;o>=1,n++;this.stateId=e.data}for(var n=0;nthis.checkCountMax&&(this.checkCount=0,this.run())))},e.prototype.run=function(){for(var e=this.renderer.texture,t=e.managedTextures,n=!1,r=0;rthis.maxIdle&&(e.destroyTexture(i,!0),t[r]=null,n=!0)}if(n){for(var a=0,r=0;r=0;r--)this.unload(e.children[r])},e.prototype.destroy=function(){this.renderer=null},e}();function Ls(e){var t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C;return C=`WebGL2RenderingContext`in globalThis&&e instanceof globalThis.WebGL2RenderingContext?(t={},t[sr.UNSIGNED_BYTE]=(n={},n[W.RGBA]=e.RGBA8,n[W.RGB]=e.RGB8,n[W.RG]=e.RG8,n[W.RED]=e.R8,n[W.RGBA_INTEGER]=e.RGBA8UI,n[W.RGB_INTEGER]=e.RGB8UI,n[W.RG_INTEGER]=e.RG8UI,n[W.RED_INTEGER]=e.R8UI,n[W.ALPHA]=e.ALPHA,n[W.LUMINANCE]=e.LUMINANCE,n[W.LUMINANCE_ALPHA]=e.LUMINANCE_ALPHA,n),t[sr.BYTE]=(r={},r[W.RGBA]=e.RGBA8_SNORM,r[W.RGB]=e.RGB8_SNORM,r[W.RG]=e.RG8_SNORM,r[W.RED]=e.R8_SNORM,r[W.RGBA_INTEGER]=e.RGBA8I,r[W.RGB_INTEGER]=e.RGB8I,r[W.RG_INTEGER]=e.RG8I,r[W.RED_INTEGER]=e.R8I,r),t[sr.UNSIGNED_SHORT]=(i={},i[W.RGBA_INTEGER]=e.RGBA16UI,i[W.RGB_INTEGER]=e.RGB16UI,i[W.RG_INTEGER]=e.RG16UI,i[W.RED_INTEGER]=e.R16UI,i[W.DEPTH_COMPONENT]=e.DEPTH_COMPONENT16,i),t[sr.SHORT]=(a={},a[W.RGBA_INTEGER]=e.RGBA16I,a[W.RGB_INTEGER]=e.RGB16I,a[W.RG_INTEGER]=e.RG16I,a[W.RED_INTEGER]=e.R16I,a),t[sr.UNSIGNED_INT]=(o={},o[W.RGBA_INTEGER]=e.RGBA32UI,o[W.RGB_INTEGER]=e.RGB32UI,o[W.RG_INTEGER]=e.RG32UI,o[W.RED_INTEGER]=e.R32UI,o[W.DEPTH_COMPONENT]=e.DEPTH_COMPONENT24,o),t[sr.INT]=(s={},s[W.RGBA_INTEGER]=e.RGBA32I,s[W.RGB_INTEGER]=e.RGB32I,s[W.RG_INTEGER]=e.RG32I,s[W.RED_INTEGER]=e.R32I,s),t[sr.FLOAT]=(c={},c[W.RGBA]=e.RGBA32F,c[W.RGB]=e.RGB32F,c[W.RG]=e.RG32F,c[W.RED]=e.R32F,c[W.DEPTH_COMPONENT]=e.DEPTH_COMPONENT32F,c),t[sr.HALF_FLOAT]=(l={},l[W.RGBA]=e.RGBA16F,l[W.RGB]=e.RGB16F,l[W.RG]=e.RG16F,l[W.RED]=e.R16F,l),t[sr.UNSIGNED_SHORT_5_6_5]=(u={},u[W.RGB]=e.RGB565,u),t[sr.UNSIGNED_SHORT_4_4_4_4]=(d={},d[W.RGBA]=e.RGBA4,d),t[sr.UNSIGNED_SHORT_5_5_5_1]=(f={},f[W.RGBA]=e.RGB5_A1,f),t[sr.UNSIGNED_INT_2_10_10_10_REV]=(p={},p[W.RGBA]=e.RGB10_A2,p[W.RGBA_INTEGER]=e.RGB10_A2UI,p),t[sr.UNSIGNED_INT_10F_11F_11F_REV]=(m={},m[W.RGB]=e.R11F_G11F_B10F,m),t[sr.UNSIGNED_INT_5_9_9_9_REV]=(h={},h[W.RGB]=e.RGB9_E5,h),t[sr.UNSIGNED_INT_24_8]=(g={},g[W.DEPTH_STENCIL]=e.DEPTH24_STENCIL8,g),t[sr.FLOAT_32_UNSIGNED_INT_24_8_REV]=(_={},_[W.DEPTH_STENCIL]=e.DEPTH32F_STENCIL8,_),t):(v={},v[sr.UNSIGNED_BYTE]=(y={},y[W.RGBA]=e.RGBA,y[W.RGB]=e.RGB,y[W.ALPHA]=e.ALPHA,y[W.LUMINANCE]=e.LUMINANCE,y[W.LUMINANCE_ALPHA]=e.LUMINANCE_ALPHA,y),v[sr.UNSIGNED_SHORT_5_6_5]=(b={},b[W.RGB]=e.RGB,b),v[sr.UNSIGNED_SHORT_4_4_4_4]=(x={},x[W.RGBA]=e.RGBA,x),v[sr.UNSIGNED_SHORT_5_5_5_1]=(S={},S[W.RGBA]=e.RGBA,S),v),C}var Rs=function(){function e(e){this.texture=e,this.width=-1,this.height=-1,this.dirtyId=-1,this.dirtyStyleId=-1,this.mipmap=!1,this.wrapMode=33071,this.type=sr.UNSIGNED_BYTE,this.internalFormat=W.RGBA,this.samplerType=0}return e}(),zs=function(){function e(e){this.renderer=e,this.boundTextures=[],this.currentLocation=-1,this.managedTextures=[],this._unknownBoundTextures=!1,this.unknownTexture=new ga,this.hasIntegerTextures=!1}return e.prototype.contextChange=function(){var e=this.gl=this.renderer.gl;this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.webGLVersion=this.renderer.context.webGLVersion,this.internalFormats=Ls(e);var t=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS);this.boundTextures.length=t;for(var n=0;n=0;--a){var o=n[a];if(o){var s=o._glTextures[i];s.samplerType!==cr.FLOAT&&this.renderer.texture.unbind(o)}}},e.prototype.initTexture=function(e){var t=new Rs(this.gl.createTexture());return t.dirtyId=-1,e._glTextures[this.CONTEXT_UID]=t,this.managedTextures.push(e),e.on(`dispose`,this.destroyTexture,this),t},e.prototype.initTextureType=function(e,t){var n,r;t.internalFormat=(r=(n=this.internalFormats[e.type])?.[e.format])??e.format,this.webGLVersion===2&&e.type===sr.HALF_FLOAT?t.type=this.gl.HALF_FLOAT:t.type=e.type},e.prototype.updateTexture=function(e){var t=e._glTextures[this.CONTEXT_UID];if(t){var n=this.renderer;if(this.initTextureType(e,t),e.resource&&e.resource.upload(n,e,t))t.samplerType!==cr.FLOAT&&(this.hasIntegerTextures=!0);else{var r=e.realWidth,i=e.realHeight,a=n.gl;(t.width!==r||t.height!==i||t.dirtyId<0)&&(t.width=r,t.height=i,a.texImage2D(e.target,0,t.internalFormat,r,i,0,e.format,t.type,null))}e.dirtyStyleId!==t.dirtyStyleId&&this.updateTextureStyle(e),t.dirtyId=e.dirtyId}},e.prototype.destroyTexture=function(e,t){var n=this.gl;if(e=e.castToBaseTexture(),e._glTextures[this.CONTEXT_UID]&&(this.unbind(e),n.deleteTexture(e._glTextures[this.CONTEXT_UID].texture),e.off(`dispose`,this.destroyTexture,this),delete e._glTextures[this.CONTEXT_UID],!t)){var r=this.managedTextures.indexOf(e);r!==-1&&_i(this.managedTextures,r,1)}},e.prototype.updateTextureStyle=function(e){var t=e._glTextures[this.CONTEXT_UID];t&&((e.mipmap===dr.POW2||this.webGLVersion!==2)&&!e.isPowerOfTwo?t.mipmap=!1:t.mipmap=e.mipmap>=1,this.webGLVersion!==2&&!e.isPowerOfTwo?t.wrapMode=ur.CLAMP:t.wrapMode=e.wrapMode,e.resource&&e.resource.style(this.renderer,e,t)||this.setStyle(e,t),t.dirtyStyleId=e.dirtyStyleId)},e.prototype.setStyle=function(e,t){var n=this.gl;if(t.mipmap&&e.mipmap!==dr.ON_MANUAL&&n.generateMipmap(e.target),n.texParameteri(e.target,n.TEXTURE_WRAP_S,t.wrapMode),n.texParameteri(e.target,n.TEXTURE_WRAP_T,t.wrapMode),t.mipmap){n.texParameteri(e.target,n.TEXTURE_MIN_FILTER,e.scaleMode===lr.LINEAR?n.LINEAR_MIPMAP_LINEAR:n.NEAREST_MIPMAP_NEAREST);var r=this.renderer.context.extensions.anisotropicFiltering;if(r&&e.anisotropicLevel>0&&e.scaleMode===lr.LINEAR){var i=Math.min(e.anisotropicLevel,n.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT));n.texParameterf(e.target,r.TEXTURE_MAX_ANISOTROPY_EXT,i)}}else n.texParameteri(e.target,n.TEXTURE_MIN_FILTER,e.scaleMode===lr.LINEAR?n.LINEAR:n.NEAREST);n.texParameteri(e.target,n.TEXTURE_MAG_FILTER,e.scaleMode===lr.LINEAR?n.LINEAR:n.NEAREST)},e.prototype.destroy=function(){this.renderer=null},e}(),Bs={__proto__:null,FilterSystem:Qa,BatchSystem:eo,ContextSystem:no,FramebufferSystem:ao,GeometrySystem:so,MaskSystem:ns,ScissorSystem:cs,StencilSystem:ls,ProjectionSystem:us,RenderTextureSystem:ps,ShaderSystem:Ds,StateSystem:Fs,TextureGCSystem:Is,TextureSystem:zs},Vs=new Xi,Hs=function(e){ua(t,e);function t(t,n){t===void 0&&(t=nr.UNKNOWN);var r=e.call(this)||this;return n=Object.assign({},G.RENDER_OPTIONS,n),r.options=n,r.type=t,r.screen=new Wi(0,0,n.width,n.height),r.view=n.view||G.ADAPTER.createCanvas(),r.resolution=n.resolution||G.RESOLUTION,r.useContextAlpha=n.useContextAlpha,r.autoDensity=!!n.autoDensity,r.preserveDrawingBuffer=n.preserveDrawingBuffer,r.clearBeforeRender=n.clearBeforeRender,r._backgroundColor=0,r._backgroundColorRgba=[0,0,0,1],r._backgroundColorString=`#000000`,r.backgroundColor=n.backgroundColor||r._backgroundColor,r.backgroundAlpha=n.backgroundAlpha,n.transparent!==void 0&&(xi(`6.0.0`,`Option transparent is deprecated, please use backgroundAlpha instead.`),r.useContextAlpha=n.transparent,r.backgroundAlpha=n.transparent?0:1),r._lastObjectRendered=null,r.plugins={},r}return t.prototype.initPlugins=function(e){for(var t in e)this.plugins[t]=new e[t](this)},Object.defineProperty(t.prototype,`width`,{get:function(){return this.view.width},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`height`,{get:function(){return this.view.height},enumerable:!1,configurable:!0}),t.prototype.resize=function(e,t){this.view.width=Math.round(e*this.resolution),this.view.height=Math.round(t*this.resolution);var n=this.view.width/this.resolution,r=this.view.height/this.resolution;this.screen.width=n,this.screen.height=r,this.autoDensity&&(this.view.style.width=n+`px`,this.view.style.height=r+`px`),this.emit(`resize`,n,r)},t.prototype.generateTexture=function(e,t,n,r){t===void 0&&(t={}),typeof t==`number`&&(xi(`6.1.0`,`generateTexture options (scaleMode, resolution, region) are now object options.`),t={scaleMode:t,resolution:n,region:r});var i=t.region,a=fa(t,[`region`]);r=i||e.getLocalBounds(null,!0),r.width===0&&(r.width=1),r.height===0&&(r.height=1);var o=Pa.create(da({width:r.width,height:r.height},a));return Vs.tx=-r.x,Vs.ty=-r.y,this.render(e,{renderTexture:o,clear:!1,transform:Vs,skipUpdateTransform:!!e.parent}),o},t.prototype.destroy=function(e){for(var t in this.plugins)this.plugins[t].destroy(),this.plugins[t]=null;e&&this.view.parentNode&&this.view.parentNode.removeChild(this.view);var n=this;n.plugins=null,n.type=nr.UNKNOWN,n.view=null,n.screen=null,n._tempDisplayObjectParent=null,n.options=null,this._backgroundColorRgba=null,this._backgroundColorString=null,this._lastObjectRendered=null},Object.defineProperty(t.prototype,`backgroundColor`,{get:function(){return this._backgroundColor},set:function(e){this._backgroundColor=e,this._backgroundColorString=ci(e),si(e,this._backgroundColorRgba)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`backgroundAlpha`,{get:function(){return this._backgroundColorRgba[3]},set:function(e){this._backgroundColorRgba[3]=e},enumerable:!1,configurable:!0}),t}(Qr.default),Us=function(){function e(e){this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.refCount=0}return e}(),Ws=function(){function e(e){this.renderer=e,this.managedBuffers={},this.boundBufferBases={}}return e.prototype.destroy=function(){this.renderer=null},e.prototype.contextChange=function(){this.disposeAll(!0),this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID},e.prototype.bind=function(e){var t=this,n=t.gl,r=t.CONTEXT_UID,i=e._glBuffers[r]||this.createGLBuffer(e);n.bindBuffer(e.type,i.buffer)},e.prototype.bindBufferBase=function(e,t){var n=this,r=n.gl,i=n.CONTEXT_UID;if(this.boundBufferBases[t]!==e){var a=e._glBuffers[i]||this.createGLBuffer(e);this.boundBufferBases[t]=e,r.bindBufferBase(r.UNIFORM_BUFFER,t,a.buffer)}},e.prototype.bindBufferRange=function(e,t,n){var r=this,i=r.gl,a=r.CONTEXT_UID;n||=0;var o=e._glBuffers[a]||this.createGLBuffer(e);i.bindBufferRange(i.UNIFORM_BUFFER,t||0,o.buffer,n*256,256)},e.prototype.update=function(e){var t=this,n=t.gl,r=t.CONTEXT_UID,i=e._glBuffers[r];if(e._updateID!==i.updateID)if(i.updateID=e._updateID,n.bindBuffer(e.type,i.buffer),i.byteLength>=e.data.byteLength)n.bufferSubData(e.type,0,e.data);else{var a=e.static?n.STATIC_DRAW:n.DYNAMIC_DRAW;i.byteLength=e.data.byteLength,n.bufferData(e.type,e.data,a)}},e.prototype.dispose=function(e,t){if(this.managedBuffers[e.id]){delete this.managedBuffers[e.id];var n=e._glBuffers[this.CONTEXT_UID],r=this.gl;e.disposeRunner.remove(this),n&&(t||r.deleteBuffer(n.buffer),delete e._glBuffers[this.CONTEXT_UID])}},e.prototype.disposeAll=function(e){for(var t=Object.keys(this.managedBuffers),n=0;n=vr.HIGH?this.multisample=vr.HIGH:t>=vr.MEDIUM?this.multisample=vr.MEDIUM:t>=vr.LOW?this.multisample=vr.LOW:this.multisample=vr.NONE},t.prototype.addSystem=function(e,t){var n=new e(this);if(this[t])throw Error(`Whoops! The name "`+t+`" is already in use`);for(var r in this[t]=n,this.runners)this.runners[r].add(n);return this},t.prototype.render=function(e,t){var n,r,i,a;if(t&&(t instanceof Pa?(xi(`6.0.0`,`Renderer#render arguments changed, use options instead.`),n=t,r=arguments[2],i=arguments[3],a=arguments[4]):(n=t.renderTexture,r=t.clear,i=t.transform,a=t.skipUpdateTransform)),this.renderingToScreen=!n,this.runners.prerender.emit(),this.emit(`prerender`),this.projection.transform=i,!this.context.isLost){if(n||(this._lastObjectRendered=e),!a){var o=e.enableTempParent();e.updateTransform(),e.disableTempParent(o)}this.renderTexture.bind(n),this.batch.currentRenderer.start(),(r===void 0?this.clearBeforeRender:r)&&this.renderTexture.clear(),e.render(this),this.batch.currentRenderer.flush(),n&&n.baseTexture.update(),this.runners.postrender.emit(),this.projection.transform=null,this.emit(`postrender`)}},t.prototype.generateTexture=function(t,n,r,i){n===void 0&&(n={});var a=e.prototype.generateTexture.call(this,t,n,r,i);return this.framebuffer.blit(),a},t.prototype.resize=function(t,n){e.prototype.resize.call(this,t,n),this.runners.resize.emit(this.screen.height,this.screen.width)},t.prototype.reset=function(){return this.runners.reset.emit(),this},t.prototype.clear=function(){this.renderTexture.bind(),this.renderTexture.clear()},t.prototype.destroy=function(t){for(var n in this.runners.destroy.emit(),this.runners)this.runners[n].destroy();e.prototype.destroy.call(this,t),this.gl=null},Object.defineProperty(t.prototype,`extract`,{get:function(){return xi(`6.0.0`,`Renderer#extract has been deprecated, please use Renderer#plugins.extract instead.`),this.plugins.extract},enumerable:!1,configurable:!0}),t.registerPlugin=function(e,t){xi(`6.5.0`,`Renderer.registerPlugin() has been deprecated, please use extensions.add() instead.`),Mi.add({name:e,type:Ai.RendererPlugin,ref:t})},t.__plugins={},t}(Hs);Mi.handleByMap(Ai.RendererPlugin,Gs.__plugins);function Ks(e){return Gs.create(e)}var qs=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,Js=qs,Ys=function(){function e(e){xi(`6.1.0`,`System class is deprecated, implemement ISystem interface instead.`),this.renderer=e}return e.prototype.destroy=function(){this.renderer=null},e}(),Xs=function(){function e(){this.texArray=null,this.blend=0,this.type=ar.TRIANGLES,this.start=0,this.size=0,this.data=null}return e}(),Zs=function(){function e(){this.elements=[],this.ids=[],this.count=0}return e.prototype.clear=function(){for(var e=0;ethis.size&&this.flush(),this._vertexCount+=e.vertexData.length/2,this._indexCount+=e.indices.length,this._bufferedTextures[this._bufferSize]=e._texture.baseTexture,this._bufferedElements[this._bufferSize++]=e)},t.prototype.buildTexturesAndDrawCalls=function(){var e=this,n=e._bufferedTextures,r=e.MAX_TEXTURES,i=t._textureArrayPool,a=this.renderer.batch,o=this._tempBoundTextures,s=this.renderer.textureGC.count,c=++ga._globalBatch,l=0,u=i[0],d=0;a.copyBoundTextures(o,r);for(var f=0;f=r&&(a.boundArray(u,o,c,r),this.buildDrawCalls(u,d,f),d=f,u=i[++l],++c),p._batchEnabled=c,p.touched=s,u.elements[u.count++]=p)}u.count>0&&(a.boundArray(u,o,c,r),this.buildDrawCalls(u,d,this._bufferSize),++l,++c);for(var f=0;f0&&(t+=` +else `),nthis.maxX||this.minY>this.maxY},e.prototype.clear=function(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0},e.prototype.getRectangle=function(e){return this.minX>this.maxX||this.minY>this.maxY?Wi.EMPTY:(e||=new Wi(0,0,1,1),e.x=this.minX,e.y=this.minY,e.width=this.maxX-this.minX,e.height=this.maxY-this.minY,e)},e.prototype.addPoint=function(e){this.minX=Math.min(this.minX,e.x),this.maxX=Math.max(this.maxX,e.x),this.minY=Math.min(this.minY,e.y),this.maxY=Math.max(this.maxY,e.y)},e.prototype.addPointMatrix=function(e,t){var n=e.a,r=e.b,i=e.c,a=e.d,o=e.tx,s=e.ty,c=n*t.x+i*t.y+o,l=r*t.x+a*t.y+s;this.minX=Math.min(this.minX,c),this.maxX=Math.max(this.maxX,c),this.minY=Math.min(this.minY,l),this.maxY=Math.max(this.maxY,l)},e.prototype.addQuad=function(e){var t=this.minX,n=this.minY,r=this.maxX,i=this.maxY,a=e[0],o=e[1];t=ar?a:r,i=o>i?o:i,a=e[2],o=e[3],t=ar?a:r,i=o>i?o:i,a=e[4],o=e[5],t=ar?a:r,i=o>i?o:i,a=e[6],o=e[7],t=ar?a:r,i=o>i?o:i,this.minX=t,this.minY=n,this.maxX=r,this.maxY=i},e.prototype.addFrame=function(e,t,n,r,i){this.addFrameMatrix(e.worldTransform,t,n,r,i)},e.prototype.addFrameMatrix=function(e,t,n,r,i){var a=e.a,o=e.b,s=e.c,c=e.d,l=e.tx,u=e.ty,d=this.minX,f=this.minY,p=this.maxX,m=this.maxY,h=a*t+s*n+l,g=o*t+c*n+u;d=hp?h:p,m=g>m?g:m,h=a*r+s*n+l,g=o*r+c*n+u,d=hp?h:p,m=g>m?g:m,h=a*t+s*i+l,g=o*t+c*i+u,d=hp?h:p,m=g>m?g:m,h=a*r+s*i+l,g=o*r+c*i+u,d=hp?h:p,m=g>m?g:m,this.minX=d,this.minY=f,this.maxX=p,this.maxY=m},e.prototype.addVertexData=function(e,t,n){for(var r=this.minX,i=this.minY,a=this.maxX,o=this.maxY,s=t;sa?c:a,o=l>o?l:o}this.minX=r,this.minY=i,this.maxX=a,this.maxY=o},e.prototype.addVertices=function(e,t,n,r){this.addVerticesMatrix(e.worldTransform,t,n,r)},e.prototype.addVerticesMatrix=function(e,t,n,r,i,a){i===void 0&&(i=0),a===void 0&&(a=i);for(var o=e.a,s=e.b,c=e.c,l=e.d,u=e.tx,d=e.ty,f=this.minX,p=this.minY,m=this.maxX,h=this.maxY,g=n;gr?e.maxX:r,this.maxY=e.maxY>i?e.maxY:i},e.prototype.addBoundsMask=function(e,t){var n=e.minX>t.minX?e.minX:t.minX,r=e.minY>t.minY?e.minY:t.minY,i=e.maxXc?i:c,this.maxY=a>l?a:l}},e.prototype.addBoundsMatrix=function(e,t){this.addFrameMatrix(t,e.minX,e.minY,e.maxX,e.maxY)},e.prototype.addBoundsArea=function(e,t){var n=e.minX>t.x?e.minX:t.x,r=e.minY>t.y?e.minY:t.y,i=e.maxXc?i:c,this.maxY=a>l?a:l}},e.prototype.pad=function(e,t){e===void 0&&(e=0),t===void 0&&(t=e),this.isEmpty()||(this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t)},e.prototype.addFramePad=function(e,t,n,r,i,a){e-=i,t-=a,n+=i,r+=a,this.minX=this.minXn?this.maxX:n,this.minY=this.minYr?this.maxY:r},e}(),fc=function(e,t){return fc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},fc(e,t)};function pc(e,t){fc(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var mc=function(e){pc(t,e);function t(){var t=e.call(this)||this;return t.tempDisplayObjectParent=null,t.transform=new oa,t.alpha=1,t.visible=!0,t.renderable=!0,t.cullable=!1,t.cullArea=null,t.parent=null,t.worldAlpha=1,t._lastSortedIndex=0,t._zIndex=0,t.filterArea=null,t.filters=null,t._enabledFilters=null,t._bounds=new dc,t._localBounds=null,t._boundsID=0,t._boundsRect=null,t._localBoundsRect=null,t._mask=null,t._maskRefCount=0,t._destroyed=!1,t.isSprite=!1,t.isMask=!1,t}return t.mixin=function(e){for(var n=Object.keys(e),r=0;r1)for(var r=0;rthis.children.length)throw Error(e+`addChildAt: The index `+t+` supplied is out of bounds `+this.children.length);return e.parent&&e.parent.removeChild(e),e.parent=this,this.sortDirty=!0,e.transform._parentID=-1,this.children.splice(t,0,e),this._boundsID++,this.onChildrenChange(t),e.emit(`added`,this),this.emit(`childAdded`,e,this,t),e},t.prototype.swapChildren=function(e,t){if(e!==t){var n=this.getChildIndex(e),r=this.getChildIndex(t);this.children[n]=t,this.children[r]=e,this.onChildrenChange(n=this.children.length)throw Error(`The index `+t+` supplied is out of bounds `+this.children.length);var n=this.getChildIndex(e);_i(this.children,n,1),this.children.splice(t,0,e),this.onChildrenChange(t)},t.prototype.getChildAt=function(e){if(e<0||e>=this.children.length)throw Error(`getChildAt: Index (`+e+`) does not exist.`);return this.children[e]},t.prototype.removeChild=function(){for(var e=arguments,t=[],n=0;n1)for(var r=0;r0&&i<=r){a=this.children.splice(n,i);for(var o=0;o1&&this.children.sort(gc),this.sortDirty=!1},t.prototype.updateTransform=function(){this.sortableChildren&&this.sortDirty&&this.sortChildren(),this._boundsID++,this.transform.updateTransform(this.parent.transform),this.worldAlpha=this.alpha*this.parent.worldAlpha;for(var e=0,t=this.children.length;e0&&n.height>0){var r,i;if(this.cullArea?(r=this.cullArea,i=this.worldTransform):this._render!==t.prototype._render&&(r=this.getBounds(!0)),r&&n.intersects(r,i))this._render(e);else if(this.cullArea)return;for(var a=0,o=this.children.length;anew Promise((r,i)=>{var a=e=>{try{s(n.next(e))}catch(e){i(e)}},o=e=>{try{s(n.throw(e))}catch(e){i(e)}},s=e=>e.done?r(e.value):Promise.resolve(e.value).then(a,o);s((n=n.apply(e,t)).next())}),Sc=class e{constructor(){this._breathParameters=[],this._currentTime=0}static create(){return new e}setParameters(e){this._breathParameters=e}getParameters(){return this._breathParameters}updateParameters(e,t){this._currentTime+=t;let n=this._currentTime*2*3.14159;for(let t=0;t=1&&(r=1,this._blinkingState=Ec.EyeState_Closed,this._stateStartTimeSeconds=this._userTimeSeconds),n=1-r;break;case Ec.EyeState_Closed:r=(this._userTimeSeconds-this._stateStartTimeSeconds)/this._closedSeconds,r>=1&&(this._blinkingState=Ec.EyeState_Opening,this._stateStartTimeSeconds=this._userTimeSeconds),n=0;break;case Ec.EyeState_Opening:r=(this._userTimeSeconds-this._stateStartTimeSeconds)/this._openingSeconds,r>=1&&(r=1,this._blinkingState=Ec.EyeState_Interval,this._nextBlinkingTime=this.determinNextBlinkingTiming()),n=r;break;case Ec.EyeState_Interval:this._nextBlinkingTime(e[e.EyeState_First=0]=`EyeState_First`,e[e.EyeState_Interval=1]=`EyeState_Interval`,e[e.EyeState_Closing=2]=`EyeState_Closing`,e[e.EyeState_Closed=3]=`EyeState_Closed`,e[e.EyeState_Opening=4]=`EyeState_Opening`,e))(Ec||{});const Dc=.001,Oc=.5;var kc=class e{static create(t){let n=new e;typeof t.FadeInTime==`number`&&(n._fadeTimeSeconds=t.FadeInTime,n._fadeTimeSeconds<=0&&(n._fadeTimeSeconds=Oc));let r=t.Groups,i=r.length;for(let e=0;eDc){if(i>=0)break;i=o,a=e.getPartOpacityByIndex(n),a+=t/this._fadeTimeSeconds,a>1&&(a=1)}}i<0&&(i=0,a=1);for(let t=n;ts&&(r=1-s/(1-a)),t>r&&(t=r),e.setPartOpacityByIndex(n,t)}}}constructor(){this._fadeTimeSeconds=Oc,this._lastModel=void 0,this._partGroups=[],this._partGroupCounts=[]}},Ac=class e{constructor(e){this.parameterIndex=0,this.partIndex=0,this.partId=``,this.link=[],e!=null&&this.assignment(e)}assignment(e){return this.partId=e.partId,this.link=e.link.map(e=>e.clone()),this}initialize(e){this.parameterIndex=e.getParameterIndex(this.partId),this.partIndex=e.getPartIndex(this.partId),e.setParameterValueByIndex(this.parameterIndex,1)}clone(){let t=new e;return t.partId=this.partId,t.parameterIndex=this.parameterIndex,t.partIndex=this.partIndex,t.link=this.link.map(e=>e.clone()),t}},jc=class e{constructor(e,t){this.x=e||0,this.y=t||0}add(t){let n=new e(0,0);return n.x=this.x+t.x,n.y=this.y+t.y,n}substract(t){let n=new e(0,0);return n.x=this.x-t.x,n.y=this.y-t.y,n}multiply(t){let n=new e(0,0);return n.x=this.x*t.x,n.y=this.y*t.y,n}multiplyByScaler(t){return this.multiply(new e(t,t))}division(t){let n=new e(0,0);return n.x=this.x/t.x,n.y=this.y/t.y,n}divisionByScalar(t){return this.division(new e(t,t))}getLength(){return Math.sqrt(this.x*this.x+this.y*this.y)}getDistanceWith(e){return Math.sqrt((this.x-e.x)*(this.x-e.x)+(this.y-e.y)*(this.y-e.y))}dot(e){return this.x*e.x+this.y*e.y}normalize(){let e=(this.x*this.x+this.y*this.y)**.5;this.x/=e,this.y/=e}isEqual(e){return this.x==e.x&&this.y==e.y}isNotEqual(e){return!this.isEqual(e)}};const Mc=class{static range(e,t,n){return en&&(e=n),e}static sin(e){return Math.sin(e)}static cos(e){return Math.cos(e)}static abs(e){return Math.abs(e)}static sqrt(e){return Math.sqrt(e)}static cbrt(e){if(e===0)return e;let t=e,n=t<0;n&&(t=-t);let r;return t===1/0?r=1/0:(r=Math.exp(Math.log(t)/3),r=(t/(r*r)+2*r)/3),n?-r:r}static getEasingSine(e){return e<0?0:e>1?1:.5-.5*this.cos(e*Math.PI)}static max(e,t){return e>t?e:t}static min(e,t){return e>t?t:e}static degreesToRadian(e){return e/180*Math.PI}static radianToDegrees(e){return e*180/Math.PI}static directionToRadian(e,t){let n=Math.atan2(t.y,t.x),r=Math.atan2(e.y,e.x),i=n-r;for(;i<-Math.PI;)i+=Math.PI*2;for(;i>Math.PI;)i-=Math.PI*2;return i}static directionToDegrees(e,t){let n=this.directionToRadian(e,t),r=this.radianToDegrees(n);return t.x-e.x>0&&(r=-r),r}static radianToDirection(e){let t=new jc;return t.x=this.sin(e),t.y=this.cos(e),t}static quadraticEquation(e,t,n){return this.abs(e)1&&(e=1),t<0?t=0:t>1&&(t=1),n<0?n=0:n>1&&(n=1),r<0?r=0:r>1&&(r=1),this._modelColor.R=e,this._modelColor.G=t,this._modelColor.B=n,this._modelColor.A=r}getModelColor(){return Object.assign({},this._modelColor)}setIsPremultipliedAlpha(e){this._isPremultipliedAlpha=e}isPremultipliedAlpha(){return this._isPremultipliedAlpha}setIsCulling(e){this._isCulling=e}isCulling(){return this._isCulling}setAnisotropy(e){this._anisortopy=e}getAnisotropy(){return this._anisortopy}getModel(){return this._model}constructor(){this._isCulling=!1,this._isPremultipliedAlpha=!1,this._anisortopy=0,this._modelColor=new Lc,this._mvpMatrix4x4=new Pc,this._mvpMatrix4x4.loadIdentity()}},Ic=(e=>(e[e.CubismBlendMode_Normal=0]=`CubismBlendMode_Normal`,e[e.CubismBlendMode_Additive=1]=`CubismBlendMode_Additive`,e[e.CubismBlendMode_Multiplicative=2]=`CubismBlendMode_Multiplicative`,e))(Ic||{}),Lc=class{constructor(){this.R=1,this.G=1,this.B=1,this.A=1}};let Rc=!1,zc=!1,Bc;const Vc={vertexOffset:0,vertexStep:2};var Hc=class{static startUp(e){if(Rc)return Kc(`CubismFramework.startUp() is already done.`),Rc;if(Live2DCubismCore._isStarted)return Rc=!0,!0;if(Live2DCubismCore._isStarted=!0,Bc=e,Bc&&Live2DCubismCore.Logging.csmSetLogFunction(Bc.logFunction),Rc=!0,Rc){let e=Live2DCubismCore.Version.csmGetVersion(),t=(e&4278190080)>>24,n=(e&16711680)>>16,r=e&65535,i=e;Kc(`Live2D Cubism Core version: {0}.{1}.{2} ({3})`,(`00`+t).slice(-2),(`00`+n).slice(-2),(`0000`+r).slice(-4),i)}return Kc(`CubismFramework.startUp() is complete.`),Rc}static cleanUp(){Rc=!1,zc=!1,Bc=void 0}static initialize(){if(!Rc){qc(`CubismFramework is not started.`);return}if(zc){qc(`CubismFramework.initialize() skipped, already initialized.`);return}zc=!0,Kc(`CubismFramework.initialize() is complete.`)}static dispose(){if(!Rc){qc(`CubismFramework is not started.`);return}if(!zc){qc(`CubismFramework.dispose() skipped, not initialized.`);return}Fc.staticRelease(),zc=!1,Kc(`CubismFramework.dispose() is complete.`)}static isStarted(){return Rc}static isInitialized(){return zc}static coreLogFunction(e){Live2DCubismCore.Logging.csmGetLogFunction()&&Live2DCubismCore.Logging.csmGetLogFunction()(e)}static getLoggingLevel(){return Bc==null?Uc.LogLevel_Off:Bc.loggingLevel}constructor(){}},Uc=(e=>(e[e.LogLevel_Verbose=0]=`LogLevel_Verbose`,e[e.LogLevel_Debug=1]=`LogLevel_Debug`,e[e.LogLevel_Info=2]=`LogLevel_Info`,e[e.LogLevel_Warning=3]=`LogLevel_Warning`,e[e.LogLevel_Error=4]=`LogLevel_Error`,e[e.LogLevel_Off=5]=`LogLevel_Off`,e))(Uc||{});const Wc=()=>{};function Gc(e,...t){Yc.print(Uc.LogLevel_Debug,`[CSM][D]`+e+` +`,t)}function Kc(e,...t){Yc.print(Uc.LogLevel_Info,`[CSM][I]`+e+` +`,t)}function qc(e,...t){Yc.print(Uc.LogLevel_Warning,`[CSM][W]`+e+` +`,t)}function Jc(e,...t){Yc.print(Uc.LogLevel_Error,`[CSM][E]`+e+` +`,t)}var Yc=class{static print(e,t,n){if(en[t]);r(i)}static dumpBytes(e,t,n){for(let r=0;r0?this.print(e,` +`):r%8==0&&r>0&&this.print(e,` `),this.print(e,`{0} `,[t[r]&255]);this.print(e,` +`)}constructor(){}},Xc=class{update(){this._model.update(),this._model.drawables.resetDynamicFlags()}getCanvasWidth(){return this._model==null?0:this._model.canvasinfo.CanvasWidth/this._model.canvasinfo.PixelsPerUnit}getCanvasHeight(){return this._model==null?0:this._model.canvasinfo.CanvasHeight/this._model.canvasinfo.PixelsPerUnit}saveParameters(){let e=this._model.parameters.count,t=this._savedParameters.length;for(let n=0;nt&&(t=this._model.parameters.minimumValues[e]),this._parameterValues[e]=n==1?t:this._parameterValues[e]=this._parameterValues[e]*(1-n)+t*n}setParameterValueById(e,t,n=1){let r=this.getParameterIndex(e);this.setParameterValueByIndex(r,t,n)}addParameterValueByIndex(e,t,n=1){this.setParameterValueByIndex(e,this.getParameterValueByIndex(e)+t*n)}addParameterValueById(e,t,n=1){let r=this.getParameterIndex(e);this.addParameterValueByIndex(r,t,n)}multiplyParameterValueById(e,t,n=1){let r=this.getParameterIndex(e);this.multiplyParameterValueByIndex(r,t,n)}multiplyParameterValueByIndex(e,t,n=1){this.setParameterValueByIndex(e,this.getParameterValueByIndex(e)*(1+(t-1)*n))}getDrawableIds(){return this._drawableIds.slice()}getDrawableIndex(e){let t=this._model.drawables.count;for(let n=0;nt&&(e=t);for(let t=0;t0&&t.getEndTime()(e[e.ExpressionBlendType_Add=0]=`ExpressionBlendType_Add`,e[e.ExpressionBlendType_Multiply=1]=`ExpressionBlendType_Multiply`,e[e.ExpressionBlendType_Overwrite=2]=`ExpressionBlendType_Overwrite`,e))(tl||{}),nl;(e=>{e.supportMoreMaskDivisions=!0,e.setOpacityFromMotion=!1})(nl||={});var rl=(e=>(e[e.CubismMotionCurveTarget_Model=0]=`CubismMotionCurveTarget_Model`,e[e.CubismMotionCurveTarget_Parameter=1]=`CubismMotionCurveTarget_Parameter`,e[e.CubismMotionCurveTarget_PartOpacity=2]=`CubismMotionCurveTarget_PartOpacity`,e))(rl||{}),il=(e=>(e[e.CubismMotionSegmentType_Linear=0]=`CubismMotionSegmentType_Linear`,e[e.CubismMotionSegmentType_Bezier=1]=`CubismMotionSegmentType_Bezier`,e[e.CubismMotionSegmentType_Stepped=2]=`CubismMotionSegmentType_Stepped`,e[e.CubismMotionSegmentType_InverseStepped=3]=`CubismMotionSegmentType_InverseStepped`,e))(il||{}),al=class{constructor(e=0,t=0){this.time=e,this.value=t}},ol=class{constructor(){this.basePointIndex=0,this.segmentType=0}},sl=class{constructor(){this.id=``,this.type=0,this.segmentCount=0,this.baseSegmentIndex=0,this.fadeInTime=0,this.fadeOutTime=0}},cl=class{constructor(){this.fireTime=0,this.value=``}},ll=class{constructor(){this.duration=0,this.loop=!1,this.curveCount=0,this.eventCount=0,this.fps=0,this.curves=[],this.segments=[],this.points=[],this.events=[]}},ul=class{constructor(e){this._json=e}release(){this._json=void 0}getMotionDuration(){return this._json.Meta.Duration}isMotionLoop(){return this._json.Meta.Loop||!1}getEvaluationOptionFlag(e){return dl.EvaluationOptionFlag_AreBeziersRistricted==e?!!this._json.Meta.AreBeziersRestricted:!1}getMotionCurveCount(){return this._json.Meta.CurveCount}getMotionFps(){return this._json.Meta.Fps}getMotionTotalSegmentCount(){return this._json.Meta.TotalSegmentCount}getMotionTotalPointCount(){return this._json.Meta.TotalPointCount}getMotionFadeInTime(){return this._json.Meta.FadeInTime}getMotionFadeOutTime(){return this._json.Meta.FadeOutTime}getMotionCurveTarget(e){return this._json.Curves[e].Target}getMotionCurveId(e){return this._json.Curves[e].Id}getMotionCurveFadeInTime(e){return this._json.Curves[e].FadeInTime}getMotionCurveFadeOutTime(e){return this._json.Curves[e].FadeOutTime}getMotionCurveSegmentCount(e){return this._json.Curves[e].Segments.length}getMotionCurveSegment(e,t){return this._json.Curves[e].Segments[t]}getEventCount(){return this._json.Meta.UserDataCount||0}getTotalEventValueSize(){return this._json.Meta.TotalUserDataSize}getEventTime(e){return this._json.UserData[e].Time}getEventValue(e){return this._json.UserData[e].Value}},dl=(e=>(e[e.EvaluationOptionFlag_AreBeziersRistricted=0]=`EvaluationOptionFlag_AreBeziersRistricted`,e))(dl||{});const fl=`EyeBlink`,pl=`LipSync`,ml=`Model`,hl=`Parameter`,gl=`PartOpacity`,_l=!1;function vl(e,t,n){let r=new al;return r.time=e.time+(t.time-e.time)*n,r.value=e.value+(t.value-e.value)*n,r}function yl(e,t){let n=(t-e[0].time)/(e[1].time-e[0].time);return n<0&&(n=0),e[0].value+(e[1].value-e[0].value)*n}function bl(e,t){let n=(t-e[0].time)/(e[3].time-e[0].time);n<0&&(n=0);let r=vl(e[0],e[1],n),i=vl(e[1],e[2],n),a=vl(e[2],e[3],n),o=vl(r,i,n),s=vl(i,a,n);return vl(o,s,n).value}function xl(e,t){let n=t,r=e[0].time,i=e[3].time,a=e[1].time,o=e[2].time,s=i-3*o+3*a-r,c=3*o-6*a+3*r,l=3*a-3*r,u=r-n,d=Nc.cardanoAlgorithmForBezier(s,c,l,u),f=vl(e[0],e[1],d),p=vl(e[1],e[2],d),m=vl(e[2],e[3],d),h=vl(f,p,d),g=vl(p,m,d);return vl(h,g,d).value}function Sl(e,t){return e[0].value}function Cl(e,t){return e[1].value}function wl(e,t,n){let r=e.curves[t],i=-1,a=r.baseSegmentIndex+r.segmentCount,o=0;for(let t=r.baseSegmentIndex;tn){i=t;break}if(i==-1)return e.points[o].value;let s=e.segments[i];return s.evaluate(e.points.slice(s.basePointIndex),n)}var Tl=class e extends Qc{constructor(){super(),this._eyeBlinkParameterIds=[],this._lipSyncParameterIds=[],this._sourceFrameRate=30,this._loopDurationSeconds=-1,this._isLoop=!1,this._isLoopFadeIn=!0,this._lastWeight=0}static create(t,n){let r=new e;return r.parse(t),r._sourceFrameRate=r._motionData.fps,r._loopDurationSeconds=r._motionData.duration,r._onFinishedMotion=n,r}doUpdateParameters(e,t,n,r){this._modelCurveIdEyeBlink??=fl,this._modelCurveIdLipSync??=pl;let i=t-r.getStartTime();i<0&&(i=0);let a=Number.MAX_VALUE,o=Number.MAX_VALUE,s=64,c=0,l=0;this._eyeBlinkParameterIds.length>s&&Gc(`too many eye blink targets : {0}`,this._eyeBlinkParameterIds.length),this._lipSyncParameterIds.length>s&&Gc(`too many lip sync targets : {0}`,this._lipSyncParameterIds.length);let u=this._fadeInSeconds<=0?1:Nc.getEasingSine((t-r.getFadeInStartTime())/this._fadeInSeconds),d=this._fadeOutSeconds<=0||r.getEndTime()<0?1:Nc.getEasingSine((r.getEndTime()-t)/this._fadeOutSeconds),f,p,m,h=i;if(this._isLoop)for(;h>this._motionData.duration;)h-=this._motionData.duration;let g=this._motionData.curves;for(p=0;p>t&1)continue;let i=r+(o-r)*n;e.setParameterValueById(this._eyeBlinkParameterIds[t],i)}if(a!=Number.MAX_VALUE)for(let t=0;t>t&1)continue;let i=r+(a-r)*n;e.setParameterValueById(this._lipSyncParameterIds[t],i)}for(;p=this._motionData.duration&&(this._isLoop?(r.setStartTime(t),this._isLoopFadeIn&&r.setFadeInStartTime(t)):(this._onFinishedMotion&&this._onFinishedMotion(this),r.setIsFinished(!0))),this._lastWeight=n}setIsLoop(e){this._isLoop=e}isLoop(){return this._isLoop}setIsLoopFadeIn(e){this._isLoopFadeIn=e}isLoopFadeIn(){return this._isLoopFadeIn}getDuration(){return this._isLoop?-1:this._loopDurationSeconds}getLoopDuration(){return this._loopDurationSeconds}setParameterFadeInTime(e,t){let n=this._motionData.curves;for(let r=0;rnew sl),this._motionData.segments=Array.from({length:t.getMotionTotalSegmentCount()}).map(()=>new ol),this._motionData.events=Array.from({length:this._motionData.eventCount}).map(()=>new cl),this._motionData.points=[];let a=0,o=0;for(let e=0;ee&&this._motionData.events[n].fireTime<=t&&this._firedEventValues.push(this._motionData.events[n].value);return this._firedEventValues}},El=class{constructor(){this._autoDelete=!1,this._available=!0,this._finished=!1,this._started=!1,this._startTimeSeconds=-1,this._fadeInStartTimeSeconds=0,this._endTimeSeconds=-1,this._stateTimeSeconds=0,this._stateWeight=0,this._lastEventCheckSeconds=0,this._motionQueueEntryHandle=this,this._fadeOutSeconds=0,this._isTriggeredFadeOut=!1}release(){this._autoDelete&&this._motion&&this._motion.release()}setFadeOut(e){this._fadeOutSeconds=e,this._isTriggeredFadeOut=!0}startFadeOut(e,t){let n=t+e;this._isTriggeredFadeOut=!0,(this._endTimeSeconds<0||nt!=null&&t._motionQueueEntryHandle==e)}setEventCallback(e,t=null){this._eventCallBack=e,this._eventCustomData=t}doUpdateMotion(e,t){let n=!1,r=0;for(;r(e[e.CubismPhysicsTargetType_Parameter=0]=`CubismPhysicsTargetType_Parameter`,e))(kl||{}),Al=(e=>(e[e.CubismPhysicsSource_X=0]=`CubismPhysicsSource_X`,e[e.CubismPhysicsSource_Y=1]=`CubismPhysicsSource_Y`,e[e.CubismPhysicsSource_Angle=2]=`CubismPhysicsSource_Angle`,e))(Al||{}),jl=class{constructor(){this.initialPosition=new jc(0,0),this.position=new jc(0,0),this.lastPosition=new jc(0,0),this.lastGravity=new jc(0,0),this.force=new jc(0,0),this.velocity=new jc(0,0)}},Ml=class{constructor(){this.normalizationPosition={},this.normalizationAngle={}}},Nl=class{constructor(){this.source={}}},Pl=class{constructor(){this.destination={},this.translationScale=new jc(0,0)}},Fl=class{constructor(){this.settings=[],this.inputs=[],this.outputs=[],this.particles=[],this.gravity=new jc(0,0),this.wind=new jc(0,0)}},Il=class{constructor(e){this._json=e}release(){this._json=void 0}getGravity(){let e=new jc(0,0);return e.x=this._json.Meta.EffectiveForces.Gravity.X,e.y=this._json.Meta.EffectiveForces.Gravity.Y,e}getWind(){let e=new jc(0,0);return e.x=this._json.Meta.EffectiveForces.Wind.X,e.y=this._json.Meta.EffectiveForces.Wind.Y,e}getSubRigCount(){return this._json.Meta.PhysicsSettingCount}getTotalInputCount(){return this._json.Meta.TotalInputCount}getTotalOutputCount(){return this._json.Meta.TotalOutputCount}getVertexCount(){return this._json.Meta.VertexCount}getNormalizationPositionMinimumValue(e){return this._json.PhysicsSettings[e].Normalization.Position.Minimum}getNormalizationPositionMaximumValue(e){return this._json.PhysicsSettings[e].Normalization.Position.Maximum}getNormalizationPositionDefaultValue(e){return this._json.PhysicsSettings[e].Normalization.Position.Default}getNormalizationAngleMinimumValue(e){return this._json.PhysicsSettings[e].Normalization.Angle.Minimum}getNormalizationAngleMaximumValue(e){return this._json.PhysicsSettings[e].Normalization.Angle.Maximum}getNormalizationAngleDefaultValue(e){return this._json.PhysicsSettings[e].Normalization.Angle.Default}getInputCount(e){return this._json.PhysicsSettings[e].Input.length}getInputWeight(e,t){return this._json.PhysicsSettings[e].Input[t].Weight}getInputReflect(e,t){return this._json.PhysicsSettings[e].Input[t].Reflect}getInputType(e,t){return this._json.PhysicsSettings[e].Input[t].Type}getInputSourceId(e,t){return this._json.PhysicsSettings[e].Input[t].Source.Id}getOutputCount(e){return this._json.PhysicsSettings[e].Output.length}getOutputVertexIndex(e,t){return this._json.PhysicsSettings[e].Output[t].VertexIndex}getOutputAngleScale(e,t){return this._json.PhysicsSettings[e].Output[t].Scale}getOutputWeight(e,t){return this._json.PhysicsSettings[e].Output[t].Weight}getOutputDestinationId(e,t){return this._json.PhysicsSettings[e].Output[t].Destination.Id}getOutputType(e,t){return this._json.PhysicsSettings[e].Output[t].Type}getOutputReflect(e,t){return this._json.PhysicsSettings[e].Output[t].Reflect}getParticleCount(e){return this._json.PhysicsSettings[e].Vertices.length}getParticleMobility(e,t){return this._json.PhysicsSettings[e].Vertices[t].Mobility}getParticleDelay(e,t){return this._json.PhysicsSettings[e].Vertices[t].Delay}getParticleAcceleration(e,t){return this._json.PhysicsSettings[e].Vertices[t].Acceleration}getParticleRadius(e,t){return this._json.PhysicsSettings[e].Vertices[t].Radius}getParticlePosition(e,t){let n=new jc(0,0);return n.x=this._json.PhysicsSettings[e].Vertices[t].Position.X,n.y=this._json.PhysicsSettings[e].Vertices[t].Position.Y,n}};const Ll=`X`,Rl=`Y`,zl=`Angle`,Bl=5,Vl=100,Hl=.001;var Ul=class e{static create(t){let n=new e;return n.parse(t),n._physicsRig.gravity.y=0,n}evaluate(e,t){let n,r,i,a,o=new jc,s,c,l,u,d,f,p,m;d=e.getModel().parameters.values,f=e.getModel().parameters.maximumValues,p=e.getModel().parameters.minimumValues,m=e.getModel().parameters.defaultValues;for(let h=0;h=s.particleCount)break;l[t].destinationParameterIndex==-1&&(l[t].destinationParameterIndex=e.getParameterIndex(l[t].destination.id));let r=new jc;r.x=u[n].position.x-u[n-1].position.x,r.y=u[n].position.y-u[n-1].position.y,a=l[t].getValue(r,u,n,l[t].reflect,this._options.gravity);let i=l[t].destinationParameterIndex,o=!Float32Array.prototype.slice&&`subarray`in Float32Array.prototype?JSON.parse(JSON.stringify(d.subarray(i))):d.slice(i);ru(o,p[i],f[i],a,l[t]);for(let e=i,t=0;e=2?t[n-1].position.substract(t[n-2].position):i.multiplyByScaler(-1),a=Nc.directionToRadian(i,e),r&&(a*=-1),a}function Zl(e,t){return Math.abs(Math.max(e,t)-Math.min(e,t))}function Ql(e,t){let n=Math.min(e,t);return n+Zl(e,t)/2}function $l(e,t){return e.x}function eu(e,t){return e.y}function tu(e,t){return t}function nu(e,t,n,r,i,a,o,s){let c,l,u,d,f=new jc(0,0),p=new jc(0,0),m=new jc(0,0),h=new jc(0,0);e[0].position=new jc(n.x,n.y),c=Nc.degreesToRadian(r),d=Nc.radianToDirection(c),d.normalize();for(let n=1;nn&&(o>i.valueExceededMaximum&&(i.valueExceededMaximum=o),o=n),s=i.weight/Vl,s>=1||(o=e[0]*(1-s)+o*s),e[0]=o}function iu(e,t,n,r,i,a,o,s){let c=0,l=Nc.max(n,t);le&&(e=u);let d=Nc.min(i,a),f=Nc.max(i,a),p=o,m=Ql(u,l),h=e-m;switch(Math.sign(h)){case 1:{let e=f-p,t=l-m;t!=0&&(c=h*(e/t),c+=p);break}case-1:{let e=d-p,t=u-m;t!=0&&(c=h*(e/t),c+=p);break}case 0:c=p;break}return s?c:c*-1}var au=class{constructor(e=0,t=0,n=0,r=0){this.x=e,this.y=t,this.width=n,this.height=r}getCenterX(){return this.x+.5*this.width}getCenterY(){return this.y+.5*this.height}getRight(){return this.x+this.width}getBottom(){return this.y+this.height}setRect(e){this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height}expand(e,t){this.x-=e,this.y-=t,this.width+=e*2,this.height+=t*2}};const ou=4,su=10;let cu,lu,uu;var du=class{getChannelFlagAsColor(e){return this._channelColors[e]}getMaskRenderTexture(){let e=0;if(this._maskTexture&&this._maskTexture.texture!=0&&(this._maskTexture.frameNo=this._currentFrameNo,e=this._maskTexture.texture),e==0){let t=this._clippingMaskBufferSize;this._colorBuffer=this.gl.createTexture(),this.gl.bindTexture(this.gl.TEXTURE_2D,this._colorBuffer),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,t,t,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,null),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),this.gl.bindTexture(this.gl.TEXTURE_2D,null),e=this.gl.createFramebuffer(),this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,e),this.gl.framebufferTexture2D(this.gl.FRAMEBUFFER,this.gl.COLOR_ATTACHMENT0,this.gl.TEXTURE_2D,this._colorBuffer,0),this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,uu),this._maskTexture=new fu(this._currentFrameNo,e)}return e}setGL(e){this.gl=e}calcClippedDrawTotalBounds(e,t){let n=Number.MAX_VALUE,r=Number.MAX_VALUE,i=Number.MIN_VALUE,a=Number.MIN_VALUE,o=t._clippedDrawableIndexList.length;for(let s=0;sf&&(f=t),np&&(p=n)}if(u!=Number.MAX_VALUE)if(ui&&(i=f),p>a&&(a=p),n==Number.MAX_VALUE)t._allClippedDrawRect.x=0,t._allClippedDrawRect.y=0,t._allClippedDrawRect.width=0,t._allClippedDrawRect.height=0,t._isUsing=!1;else{t._isUsing=!0;let e=i-n,o=a-r;t._allClippedDrawRect.x=n,t._allClippedDrawRect.y=r,t._allClippedDrawRect.width=e,t._allClippedDrawRect.height=o}}}constructor(){this._maskRenderTexture=null,this._colorBuffer=null,this._currentFrameNo=0,this._clippingMaskBufferSize=256,this._clippingContextListForMask=[],this._clippingContextListForDraw=[],this._channelColors=[],this._tmpBoundsOnModel=new au,this._tmpMatrix=new Pc,this._tmpMatrixForMask=new Pc,this._tmpMatrixForDraw=new Pc;let e=new Lc;e.R=1,e.G=0,e.B=0,e.A=0,this._channelColors.push(e),e=new Lc,e.R=0,e.G=1,e.B=0,e.A=0,this._channelColors.push(e),e=new Lc,e.R=0,e.G=0,e.B=1,e.A=0,this._channelColors.push(e),e=new Lc,e.R=0,e.G=0,e.B=0,e.A=1,this._channelColors.push(e)}release(){var e,t,n;let r=this;for(let t=0;t0){this.gl.viewport(0,0,this._clippingMaskBufferSize,this._clippingMaskBufferSize),this._maskRenderTexture=this.getMaskRenderTexture(),t.getMvpMatrix(),t.preDraw(),this.setupLayoutBounds(n),this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,this._maskRenderTexture),this.gl.clearColor(1,1,1,1),this.gl.clear(this.gl.COLOR_BUFFER_BIT);for(let n=0;n(e[e.ShaderNames_SetupMask=0]=`ShaderNames_SetupMask`,e[e.ShaderNames_NormalPremultipliedAlpha=1]=`ShaderNames_NormalPremultipliedAlpha`,e[e.ShaderNames_NormalMaskedPremultipliedAlpha=2]=`ShaderNames_NormalMaskedPremultipliedAlpha`,e[e.ShaderNames_NomralMaskedInvertedPremultipliedAlpha=3]=`ShaderNames_NomralMaskedInvertedPremultipliedAlpha`,e[e.ShaderNames_AddPremultipliedAlpha=4]=`ShaderNames_AddPremultipliedAlpha`,e[e.ShaderNames_AddMaskedPremultipliedAlpha=5]=`ShaderNames_AddMaskedPremultipliedAlpha`,e[e.ShaderNames_AddMaskedPremultipliedAlphaInverted=6]=`ShaderNames_AddMaskedPremultipliedAlphaInverted`,e[e.ShaderNames_MultPremultipliedAlpha=7]=`ShaderNames_MultPremultipliedAlpha`,e[e.ShaderNames_MultMaskedPremultipliedAlpha=8]=`ShaderNames_MultMaskedPremultipliedAlpha`,e[e.ShaderNames_MultMaskedPremultipliedAlphaInverted=9]=`ShaderNames_MultMaskedPremultipliedAlphaInverted`,e))(hu||{});const gu=`attribute vec4 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;varying vec4 v_myPos;uniform mat4 u_clipMatrix;void main(){ gl_Position = u_clipMatrix * a_position; v_myPos = u_clipMatrix * a_position; v_texCoord = a_texCoord; v_texCoord.y = 1.0 - v_texCoord.y;}`,_u=`precision mediump float;varying vec2 v_texCoord;varying vec4 v_myPos;uniform vec4 u_baseColor;uniform vec4 u_channelFlag;uniform sampler2D s_texture0;void main(){ float isInside = step(u_baseColor.x, v_myPos.x/v_myPos.w) * step(u_baseColor.y, v_myPos.y/v_myPos.w) * step(v_myPos.x/v_myPos.w, u_baseColor.z) * step(v_myPos.y/v_myPos.w, u_baseColor.w); gl_FragColor = u_channelFlag * texture2D(s_texture0, v_texCoord).a * isInside;}`,vu=`attribute vec4 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;uniform mat4 u_matrix;void main(){ gl_Position = u_matrix * a_position; v_texCoord = a_texCoord; v_texCoord.y = 1.0 - v_texCoord.y;}`,yu=`attribute vec4 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;varying vec4 v_clipPos;uniform mat4 u_matrix;uniform mat4 u_clipMatrix;void main(){ gl_Position = u_matrix * a_position; v_clipPos = u_clipMatrix * a_position; v_texCoord = a_texCoord; v_texCoord.y = 1.0 - v_texCoord.y;}`,bu=`precision mediump float;varying vec2 v_texCoord;uniform vec4 u_baseColor;uniform sampler2D s_texture0;void main(){ gl_FragColor = texture2D(s_texture0 , v_texCoord) * u_baseColor;}`,xu=`precision mediump float;varying vec2 v_texCoord;varying vec4 v_clipPos;uniform vec4 u_baseColor;uniform vec4 u_channelFlag;uniform sampler2D s_texture0;uniform sampler2D s_texture1;void main(){ vec4 col_formask = texture2D(s_texture0 , v_texCoord) * u_baseColor; vec4 clipMask = (1.0 - texture2D(s_texture1, v_clipPos.xy / v_clipPos.w)) * u_channelFlag; float maskVal = clipMask.r + clipMask.g + clipMask.b + clipMask.a; col_formask = col_formask * maskVal; gl_FragColor = col_formask;}`,Su=`precision mediump float;varying vec2 v_texCoord;varying vec4 v_clipPos;uniform sampler2D s_texture0;uniform sampler2D s_texture1;uniform vec4 u_channelFlag;uniform vec4 u_baseColor;void main(){vec4 col_formask = texture2D(s_texture0, v_texCoord) * u_baseColor;vec4 clipMask = (1.0 - texture2D(s_texture1, v_clipPos.xy / v_clipPos.w)) * u_channelFlag;float maskVal = clipMask.r + clipMask.g + clipMask.b + clipMask.a;col_formask = col_formask * (1.0 - maskVal);gl_FragColor = col_formask;}`;var Cu=class extends Fc{constructor(){super(),this._clippingContextBufferForMask=null,this._clippingContextBufferForDraw=null,this._clippingManager=new du,this.firstDraw=!0,this._textures={},this._sortedDrawableIndexList=[],this._bufferData={vertex:null,uv:null,index:null}}initialize(e){e.isUsingMasking()&&(this._clippingManager=new du,this._clippingManager.initialize(e,e.getDrawableCount(),e.getDrawableMasks(),e.getDrawableMaskCounts()));for(let t=e.getDrawableCount()-1;t>=0;t--)this._sortedDrawableIndexList[t]=0;super.initialize(e)}bindTexture(e,t){this._textures[e]=t}getBindedTextures(){return this._textures}setClippingMaskBufferSize(e){this._clippingManager.release(),this._clippingManager=new du,this._clippingManager.setClippingMaskBufferSize(e),this._clippingManager.initialize(this.getModel(),this.getModel().getDrawableCount(),this.getModel().getDrawableMasks(),this.getModel().getDrawableMaskCounts())}getClippingMaskBufferSize(){return this._clippingManager.getClippingMaskBufferSize()}release(){var e,t,n;let r=this;this._clippingManager.release(),r._clippingManager=void 0,(e=this.gl)==null||e.deleteBuffer(this._bufferData.vertex),this._bufferData.vertex=null,(t=this.gl)==null||t.deleteBuffer(this._bufferData.uv),this._bufferData.uv=null,(n=this.gl)==null||n.deleteBuffer(this._bufferData.index),this._bufferData.index=null,r._bufferData=void 0,r._textures=void 0}doDrawModel(){this.preDraw(),this._clippingManager!=null&&this._clippingManager.setupClippingContext(this.getModel(),this);let e=this.getModel().getDrawableCount(),t=this.getModel().getDrawableRenderOrders();for(let n=0;n{Cu.doStaticRelease()};var wu=class{constructor(e){this.groups=e.Groups,this.hitAreas=e.HitAreas,this.layout=e.Layout,this.moc=e.FileReferences.Moc,this.expressions=e.FileReferences.Expressions,this.motions=e.FileReferences.Motions,this.textures=e.FileReferences.Textures,this.physics=e.FileReferences.Physics,this.pose=e.FileReferences.Pose}getEyeBlinkParameters(){var e,t;return(t=(e=this.groups)?.find(e=>e.Name===`EyeBlink`))?.Ids}getLipSyncParameters(){var e,t;return(t=(e=this.groups)?.find(e=>e.Name===`LipSync`))?.Ids}};const Tu=`ParamAngleX`,Eu=`ParamAngleY`,Du=`ParamAngleZ`,Ou=`ParamEyeBallX`,ku=`ParamEyeBallY`,Au=`ParamBodyAngleX`,ju=`ParamBreath`,Mu=2,Nu=2;var Pu;(e=>{e.LOG_LEVEL_VERBOSE=0,e.LOG_LEVEL_WARNING=1,e.LOG_LEVEL_ERROR=2,e.LOG_LEVEL_NONE=999,e.logLevel=e.LOG_LEVEL_WARNING,e.sound=!0,e.motionSync=!0,e.motionFadingDuration=500,e.idleMotionFadingDuration=2e3,e.expressionFadingDuration=500,e.preserveExpressionOnMotion=!0,e.cubism4=nl})(Pu||={});const Fu={log(e,...t){Pu.logLevel<=Pu.LOG_LEVEL_VERBOSE&&console.log(`[${e}]`,...t)},warn(e,...t){Pu.logLevel<=Pu.LOG_LEVEL_WARNING&&console.warn(`[${e}]`,...t)},error(e,...t){Pu.logLevel<=Pu.LOG_LEVEL_ERROR&&console.error(`[${e}]`,...t)}};function Iu(e,t,n){return en?n:e}function Lu(e,t){t.forEach(t=>{Object.getOwnPropertyNames(t.prototype).forEach(n=>{n!==`constructor`&&Object.defineProperty(e.prototype,n,Object.getOwnPropertyDescriptor(t.prototype,n))})})}function Ru(e){let t=e.lastIndexOf(`/`);return t!=-1&&(e=e.slice(0,t)),t=e.lastIndexOf(`/`),t!==-1&&(e=e.slice(t+1)),e}function zu(e,t){let n=e.indexOf(t);n!==-1&&e.splice(n,1)}var Bu=class extends Qr.default{constructor(e,t){super(),this.expressions=[],this.reserveExpressionIndex=-1,this.destroyed=!1,this.settings=e,this.tag=`ExpressionManager(${e.name})`}init(){this.defaultExpression=this.createExpression({},void 0),this.currentExpression=this.defaultExpression,this.stopAllExpressions()}loadExpression(e){return xc(this,null,function*(){if(!this.definitions[e]){Fu.warn(this.tag,`Undefined expression at [${e}]`);return}if(this.expressions[e]===null){Fu.warn(this.tag,`Cannot set expression at [${e}] because it's already failed in loading.`);return}if(this.expressions[e])return this.expressions[e];let t=yield this._loadExpression(e);return this.expressions[e]=t,t})}_loadExpression(e){throw Error(`Not implemented.`)}setRandomExpression(){return xc(this,null,function*(){if(this.definitions.length){let e=[];for(let t=0;t-1&&ec&&(a*=c/s,o*=c/s),this.vx+=a,this.vy+=o;let l=Math.sqrt(bc(this.vx,2)+bc(this.vy,2)),u=.5*(Math.sqrt(bc(c,2)+8*c*r)-c);l>u&&(this.vx*=u/l,this.vy*=u/l),this.x+=this.vx,this.y+=this.vy}},Gu=class{constructor(e){this.json=e;let t=e.url;if(typeof t!=`string`)throw TypeError("The `url` field in settings JSON must be defined as a string.");this.url=t,this.name=Ru(this.url)}resolveURL(e){return ti.resolve(this.url,e)}replaceFiles(e){this.moc=e(this.moc,`moc`),this.pose!==void 0&&(this.pose=e(this.pose,`pose`)),this.physics!==void 0&&(this.physics=e(this.physics,`physics`));for(let t=0;t(e.push(t),t)),e}validateFiles(e){let t=(t,n)=>{let r=this.resolveURL(t);if(!e.includes(r)){if(n)throw Error(`File "${t}" is defined in settings, but doesn't exist in given files`);return!1}return!0},n=[this.moc,...this.textures];n.forEach(e=>t(e,!0));let r=this.getDefinedFiles();return r.filter(e=>t(e,!1))}},Ku=(e=>(e[e.NONE=0]=`NONE`,e[e.IDLE=1]=`IDLE`,e[e.NORMAL=2]=`NORMAL`,e[e.FORCE=3]=`FORCE`,e))(Ku||{}),qu=class{constructor(){this.debug=!1,this.currentPriority=0,this.reservePriority=0}reserve(e,t,n){if(n<=0)return Fu.log(this.tag,`Cannot start a motion with MotionPriority.NONE.`),!1;if(e===this.currentGroup&&t===this.currentIndex)return Fu.log(this.tag,`Motion is already playing.`,this.dump(e,t)),!1;if(e===this.reservedGroup&&t===this.reservedIndex||e===this.reservedIdleGroup&&t===this.reservedIdleIndex)return Fu.log(this.tag,`Motion is already reserved.`,this.dump(e,t)),!1;if(n===1){if(this.currentPriority!==0)return Fu.log(this.tag,`Cannot start idle motion because another motion is playing.`,this.dump(e,t)),!1;if(this.reservedIdleGroup!==void 0)return Fu.log(this.tag,`Cannot start idle motion because another idle motion has reserved.`,this.dump(e,t)),!1;this.setReservedIdle(e,t)}else{if(n<3){if(n<=this.currentPriority)return Fu.log(this.tag,`Cannot start motion because another motion is playing as an equivalent or higher priority.`,this.dump(e,t)),!1;if(n<=this.reservePriority)return Fu.log(this.tag,`Cannot start motion because another motion has reserved as an equivalent or higher priority.`,this.dump(e,t)),!1}this.setReserved(e,t,n)}return!0}start(e,t,n,r){if(r===1){if(this.setReservedIdle(void 0,void 0),this.currentPriority!==0)return Fu.log(this.tag,`Cannot start idle motion because another motion is playing.`,this.dump(t,n)),!1}else{if(t!==this.reservedGroup||n!==this.reservedIndex)return Fu.log(this.tag,`Cannot start motion because another motion has taken the place.`,this.dump(t,n)),!1;this.setReserved(void 0,void 0,0)}return e?(this.setCurrent(t,n,r),!0):!1}complete(){this.setCurrent(void 0,void 0,0)}setCurrent(e,t,n){this.currentPriority=n,this.currentGroup=e,this.currentIndex=t}setReserved(e,t,n){this.reservePriority=n,this.reservedGroup=e,this.reservedIndex=t}setReservedIdle(e,t){this.reservedIdleGroup=e,this.reservedIdleIndex=t}isActive(e,t){return e===this.currentGroup&&t===this.currentIndex||e===this.reservedGroup&&t===this.reservedIndex||e===this.reservedIdleGroup&&t===this.reservedIdleIndex}reset(){this.setCurrent(void 0,void 0,0),this.setReserved(void 0,void 0,0),this.setReservedIdle(void 0,void 0)}shouldRequestIdleMotion(){return this.currentGroup===void 0&&this.reservedIdleGroup===void 0}shouldOverrideExpression(){return!Pu.preserveExpressionOnMotion&&this.currentPriority>1}dump(e,t){if(this.debug){let n=[`currentPriority`,`reservePriority`,`currentGroup`,`currentIndex`,`reservedGroup`,`reservedIndex`,`reservedIdleGroup`,`reservedIdleIndex`];return` + group = "${e}", index = ${t} +`+n.map(e=>`[`+e+`] `+this[e]).join(` +`)}return``}};const Ju=`SoundManager`,Yu=.5;var Xu=class{static get volume(){return this._volume}static set volume(e){this._volume=(e>1?1:e<0?0:e)||0,this.audios.forEach(e=>e.volume=this._volume)}static add(e,t,n){let r=new Audio(e);return r.volume=this._volume,r.preload=`auto`,r.addEventListener(`ended`,()=>{this.dispose(r),t?.()}),r.addEventListener(`error`,t=>{this.dispose(r),Fu.warn(Ju,`Error occurred on "${e}"`,t.error),n?.(t.error)}),this.audios.push(r),r}static play(e){return new Promise((t,n)=>{var r;(r=e.play())==null||r.catch(t=>{e.dispatchEvent(new ErrorEvent(`error`,{error:t})),n(t)}),e.readyState===e.HAVE_ENOUGH_DATA?t():e.addEventListener(`canplaythrough`,t)})}static dispose(e){e.pause(),e.removeAttribute(`src`),zu(this.audios,e)}static destroy(){for(let e=this.audios.length-1;e>=0;e--)this.dispose(this.audios[e])}};Xu.audios=[],Xu._volume=Yu;var Zu=class extends Qr.default{constructor(e,t){super(),this.motionGroups={},this.state=new qu,this.playing=!1,this.destroyed=!1,this.settings=e,this.tag=`MotionManager(${e.name})`,this.state.tag=this.tag}init(e){e?.idleMotionGroup&&(this.groups.idle=e.idleMotionGroup),this.setupMotions(e),this.stopAllMotions()}setupMotions(e){for(let e of Object.keys(this.definitions))this.motionGroups[e]=[];let t;switch(e?.motionPreload){case`NONE`:return;case`ALL`:t=Object.keys(this.definitions);break;case`IDLE`:default:t=[this.groups.idle];break}for(let e of t)if(this.definitions[e])for(let t=0;tthis.currentAudio=void 0,()=>this.currentAudio=void 0),this.currentAudio=a}catch(t){Fu.warn(this.tag,`Failed to create audio`,e,t)}}let o=yield this.loadMotion(e,t);if(a){let e=Xu.play(a).catch(e=>Fu.warn(this.tag,`Failed to play audio`,a.src,e));Pu.motionSync&&(yield e)}return this.state.start(o,e,t,n)?(Fu.log(this.tag,`Start motion:`,this.getMotionName(i)),this.emit(`motionStart`,e,t,a),this.state.shouldOverrideExpression()&&this.expressionManager&&this.expressionManager.resetExpression(),this.playing=!0,this._startMotion(o),!0):(a&&(Xu.dispose(a),this.currentAudio=void 0),!1)})}startRandomMotion(e,t){return xc(this,null,function*(){let n=this.definitions[e];if(n?.length){let r=[];for(let t=0;te.index>=0);for(let t of e)this.hitAreas[t.name]=t}hitTest(e,t){return Object.keys(this.hitAreas).filter(n=>this.isHit(n,e,t))}isHit(e,t,n){if(!this.hitAreas[e])return!1;let r=this.hitAreas[e].index,i=this.getDrawableBounds(r,Qu);return i.x<=t&&t<=i.x+i.width&&i.y<=n&&n<=i.y+i.height}getDrawableBounds(e,t){let n=this.getDrawableVertices(e),r=n[0],i=n[0],a=n[1],o=n[1];for(let e=0;e{(a.status===200||a.status===0)&&a.response?r(a.response):a.onerror()},a.onerror=()=>{Fu.warn(ed,`Failed to load resource as ${a.responseType} (Status ${a.status}): ${t}`),i(new td(`Network error.`,t,a.status))},a.onabort=()=>i(new td(`Aborted.`,t,a.status,!0)),a.onloadend=()=>{var t;nd.allXhrSet.delete(a),e&&((t=nd.xhrMap.get(e))==null||t.delete(a))},a}static cancelXHRs(){var e;(e=nd.xhrMap.get(this))==null||e.forEach(e=>{e.abort(),nd.allXhrSet.delete(e)}),nd.xhrMap.delete(this)}static release(){nd.allXhrSet.forEach(e=>e.abort()),nd.allXhrSet.clear(),nd.xhrMap=new WeakMap}};let rd=nd;rd.xhrMap=new WeakMap,rd.allXhrSet=new Set,rd.loader=(e,t)=>new Promise((t,n)=>{let r=nd.createXHR(e.target,e.settings?e.settings.resolveURL(e.url):e.url,e.type,n=>{e.result=n,t()},n);r.send()});function id(e,t){let n=-1;return r(0);function r(i,a){if(a)return Promise.reject(a);if(i<=n)return Promise.reject(Error(`next() called multiple times`));n=i;let o=e[i];if(!o)return Promise.resolve();try{return Promise.resolve(o(t,r.bind(null,i+1)))}catch(e){return Promise.reject(e)}}}var ad=class{static load(e){return id(this.middlewares,e).then(()=>e.result)}};ad.middlewares=[rd.loader];function od(e,t={}){var n;let r={resourceOptions:{crossorigin:t.crossOrigin}};if(Na.fromURL)return Na.fromURL(e,r).catch(e=>{if(e instanceof Error)throw e;let t=Error(`Texture loading error`);throw t.event=e,t});r.resourceOptions.autoLoad=!1;let i=Na.from(e,r);if(i.baseTexture.valid)return Promise.resolve(i);let a=i.baseTexture.resource;return(n=a._live2d_load)??(a._live2d_load=new Promise((e,t)=>{let n=e=>{a.source.removeEventListener(`error`,n);let r=Error(`Texture loading error`);r.event=e,t(r)};a.source.addEventListener(`error`,n),a.load().then(()=>e(i)).catch(n)})),a._live2d_load}const sd=`Live2DFactory`,cd=(e,t)=>xc(void 0,null,function*(){if(typeof e.source==`string`){let t=yield ad.load({url:e.source,type:`json`,target:e.live2dModel});t.url=e.source,e.source=t,e.live2dModel.emit(`settingsJSONLoaded`,t)}return t()}),ld=(e,t)=>xc(void 0,null,function*(){if(e.source instanceof Gu)return e.settings=e.source,t();if(typeof e.source==`object`){let n=hd.findRuntime(e.source);if(n){let r=n.createModelSettings(e.source);return e.settings=r,e.live2dModel.emit(`settingsLoaded`,r),t()}}throw TypeError(`Unknown settings format.`)}),ud=(e,t)=>{if(e.settings){let n=hd.findRuntime(e.settings);if(n)return n.ready().then(t)}return t()},dd=(e,t)=>xc(void 0,null,function*(){yield t();let n=e.internalModel;if(n){let t=e.settings,r=hd.findRuntime(t);if(r){let i=[];t.pose&&i.push(ad.load({settings:t,url:t.pose,type:`json`,target:n}).then(t=>{n.pose=r.createPose(n.coreModel,t),e.live2dModel.emit(`poseLoaded`,n.pose)}).catch(t=>{e.live2dModel.emit(`poseLoadError`,t),Fu.warn(sd,`Failed to load pose.`,t)})),t.physics&&i.push(ad.load({settings:t,url:t.physics,type:`json`,target:n}).then(t=>{n.physics=r.createPhysics(n.coreModel,t),e.live2dModel.emit(`physicsLoaded`,n.physics)}).catch(t=>{e.live2dModel.emit(`physicsLoadError`,t),Fu.warn(sd,`Failed to load physics.`,t)})),i.length&&(yield Promise.all(i))}}}),fd=(e,t)=>xc(void 0,null,function*(){if(e.settings){let n=e.live2dModel,r=e.settings.textures.map(t=>{let n=e.settings.resolveURL(t);return od(n,{crossOrigin:e.options.crossOrigin})});if(yield t(),e.internalModel)n.internalModel=e.internalModel,n.emit(`modelLoaded`,e.internalModel);else throw TypeError(`Missing internal model.`);n.textures=yield Promise.all(r),n.emit(`textureLoaded`,n.textures)}else throw TypeError(`Missing settings.`)}),pd=(e,t)=>xc(void 0,null,function*(){let n=e.settings;if(n instanceof Gu){let r=hd.findRuntime(n);if(!r)throw TypeError(`Unknown model settings.`);let i=yield ad.load({settings:n,url:n.moc,type:`arraybuffer`,target:e.live2dModel});if(!r.isValidMoc(i))throw Error(`Invalid moc data`);let a=r.createCoreModel(i);return e.internalModel=r.createInternalModel(a,n,e.options),t()}throw TypeError(`Missing settings.`)}),md=class{static registerRuntime(e){md.runtimes.push(e),md.runtimes.sort((e,t)=>t.version-e.version)}static findRuntime(e){for(let t of md.runtimes)if(t.test(e))return t}static setupLive2DModel(e,t,n){return xc(this,null,function*(){let r=new Promise(t=>e.once(`textureLoaded`,t)),i=new Promise(t=>e.once(`modelLoaded`,t)),a=Promise.all([r,i]).then(()=>e.emit(`ready`));yield id(md.live2DModelMiddlewares,{live2dModel:e,source:t,options:n||{}}),yield a,e.emit(`load`)})}static loadMotion(e,t,n){var r,i;let a=r=>e.emit(`motionLoadError`,t,n,r);try{let o=(r=e.definitions[t])?.[n];if(!o)return Promise.resolve(void 0);e.listeners(`destroy`).includes(md.releaseTasks)||e.once(`destroy`,md.releaseTasks);let s=md.motionTasksMap.get(e);s||(s={},md.motionTasksMap.set(e,s));let c=s[t];c||(c=[],s[t]=c);let l=e.getMotionFile(o);return(i=c[n])??(c[n]=ad.load({url:l,settings:e.settings,type:e.motionDataType,target:e}).then(r=>{var i;let a=(i=md.motionTasksMap.get(e))?.[t];a&&delete a[n];let s=e.createMotion(r,t,o);return e.emit(`motionLoaded`,t,n,s),s}).catch(t=>{Fu.warn(e.tag,`Failed to load motion: ${l} +`,t),a(t)})),c[n]}catch(r){Fu.warn(e.tag,`Failed to load motion at "${t}"[${n}] +`,r),a(r)}return Promise.resolve(void 0)}static loadExpression(e,t){var n;let r=n=>e.emit(`expressionLoadError`,t,n);try{let i=e.definitions[t];if(!i)return Promise.resolve(void 0);e.listeners(`destroy`).includes(md.releaseTasks)||e.once(`destroy`,md.releaseTasks);let a=md.expressionTasksMap.get(e);a||(a=[],md.expressionTasksMap.set(e,a));let o=e.getExpressionFile(i);return(n=a[t])??(a[t]=ad.load({url:o,settings:e.settings,type:`json`,target:e}).then(n=>{let r=md.expressionTasksMap.get(e);r&&delete r[t];let a=e.createExpression(n,i);return e.emit(`expressionLoaded`,t,a),a}).catch(t=>{Fu.warn(e.tag,`Failed to load expression: ${o} +`,t),r(t)})),a[t]}catch(n){Fu.warn(e.tag,`Failed to load expression at [${t}] +`,n),r(n)}return Promise.resolve(void 0)}static releaseTasks(){this instanceof Zu?md.motionTasksMap.delete(this):md.expressionTasksMap.delete(this)}};let hd=md;hd.runtimes=[],hd.urlToJSON=cd,hd.jsonToSettings=ld,hd.waitUntilReady=ud,hd.setupOptionals=dd,hd.setupEssentials=fd,hd.createInternalModel=pd,hd.live2DModelMiddlewares=[cd,ld,ud,dd,fd,pd],hd.motionTasksMap=new WeakMap,hd.expressionTasksMap=new WeakMap,Zu.prototype._loadMotion=function(e,t){return hd.loadMotion(this,e,t)},Bu.prototype._loadExpression=function(e){return hd.loadExpression(this,e)};var gd=class{constructor(){this._autoInteract=!1}get autoInteract(){return this._autoInteract}set autoInteract(e){e!==this._autoInteract&&(e?this.on(`pointertap`,_d,this):this.off(`pointertap`,_d,this),this._autoInteract=e)}registerInteraction(e){e!==this.interactionManager&&(this.unregisterInteraction(),this._autoInteract&&e&&(this.interactionManager=e,e.on(`pointermove`,vd,this)))}unregisterInteraction(){var e;this.interactionManager&&((e=this.interactionManager)==null||e.off(`pointermove`,vd,this),this.interactionManager=void 0)}};function _d(e){this.tap(e.data.global.x,e.data.global.y)}function vd(e){this.focus(e.data.global.x,e.data.global.y)}var yd=class extends oa{};const bd=new Hi,xd=new Xi;let Sd;var Cd=class extends _c{constructor(e){super(),this.tag=`Live2DModel(uninitialized)`,this.textures=[],this.transform=new yd,this.anchor=new Yi(this.onAnchorChange,this,0,0),this.glContextID=-1,this.elapsedTime=performance.now(),this.deltaTime=0,this._autoUpdate=!1,this.once(`modelLoaded`,()=>this.init(e))}static from(e,t){let n=new this(t);return hd.setupLive2DModel(n,e,t).then(()=>n)}static fromSync(e,t){let n=new this(t);return hd.setupLive2DModel(n,e,t).then(t?.onLoad).catch(t?.onError),n}static registerTicker(e){Sd=e}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){var t;Sd||=(t=window.PIXI)?.Ticker,e?this._destroyed||(Sd?(Sd.shared.add(this.onTickerUpdate,this),this._autoUpdate=!0):Fu.warn(this.tag,`No Ticker registered, please call Live2DModel.registerTicker(Ticker).`)):(Sd?.shared.remove(this.onTickerUpdate,this),this._autoUpdate=!1)}init(e){this.tag=`Live2DModel(${this.internalModel.settings.name})`;let t=Object.assign({autoUpdate:!0,autoInteract:!0},e);t.autoInteract&&(this.interactive=!0),this.autoInteract=t.autoInteract,this.autoUpdate=t.autoUpdate}onAnchorChange(){this.pivot.set(this.anchor.x*this.internalModel.width,this.anchor.y*this.internalModel.height)}motion(e,t,n){return t===void 0?this.internalModel.motionManager.startRandomMotion(e,n):this.internalModel.motionManager.startMotion(e,t,n)}expression(e){return this.internalModel.motionManager.expressionManager?e===void 0?this.internalModel.motionManager.expressionManager.setRandomExpression():this.internalModel.motionManager.expressionManager.setExpression(e):Promise.resolve(!1)}focus(e,t,n=!1){bd.x=e,bd.y=t,this.toModelPosition(bd,bd,!0);let r=bd.x/this.internalModel.originalWidth*2-1,i=bd.y/this.internalModel.originalHeight*2-1,a=Math.atan2(i,r);this.internalModel.focusController.focus(Math.cos(a),-Math.sin(a),n)}tap(e,t){let n=this.hitTest(e,t);n.length&&(Fu.log(this.tag,`Hit`,n),this.emit(`hit`,n))}hitTest(e,t){return bd.x=e,bd.y=t,this.toModelPosition(bd,bd),this.internalModel.hitTest(bd.x,bd.y)}toModelPosition(e,t=e.clone(),n){return n||(this._recursivePostUpdateTransform(),this.parent?this.displayObjectUpdateTransform():(this.parent=this._tempDisplayObjectParent,this.displayObjectUpdateTransform(),this.parent=null)),this.transform.worldTransform.applyInverse(e,t),this.internalModel.localTransform.applyInverse(t,t),t}containsPoint(e){return this.getBounds(!0).contains(e.x,e.y)}_calculateBounds(){this._bounds.addFrame(this.transform,0,0,this.internalModel.width,this.internalModel.height)}onTickerUpdate(){this.update(Sd.shared.deltaMS)}update(e){this.deltaTime+=e,this.elapsedTime+=e}_render(e){this.registerInteraction(e.plugins.interaction),e.batch.reset(),e.geometry.reset(),e.shader.reset(),e.state.reset();let t=!1;this.glContextID!==e.CONTEXT_UID&&(this.glContextID=e.CONTEXT_UID,this.internalModel.updateWebGLContext(e.gl,this.glContextID),t=!0);for(let n=0;nt.destroy(e.baseTexture)),this.internalModel.destroy(),super.destroy(e)}};Lu(Cd,[gd]);const wd=class{static resolveURL(e,t){var n;let r=(n=wd.filesMap[e])?.[t];if(r===void 0)throw Error(`Cannot find this file from uploaded files: `+t);return r}static upload(e,t){return xc(this,null,function*(){let n={};for(let r of t.getDefinedFiles()){let i=decodeURI(ti.resolve(t.url,r)),a=e.find(e=>e.webkitRelativePath===i);a&&(n[r]=URL.createObjectURL(a))}wd.filesMap[t._objectURL]=n})}static createSettings(e){return xc(this,null,function*(){let t=e.find(e=>e.name.endsWith(`model.json`)||e.name.endsWith(`model3.json`));if(!t)throw TypeError(`Settings file not found`);let n=yield wd.readText(t),r=JSON.parse(n);r.url=t.webkitRelativePath;let i=hd.findRuntime(r);if(!i)throw Error(`Unknown settings JSON`);let a=i.createModelSettings(r);return a._objectURL=URL.createObjectURL(t),a})}static readText(e){return xc(this,null,function*(){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=n,r.readAsText(e,`utf8`)})})}};let Td=wd;Td.filesMap={},Td.factory=(e,t)=>xc(void 0,null,function*(){if(Array.isArray(e.source)&&e.source[0]instanceof File){let t=e.source,n=t.settings;if(!n)n=yield wd.createSettings(t);else if(!n._objectURL)throw Error(`"_objectURL" must be specified in ModelSettings`);n.validateFiles(t.map(e=>encodeURI(e.webkitRelativePath))),yield wd.upload(t,n),n.resolveURL=function(e){return wd.resolveURL(this._objectURL,e)},e.source=n,e.live2dModel.once(`modelLoaded`,e=>{e.once(`destroy`,function(){let e=this.settings._objectURL;if(URL.revokeObjectURL(e),wd.filesMap[e])for(let t of Object.values(wd.filesMap[e]))URL.revokeObjectURL(t);delete wd.filesMap[e]})})}return t()}),hd.live2DModelMiddlewares.unshift(Td.factory);const Ed=class{static unzip(e,t){return xc(this,null,function*(){let n=yield Ed.getFilePaths(e),r=[];for(let e of t.getDefinedFiles()){let i=decodeURI(ti.resolve(t.url,e));n.includes(i)&&r.push(i)}let i=yield Ed.getFiles(e,r);for(let e=0;ee.endsWith(`model.json`)||e.endsWith(`model3.json`));if(!n)throw Error(`Settings file not found`);let r=yield Ed.readText(e,n);if(!r)throw Error(`Empty settings file: `+n);let i=JSON.parse(r);i.url=n;let a=hd.findRuntime(i);if(!a)throw Error(`Unknown settings JSON`);return a.createModelSettings(i)})}static zipReader(e,t){return xc(this,null,function*(){throw Error(`Not implemented`)})}static getFilePaths(e){return xc(this,null,function*(){throw Error(`Not implemented`)})}static getFiles(e,t){return xc(this,null,function*(){throw Error(`Not implemented`)})}static readText(e,t){return xc(this,null,function*(){throw Error(`Not implemented`)})}static releaseReader(e){}};let Dd=Ed;if(Dd.ZIP_PROTOCOL=`zip://`,Dd.uid=0,Dd.factory=(e,t)=>xc(void 0,null,function*(){let n=e.source,r,i,a;if(typeof n==`string`&&(n.endsWith(`.zip`)||n.startsWith(Ed.ZIP_PROTOCOL))?(r=n.startsWith(Ed.ZIP_PROTOCOL)?n.slice(Ed.ZIP_PROTOCOL.length):n,i=yield ad.load({url:r,type:`blob`,target:e.live2dModel})):Array.isArray(n)&&n.length===1&&n[0]instanceof File&&n[0].name.endsWith(`.zip`)&&(i=n[0],r=URL.createObjectURL(i),a=n.settings),i){if(!i.size)throw Error(`Empty zip file`);let t=yield Ed.zipReader(i,r);a||=yield Ed.createSettings(t),a._objectURL=Ed.ZIP_PROTOCOL+Ed.uid+`/`+a.url;let n=yield Ed.unzip(t,a);n.settings=a,e.source=n,r.startsWith(`blob:`)&&e.live2dModel.once(`modelLoaded`,e=>{e.once(`destroy`,function(){URL.revokeObjectURL(r)})}),Ed.releaseReader(t)}return t()}),hd.live2DModelMiddlewares.unshift(Dd.factory),!window.Live2DCubismCore)throw Error(`Could not find Cubism 4 runtime. This plugin requires live2dcubismcore.js to be loaded.`);var Od=class extends Bu{constructor(e,t){var n;super(e,t),this.queueManager=new Dl,this.definitions=(n=e.expressions)??[],this.init()}isFinished(){return this.queueManager.isFinished()}getExpressionIndex(e){return this.definitions.findIndex(t=>t.Name===e)}getExpressionFile(e){return e.File}createExpression(e,t){return el.create(e)}_setExpression(e){return this.queueManager.startMotion(e,!1,performance.now())}stopAllExpressions(){this.queueManager.stopAllMotions()}updateParameters(e,t){return this.queueManager.doUpdateMotion(e,t)}},kd=class e extends Gu{constructor(t){if(super(t),!e.isValidJSON(t))throw TypeError(`Invalid JSON.`);Object.assign(this,new wu(t))}static isValidJSON(e){var t;return!!e?.FileReferences&&typeof e.FileReferences.Moc==`string`&&(t=e.FileReferences.Textures)?.length>0&&e.FileReferences.Textures.every(e=>typeof e==`string`)}replaceFiles(e){if(super.replaceFiles(e),this.motions)for(let[t,n]of Object.entries(this.motions))for(let r=0;r{this.emit(`motion:`+t)})}isFinished(){return this.queueManager.isFinished()}_startMotion(e,t){return e.setFinishedMotionHandler(t),this.queueManager.stopAllMotions(),this.queueManager.startMotion(e,!1,performance.now())}_stopAllMotions(){this.queueManager.stopAllMotions()}createMotion(e,t,n){let r=Tl.create(e),i=new ul(e),a=(t===this.groups.idle?Pu.idleMotionFadingDuration:Pu.motionFadingDuration)/1e3;return i.getMotionFadeInTime()===void 0&&r.setFadeInTime(n.FadeInTime>0?n.FadeInTime:a),i.getMotionFadeOutTime()===void 0&&r.setFadeOutTime(n.FadeOutTime>0?n.FadeOutTime:a),r.setEffectIds(this.eyeBlinkIds,this.lipSyncIds),r}getMotionFile(e){return e.File}getMotionName(e){return e.File}getSoundFile(e){return e.Sound}updateParameters(e,t){return this.queueManager.doUpdateMotion(e,t)}destroy(){super.destroy(),this.queueManager.release(),this.queueManager=void 0}};const jd=new Pc;var Md=class extends $u{constructor(e,t,n){super(),this.lipSync=!0,this.breath=Sc.create(),this.renderer=new Cu,this.idParamAngleX=Tu,this.idParamAngleY=Eu,this.idParamAngleZ=Du,this.idParamEyeBallX=Ou,this.idParamEyeBallY=ku,this.idParamBodyAngleX=Au,this.idParamBreath=ju,this.pixelsPerUnit=1,this.centeringTransform=new Xi,this.coreModel=e,this.settings=t,this.motionManager=new Ad(t,n),this.init()}init(){var e;super.init(),(e=this.settings.getEyeBlinkParameters())?.length>0&&(this.eyeBlink=Tc.create(this.settings)),this.breath.setParameters([new Cc(this.idParamAngleX,0,15,6.5345,.5),new Cc(this.idParamAngleY,0,8,3.5345,.5),new Cc(this.idParamAngleZ,0,10,5.5345,.5),new Cc(this.idParamBodyAngleX,0,4,15.5345,.5),new Cc(this.idParamBreath,0,.5,3.2345,.5)]),this.renderer.initialize(this.coreModel),this.renderer.setIsPremultipliedAlpha(!0)}getSize(){return[this.coreModel.getModel().canvasinfo.CanvasWidth,this.coreModel.getModel().canvasinfo.CanvasHeight]}getLayout(){let e={};if(this.settings.layout)for(let t of Object.keys(this.settings.layout)){let n=t.charAt(0).toLowerCase()+t.slice(1);e[n]=this.settings.layout[t]}return e}setupLayout(){super.setupLayout(),this.pixelsPerUnit=this.coreModel.getModel().canvasinfo.PixelsPerUnit,this.centeringTransform.scale(this.pixelsPerUnit,this.pixelsPerUnit).translate(this.originalWidth/2,this.originalHeight/2)}updateWebGLContext(e,t){this.renderer.firstDraw=!0,this.renderer._bufferData={vertex:null,uv:null,index:null},this.renderer.startUp(e),this.renderer._clippingManager._currentFrameNo=t,this.renderer._clippingManager._maskTexture=void 0,mu.getInstance()._shaderSets=[]}bindTexture(e,t){this.renderer.bindTexture(e,t)}getHitAreaDefs(){var e,t;return(t=(e=this.settings.hitAreas)?.map(e=>({id:e.Id,name:e.Name,index:this.coreModel.getDrawableIndex(e.Id)})))??[]}getDrawableIDs(){return this.coreModel.getDrawableIds()}getDrawableIndex(e){return this.coreModel.getDrawableIndex(e)}getDrawableVertices(e){if(typeof e==`string`&&(e=this.coreModel.getDrawableIndex(e),e===-1))throw TypeError(`Unable to find drawable ID: `+e);let t=this.coreModel.getDrawableVertices(e).slice();for(let e=0;e{function n(){try{Id(),e()}catch(e){if(Pd--,Pd<0){let n=Error(`Failed to start up Cubism 4 framework.`);n.cause=e,t(n);return}Fu.log(`Cubism4`,`Startup failed, retrying 10ms later...`),setTimeout(n,10)}}n()}),Nd)}function Id(e){e=Object.assign({logFunction:console.log,loggingLevel:Uc.LogLevel_Verbose},e),Hc.startUp(e),Hc.initialize()}hd.registerRuntime({version:4,ready:Fd,test(e){return e instanceof kd||kd.isValidJSON(e)},isValidMoc(e){if(e.byteLength<4)return!1;let t=new Int8Array(e,0,4);return String.fromCharCode(...t)===`MOC3`},createModelSettings(e){return new kd(e)},createCoreModel(e){let t=Zc.create(e);try{let e=t.createModel();return e.__moc=t,e}catch(e){try{t.release()}catch{}throw e}},createInternalModel(e,t,n){let r=new Md(e,t,n),i=e;return i.__moc&&(r.__moc=i.__moc,delete i.__moc,r.once(`destroy`,Ld)),r},createPhysics(e,t){return Ul.create(t)},createPose(e,t){return kc.create(t)}});function Ld(){var e;(e=this.__moc)==null||e.release()}var Rd=B({__name:`Canvas`,props:{width:{},height:{},resolution:{default:2}},setup(e,{expose:t}){let n=e,r=U(),i=U(),a=U();async function o(e){Cd.registerTicker(Ii),Mi.add(Li),i.value=new yc({width:n.width*n.resolution,height:n.height*n.resolution,backgroundAlpha:0,preserveDrawingBuffer:!0}),a.value=i.value.view,a.value.style.width=`100%`,a.value.style.height=`100%`,a.value.style.objectFit=`cover`,a.value.style.display=`block`,e.appendChild(i.value.view)}function s(){i.value&&i.value.renderer.resize(n.width,n.height)}R([()=>n.width,()=>n.height],()=>s()),R(()=>n.resolution,e=>{i.value&&e&&(i.value.renderer.resolution=e,s())}),jn(async()=>r.value&&await o(r.value)),In(()=>i.value?.destroy());async function c(){let e=new Promise(e=>{if(!a.value||!i.value)return e(null);i.value.render(),a.value.toBlob(e)});return e}function l(){return a.value}return t({captureFrame:c,canvasElement:l}),(e,t)=>(z(),V(`div`,{ref_key:`containerRef`,ref:r,"h-full":``,"w-full":``},[fn(e.$slots,`default`,{app:i.value})],512))}}),zd=Rd,Bd=function(){function e(){this.pressure=0,this.rotationAngle=0,this.twist=0,this.tangentialPressure=0,this.global=new Hi,this.target=null,this.originalEvent=null,this.identifier=null,this.isPrimary=!1,this.button=0,this.buttons=0,this.width=0,this.height=0,this.tiltX=0,this.tiltY=0,this.pointerType=null,this.pressure=0,this.rotationAngle=0,this.twist=0,this.tangentialPressure=0}return Object.defineProperty(e.prototype,`pointerId`,{get:function(){return this.identifier},enumerable:!1,configurable:!0}),e.prototype.getLocalPosition=function(e,t,n){return e.worldTransform.applyInverse(n||this.global,t)},e.prototype.copyEvent=function(e){`isPrimary`in e&&e.isPrimary&&(this.isPrimary=!0),this.button=`button`in e&&e.button;var t=`buttons`in e&&e.buttons;this.buttons=Number.isInteger(t)?t:`which`in e&&e.which,this.width=`width`in e&&e.width,this.height=`height`in e&&e.height,this.tiltX=`tiltX`in e&&e.tiltX,this.tiltY=`tiltY`in e&&e.tiltY,this.pointerType=`pointerType`in e&&e.pointerType,this.pressure=`pressure`in e&&e.pressure,this.rotationAngle=`rotationAngle`in e&&e.rotationAngle,this.twist=`twist`in e&&e.twist||0,this.tangentialPressure=`tangentialPressure`in e&&e.tangentialPressure||0},e.prototype.reset=function(){this.isPrimary=!1},e}(),Vd=function(e,t){return Vd=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},Vd(e,t)};function Hd(e,t){Vd(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Ud=function(){function e(){this.stopped=!1,this.stopsPropagatingAt=null,this.stopPropagationHint=!1,this.target=null,this.currentTarget=null,this.type=null,this.data=null}return e.prototype.stopPropagation=function(){this.stopped=!0,this.stopPropagationHint=!0,this.stopsPropagatingAt=this.currentTarget},e.prototype.reset=function(){this.stopped=!1,this.stopsPropagatingAt=null,this.stopPropagationHint=!1,this.currentTarget=null,this.target=null},e}(),Wd=function(){function e(t){this._pointerId=t,this._flags=e.FLAGS.NONE}return e.prototype._doSet=function(e,t){t?this._flags|=e:this._flags&=~e},Object.defineProperty(e.prototype,`pointerId`,{get:function(){return this._pointerId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`flags`,{get:function(){return this._flags},set:function(e){this._flags=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`none`,{get:function(){return this._flags===e.FLAGS.NONE},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`over`,{get:function(){return(this._flags&e.FLAGS.OVER)!==0},set:function(t){this._doSet(e.FLAGS.OVER,t)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`rightDown`,{get:function(){return(this._flags&e.FLAGS.RIGHT_DOWN)!==0},set:function(t){this._doSet(e.FLAGS.RIGHT_DOWN,t)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`leftDown`,{get:function(){return(this._flags&e.FLAGS.LEFT_DOWN)!==0},set:function(t){this._doSet(e.FLAGS.LEFT_DOWN,t)},enumerable:!1,configurable:!0}),e.FLAGS=Object.freeze({NONE:0,OVER:1,LEFT_DOWN:2,RIGHT_DOWN:4}),e}(),Gd=function(){function e(){this._tempPoint=new Hi}return e.prototype.recursiveFindHit=function(e,t,n,r,i){var a;if(!t||!t.visible)return!1;var o=e.data.global;i=t.interactive||i;var s=!1,c=i,l=!0;if(t.hitArea)r&&(t.worldTransform.applyInverse(o,this._tempPoint),t.hitArea.contains(this._tempPoint.x,this._tempPoint.y)?s=!0:(r=!1,l=!1)),c=!1;else if(t._mask&&r){var u=t._mask.isMaskData?t._mask.maskObject:t._mask;u&&!(a=u.containsPoint)?.call(u,o)&&(r=!1)}if(l&&t.interactiveChildren&&t.children)for(var d=t.children,f=d.length-1;f>=0;f--){var p=d[f],m=this.recursiveFindHit(e,p,n,r,c);if(m){if(!p.parent)continue;c=!1,m&&(e.target&&(r=!1),s=!0)}}return i&&(r&&!e.target&&!t.hitArea&&t.containsPoint&&t.containsPoint(o)&&(s=!0),t.interactive&&(s&&!e.target&&(e.target=t),n&&n(e,t,!!s))),s},e.prototype.findHit=function(e,t,n,r){this.recursiveFindHit(e,t,n,r,!1)},e}(),Kd={interactive:!1,interactiveChildren:!0,hitArea:null,get buttonMode(){return this.cursor===`pointer`},set buttonMode(e){e?this.cursor=`pointer`:this.cursor===`pointer`&&(this.cursor=null)},cursor:null,get trackedPointers(){return this._trackedPointers===void 0&&(this._trackedPointers={}),this._trackedPointers},_trackedPointers:void 0};mc.mixin(Kd);var qd=1,Jd={target:null,data:{global:null}},Yd=function(e){Hd(t,e);function t(t,n){var r=e.call(this)||this;return n||={},r.renderer=t,r.autoPreventDefault=n.autoPreventDefault===void 0?!0:n.autoPreventDefault,r.interactionFrequency=n.interactionFrequency||10,r.mouse=new Bd,r.mouse.identifier=qd,r.mouse.global.set(-999999),r.activeInteractionData={},r.activeInteractionData[qd]=r.mouse,r.interactionDataPool=[],r.eventData=new Ud,r.interactionDOMElement=null,r.moveWhenInside=!1,r.eventsAdded=!1,r.tickerAdded=!1,r.mouseOverRenderer=!(`PointerEvent`in globalThis),r.supportsTouchEvents=`ontouchstart`in globalThis,r.supportsPointerEvents=!!globalThis.PointerEvent,r.onPointerUp=r.onPointerUp.bind(r),r.processPointerUp=r.processPointerUp.bind(r),r.onPointerCancel=r.onPointerCancel.bind(r),r.processPointerCancel=r.processPointerCancel.bind(r),r.onPointerDown=r.onPointerDown.bind(r),r.processPointerDown=r.processPointerDown.bind(r),r.onPointerMove=r.onPointerMove.bind(r),r.processPointerMove=r.processPointerMove.bind(r),r.onPointerOut=r.onPointerOut.bind(r),r.processPointerOverOut=r.processPointerOverOut.bind(r),r.onPointerOver=r.onPointerOver.bind(r),r.cursorStyles={default:`inherit`,pointer:`pointer`},r.currentCursorMode=null,r.cursor=null,r.resolution=1,r.delayedEvents=[],r.search=new Gd,r._tempDisplayObject=new hc,r._eventListenerOptions={capture:!0,passive:!1},r._useSystemTicker=n.useSystemTicker===void 0?!0:n.useSystemTicker,r.setTargetElement(r.renderer.view,r.renderer.resolution),r}return Object.defineProperty(t.prototype,`useSystemTicker`,{get:function(){return this._useSystemTicker},set:function(e){this._useSystemTicker=e,e?this.addTickerListener():this.removeTickerListener()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`lastObjectRendered`,{get:function(){return this.renderer._lastObjectRendered||this._tempDisplayObject},enumerable:!1,configurable:!0}),t.prototype.hitTest=function(e,t){return Jd.target=null,Jd.data.global=e,t||=this.lastObjectRendered,this.processInteractive(Jd,t,null,!0),Jd.target},t.prototype.setTargetElement=function(e,t){t===void 0&&(t=1),this.removeTickerListener(),this.removeEvents(),this.interactionDOMElement=e,this.resolution=t,this.addEvents(),this.addTickerListener()},t.prototype.addTickerListener=function(){this.tickerAdded||!this.interactionDOMElement||!this._useSystemTicker||(Ii.system.add(this.tickerUpdate,this,Pi.INTERACTION),this.tickerAdded=!0)},t.prototype.removeTickerListener=function(){this.tickerAdded&&(Ii.system.remove(this.tickerUpdate,this),this.tickerAdded=!1)},t.prototype.addEvents=function(){if(!(this.eventsAdded||!this.interactionDOMElement)){var e=this.interactionDOMElement.style;globalThis.navigator.msPointerEnabled?(e.msContentZooming=`none`,e.msTouchAction=`none`):this.supportsPointerEvents&&(e.touchAction=`none`),this.supportsPointerEvents?(globalThis.document.addEventListener(`pointermove`,this.onPointerMove,this._eventListenerOptions),this.interactionDOMElement.addEventListener(`pointerdown`,this.onPointerDown,this._eventListenerOptions),this.interactionDOMElement.addEventListener(`pointerleave`,this.onPointerOut,this._eventListenerOptions),this.interactionDOMElement.addEventListener(`pointerover`,this.onPointerOver,this._eventListenerOptions),globalThis.addEventListener(`pointercancel`,this.onPointerCancel,this._eventListenerOptions),globalThis.addEventListener(`pointerup`,this.onPointerUp,this._eventListenerOptions)):(globalThis.document.addEventListener(`mousemove`,this.onPointerMove,this._eventListenerOptions),this.interactionDOMElement.addEventListener(`mousedown`,this.onPointerDown,this._eventListenerOptions),this.interactionDOMElement.addEventListener(`mouseout`,this.onPointerOut,this._eventListenerOptions),this.interactionDOMElement.addEventListener(`mouseover`,this.onPointerOver,this._eventListenerOptions),globalThis.addEventListener(`mouseup`,this.onPointerUp,this._eventListenerOptions)),this.supportsTouchEvents&&(this.interactionDOMElement.addEventListener(`touchstart`,this.onPointerDown,this._eventListenerOptions),this.interactionDOMElement.addEventListener(`touchcancel`,this.onPointerCancel,this._eventListenerOptions),this.interactionDOMElement.addEventListener(`touchend`,this.onPointerUp,this._eventListenerOptions),this.interactionDOMElement.addEventListener(`touchmove`,this.onPointerMove,this._eventListenerOptions)),this.eventsAdded=!0}},t.prototype.removeEvents=function(){if(!(!this.eventsAdded||!this.interactionDOMElement)){var e=this.interactionDOMElement.style;globalThis.navigator.msPointerEnabled?(e.msContentZooming=``,e.msTouchAction=``):this.supportsPointerEvents&&(e.touchAction=``),this.supportsPointerEvents?(globalThis.document.removeEventListener(`pointermove`,this.onPointerMove,this._eventListenerOptions),this.interactionDOMElement.removeEventListener(`pointerdown`,this.onPointerDown,this._eventListenerOptions),this.interactionDOMElement.removeEventListener(`pointerleave`,this.onPointerOut,this._eventListenerOptions),this.interactionDOMElement.removeEventListener(`pointerover`,this.onPointerOver,this._eventListenerOptions),globalThis.removeEventListener(`pointercancel`,this.onPointerCancel,this._eventListenerOptions),globalThis.removeEventListener(`pointerup`,this.onPointerUp,this._eventListenerOptions)):(globalThis.document.removeEventListener(`mousemove`,this.onPointerMove,this._eventListenerOptions),this.interactionDOMElement.removeEventListener(`mousedown`,this.onPointerDown,this._eventListenerOptions),this.interactionDOMElement.removeEventListener(`mouseout`,this.onPointerOut,this._eventListenerOptions),this.interactionDOMElement.removeEventListener(`mouseover`,this.onPointerOver,this._eventListenerOptions),globalThis.removeEventListener(`mouseup`,this.onPointerUp,this._eventListenerOptions)),this.supportsTouchEvents&&(this.interactionDOMElement.removeEventListener(`touchstart`,this.onPointerDown,this._eventListenerOptions),this.interactionDOMElement.removeEventListener(`touchcancel`,this.onPointerCancel,this._eventListenerOptions),this.interactionDOMElement.removeEventListener(`touchend`,this.onPointerUp,this._eventListenerOptions),this.interactionDOMElement.removeEventListener(`touchmove`,this.onPointerMove,this._eventListenerOptions)),this.interactionDOMElement=null,this.eventsAdded=!1}},t.prototype.tickerUpdate=function(e){this._deltaTime+=e,!(this._deltaTime0&&(a=e.composedPath()[0]);for(var o=a===this.interactionDOMElement?``:`outside`,s=0;s 0.0) { + c.rgb /= c.a; + + vec3 rgb = pow(c.rgb, vec3(1. / gamma)); + rgb = mix(vec3(.5), mix(vec3(dot(vec3(.2125, .7154, .0721), rgb)), rgb, saturation), contrast); + rgb.r *= red; + rgb.g *= green; + rgb.b *= blue; + c.rgb = rgb * brightness; + + c.rgb *= c.a; + } + + gl_FragColor = c * alpha; +} +`,ef=function(e){Zd(t,e);function t(t){var n=e.call(this,Qd,$d)||this;return n.gamma=1,n.saturation=1,n.contrast=1,n.brightness=1,n.red=1,n.green=1,n.blue=1,n.alpha=1,Object.assign(n,t),n}return t.prototype.apply=function(e,t,n,r){this.uniforms.gamma=Math.max(this.gamma,1e-4),this.uniforms.saturation=this.saturation,this.uniforms.contrast=this.contrast,this.uniforms.brightness=this.brightness,this.uniforms.red=this.red,this.uniforms.green=this.green,this.uniforms.blue=this.blue,this.uniforms.alpha=this.alpha,e.applyFilter(this,t,n,r)},t}(Xo),tf=function(e,t){return tf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},tf(e,t)};function nf(e,t){tf(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var rf=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,af=` +varying vec2 vTextureCoord; +uniform sampler2D uSampler; + +uniform vec2 uOffset; + +void main(void) +{ + vec4 color = vec4(0.0); + + // Sample top left pixel + color += texture2D(uSampler, vec2(vTextureCoord.x - uOffset.x, vTextureCoord.y + uOffset.y)); + + // Sample top right pixel + color += texture2D(uSampler, vec2(vTextureCoord.x + uOffset.x, vTextureCoord.y + uOffset.y)); + + // Sample bottom right pixel + color += texture2D(uSampler, vec2(vTextureCoord.x + uOffset.x, vTextureCoord.y - uOffset.y)); + + // Sample bottom left pixel + color += texture2D(uSampler, vec2(vTextureCoord.x - uOffset.x, vTextureCoord.y - uOffset.y)); + + // Average + color *= 0.25; + + gl_FragColor = color; +}`,sf=` +varying vec2 vTextureCoord; +uniform sampler2D uSampler; + +uniform vec2 uOffset; +uniform vec4 filterClamp; + +void main(void) +{ + vec4 color = vec4(0.0); + + // Sample top left pixel + color += texture2D(uSampler, clamp(vec2(vTextureCoord.x - uOffset.x, vTextureCoord.y + uOffset.y), filterClamp.xy, filterClamp.zw)); + + // Sample top right pixel + color += texture2D(uSampler, clamp(vec2(vTextureCoord.x + uOffset.x, vTextureCoord.y + uOffset.y), filterClamp.xy, filterClamp.zw)); + + // Sample bottom right pixel + color += texture2D(uSampler, clamp(vec2(vTextureCoord.x + uOffset.x, vTextureCoord.y - uOffset.y), filterClamp.xy, filterClamp.zw)); + + // Sample bottom left pixel + color += texture2D(uSampler, clamp(vec2(vTextureCoord.x - uOffset.x, vTextureCoord.y - uOffset.y), filterClamp.xy, filterClamp.zw)); + + // Average + color *= 0.25; + + gl_FragColor = color; +} +`,cf=function(e){nf(t,e);function t(t,n,r){t===void 0&&(t=4),n===void 0&&(n=3),r===void 0&&(r=!1);var i=e.call(this,rf,r?sf:af)||this;return i._kernels=[],i._blur=4,i._quality=3,i.uniforms.uOffset=new Float32Array(2),i._pixelSize=new Hi,i.pixelSize=1,i._clamp=r,Array.isArray(t)?i.kernels=t:(i._blur=t,i.quality=n),i}return t.prototype.apply=function(e,t,n,r){var i=this._pixelSize.x/t._frame.width,a=this._pixelSize.y/t._frame.height,o;if(this._quality===1||this._blur===0)o=this._kernels[0]+.5,this.uniforms.uOffset[0]=o*i,this.uniforms.uOffset[1]=o*a,e.applyFilter(this,t,n,r);else{for(var s=e.getFilterTexture(),c=t,l=s,u=void 0,d=this._quality-1,f=0;f0)for(var r=e,i=e/t,a=1;a0?(this._kernels=e,this._quality=e.length,this._blur=Math.max.apply(Math,e)):(this._kernels=[0],this._quality=1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`clamp`,{get:function(){return this._clamp},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`pixelSize`,{get:function(){return this._pixelSize},set:function(e){typeof e==`number`?(this._pixelSize.x=e,this._pixelSize.y=e):Array.isArray(e)?(this._pixelSize.x=e[0],this._pixelSize.y=e[1]):e instanceof Hi?(this._pixelSize.x=e.x,this._pixelSize.y=e.y):(this._pixelSize.x=1,this._pixelSize.y=1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`quality`,{get:function(){return this._quality},set:function(e){this._quality=Math.max(1,Math.round(e)),this._generateKernels()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`blur`,{get:function(){return this._blur},set:function(e){this._blur=e,this._generateKernels()},enumerable:!1,configurable:!0}),t}(Xo),lf=function(e,t){return lf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},lf(e,t)};function uf(e,t){lf(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var df=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,ff=` +uniform sampler2D uSampler; +varying vec2 vTextureCoord; + +uniform float threshold; + +void main() { + vec4 color = texture2D(uSampler, vTextureCoord); + + // A simple & fast algorithm for getting brightness. + // It's inaccuracy , but good enought for this feature. + float _max = max(max(color.r, color.g), color.b); + float _min = min(min(color.r, color.g), color.b); + float brightness = (_max + _min) * 0.5; + + if(brightness > threshold) { + gl_FragColor = color; + } else { + gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); + } +} +`,pf=function(e){uf(t,e);function t(t){t===void 0&&(t=.5);var n=e.call(this,df,ff)||this;return n.threshold=t,n}return Object.defineProperty(t.prototype,`threshold`,{get:function(){return this.uniforms.threshold},set:function(e){this.uniforms.threshold=e},enumerable:!1,configurable:!0}),t}(Xo),mf=`uniform sampler2D uSampler; +varying vec2 vTextureCoord; + +uniform sampler2D bloomTexture; +uniform float bloomScale; +uniform float brightness; + +void main() { + vec4 color = texture2D(uSampler, vTextureCoord); + color.rgb *= brightness; + vec4 bloomColor = vec4(texture2D(bloomTexture, vTextureCoord).rgb, 0.0); + bloomColor.rgb *= bloomScale; + gl_FragColor = color + bloomColor; +} +`,hf=function(e){uf(t,e);function t(n){var r=e.call(this,df,mf)||this;r.bloomScale=1,r.brightness=1,r._resolution=G.FILTER_RESOLUTION,typeof n==`number`&&(n={threshold:n});var i=Object.assign(t.defaults,n);r.bloomScale=i.bloomScale,r.brightness=i.brightness;var a=i.kernels,o=i.blur,s=i.quality,c=i.pixelSize,l=i.resolution;return r._extractFilter=new pf(i.threshold),r._extractFilter.resolution=l,r._blurFilter=a?new cf(a):new cf(o,s),r.pixelSize=c,r.resolution=l,r}return t.prototype.apply=function(e,t,n,r,i){var a=e.getFilterTexture();this._extractFilter.apply(e,t,a,1,i);var o=e.getFilterTexture();this._blurFilter.apply(e,a,o,1),this.uniforms.bloomScale=this.bloomScale,this.uniforms.brightness=this.brightness,this.uniforms.bloomTexture=o,e.applyFilter(this,t,n,r),e.returnFilterTexture(o),e.returnFilterTexture(a)},Object.defineProperty(t.prototype,`resolution`,{get:function(){return this._resolution},set:function(e){this._resolution=e,this._extractFilter&&(this._extractFilter.resolution=e),this._blurFilter&&(this._blurFilter.resolution=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`threshold`,{get:function(){return this._extractFilter.threshold},set:function(e){this._extractFilter.threshold=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`kernels`,{get:function(){return this._blurFilter.kernels},set:function(e){this._blurFilter.kernels=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`blur`,{get:function(){return this._blurFilter.blur},set:function(e){this._blurFilter.blur=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`quality`,{get:function(){return this._blurFilter.quality},set:function(e){this._blurFilter.quality=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`pixelSize`,{get:function(){return this._blurFilter.pixelSize},set:function(e){this._blurFilter.pixelSize=e},enumerable:!1,configurable:!0}),t.defaults={threshold:.5,bloomScale:1,brightness:1,kernels:null,blur:8,quality:4,pixelSize:1,resolution:G.FILTER_RESOLUTION},t}(Xo),gf=function(e,t){return gf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},gf(e,t)};function _f(e,t){gf(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var vf=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,yf=`varying vec2 vTextureCoord; + +uniform vec4 filterArea; +uniform float pixelSize; +uniform sampler2D uSampler; + +vec2 mapCoord( vec2 coord ) +{ + coord *= filterArea.xy; + coord += filterArea.zw; + + return coord; +} + +vec2 unmapCoord( vec2 coord ) +{ + coord -= filterArea.zw; + coord /= filterArea.xy; + + return coord; +} + +vec2 pixelate(vec2 coord, vec2 size) +{ + return floor( coord / size ) * size; +} + +vec2 getMod(vec2 coord, vec2 size) +{ + return mod( coord , size) / size; +} + +float character(float n, vec2 p) +{ + p = floor(p*vec2(4.0, -4.0) + 2.5); + + if (clamp(p.x, 0.0, 4.0) == p.x) + { + if (clamp(p.y, 0.0, 4.0) == p.y) + { + if (int(mod(n/exp2(p.x + 5.0*p.y), 2.0)) == 1) return 1.0; + } + } + return 0.0; +} + +void main() +{ + vec2 coord = mapCoord(vTextureCoord); + + // get the rounded color.. + vec2 pixCoord = pixelate(coord, vec2(pixelSize)); + pixCoord = unmapCoord(pixCoord); + + vec4 color = texture2D(uSampler, pixCoord); + + // determine the character to use + float gray = (color.r + color.g + color.b) / 3.0; + + float n = 65536.0; // . + if (gray > 0.2) n = 65600.0; // : + if (gray > 0.3) n = 332772.0; // * + if (gray > 0.4) n = 15255086.0; // o + if (gray > 0.5) n = 23385164.0; // & + if (gray > 0.6) n = 15252014.0; // 8 + if (gray > 0.7) n = 13199452.0; // @ + if (gray > 0.8) n = 11512810.0; // # + + // get the mod.. + vec2 modd = getMod(coord, vec2(pixelSize)); + + gl_FragColor = color * character( n, vec2(-1.0) + modd * 2.0); + +} +`,bf=function(e){_f(t,e);function t(t){t===void 0&&(t=8);var n=e.call(this,vf,yf)||this;return n.size=t,n}return Object.defineProperty(t.prototype,`size`,{get:function(){return this.uniforms.pixelSize},set:function(e){this.uniforms.pixelSize=e},enumerable:!1,configurable:!0}),t}(Xo),xf=function(e,t){return xf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},xf(e,t)};function Sf(e,t){xf(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Cf=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,wf=`precision mediump float; + +varying vec2 vTextureCoord; +uniform sampler2D uSampler; +uniform vec4 filterArea; + +uniform float transformX; +uniform float transformY; +uniform vec3 lightColor; +uniform float lightAlpha; +uniform vec3 shadowColor; +uniform float shadowAlpha; + +void main(void) { + vec2 transform = vec2(1.0 / filterArea) * vec2(transformX, transformY); + vec4 color = texture2D(uSampler, vTextureCoord); + float light = texture2D(uSampler, vTextureCoord - transform).a; + float shadow = texture2D(uSampler, vTextureCoord + transform).a; + + color.rgb = mix(color.rgb, lightColor, clamp((color.a - light) * lightAlpha, 0.0, 1.0)); + color.rgb = mix(color.rgb, shadowColor, clamp((color.a - shadow) * shadowAlpha, 0.0, 1.0)); + gl_FragColor = vec4(color.rgb * color.a, color.a); +} +`,Tf=function(e){Sf(t,e);function t(t){var n=e.call(this,Cf,wf)||this;return n._thickness=2,n._angle=0,n.uniforms.lightColor=new Float32Array(3),n.uniforms.shadowColor=new Float32Array(3),Object.assign(n,{rotation:45,thickness:2,lightColor:16777215,lightAlpha:.7,shadowColor:0,shadowAlpha:.7},t),n.padding=1,n}return t.prototype._updateTransform=function(){this.uniforms.transformX=this._thickness*Math.cos(this._angle),this.uniforms.transformY=this._thickness*Math.sin(this._angle)},Object.defineProperty(t.prototype,`rotation`,{get:function(){return this._angle/Bi},set:function(e){this._angle=e*Bi,this._updateTransform()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`thickness`,{get:function(){return this._thickness},set:function(e){this._thickness=e,this._updateTransform()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`lightColor`,{get:function(){return li(this.uniforms.lightColor)},set:function(e){si(e,this.uniforms.lightColor)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`lightAlpha`,{get:function(){return this.uniforms.lightAlpha},set:function(e){this.uniforms.lightAlpha=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`shadowColor`,{get:function(){return li(this.uniforms.shadowColor)},set:function(e){si(e,this.uniforms.shadowColor)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`shadowAlpha`,{get:function(){return this.uniforms.shadowAlpha},set:function(e){this.uniforms.shadowAlpha=e},enumerable:!1,configurable:!0}),t}(Xo),Ef=function(e,t){return Ef=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},Ef(e,t)};function Df(e,t){Ef(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Of=`varying vec2 vTextureCoord; + +uniform sampler2D uSampler; +uniform float uAlpha; + +void main(void) +{ + gl_FragColor = texture2D(uSampler, vTextureCoord) * uAlpha; +} +`,kf=function(e){Df(t,e);function t(t){t===void 0&&(t=1);var n=e.call(this,Js,Of,{uAlpha:1})||this;return n.alpha=t,n}return Object.defineProperty(t.prototype,`alpha`,{get:function(){return this.uniforms.uAlpha},set:function(e){this.uniforms.uAlpha=e},enumerable:!1,configurable:!0}),t}(Xo),Af=function(e,t){return Af=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},Af(e,t)};function jf(e,t){Af(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Mf=` + attribute vec2 aVertexPosition; + + uniform mat3 projectionMatrix; + + uniform float strength; + + varying vec2 vBlurTexCoords[%size%]; + + uniform vec4 inputSize; + uniform vec4 outputFrame; + + vec4 filterVertexPosition( void ) + { + vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy; + + return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0); + } + + vec2 filterTextureCoord( void ) + { + return aVertexPosition * (outputFrame.zw * inputSize.zw); + } + + void main(void) + { + gl_Position = filterVertexPosition(); + + vec2 textureCoord = filterTextureCoord(); + %blur% + }`;function Nf(e,t){var n=Math.ceil(e/2),r=Mf,i=``,a;a=t?`vBlurTexCoords[%index%] = textureCoord + vec2(%sampleIndex% * strength, 0.0);`:`vBlurTexCoords[%index%] = textureCoord + vec2(0.0, %sampleIndex% * strength);`;for(var o=0;o=n&&(o=e-s-1),c=c.replace(`%value%`,t[o].toString()),i+=c,i+=` +`}return r=r.replace(`%blur%`,i),r=r.replace(`%size%`,e.toString()),r}var Lf=function(e){jf(t,e);function t(t,n,r,i,a){n===void 0&&(n=8),r===void 0&&(r=4),i===void 0&&(i=G.FILTER_RESOLUTION),a===void 0&&(a=5);var o=this,s=Nf(a,t),c=If(a);return o=e.call(this,s,c)||this,o.horizontal=t,o.resolution=i,o._quality=0,o.quality=r,o.blur=n,o}return t.prototype.apply=function(e,t,n,r){if(n?this.horizontal?this.uniforms.strength=1/n.width*(n.width/t.width):this.uniforms.strength=1/n.height*(n.height/t.height):this.horizontal?this.uniforms.strength=1/e.renderer.width*(e.renderer.width/t.width):this.uniforms.strength=1/e.renderer.height*(e.renderer.height/t.height),this.uniforms.strength*=this.strength,this.uniforms.strength/=this.passes,this.passes===1)e.applyFilter(this,t,n,r);else{var i=e.getFilterTexture(),a=e.renderer,o=t,s=i;this.state.blend=!1,e.applyFilter(this,o,s,pr.CLEAR);for(var c=1;c 0.0) { + coord *= mix(1.0, smoothstep(0.0, radius / distance, percent), strength * 0.75); + } else { + coord *= mix(1.0, pow(percent, 1.0 + strength * 0.75) * radius / distance, 1.0 - percent); + } + } + coord += center * dimensions.xy; + coord /= filterArea.xy; + vec2 clampedCoord = clamp(coord, filterClamp.xy, filterClamp.zw); + vec4 color = texture2D(uSampler, clampedCoord); + if (coord != clampedCoord) { + color *= max(0.0, 1.0 - length(coord - clampedCoord)); + } + + gl_FragColor = color; +} +`,Kf=function(e){Uf(t,e);function t(n){var r=e.call(this,Wf,Gf)||this;return r.uniforms.dimensions=new Float32Array(2),Object.assign(r,t.defaults,n),r}return t.prototype.apply=function(e,t,n,r){var i=t.filterFrame,a=i.width,o=i.height;this.uniforms.dimensions[0]=a,this.uniforms.dimensions[1]=o,e.applyFilter(this,t,n,r)},Object.defineProperty(t.prototype,`radius`,{get:function(){return this.uniforms.radius},set:function(e){this.uniforms.radius=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`strength`,{get:function(){return this.uniforms.strength},set:function(e){this.uniforms.strength=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`center`,{get:function(){return this.uniforms.center},set:function(e){this.uniforms.center=e},enumerable:!1,configurable:!0}),t.defaults={center:[.5,.5],radius:100,strength:1},t}(Xo),qf=function(e,t){return qf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},qf(e,t)};function Jf(e,t){qf(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Yf=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,Xf=`varying vec2 vTextureCoord; +uniform sampler2D uSampler; +uniform sampler2D colorMap; +uniform float _mix; +uniform float _size; +uniform float _sliceSize; +uniform float _slicePixelSize; +uniform float _sliceInnerSize; +void main() { + vec4 color = texture2D(uSampler, vTextureCoord.xy); + + vec4 adjusted; + if (color.a > 0.0) { + color.rgb /= color.a; + float innerWidth = _size - 1.0; + float zSlice0 = min(floor(color.b * innerWidth), innerWidth); + float zSlice1 = min(zSlice0 + 1.0, innerWidth); + float xOffset = _slicePixelSize * 0.5 + color.r * _sliceInnerSize; + float s0 = xOffset + (zSlice0 * _sliceSize); + float s1 = xOffset + (zSlice1 * _sliceSize); + float yOffset = _sliceSize * 0.5 + color.g * (1.0 - _sliceSize); + vec4 slice0Color = texture2D(colorMap, vec2(s0,yOffset)); + vec4 slice1Color = texture2D(colorMap, vec2(s1,yOffset)); + float zOffset = fract(color.b * innerWidth); + adjusted = mix(slice0Color, slice1Color, zOffset); + + color.rgb *= color.a; + } + gl_FragColor = vec4(mix(color, adjusted, _mix).rgb, color.a); + +}`,Zf=function(e){Jf(t,e);function t(t,n,r){n===void 0&&(n=!1),r===void 0&&(r=1);var i=e.call(this,Yf,Xf)||this;return i.mix=1,i._size=0,i._sliceSize=0,i._slicePixelSize=0,i._sliceInnerSize=0,i._nearest=!1,i._scaleMode=null,i._colorMap=null,i._scaleMode=null,i.nearest=n,i.mix=r,i.colorMap=t,i}return t.prototype.apply=function(e,t,n,r){this.uniforms._mix=this.mix,e.applyFilter(this,t,n,r)},Object.defineProperty(t.prototype,`colorSize`,{get:function(){return this._size},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`colorMap`,{get:function(){return this._colorMap},set:function(e){var t;e&&(e instanceof Na||(e=Na.from(e)),(t=e)?.baseTexture&&(e.baseTexture.scaleMode=this._scaleMode,e.baseTexture.mipmap=dr.OFF,this._size=e.height,this._sliceSize=1/this._size,this._slicePixelSize=this._sliceSize/this._size,this._sliceInnerSize=this._slicePixelSize*(this._size-1),this.uniforms._size=this._size,this.uniforms._sliceSize=this._sliceSize,this.uniforms._slicePixelSize=this._slicePixelSize,this.uniforms._sliceInnerSize=this._sliceInnerSize,this.uniforms.colorMap=e),this._colorMap=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`nearest`,{get:function(){return this._nearest},set:function(e){this._nearest=e,this._scaleMode=e?lr.NEAREST:lr.LINEAR;var t=this._colorMap;t&&t.baseTexture&&(t.baseTexture._glTextures={},t.baseTexture.scaleMode=this._scaleMode,t.baseTexture.mipmap=dr.OFF,t._updateID++,t.baseTexture.emit(`update`,t.baseTexture))},enumerable:!1,configurable:!0}),t.prototype.updateColorMap=function(){var e=this._colorMap;e&&e.baseTexture&&(e._updateID++,e.baseTexture.emit(`update`,e.baseTexture),this.colorMap=e)},t.prototype.destroy=function(t){t===void 0&&(t=!1),this._colorMap&&this._colorMap.destroy(t),e.prototype.destroy.call(this)},t}(Xo),Qf=function(e,t){return Qf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Qf(e,t)};function $f(e,t){Qf(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var ep=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,tp=`varying vec2 vTextureCoord; +uniform sampler2D uSampler; +uniform vec3 color; +uniform float alpha; + +void main(void) { + vec4 currentColor = texture2D(uSampler, vTextureCoord); + gl_FragColor = vec4(mix(currentColor.rgb, color.rgb, currentColor.a * alpha), currentColor.a); +} +`,np=function(e){$f(t,e);function t(t,n){t===void 0&&(t=0),n===void 0&&(n=1);var r=e.call(this,ep,tp)||this;return r._color=0,r._alpha=1,r.uniforms.color=new Float32Array(3),r.color=t,r.alpha=n,r}return Object.defineProperty(t.prototype,`color`,{get:function(){return this._color},set:function(e){var t=this.uniforms.color;typeof e==`number`?(si(e,t),this._color=e):(t[0]=e[0],t[1]=e[1],t[2]=e[2],this._color=li(t))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`alpha`,{get:function(){return this._alpha},set:function(e){this.uniforms.alpha=e,this._alpha=e},enumerable:!1,configurable:!0}),t}(Xo),rp=function(e,t){return rp=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},rp(e,t)};function ip(e,t){rp(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var ap=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,op=`varying vec2 vTextureCoord; +uniform sampler2D uSampler; +uniform vec3 originalColor; +uniform vec3 newColor; +uniform float epsilon; +void main(void) { + vec4 currentColor = texture2D(uSampler, vTextureCoord); + vec3 colorDiff = originalColor - (currentColor.rgb / max(currentColor.a, 0.0000000001)); + float colorDistance = length(colorDiff); + float doReplace = step(colorDistance, epsilon); + gl_FragColor = vec4(mix(currentColor.rgb, (newColor + colorDiff) * currentColor.a, doReplace), currentColor.a); +} +`,sp=function(e){ip(t,e);function t(t,n,r){t===void 0&&(t=16711680),n===void 0&&(n=0),r===void 0&&(r=.4);var i=e.call(this,ap,op)||this;return i._originalColor=16711680,i._newColor=0,i.uniforms.originalColor=new Float32Array(3),i.uniforms.newColor=new Float32Array(3),i.originalColor=t,i.newColor=n,i.epsilon=r,i}return Object.defineProperty(t.prototype,`originalColor`,{get:function(){return this._originalColor},set:function(e){var t=this.uniforms.originalColor;typeof e==`number`?(si(e,t),this._originalColor=e):(t[0]=e[0],t[1]=e[1],t[2]=e[2],this._originalColor=li(t))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`newColor`,{get:function(){return this._newColor},set:function(e){var t=this.uniforms.newColor;typeof e==`number`?(si(e,t),this._newColor=e):(t[0]=e[0],t[1]=e[1],t[2]=e[2],this._newColor=li(t))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`epsilon`,{get:function(){return this.uniforms.epsilon},set:function(e){this.uniforms.epsilon=e},enumerable:!1,configurable:!0}),t}(Xo),cp=function(e,t){return cp=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},cp(e,t)};function lp(e,t){cp(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var up=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,dp=`precision mediump float; + +varying mediump vec2 vTextureCoord; + +uniform sampler2D uSampler; +uniform vec2 texelSize; +uniform float matrix[9]; + +void main(void) +{ + vec4 c11 = texture2D(uSampler, vTextureCoord - texelSize); // top left + vec4 c12 = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y - texelSize.y)); // top center + vec4 c13 = texture2D(uSampler, vec2(vTextureCoord.x + texelSize.x, vTextureCoord.y - texelSize.y)); // top right + + vec4 c21 = texture2D(uSampler, vec2(vTextureCoord.x - texelSize.x, vTextureCoord.y)); // mid left + vec4 c22 = texture2D(uSampler, vTextureCoord); // mid center + vec4 c23 = texture2D(uSampler, vec2(vTextureCoord.x + texelSize.x, vTextureCoord.y)); // mid right + + vec4 c31 = texture2D(uSampler, vec2(vTextureCoord.x - texelSize.x, vTextureCoord.y + texelSize.y)); // bottom left + vec4 c32 = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y + texelSize.y)); // bottom center + vec4 c33 = texture2D(uSampler, vTextureCoord + texelSize); // bottom right + + gl_FragColor = + c11 * matrix[0] + c12 * matrix[1] + c13 * matrix[2] + + c21 * matrix[3] + c22 * matrix[4] + c23 * matrix[5] + + c31 * matrix[6] + c32 * matrix[7] + c33 * matrix[8]; + + gl_FragColor.a = c22.a; +} +`,fp=function(e){lp(t,e);function t(t,n,r){n===void 0&&(n=200),r===void 0&&(r=200);var i=e.call(this,up,dp)||this;return i.uniforms.texelSize=new Float32Array(2),i.uniforms.matrix=new Float32Array(9),t!==void 0&&(i.matrix=t),i.width=n,i.height=r,i}return Object.defineProperty(t.prototype,`matrix`,{get:function(){return this.uniforms.matrix},set:function(e){var t=this;e.forEach(function(e,n){t.uniforms.matrix[n]=e})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`width`,{get:function(){return 1/this.uniforms.texelSize[0]},set:function(e){this.uniforms.texelSize[0]=1/e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`height`,{get:function(){return 1/this.uniforms.texelSize[1]},set:function(e){this.uniforms.texelSize[1]=1/e},enumerable:!1,configurable:!0}),t}(Xo),pp=function(e,t){return pp=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},pp(e,t)};function mp(e,t){pp(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var hp=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,gp=`precision mediump float; + +varying vec2 vTextureCoord; + +uniform sampler2D uSampler; + +void main(void) +{ + float lum = length(texture2D(uSampler, vTextureCoord.xy).rgb); + + gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0); + + if (lum < 1.00) + { + if (mod(gl_FragCoord.x + gl_FragCoord.y, 10.0) == 0.0) + { + gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); + } + } + + if (lum < 0.75) + { + if (mod(gl_FragCoord.x - gl_FragCoord.y, 10.0) == 0.0) + { + gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); + } + } + + if (lum < 0.50) + { + if (mod(gl_FragCoord.x + gl_FragCoord.y - 5.0, 10.0) == 0.0) + { + gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); + } + } + + if (lum < 0.3) + { + if (mod(gl_FragCoord.x - gl_FragCoord.y - 5.0, 10.0) == 0.0) + { + gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); + } + } +} +`,_p=function(e){mp(t,e);function t(){return e.call(this,hp,gp)||this}return t}(Xo),vp=function(e,t){return vp=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},vp(e,t)};function yp(e,t){vp(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var bp=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,xp=`varying vec2 vTextureCoord; +uniform sampler2D uSampler; + +uniform vec4 filterArea; +uniform vec2 dimensions; + +const float SQRT_2 = 1.414213; + +const float light = 1.0; + +uniform float curvature; +uniform float lineWidth; +uniform float lineContrast; +uniform bool verticalLine; +uniform float noise; +uniform float noiseSize; + +uniform float vignetting; +uniform float vignettingAlpha; +uniform float vignettingBlur; + +uniform float seed; +uniform float time; + +float rand(vec2 co) { + return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453); +} + +void main(void) +{ + vec2 pixelCoord = vTextureCoord.xy * filterArea.xy; + vec2 dir = vec2(vTextureCoord.xy * filterArea.xy / dimensions - vec2(0.5, 0.5)); + + gl_FragColor = texture2D(uSampler, vTextureCoord); + vec3 rgb = gl_FragColor.rgb; + + if (noise > 0.0 && noiseSize > 0.0) + { + pixelCoord.x = floor(pixelCoord.x / noiseSize); + pixelCoord.y = floor(pixelCoord.y / noiseSize); + float _noise = rand(pixelCoord * noiseSize * seed) - 0.5; + rgb += _noise * noise; + } + + if (lineWidth > 0.0) + { + float _c = curvature > 0. ? curvature : 1.; + float k = curvature > 0. ?(length(dir * dir) * 0.25 * _c * _c + 0.935 * _c) : 1.; + vec2 uv = dir * k; + + float v = (verticalLine ? uv.x * dimensions.x : uv.y * dimensions.y) * min(1.0, 2.0 / lineWidth ) / _c; + float j = 1. + cos(v * 1.2 - time) * 0.5 * lineContrast; + rgb *= j; + float segment = verticalLine ? mod((dir.x + .5) * dimensions.x, 4.) : mod((dir.y + .5) * dimensions.y, 4.); + rgb *= 0.99 + ceil(segment) * 0.015; + } + + if (vignetting > 0.0) + { + float outter = SQRT_2 - vignetting * SQRT_2; + float darker = clamp((outter - length(dir) * SQRT_2) / ( 0.00001 + vignettingBlur * SQRT_2), 0.0, 1.0); + rgb *= darker + (1.0 - darker) * (1.0 - vignettingAlpha); + } + + gl_FragColor.rgb = rgb; +} +`,Sp=function(e){yp(t,e);function t(n){var r=e.call(this,bp,xp)||this;return r.time=0,r.seed=0,r.uniforms.dimensions=new Float32Array(2),Object.assign(r,t.defaults,n),r}return t.prototype.apply=function(e,t,n,r){var i=t.filterFrame,a=i.width,o=i.height;this.uniforms.dimensions[0]=a,this.uniforms.dimensions[1]=o,this.uniforms.seed=this.seed,this.uniforms.time=this.time,e.applyFilter(this,t,n,r)},Object.defineProperty(t.prototype,`curvature`,{get:function(){return this.uniforms.curvature},set:function(e){this.uniforms.curvature=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`lineWidth`,{get:function(){return this.uniforms.lineWidth},set:function(e){this.uniforms.lineWidth=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`lineContrast`,{get:function(){return this.uniforms.lineContrast},set:function(e){this.uniforms.lineContrast=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`verticalLine`,{get:function(){return this.uniforms.verticalLine},set:function(e){this.uniforms.verticalLine=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`noise`,{get:function(){return this.uniforms.noise},set:function(e){this.uniforms.noise=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`noiseSize`,{get:function(){return this.uniforms.noiseSize},set:function(e){this.uniforms.noiseSize=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`vignetting`,{get:function(){return this.uniforms.vignetting},set:function(e){this.uniforms.vignetting=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`vignettingAlpha`,{get:function(){return this.uniforms.vignettingAlpha},set:function(e){this.uniforms.vignettingAlpha=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`vignettingBlur`,{get:function(){return this.uniforms.vignettingBlur},set:function(e){this.uniforms.vignettingBlur=e},enumerable:!1,configurable:!0}),t.defaults={curvature:1,lineWidth:1,lineContrast:.25,verticalLine:!1,noise:0,noiseSize:1,seed:0,vignetting:.3,vignettingAlpha:1,vignettingBlur:.3,time:0},t}(Xo),Cp=function(e,t){return Cp=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Cp(e,t)};function wp(e,t){Cp(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Tp=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,Ep=`precision mediump float; + +varying vec2 vTextureCoord; +varying vec4 vColor; + +uniform vec4 filterArea; +uniform sampler2D uSampler; + +uniform float angle; +uniform float scale; + +float pattern() +{ + float s = sin(angle), c = cos(angle); + vec2 tex = vTextureCoord * filterArea.xy; + vec2 point = vec2( + c * tex.x - s * tex.y, + s * tex.x + c * tex.y + ) * scale; + return (sin(point.x) * sin(point.y)) * 4.0; +} + +void main() +{ + vec4 color = texture2D(uSampler, vTextureCoord); + float average = (color.r + color.g + color.b) / 3.0; + gl_FragColor = vec4(vec3(average * 10.0 - 5.0 + pattern()), color.a); +} +`,Dp=function(e){wp(t,e);function t(t,n){t===void 0&&(t=1),n===void 0&&(n=5);var r=e.call(this,Tp,Ep)||this;return r.scale=t,r.angle=n,r}return Object.defineProperty(t.prototype,`scale`,{get:function(){return this.uniforms.scale},set:function(e){this.uniforms.scale=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`angle`,{get:function(){return this.uniforms.angle},set:function(e){this.uniforms.angle=e},enumerable:!1,configurable:!0}),t}(Xo),Op=function(e,t){return Op=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Op(e,t)};function kp(e,t){Op(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Ap=function(){return Ap=Object.assign||function(e){for(var t=arguments,n,r=1,i=arguments.length;r 1.0 || coord.y > 1.0) { + return; + } + + float cx = coord.x - 0.5; + float cy = (coord.y - 0.5) * aspect; + float ny = (-sinDir * cx + cosDir * cy) / aspect + 0.5; + + // displacementMap: repeat + // ny = ny > 1.0 ? ny - 1.0 : (ny < 0.0 ? 1.0 + ny : ny); + + // displacementMap: mirror + ny = ny > 1.0 ? 2.0 - ny : (ny < 0.0 ? -ny : ny); + + vec4 dc = texture2D(displacementMap, vec2(0.5, ny)); + + float displacement = (dc.r - dc.g) * (offset / filterArea.x); + + coord = vTextureCoord + vec2(cosDir * displacement, sinDir * displacement * aspect); + + if (fillMode == CLAMP) { + coord = clamp(coord, filterClamp.xy, filterClamp.zw); + } else { + if( coord.x > filterClamp.z ) { + if (fillMode == TRANSPARENT) { + discard; + } else if (fillMode == LOOP) { + coord.x -= filterClamp.z; + } else if (fillMode == MIRROR) { + coord.x = filterClamp.z * 2.0 - coord.x; + } + } else if( coord.x < filterClamp.x ) { + if (fillMode == TRANSPARENT) { + discard; + } else if (fillMode == LOOP) { + coord.x += filterClamp.z; + } else if (fillMode == MIRROR) { + coord.x *= -filterClamp.z; + } + } + + if( coord.y > filterClamp.w ) { + if (fillMode == TRANSPARENT) { + discard; + } else if (fillMode == LOOP) { + coord.y -= filterClamp.w; + } else if (fillMode == MIRROR) { + coord.y = filterClamp.w * 2.0 - coord.y; + } + } else if( coord.y < filterClamp.y ) { + if (fillMode == TRANSPARENT) { + discard; + } else if (fillMode == LOOP) { + coord.y += filterClamp.w; + } else if (fillMode == MIRROR) { + coord.y *= -filterClamp.w; + } + } + } + + gl_FragColor.r = texture2D(uSampler, coord + red * (1.0 - seed * 0.4) / filterArea.xy).r; + gl_FragColor.g = texture2D(uSampler, coord + green * (1.0 - seed * 0.3) / filterArea.xy).g; + gl_FragColor.b = texture2D(uSampler, coord + blue * (1.0 - seed * 0.2) / filterArea.xy).b; + gl_FragColor.a = texture2D(uSampler, coord).a; +} +`,Up=function(e){Bp(t,e);function t(n){var r=e.call(this,Vp,Hp)||this;return r.offset=100,r.fillMode=t.TRANSPARENT,r.average=!1,r.seed=0,r.minSize=8,r.sampleSize=512,r._slices=0,r._offsets=new Float32Array(1),r._sizes=new Float32Array(1),r._direction=-1,r.uniforms.dimensions=new Float32Array(2),r._canvas=document.createElement(`canvas`),r._canvas.width=4,r._canvas.height=r.sampleSize,r.texture=Na.from(r._canvas,{scaleMode:lr.NEAREST}),Object.assign(r,t.defaults,n),r}return t.prototype.apply=function(e,t,n,r){var i=t.filterFrame,a=i.width,o=i.height;this.uniforms.dimensions[0]=a,this.uniforms.dimensions[1]=o,this.uniforms.aspect=o/a,this.uniforms.seed=this.seed,this.uniforms.offset=this.offset,this.uniforms.fillMode=this.fillMode,e.applyFilter(this,t,n,r)},t.prototype._randomizeSizes=function(){var e=this._sizes,t=this._slices-1,n=this.sampleSize,r=Math.min(this.minSize/n,.9/this._slices);if(this.average){for(var i=this._slices,a=1,o=0;o0;n--){var r=Math.random()*n>>0,i=e[n];e[n]=e[r],e[r]=i}},t.prototype._randomizeOffsets=function(){for(var e=0;e0?r:0,c=r<0?-r:0;n.fillStyle=`rgba(`+s+`, `+c+`, 0, 1)`,n.fillRect(0,i>>0,e,o+1>>0),i+=o}t.baseTexture.update(),this.uniforms.displacementMap=t},Object.defineProperty(t.prototype,`sizes`,{get:function(){return this._sizes},set:function(e){for(var t=Math.min(this._slices,e.length),n=0;n>0)+1},Object.defineProperty(t.prototype,`offset`,{get:function(){return this.uniforms.uOffset},set:function(e){this.uniforms.uOffset=e},enumerable:!1,configurable:!0}),t}(Xo),om=function(e,t){return om=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},om(e,t)};function sm(e,t){om(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var cm=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,lm=`varying vec2 vTextureCoord; +uniform sampler2D uSampler; + +uniform float epsilon; + +const int MAX_COLORS = %maxColors%; + +uniform vec3 originalColors[MAX_COLORS]; +uniform vec3 targetColors[MAX_COLORS]; + +void main(void) +{ + gl_FragColor = texture2D(uSampler, vTextureCoord); + + float alpha = gl_FragColor.a; + if (alpha < 0.0001) + { + return; + } + + vec3 color = gl_FragColor.rgb / alpha; + + for(int i = 0; i < MAX_COLORS; i++) + { + vec3 origColor = originalColors[i]; + if (origColor.r < 0.0) + { + break; + } + vec3 colorDiff = origColor - color; + if (length(colorDiff) < epsilon) + { + vec3 targetColor = targetColors[i]; + gl_FragColor = vec4((targetColor + colorDiff) * alpha, alpha); + return; + } + } +} +`,um=function(e){sm(t,e);function t(t,n,r){n===void 0&&(n=.05),r===void 0&&(r=t.length);var i=e.call(this,cm,lm.replace(/%maxColors%/g,r.toFixed(0)))||this;return i._replacements=[],i._maxColors=0,i.epsilon=n,i._maxColors=r,i.uniforms.originalColors=new Float32Array(r*3),i.uniforms.targetColors=new Float32Array(r*3),i.replacements=t,i}return Object.defineProperty(t.prototype,`replacements`,{get:function(){return this._replacements},set:function(e){var t=this.uniforms.originalColors,n=this.uniforms.targetColors,r=e.length;if(r>this._maxColors)throw Error(`Length of replacements (`+r+`) exceeds the maximum colors length (`+this._maxColors+`)`);t[r*3]=-1;for(var i=0;i 0.5) then: 1 - 2 * (1 - dst) * (1 - src) + return vec3((dst.x <= 0.5) ? (2.0 * src.x * dst.x) : (1.0 - 2.0 * (1.0 - dst.x) * (1.0 - src.x)), + (dst.y <= 0.5) ? (2.0 * src.y * dst.y) : (1.0 - 2.0 * (1.0 - dst.y) * (1.0 - src.y)), + (dst.z <= 0.5) ? (2.0 * src.z * dst.z) : (1.0 - 2.0 * (1.0 - dst.z) * (1.0 - src.z))); +} + + +void main() +{ + gl_FragColor = texture2D(uSampler, vTextureCoord); + vec3 color = gl_FragColor.rgb; + + if (sepia > 0.0) + { + float gray = (color.x + color.y + color.z) / 3.0; + vec3 grayscale = vec3(gray); + + color = Overlay(SEPIA_RGB, grayscale); + + color = grayscale + sepia * (color - grayscale); + } + + vec2 coord = vTextureCoord * filterArea.xy / dimensions.xy; + + if (vignetting > 0.0) + { + float outter = SQRT_2 - vignetting * SQRT_2; + vec2 dir = vec2(vec2(0.5, 0.5) - coord); + dir.y *= dimensions.y / dimensions.x; + float darker = clamp((outter - length(dir) * SQRT_2) / ( 0.00001 + vignettingBlur * SQRT_2), 0.0, 1.0); + color.rgb *= darker + (1.0 - darker) * (1.0 - vignettingAlpha); + } + + if (scratchDensity > seed && scratch != 0.0) + { + float phase = seed * 256.0; + float s = mod(floor(phase), 2.0); + float dist = 1.0 / scratchDensity; + float d = distance(coord, vec2(seed * dist, abs(s - seed * dist))); + if (d < seed * 0.6 + 0.4) + { + highp float period = scratchDensity * 10.0; + + float xx = coord.x * period + phase; + float aa = abs(mod(xx, 0.5) * 4.0); + float bb = mod(floor(xx / 0.5), 2.0); + float yy = (1.0 - bb) * aa + bb * (2.0 - aa); + + float kk = 2.0 * period; + float dw = scratchWidth / dimensions.x * (0.75 + seed); + float dh = dw * kk; + + float tine = (yy - (2.0 - dh)); + + if (tine > 0.0) { + float _sign = sign(scratch); + + tine = s * tine / period + scratch + 0.1; + tine = clamp(tine + 1.0, 0.5 + _sign * 0.5, 1.5 + _sign * 0.5); + + color.rgb *= tine; + } + } + } + + if (noise > 0.0 && noiseSize > 0.0) + { + vec2 pixelCoord = vTextureCoord.xy * filterArea.xy; + pixelCoord.x = floor(pixelCoord.x / noiseSize); + pixelCoord.y = floor(pixelCoord.y / noiseSize); + // vec2 d = pixelCoord * noiseSize * vec2(1024.0 + seed * 512.0, 1024.0 - seed * 512.0); + // float _noise = snoise(d) * 0.5; + float _noise = rand(pixelCoord * noiseSize * seed) - 0.5; + color += _noise * noise; + } + + gl_FragColor.rgb = color; +} +`,hm=function(e){fm(t,e);function t(n,r){r===void 0&&(r=0);var i=e.call(this,pm,mm)||this;return i.seed=0,i.uniforms.dimensions=new Float32Array(2),typeof n==`number`?(i.seed=n,n=void 0):i.seed=r,Object.assign(i,t.defaults,n),i}return t.prototype.apply=function(e,t,n,r){var i,a;this.uniforms.dimensions[0]=(i=t.filterFrame)?.width,this.uniforms.dimensions[1]=(a=t.filterFrame)?.height,this.uniforms.seed=this.seed,e.applyFilter(this,t,n,r)},Object.defineProperty(t.prototype,`sepia`,{get:function(){return this.uniforms.sepia},set:function(e){this.uniforms.sepia=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`noise`,{get:function(){return this.uniforms.noise},set:function(e){this.uniforms.noise=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`noiseSize`,{get:function(){return this.uniforms.noiseSize},set:function(e){this.uniforms.noiseSize=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`scratch`,{get:function(){return this.uniforms.scratch},set:function(e){this.uniforms.scratch=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`scratchDensity`,{get:function(){return this.uniforms.scratchDensity},set:function(e){this.uniforms.scratchDensity=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`scratchWidth`,{get:function(){return this.uniforms.scratchWidth},set:function(e){this.uniforms.scratchWidth=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`vignetting`,{get:function(){return this.uniforms.vignetting},set:function(e){this.uniforms.vignetting=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`vignettingAlpha`,{get:function(){return this.uniforms.vignettingAlpha},set:function(e){this.uniforms.vignettingAlpha=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`vignettingBlur`,{get:function(){return this.uniforms.vignettingBlur},set:function(e){this.uniforms.vignettingBlur=e},enumerable:!1,configurable:!0}),t.defaults={sepia:.3,noise:.3,noiseSize:1,scratch:.5,scratchDensity:.3,scratchWidth:1,vignetting:.3,vignettingAlpha:1,vignettingBlur:.3},t}(Xo),gm=function(e,t){return gm=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},gm(e,t)};function _m(e,t){gm(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var vm=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,ym=`varying vec2 vTextureCoord; +uniform sampler2D uSampler; + +uniform vec2 thickness; +uniform vec4 outlineColor; +uniform vec4 filterClamp; + +const float DOUBLE_PI = 3.14159265358979323846264 * 2.; + +void main(void) { + vec4 ownColor = texture2D(uSampler, vTextureCoord); + vec4 curColor; + float maxAlpha = 0.; + vec2 displaced; + for (float angle = 0.; angle <= DOUBLE_PI; angle += \${angleStep}) { + displaced.x = vTextureCoord.x + thickness.x * cos(angle); + displaced.y = vTextureCoord.y + thickness.y * sin(angle); + curColor = texture2D(uSampler, clamp(displaced, filterClamp.xy, filterClamp.zw)); + maxAlpha = max(maxAlpha, curColor.a); + } + float resultAlpha = max(maxAlpha, ownColor.a); + gl_FragColor = vec4((ownColor.rgb + outlineColor.rgb * (1. - ownColor.a)) * resultAlpha, resultAlpha); +} +`,bm=function(e){_m(t,e);function t(n,r,i){n===void 0&&(n=1),r===void 0&&(r=0),i===void 0&&(i=.1);var a=e.call(this,vm,ym.replace(/\$\{angleStep\}/,t.getAngleStep(i)))||this;return a._thickness=1,a.uniforms.thickness=new Float32Array([0,0]),a.uniforms.outlineColor=new Float32Array([0,0,0,1]),Object.assign(a,{thickness:n,color:r,quality:i}),a}return t.getAngleStep=function(e){var n=Math.max(e*t.MAX_SAMPLES,t.MIN_SAMPLES);return(Math.PI*2/n).toFixed(7)},t.prototype.apply=function(e,t,n,r){this.uniforms.thickness[0]=this._thickness/t._frame.width,this.uniforms.thickness[1]=this._thickness/t._frame.height,e.applyFilter(this,t,n,r)},Object.defineProperty(t.prototype,`color`,{get:function(){return li(this.uniforms.outlineColor)},set:function(e){si(e,this.uniforms.outlineColor)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`thickness`,{get:function(){return this._thickness},set:function(e){this._thickness=e,this.padding=e},enumerable:!1,configurable:!0}),t.MIN_SAMPLES=1,t.MAX_SAMPLES=100,t}(Xo),xm=function(e,t){return xm=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},xm(e,t)};function Sm(e,t){xm(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Cm=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,wm=`precision mediump float; + +varying vec2 vTextureCoord; + +uniform vec2 size; +uniform sampler2D uSampler; + +uniform vec4 filterArea; + +vec2 mapCoord( vec2 coord ) +{ + coord *= filterArea.xy; + coord += filterArea.zw; + + return coord; +} + +vec2 unmapCoord( vec2 coord ) +{ + coord -= filterArea.zw; + coord /= filterArea.xy; + + return coord; +} + +vec2 pixelate(vec2 coord, vec2 size) +{ + return floor( coord / size ) * size; +} + +void main(void) +{ + vec2 coord = mapCoord(vTextureCoord); + + coord = pixelate(coord, size); + + coord = unmapCoord(coord); + + gl_FragColor = texture2D(uSampler, coord); +} +`,Tm=function(e){Sm(t,e);function t(t){t===void 0&&(t=10);var n=e.call(this,Cm,wm)||this;return n.size=t,n}return Object.defineProperty(t.prototype,`size`,{get:function(){return this.uniforms.size},set:function(e){typeof e==`number`&&(e=[e,e]),this.uniforms.size=e},enumerable:!1,configurable:!0}),t}(Xo),Em=function(e,t){return Em=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Em(e,t)};function Dm(e,t){Em(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Om=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,km=`varying vec2 vTextureCoord; +uniform sampler2D uSampler; +uniform vec4 filterArea; + +uniform float uRadian; +uniform vec2 uCenter; +uniform float uRadius; +uniform int uKernelSize; + +const int MAX_KERNEL_SIZE = 2048; + +void main(void) +{ + vec4 color = texture2D(uSampler, vTextureCoord); + + if (uKernelSize == 0) + { + gl_FragColor = color; + return; + } + + float aspect = filterArea.y / filterArea.x; + vec2 center = uCenter.xy / filterArea.xy; + float gradient = uRadius / filterArea.x * 0.3; + float radius = uRadius / filterArea.x - gradient * 0.5; + int k = uKernelSize - 1; + + vec2 coord = vTextureCoord; + vec2 dir = vec2(center - coord); + float dist = length(vec2(dir.x, dir.y * aspect)); + + float radianStep = uRadian; + if (radius >= 0.0 && dist > radius) { + float delta = dist - radius; + float gap = gradient; + float scale = 1.0 - abs(delta / gap); + if (scale <= 0.0) { + gl_FragColor = color; + return; + } + radianStep *= scale; + } + radianStep /= float(k); + + float s = sin(radianStep); + float c = cos(radianStep); + mat2 rotationMatrix = mat2(vec2(c, -s), vec2(s, c)); + + for(int i = 0; i < MAX_KERNEL_SIZE - 1; i++) { + if (i == k) { + break; + } + + coord -= center; + coord.y *= aspect; + coord = rotationMatrix * coord; + coord.y /= aspect; + coord += center; + + vec4 sample = texture2D(uSampler, coord); + + // switch to pre-multiplied alpha to correctly blur transparent images + // sample.rgb *= sample.a; + + color += sample; + } + + gl_FragColor = color / float(uKernelSize); +} +`,Am=function(e){Dm(t,e);function t(t,n,r,i){t===void 0&&(t=0),n===void 0&&(n=[0,0]),r===void 0&&(r=5),i===void 0&&(i=-1);var a=e.call(this,Om,km)||this;return a._angle=0,a.angle=t,a.center=n,a.kernelSize=r,a.radius=i,a}return t.prototype.apply=function(e,t,n,r){this.uniforms.uKernelSize=this._angle===0?0:this.kernelSize,e.applyFilter(this,t,n,r)},Object.defineProperty(t.prototype,`angle`,{get:function(){return this._angle},set:function(e){this._angle=e,this.uniforms.uRadian=e*Math.PI/180},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`center`,{get:function(){return this.uniforms.uCenter},set:function(e){this.uniforms.uCenter=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`radius`,{get:function(){return this.uniforms.uRadius},set:function(e){(e<0||e===1/0)&&(e=-1),this.uniforms.uRadius=e},enumerable:!1,configurable:!0}),t}(Xo),jm=function(e,t){return jm=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},jm(e,t)};function Mm(e,t){jm(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Nm=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,Pm=`varying vec2 vTextureCoord; +uniform sampler2D uSampler; + +uniform vec4 filterArea; +uniform vec4 filterClamp; +uniform vec2 dimensions; + +uniform bool mirror; +uniform float boundary; +uniform vec2 amplitude; +uniform vec2 waveLength; +uniform vec2 alpha; +uniform float time; + +float rand(vec2 co) { + return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453); +} + +void main(void) +{ + vec2 pixelCoord = vTextureCoord.xy * filterArea.xy; + vec2 coord = pixelCoord / dimensions; + + if (coord.y < boundary) { + gl_FragColor = texture2D(uSampler, vTextureCoord); + return; + } + + float k = (coord.y - boundary) / (1. - boundary + 0.0001); + float areaY = boundary * dimensions.y / filterArea.y; + float v = areaY + areaY - vTextureCoord.y; + float y = mirror ? v : vTextureCoord.y; + + float _amplitude = ((amplitude.y - amplitude.x) * k + amplitude.x ) / filterArea.x; + float _waveLength = ((waveLength.y - waveLength.x) * k + waveLength.x) / filterArea.y; + float _alpha = (alpha.y - alpha.x) * k + alpha.x; + + float x = vTextureCoord.x + cos(v * 6.28 / _waveLength - time) * _amplitude; + x = clamp(x, filterClamp.x, filterClamp.z); + + vec4 color = texture2D(uSampler, vec2(x, y)); + + gl_FragColor = color * _alpha; +} +`,Fm=function(e){Mm(t,e);function t(n){var r=e.call(this,Nm,Pm)||this;return r.time=0,r.uniforms.amplitude=new Float32Array(2),r.uniforms.waveLength=new Float32Array(2),r.uniforms.alpha=new Float32Array(2),r.uniforms.dimensions=new Float32Array(2),Object.assign(r,t.defaults,n),r}return t.prototype.apply=function(e,t,n,r){var i,a;this.uniforms.dimensions[0]=(i=t.filterFrame)?.width,this.uniforms.dimensions[1]=(a=t.filterFrame)?.height,this.uniforms.time=this.time,e.applyFilter(this,t,n,r)},Object.defineProperty(t.prototype,`mirror`,{get:function(){return this.uniforms.mirror},set:function(e){this.uniforms.mirror=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`boundary`,{get:function(){return this.uniforms.boundary},set:function(e){this.uniforms.boundary=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`amplitude`,{get:function(){return this.uniforms.amplitude},set:function(e){this.uniforms.amplitude[0]=e[0],this.uniforms.amplitude[1]=e[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`waveLength`,{get:function(){return this.uniforms.waveLength},set:function(e){this.uniforms.waveLength[0]=e[0],this.uniforms.waveLength[1]=e[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`alpha`,{get:function(){return this.uniforms.alpha},set:function(e){this.uniforms.alpha[0]=e[0],this.uniforms.alpha[1]=e[1]},enumerable:!1,configurable:!0}),t.defaults={mirror:!0,boundary:.5,amplitude:[0,20],waveLength:[30,100],alpha:[1,1],time:0},t}(Xo),Im=function(e,t){return Im=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Im(e,t)};function Lm(e,t){Im(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Rm=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,zm=`precision mediump float; + +varying vec2 vTextureCoord; + +uniform sampler2D uSampler; +uniform vec4 filterArea; +uniform vec2 red; +uniform vec2 green; +uniform vec2 blue; + +void main(void) +{ + gl_FragColor.r = texture2D(uSampler, vTextureCoord + red/filterArea.xy).r; + gl_FragColor.g = texture2D(uSampler, vTextureCoord + green/filterArea.xy).g; + gl_FragColor.b = texture2D(uSampler, vTextureCoord + blue/filterArea.xy).b; + gl_FragColor.a = texture2D(uSampler, vTextureCoord).a; +} +`,Bm=function(e){Lm(t,e);function t(t,n,r){t===void 0&&(t=[-10,0]),n===void 0&&(n=[0,10]),r===void 0&&(r=[0,0]);var i=e.call(this,Rm,zm)||this;return i.red=t,i.green=n,i.blue=r,i}return Object.defineProperty(t.prototype,`red`,{get:function(){return this.uniforms.red},set:function(e){this.uniforms.red=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`green`,{get:function(){return this.uniforms.green},set:function(e){this.uniforms.green=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`blue`,{get:function(){return this.uniforms.blue},set:function(e){this.uniforms.blue=e},enumerable:!1,configurable:!0}),t}(Xo),Vm=function(e,t){return Vm=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Vm(e,t)};function Hm(e,t){Vm(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Um=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,Wm=`varying vec2 vTextureCoord; +uniform sampler2D uSampler; +uniform vec4 filterArea; +uniform vec4 filterClamp; + +uniform vec2 center; + +uniform float amplitude; +uniform float wavelength; +// uniform float power; +uniform float brightness; +uniform float speed; +uniform float radius; + +uniform float time; + +const float PI = 3.14159; + +void main() +{ + float halfWavelength = wavelength * 0.5 / filterArea.x; + float maxRadius = radius / filterArea.x; + float currentRadius = time * speed / filterArea.x; + + float fade = 1.0; + + if (maxRadius > 0.0) { + if (currentRadius > maxRadius) { + gl_FragColor = texture2D(uSampler, vTextureCoord); + return; + } + fade = 1.0 - pow(currentRadius / maxRadius, 2.0); + } + + vec2 dir = vec2(vTextureCoord - center / filterArea.xy); + dir.y *= filterArea.y / filterArea.x; + float dist = length(dir); + + if (dist <= 0.0 || dist < currentRadius - halfWavelength || dist > currentRadius + halfWavelength) { + gl_FragColor = texture2D(uSampler, vTextureCoord); + return; + } + + vec2 diffUV = normalize(dir); + + float diff = (dist - currentRadius) / halfWavelength; + + float p = 1.0 - pow(abs(diff), 2.0); + + // float powDiff = diff * pow(p, 2.0) * ( amplitude * fade ); + float powDiff = 1.25 * sin(diff * PI) * p * ( amplitude * fade ); + + vec2 offset = diffUV * powDiff / filterArea.xy; + + // Do clamp : + vec2 coord = vTextureCoord + offset; + vec2 clampedCoord = clamp(coord, filterClamp.xy, filterClamp.zw); + vec4 color = texture2D(uSampler, clampedCoord); + if (coord != clampedCoord) { + color *= max(0.0, 1.0 - length(coord - clampedCoord)); + } + + // No clamp : + // gl_FragColor = texture2D(uSampler, vTextureCoord + offset); + + color.rgb *= 1.0 + (brightness - 1.0) * p * fade; + + gl_FragColor = color; +} +`,Gm=function(e){Hm(t,e);function t(n,r,i){n===void 0&&(n=[0,0]),i===void 0&&(i=0);var a=e.call(this,Um,Wm)||this;return a.center=n,Object.assign(a,t.defaults,r),a.time=i,a}return t.prototype.apply=function(e,t,n,r){this.uniforms.time=this.time,e.applyFilter(this,t,n,r)},Object.defineProperty(t.prototype,`center`,{get:function(){return this.uniforms.center},set:function(e){this.uniforms.center=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`amplitude`,{get:function(){return this.uniforms.amplitude},set:function(e){this.uniforms.amplitude=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`wavelength`,{get:function(){return this.uniforms.wavelength},set:function(e){this.uniforms.wavelength=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`brightness`,{get:function(){return this.uniforms.brightness},set:function(e){this.uniforms.brightness=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`speed`,{get:function(){return this.uniforms.speed},set:function(e){this.uniforms.speed=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`radius`,{get:function(){return this.uniforms.radius},set:function(e){this.uniforms.radius=e},enumerable:!1,configurable:!0}),t.defaults={amplitude:30,wavelength:160,brightness:1,speed:500,radius:-1},t}(Xo),Km=function(e,t){return Km=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Km(e,t)};function qm(e,t){Km(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Jm=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,Ym=`varying vec2 vTextureCoord; +uniform sampler2D uSampler; +uniform sampler2D uLightmap; +uniform vec4 filterArea; +uniform vec2 dimensions; +uniform vec4 ambientColor; +void main() { + vec4 diffuseColor = texture2D(uSampler, vTextureCoord); + vec2 lightCoord = (vTextureCoord * filterArea.xy) / dimensions; + vec4 light = texture2D(uLightmap, lightCoord); + vec3 ambient = ambientColor.rgb * ambientColor.a; + vec3 intensity = ambient + light.rgb; + vec3 finalColor = diffuseColor.rgb * intensity; + gl_FragColor = vec4(finalColor, diffuseColor.a); +} +`,Xm=function(e){qm(t,e);function t(t,n,r){n===void 0&&(n=0),r===void 0&&(r=1);var i=e.call(this,Jm,Ym)||this;return i._color=0,i.uniforms.dimensions=new Float32Array(2),i.uniforms.ambientColor=new Float32Array([0,0,0,r]),i.texture=t,i.color=n,i}return t.prototype.apply=function(e,t,n,r){var i,a;this.uniforms.dimensions[0]=(i=t.filterFrame)?.width,this.uniforms.dimensions[1]=(a=t.filterFrame)?.height,e.applyFilter(this,t,n,r)},Object.defineProperty(t.prototype,`texture`,{get:function(){return this.uniforms.uLightmap},set:function(e){this.uniforms.uLightmap=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`color`,{get:function(){return this._color},set:function(e){var t=this.uniforms.ambientColor;typeof e==`number`?(si(e,t),this._color=e):(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],this._color=li(t))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`alpha`,{get:function(){return this.uniforms.ambientColor[3]},set:function(e){this.uniforms.ambientColor[3]=e},enumerable:!1,configurable:!0}),t}(Xo),Zm=function(e,t){return Zm=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Zm(e,t)};function Qm(e,t){Zm(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var $m=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,eh=`varying vec2 vTextureCoord; + +uniform sampler2D uSampler; +uniform float blur; +uniform float gradientBlur; +uniform vec2 start; +uniform vec2 end; +uniform vec2 delta; +uniform vec2 texSize; + +float random(vec3 scale, float seed) +{ + return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed); +} + +void main(void) +{ + vec4 color = vec4(0.0); + float total = 0.0; + + float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0); + vec2 normal = normalize(vec2(start.y - end.y, end.x - start.x)); + float radius = smoothstep(0.0, 1.0, abs(dot(vTextureCoord * texSize - start, normal)) / gradientBlur) * blur; + + for (float t = -30.0; t <= 30.0; t++) + { + float percent = (t + offset - 0.5) / 30.0; + float weight = 1.0 - abs(percent); + vec4 sample = texture2D(uSampler, vTextureCoord + delta / texSize * percent * radius); + sample.rgb *= sample.a; + color += sample * weight; + total += weight; + } + + color /= total; + color.rgb /= color.a + 0.00001; + + gl_FragColor = color; +} +`,th=function(e){Qm(t,e);function t(t,n,r,i){t===void 0&&(t=100),n===void 0&&(n=600);var a=e.call(this,$m,eh)||this;return a.uniforms.blur=t,a.uniforms.gradientBlur=n,a.uniforms.start=r||new Hi(0,window.innerHeight/2),a.uniforms.end=i||new Hi(600,window.innerHeight/2),a.uniforms.delta=new Hi(30,30),a.uniforms.texSize=new Hi(window.innerWidth,window.innerHeight),a.updateDelta(),a}return t.prototype.updateDelta=function(){this.uniforms.delta.x=0,this.uniforms.delta.y=0},Object.defineProperty(t.prototype,`blur`,{get:function(){return this.uniforms.blur},set:function(e){this.uniforms.blur=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`gradientBlur`,{get:function(){return this.uniforms.gradientBlur},set:function(e){this.uniforms.gradientBlur=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`start`,{get:function(){return this.uniforms.start},set:function(e){this.uniforms.start=e,this.updateDelta()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`end`,{get:function(){return this.uniforms.end},set:function(e){this.uniforms.end=e,this.updateDelta()},enumerable:!1,configurable:!0}),t}(Xo),nh=function(e){Qm(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.updateDelta=function(){var e=this.uniforms.end.x-this.uniforms.start.x,t=this.uniforms.end.y-this.uniforms.start.y,n=Math.sqrt(e*e+t*t);this.uniforms.delta.x=e/n,this.uniforms.delta.y=t/n},t}(th),rh=function(e){Qm(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.updateDelta=function(){var e=this.uniforms.end.x-this.uniforms.start.x,t=this.uniforms.end.y-this.uniforms.start.y,n=Math.sqrt(e*e+t*t);this.uniforms.delta.x=-t/n,this.uniforms.delta.y=e/n},t}(th),ih=function(e){Qm(t,e);function t(t,n,r,i){t===void 0&&(t=100),n===void 0&&(n=600);var a=e.call(this)||this;return a.tiltShiftXFilter=new nh(t,n,r,i),a.tiltShiftYFilter=new rh(t,n,r,i),a}return t.prototype.apply=function(e,t,n,r){var i=e.getFilterTexture();this.tiltShiftXFilter.apply(e,t,i,1),this.tiltShiftYFilter.apply(e,i,n,r),e.returnFilterTexture(i)},Object.defineProperty(t.prototype,`blur`,{get:function(){return this.tiltShiftXFilter.blur},set:function(e){this.tiltShiftXFilter.blur=this.tiltShiftYFilter.blur=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`gradientBlur`,{get:function(){return this.tiltShiftXFilter.gradientBlur},set:function(e){this.tiltShiftXFilter.gradientBlur=this.tiltShiftYFilter.gradientBlur=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`start`,{get:function(){return this.tiltShiftXFilter.start},set:function(e){this.tiltShiftXFilter.start=this.tiltShiftYFilter.start=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`end`,{get:function(){return this.tiltShiftXFilter.end},set:function(e){this.tiltShiftXFilter.end=this.tiltShiftYFilter.end=e},enumerable:!1,configurable:!0}),t}(Xo),ah=function(e,t){return ah=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},ah(e,t)};function oh(e,t){ah(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var sh=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,ch=`varying vec2 vTextureCoord; + +uniform sampler2D uSampler; +uniform float radius; +uniform float angle; +uniform vec2 offset; +uniform vec4 filterArea; + +vec2 mapCoord( vec2 coord ) +{ + coord *= filterArea.xy; + coord += filterArea.zw; + + return coord; +} + +vec2 unmapCoord( vec2 coord ) +{ + coord -= filterArea.zw; + coord /= filterArea.xy; + + return coord; +} + +vec2 twist(vec2 coord) +{ + coord -= offset; + + float dist = length(coord); + + if (dist < radius) + { + float ratioDist = (radius - dist) / radius; + float angleMod = ratioDist * ratioDist * angle; + float s = sin(angleMod); + float c = cos(angleMod); + coord = vec2(coord.x * c - coord.y * s, coord.x * s + coord.y * c); + } + + coord += offset; + + return coord; +} + +void main(void) +{ + + vec2 coord = mapCoord(vTextureCoord); + + coord = twist(coord); + + coord = unmapCoord(coord); + + gl_FragColor = texture2D(uSampler, coord ); + +} +`,lh=function(e){oh(t,e);function t(n){var r=e.call(this,sh,ch)||this;return Object.assign(r,t.defaults,n),r}return Object.defineProperty(t.prototype,`offset`,{get:function(){return this.uniforms.offset},set:function(e){this.uniforms.offset=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`radius`,{get:function(){return this.uniforms.radius},set:function(e){this.uniforms.radius=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`angle`,{get:function(){return this.uniforms.angle},set:function(e){this.uniforms.angle=e},enumerable:!1,configurable:!0}),t.defaults={radius:200,angle:4,padding:20,offset:new Hi},t}(Xo),uh=function(e,t){return uh=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},uh(e,t)};function dh(e,t){uh(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function fh(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i= 0.0 && dist > radius) { // radius < 0 means it's infinity + delta = dist - radius; + gap = gradient; + } + + if (delta > 0.0) { + float normalCount = gap / filterArea.x; + delta = (normalCount - delta) / normalCount; + countLimit *= delta; + strength *= delta; + if (countLimit < 1.0) + { + gl_FragColor = texture2D(uSampler, vTextureCoord); + return; + } + } + + // randomize the lookup values to hide the fixed number of samples + float offset = rand(vTextureCoord, 0.0); + + float total = 0.0; + vec4 color = vec4(0.0); + + dir *= strength; + + for (float t = 0.0; t < MAX_KERNEL_SIZE; t++) { + float percent = (t + offset) / MAX_KERNEL_SIZE; + float weight = 4.0 * (percent - percent * percent); + vec2 p = vTextureCoord + dir * percent; + vec4 sample = texture2D(uSampler, p); + + // switch to pre-multiplied alpha to correctly blur transparent images + // sample.rgb *= sample.a; + + color += sample * weight; + total += weight; + + if (t > countLimit){ + break; + } + } + + color /= total; + // switch back from pre-multiplied alpha + // color.rgb /= color.a + 0.00001; + + gl_FragColor = color; +} +`,hh=function(e){dh(t,e);function t(n){var r=this,i=Object.assign(t.defaults,n),a=i.maxKernelSize,o=fh(i,[`maxKernelSize`]);return r=e.call(this,ph,mh.replace("${maxKernelSize}",a.toFixed(1)))||this,Object.assign(r,o),r}return Object.defineProperty(t.prototype,`center`,{get:function(){return this.uniforms.uCenter},set:function(e){this.uniforms.uCenter=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`strength`,{get:function(){return this.uniforms.uStrength},set:function(e){this.uniforms.uStrength=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`innerRadius`,{get:function(){return this.uniforms.uInnerRadius},set:function(e){this.uniforms.uInnerRadius=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,`radius`,{get:function(){return this.uniforms.uRadius},set:function(e){(e<0||e===1/0)&&(e=-1),this.uniforms.uRadius=e},enumerable:!1,configurable:!0}),t.defaults={strength:.1,center:[0,0],innerRadius:0,radius:-1,maxKernelSize:32},t}(Xo);function gh(){let e=-1,t,n=-1;function r(r,i){(i>=e||i({x:0,y:0})},disableFocusAt:{type:Boolean,default:!1},xOffset:{},yOffset:{},scale:{default:1}},emits:[`modelLoaded`],setup(e,{expose:t,emit:n}){let r=e,i=n;function a(){let e=Number.parseFloat(String(r.xOffset))||0,t=Number.parseFloat(String(r.yOffset))||0;return String(r.xOffset).endsWith(`%`)&&(e=Number.parseFloat(String(r.xOffset).replace(`%`,``))/100*r.width),String(r.yOffset).endsWith(`%`)&&(t=Number.parseFloat(String(r.yOffset).replace(`%`,``))/100*r.height),{xOffset:e,yOffset:t}}let o=gn(()=>a()),s=Wn(()=>r.app),c=Wn(()=>r.paused),l=Wn(()=>r.focusAt),u=U(),d=U(0),f=U(0),p=gn(()=>Math.max(0,Math.min(100,r.mouthOpenSize))),m=w(),h=C(S),g=gn(()=>h.between(`sm`,`md`).value||h.smaller(`sm`).value),v=gh(),b=L(new Np({alpha:.2,blur:0,distance:20,rotation:45}));function T(){return u.value.internalModel.coreModel}function E(){if(!u.value)return;let e=2.2;g.value&&(e=2.2);let t=r.height*.95/f.value*e,n=r.width*.95/d.value*e,i=Math.min(t,n);u.value.scale.set(i*r.scale,i*r.scale),u.value.x=r.width/2+o.value.xOffset,u.value.y=r.height+o.value.yOffset}let{modelFile:D,loadingModel:O,currentMotion:ee,availableMotions:te,loadSource:ne,modelUrl:k}=x(Jn()),{themeColorsHue:re,themeColorsHueDynamic:j}=x(qn()),ie=U({group:`Idle`,index:0});async function ae(){if(!s.value)return;u.value&&(s.value.stage.removeChild(u.value),u.value.destroy(),u.value=void 0);let e=new Cd;ne.value===`file`?await hd.setupLive2DModel(e,[D.value],{autoInteract:!1}):ne.value===`url`&&await hd.setupLive2DModel(e,k.value,{autoInteract:!1}),u.value=e,s.value.stage.addChild(u.value),d.value=u.value.width,f.value=u.value.height,u.value.anchor.set(.5,.5),E(),u.value.on(`hit`,e=>{u.value&&e.includes(`body`)&&u.value.motion(`tap_body`)});let t=u.value.internalModel,n=t.coreModel,r=t.motionManager;n.setParameterValueById(`ParamMouthOpenY`,p.value),te.value=Object.entries(r.definitions).flatMap(([e,t])=>t?t.map((t,n)=>({motionName:e,motionIndex:n,fileName:t.File})):[]).filter(Boolean),r.groups.idle&&r.motionGroups[r.groups.idle]?.forEach(e=>{e._motionData.curves.forEach(e=>{(e.id===`ParamEyeBallX`||e.id===`ParamEyeBallY`)&&(e.id=`_${e.id}`)})});let a=r.update;r.update=function(e,n){return a?.call(this,e,n),r.state.currentGroup===r.groups.idle&&v.update(t,n),!0},r.on(`motionStart`,(e,t)=>{ie.value={group:e,index:t}}),D.value&&await _h.default.setItem(`live2dModel`,D.value),i(`modelLoaded`),O.value=!1}async function oe(){if(!s.value)return;Cd.registerTicker(Ii),Mi.add(Li),Mi.add(Yd);let e=await _h.default.getItem(`live2dModel`);if(e){D.value=e,ne.value=`file`,O.value=!0;return}if(k.value){ne.value=`url`,O.value=!0;return}O.value=!1}async function se(e,t){await u.value?.motion(e,t,Ku.FORCE)}let M=A(E,100),ce=U(),N=U(0);function le(){if(u.value){let e=getComputedStyle(ce.value).backgroundColor;b.value.color=Number(y(e).replace(`#`,`0x`)),u.value.filters=[b.value]}}R([()=>r.width,()=>r.height],()=>M()),R(m,le,{immediate:!0}),R([u,re],le),R(o,E),R(()=>r.scale,E);function ue(){le(),N.value=requestAnimationFrame(ue)}R(j,()=>{j.value?N.value=requestAnimationFrame(ue):(cancelAnimationFrame(N.value),N.value=0)},{immediate:!0}),R(p,e=>T().setParameterValueById(`ParamMouthOpenY`,e)),R(s,oe),R(ee,e=>se(e.group,e.index)),R(c,e=>e?s.value?.stop():s.value?.start()),R(l,e=>{u.value&&(r.disableFocusAt||u.value.focus(e.x,e.y))}),_(O,e=>{e&&ae()},{debounce:1e3}),jn(le),In(()=>{cancelAnimationFrame(N.value),u.value&&s.value?.stage.removeChild(u.value)});function de(){return te.value}return t({setMotion:se,listMotionGroups:de}),(e,t)=>(z(),V(hn,null,[I(`div`,{ref_key:`dropShadowColorComputer`,ref:ce,hidden:``,bg:`primary-400 dark:primary-500`},null,512),fn(e.$slots,`default`)],64))}}),yh=vh,bh=Dn(Kn());Dd.zipReader=(e,t)=>bh.default.loadAsync(e);const xh=Dd.createSettings;Dd.createSettings=async e=>{let t=Object.keys(e.files);return t.find(e=>Sh(e))?xh(e):Th(t)};function Sh(e){return e.endsWith(`model3.json`)}function Ch(e){return e.endsWith(`.moc3`)}function wh(e){return e.split(/[\\/]/).pop()}function Th(e){let t=e.filter(e=>Ch(e));if(t.length!==1){let e=t.length?`(${t.map(e=>`"${e}"`).join(`,`)})`:``;throw Error(`Expected exactly one moc file, got ${t.length} ${e}`)}let n=t[0],r=wh(n).replace(/\.moc3?/,``),i=e.filter(e=>e.endsWith(`.png`));if(!i.length)throw Error(`Textures not found`);let a=e.filter(e=>e.endsWith(`.mtn`)||e.endsWith(`.motion3.json`)),o=e.find(e=>e.includes(`physics`)),s=e.find(e=>e.includes(`pose`)),c=new kd({url:`${r}.model3.json`,Version:3,FileReferences:{Moc:n,Textures:i,Physics:o,Pose:s,Motions:a.length?{"":a.map(e=>({File:e}))}:void 0}});return c.name=r,c._objectURL=`example://${c.url}`,c}Dd.readText=(e,t)=>{let n=e.file(t);if(!n)throw Error(`Cannot find file: ${t}`);return n.async(`text`)},Dd.getFilePaths=e=>{let t=[];return e.forEach(e=>t.push(e)),Promise.resolve(t)},Dd.getFiles=(e,t)=>Promise.all(t.map(async t=>{let n=t.slice(t.lastIndexOf(`/`)+1),r=await e.file(t).async(`blob`);return new File([r],n)}));const Eh={absolute:``,bottom:`3`,right:`3`},Dh={flex:`~ row`,"cursor-pointer":``},Oh=[`checked`,`aria-checked`],kh={key:0,"min-w":`50vw`,z:`(z(),dn(T,{relative:``},{default:Pn(({width:a,height:o})=>[kn(zd,{width:a,height:o,resolution:2,"max-h":`100dvh`},{default:Pn(({app:t})=>[kn(yh,{app:t,"mouth-open-size":e.mouthOpenSize,width:a,height:o,paused:e.paused,"focus-at":e.focusAt,"x-offset":e.xOffset,"y-offset":e.yOffset,scale:e.scale},null,8,[`app`,`mouth-open-size`,`width`,`height`,`paused`,`focus-at`,`x-offset`,`y-offset`,`scale`])]),_:2},1032,[`width`,`height`]),I(`div`,Eh,[I(`div`,Dh,[I(`label`,{class:Cn([n.value?`bg-neutral-300 dark:bg-neutral-200`:`bg-neutral-100 dark:bg-neutral-700`]),transition:`all ease-in-out duration-500`,text:`lg neutral-500 dark:neutral-400`,"m-1":``,"h-fit":``,"w-fit":``,"cursor-pointer":``,"appearance-none":``,"gap-1":``,"rounded-lg":``,"rounded-md":``,"border-none":``,"p-2":``,"outline-none":``},[pn(I(`input`,{"onUpdate:modelValue":i[0]||=e=>n.value=e,checked:n.value,"aria-checked":n.value,name:`showLive2DViewerInspector`,type:`checkbox`,"appearance-none":``,"outline-none":``,hidden:``},null,8,Oh),[[Ft,n.value]]),i[8]||=I(`div`,{"select-none":``},[I(`div`,{"i-solar:bug-bold-duotone":``})],-1)],2)]),kn(H(D),null,{default:Pn(()=>[n.value?(z(),V(`div`,kh,[I(`div`,Ah,[I(`div`,jh,[I(`span`,null,Sn(H(t)(`stage.viewers.debug-menu.emotions`)),1)]),I(`div`,Mh,[I(`button`,{"rounded-lg":``,bg:`neutral-100/70 dark:neutral-800/50`,"px-2":``,"py-1":``,"backdrop-blur-sm":``,onClick:i[1]||=e=>r.value={group:`Surprise`,index:0}},Sn(H(t)(`stage.viewers.debug-menu.emotions-btn.surprised`)),1),I(`button`,{"rounded-lg":``,bg:`neutral-100/70 dark:neutral-800/50`,"px-2":``,"py-1":``,"backdrop-blur-sm":``,onClick:i[2]||=e=>r.value={group:`Sad`,index:0}},Sn(H(t)(`stage.viewers.debug-menu.emotions-btn.sad`)),1),I(`button`,{"rounded-lg":``,bg:`neutral-100/70 dark:neutral-800/50`,"px-2":``,"py-1":``,"backdrop-blur-sm":``,onClick:i[3]||=e=>r.value={group:`Angry`,index:0}},Sn(H(t)(`stage.viewers.debug-menu.emotions-btn.angry`)),1),I(`button`,{"rounded-lg":``,bg:`neutral-100/70 dark:neutral-800/50`,"px-2":``,"py-1":``,"backdrop-blur-sm":``,onClick:i[4]||=e=>r.value={group:`Happy`,index:0}},Sn(H(t)(`stage.viewers.debug-menu.emotions-btn.happy`)),1),I(`button`,{"rounded-lg":``,bg:`neutral-100/70 dark:neutral-800/50`,"px-2":``,"py-1":``,"backdrop-blur-sm":``,onClick:i[5]||=e=>r.value={group:`Awkward`,index:0}},Sn(H(t)(`stage.viewers.debug-menu.emotions-btn.awkward`)),1),I(`button`,{"rounded-lg":``,bg:`neutral-100/70 dark:neutral-800/50`,"px-2":``,"py-1":``,"backdrop-blur-sm":``,onClick:i[6]||=e=>r.value={group:`Question`,index:0}},Sn(H(t)(`stage.viewers.debug-menu.emotions-btn.question`)),1),I(`button`,{"rounded-lg":``,bg:`neutral-100/70 dark:neutral-800/50`,"px-2":``,"py-1":``,"backdrop-blur-sm":``,onClick:i[7]||=e=>r.value={group:`Think`,index:0}},Sn(H(t)(`stage.viewers.debug-menu.emotions-btn.think`)),1)])])])):Nn(``,!0)]),_:1})])]),_:1}))}}),Ph=Nh;function Fh(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}function Ih(e){var t=typeof Symbol==`function`&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length==`number`)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)}function Lh(e){return this instanceof Lh?(this.v=e,this):new Lh(e)}function Rh(e,t,n){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var r=n.apply(e,t||[]),i,a=[];return i=Object.create((typeof AsyncIterator==`function`?AsyncIterator:Object).prototype),s(`next`),s(`throw`),s(`return`,o),i[Symbol.asyncIterator]=function(){return this},i;function o(e){return function(t){return Promise.resolve(t).then(e,d)}}function s(e,t){r[e]&&(i[e]=function(t){return new Promise(function(n,r){a.push([e,t,n,r])>1||c(e,t)})},t&&(i[e]=t(i[e])))}function c(e,t){try{l(r[e](t))}catch(e){f(a[0][3],e)}}function l(e){e.value instanceof Lh?Promise.resolve(e.value.v).then(u,d):f(a[0][2],e)}function u(e){c(`next`,e)}function d(e){c(`throw`,e)}function f(e,t){e(t),a.shift(),a.length&&c(a[0][0],a[0][1])}}function zh(e){var t,n;return t={},r(`next`),r(`throw`,function(e){throw e}),r(`return`),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:Lh(e[r](t)),done:!1}:i?i(t):t}:i}}function Bh(e){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof Ih==`function`?Ih(e):e[Symbol.iterator](),n={},r(`next`),r(`throw`),r(`return`),n[Symbol.asyncIterator]=function(){return this},n);function r(t){n[t]=e[t]&&function(n){return new Promise(function(r,a){n=e[t](n),i(r,a,n.done,n.value)})}}function i(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)}}const Vh=new TextDecoder(`utf-8`),Hh=e=>Vh.decode(e),Uh=new TextEncoder,Wh=e=>Uh.encode(e),Gh=e=>typeof e==`number`,Kh=e=>typeof e==`boolean`,qh=e=>typeof e==`function`,Jh=e=>e!=null&&Object(e)===e,Yh=e=>Jh(e)&&qh(e.then),Xh=e=>Jh(e)&&qh(e[Symbol.iterator]),Zh=e=>Jh(e)&&qh(e[Symbol.asyncIterator]),Qh=e=>Jh(e)&&Jh(e.schema),$h=e=>Jh(e)&&`done`in e&&`value`in e,eg=e=>Jh(e)&&qh(e.stat)&&Gh(e.fd),tg=e=>Jh(e)&&ig(e.body),ng=e=>`_getDOMStream`in e&&`_getNodeStream`in e,rg=e=>Jh(e)&&qh(e.abort)&&qh(e.getWriter)&&!ng(e),ig=e=>Jh(e)&&qh(e.cancel)&&qh(e.getReader)&&!ng(e),ag=e=>Jh(e)&&qh(e.end)&&qh(e.write)&&Kh(e.writable)&&!ng(e),og=e=>Jh(e)&&qh(e.read)&&qh(e.pipe)&&Kh(e.readable)&&!ng(e),sg=e=>Jh(e)&&qh(e.clear)&&qh(e.bytes)&&qh(e.position)&&qh(e.setPosition)&&qh(e.capacity)&&qh(e.getBufferIdentifier)&&qh(e.createLong),cg=typeof SharedArrayBuffer<`u`?SharedArrayBuffer:ArrayBuffer;function lg(e){let t=e[0]?[e[0]]:[],n,r,i,a;for(let o,s,c=0,l=0,u=e.length;++ce+t.byteLength,0),i,a,o,s=0,c=-1,l=Math.min(t||1/0,r);for(let e=n.length;++cfg(Int32Array,e),mg=e=>fg(BigInt64Array,e),hg=e=>fg(Uint8Array,e),gg=e=>(e.next(),e);function*_g(e,t){let n=function*(e){yield e},r=typeof t==`string`||ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof cg?n(t):Xh(t)?t:n(t);return yield*gg(function*(t){let n=null;do n=t.next(yield fg(e,n));while(!n.done)}(r[Symbol.iterator]())),new e}const vg=e=>_g(Uint8Array,e);function yg(e,t){return Rh(this,arguments,function*(){if(Yh(t))return yield Lh(yield Lh(yield*zh(Bh(yg(e,yield Lh(t))))));let n=function(e){return Rh(this,arguments,function*(){yield yield Lh(yield Lh(e))})},r=function(e){return Rh(this,arguments,function*(){yield Lh(yield*zh(Bh(gg(function*(e){let t=null;do t=e.next(yield t?.value);while(!t.done)}(e[Symbol.iterator]())))))})},i=typeof t==`string`||ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof cg?n(t):Xh(t)?r(t):Zh(t)?t:n(t);return yield Lh(yield*zh(Bh(gg(function(t){return Rh(this,arguments,function*(){let n=null;do n=yield Lh(t.next(yield yield Lh(fg(e,n))));while(!n.done)})}(i[Symbol.asyncIterator]()))))),yield Lh(new e)})}const bg=e=>yg(Uint8Array,e);function xg(e,t,n){if(e!==0){n=n.slice(0,t);for(let t=-1,r=n.length;++t0)do if(e[n]!==t[n])return!1;while(++n(e.next(),e);function*Tg(e){let t,n=!1,r=[],i,a,o,s=0;function c(){return a===`peek`?dg(r,o)[0]:([i,r,s]=dg(r,o),i)}({cmd:a,size:o}=(yield(()=>null)())||{cmd:`read`,size:0});let l=vg(e)[Symbol.iterator]();try{do if({done:t,value:i}=Number.isNaN(o-s)?l.next():l.next(o-s),!t&&i.byteLength>0&&(r.push(i),s+=i.byteLength),t||o<=s)do({cmd:a,size:o}=yield c());while(onull)()))||{cmd:`read`,size:0});let l=bg(e)[Symbol.asyncIterator]();try{do if({done:t,value:i}=Number.isNaN(o-s)?yield Lh(l.next()):yield Lh(l.next(o-s)),!t&&i.byteLength>0&&(r.push(i),s+=i.byteLength),t||o<=s)do({cmd:a,size:o}=yield yield Lh(c()));while(onull)()))||{cmd:`read`,size:0});let l=new Og(e);try{do if({done:t,value:i}=Number.isNaN(o-s)?yield Lh(l.read()):yield Lh(l.read(o-s)),!t&&i.byteLength>0&&(r.push(hg(i)),s+=i.byteLength),t||o<=s)do({cmd:a,size:o}=yield yield Lh(c()));while(o{})}get closed(){return this.reader?this.reader.closed.catch(()=>{}):Promise.resolve()}releaseLock(){this.reader&&this.reader.releaseLock(),this.reader=null}cancel(e){return Fh(this,void 0,void 0,function*(){let{reader:t,source:n}=this;t&&(yield t.cancel(e).catch(()=>{})),n&&n.locked&&this.releaseLock()})}read(e){return Fh(this,void 0,void 0,function*(){if(e===0)return{done:this.reader==null,value:new Uint8Array};let t=yield this.reader.read();return!t.done&&(t.value=hg(t)),t})}};const kg=(e,t)=>{let n=e=>r([t,e]),r;return[t,n,new Promise(i=>(r=i)&&e.once(t,n))]};function Ag(e){return Rh(this,arguments,function*(){let t=[],n=`error`,r=!1,i=null,a,o,s=0,c=[],l;function u(){return a===`peek`?dg(c,o)[0]:([l,c,s]=dg(c,o),l)}if({cmd:a,size:o}=(yield yield Lh((()=>null)()))||{cmd:`read`,size:0},e.isTTY)return yield yield Lh(new Uint8Array),yield Lh(null);try{t[0]=kg(e,`end`),t[1]=kg(e,`error`);do{if(t[2]=kg(e,`readable`),[n,i]=yield Lh(Promise.race(t.map(e=>e[2]))),n===`error`)break;if((r=n===`end`)||(Number.isFinite(o-s)?(l=hg(e.read(o-s)),l.byteLength0&&(c.push(l),s+=l.byteLength)),r||o<=s)do({cmd:a,size:o}=yield yield Lh(u()));while(o{for(let[n,r]of t)e.off(n,r);try{let t=e.destroy;t&&t.call(e,n),n=void 0}catch(e){n=e||n}finally{n==null?r():i(n)}})}})}var jg;(function(e){e[e.V1=0]=`V1`,e[e.V2=1]=`V2`,e[e.V3=2]=`V3`,e[e.V4=3]=`V4`,e[e.V5=4]=`V5`})(jg||={});var Mg;(function(e){e[e.Sparse=0]=`Sparse`,e[e.Dense=1]=`Dense`})(Mg||={});var Ng;(function(e){e[e.HALF=0]=`HALF`,e[e.SINGLE=1]=`SINGLE`,e[e.DOUBLE=2]=`DOUBLE`})(Ng||={});var Pg;(function(e){e[e.DAY=0]=`DAY`,e[e.MILLISECOND=1]=`MILLISECOND`})(Pg||={});var Fg;(function(e){e[e.SECOND=0]=`SECOND`,e[e.MILLISECOND=1]=`MILLISECOND`,e[e.MICROSECOND=2]=`MICROSECOND`,e[e.NANOSECOND=3]=`NANOSECOND`})(Fg||={});var Ig;(function(e){e[e.YEAR_MONTH=0]=`YEAR_MONTH`,e[e.DAY_TIME=1]=`DAY_TIME`,e[e.MONTH_DAY_NANO=2]=`MONTH_DAY_NANO`})(Ig||={});const Lg=2,Rg=4,zg=4,Bg=4,Vg=new Int32Array(2),Hg=new Float32Array(Vg.buffer),Ug=new Float64Array(Vg.buffer),Wg=new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;var Gg;(function(e){e[e.UTF8_BYTES=1]=`UTF8_BYTES`,e[e.UTF16_STRING=2]=`UTF16_STRING`})(Gg||={});var Kg=class e{constructor(e){this.bytes_=e,this.position_=0,this.text_decoder_=new TextDecoder}static allocate(t){return new e(new Uint8Array(t))}clear(){this.position_=0}bytes(){return this.bytes_}position(){return this.position_}setPosition(e){this.position_=e}capacity(){return this.bytes_.length}readInt8(e){return this.readUint8(e)<<24>>24}readUint8(e){return this.bytes_[e]}readInt16(e){return this.readUint16(e)<<16>>16}readUint16(e){return this.bytes_[e]|this.bytes_[e+1]<<8}readInt32(e){return this.bytes_[e]|this.bytes_[e+1]<<8|this.bytes_[e+2]<<16|this.bytes_[e+3]<<24}readUint32(e){return this.readInt32(e)>>>0}readInt64(e){return BigInt.asIntN(64,BigInt(this.readUint32(e))+(BigInt(this.readUint32(e+4))<>8}writeUint16(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8}writeInt32(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8,this.bytes_[e+2]=t>>16,this.bytes_[e+3]=t>>24}writeUint32(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8,this.bytes_[e+2]=t>>16,this.bytes_[e+3]=t>>24}writeInt64(e,t){this.writeInt32(e,Number(BigInt.asIntN(32,t))),this.writeInt32(e+4,Number(BigInt.asIntN(32,t>>BigInt(32))))}writeUint64(e,t){this.writeUint32(e,Number(BigInt.asUintN(32,t))),this.writeUint32(e+4,Number(BigInt.asUintN(32,t>>BigInt(32))))}writeFloat32(e,t){Hg[0]=t,this.writeInt32(e,Vg[0])}writeFloat64(e,t){Ug[0]=t,this.writeInt32(e,Vg[Wg?0:1]),this.writeInt32(e+4,Vg[Wg?1:0])}getBufferIdentifier(){if(this.bytes_.lengththis.minalign&&(this.minalign=t);let r=~(this.bb.capacity()-this.space+n)+1&t-1;for(;this.space=0&&this.vtable[t]==0;t--);let n=t+1;for(;t>=0;t--)this.addInt16(this.vtable[t]==0?0:e-this.vtable[t]);let r=2;this.addInt16(e-this.object_start);let i=(n+r)*Lg;this.addInt16(i);let a=0,o=this.space;outer_loop:for(t=0;t=0;t--)this.writeInt8(e.charCodeAt(t))}this.prep(this.minalign,Rg+r),this.addOffset(e),r&&this.addInt32(this.bb.capacity()-this.space),this.bb.setPosition(this.space)}finishSizePrefixed(e,t){this.finish(e,t,!0)}requiredField(e,t){let n=this.bb.capacity()-e,r=n-this.bb.readInt32(n),i=t=0;n--)e.addInt32(t[n]);return e.endVector()}static startTypeIdsVector(e,t){e.startVector(4,t,4)}static endUnion(e){let t=e.endObject();return t}static createUnion(t,n,r){return e.startUnion(t),e.addMode(t,n),e.addTypeIds(t,r),e.endUnion(t)}},w_=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsUtf8(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsUtf8(t,n){return t.setPosition(t.position()+Bg),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static startUtf8(e){e.startObject(0)}static endUtf8(e){let t=e.endObject();return t}static createUtf8(t){return e.startUtf8(t),e.endUtf8(t)}},T_;(function(e){e[e.NONE=0]=`NONE`,e[e.Null=1]=`Null`,e[e.Int=2]=`Int`,e[e.FloatingPoint=3]=`FloatingPoint`,e[e.Binary=4]=`Binary`,e[e.Utf8=5]=`Utf8`,e[e.Bool=6]=`Bool`,e[e.Decimal=7]=`Decimal`,e[e.Date=8]=`Date`,e[e.Time=9]=`Time`,e[e.Timestamp=10]=`Timestamp`,e[e.Interval=11]=`Interval`,e[e.List=12]=`List`,e[e.Struct_=13]=`Struct_`,e[e.Union=14]=`Union`,e[e.FixedSizeBinary=15]=`FixedSizeBinary`,e[e.FixedSizeList=16]=`FixedSizeList`,e[e.Map=17]=`Map`,e[e.Duration=18]=`Duration`,e[e.LargeBinary=19]=`LargeBinary`,e[e.LargeUtf8=20]=`LargeUtf8`,e[e.LargeList=21]=`LargeList`,e[e.RunEndEncoded=22]=`RunEndEncoded`})(T_||={});var E_=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsField(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsField(t,n){return t.setPosition(t.position()+Bg),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}name(e){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}nullable(){let e=this.bb.__offset(this.bb_pos,6);return e?!!this.bb.readInt8(this.bb_pos+e):!1}typeType(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readUint8(this.bb_pos+e):T_.NONE}type(e){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__union(e,this.bb_pos+t):null}dictionary(e){let t=this.bb.__offset(this.bb_pos,12);return t?(e||new i_).__init(this.bb.__indirect(this.bb_pos+t),this.bb):null}children(t,n){let r=this.bb.__offset(this.bb_pos,14);return r?(n||new e).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+t*4),this.bb):null}childrenLength(){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__vector_len(this.bb_pos+e):0}customMetadata(e,t){let n=this.bb.__offset(this.bb_pos,16);return n?(t||new a_).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}customMetadataLength(){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__vector_len(this.bb_pos+e):0}static startField(e){e.startObject(7)}static addName(e,t){e.addFieldOffset(0,t,0)}static addNullable(e,t){e.addFieldInt8(1,+t,0)}static addTypeType(e,t){e.addFieldInt8(2,t,T_.NONE)}static addType(e,t){e.addFieldOffset(3,t,0)}static addDictionary(e,t){e.addFieldOffset(4,t,0)}static addChildren(e,t){e.addFieldOffset(5,t,0)}static createChildrenVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startChildrenVector(e,t){e.startVector(4,t,4)}static addCustomMetadata(e,t){e.addFieldOffset(6,t,0)}static createCustomMetadataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startCustomMetadataVector(e,t){e.startVector(4,t,4)}static endField(e){let t=e.endObject();return t}},D_=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsSchema(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSchema(t,n){return t.setPosition(t.position()+Bg),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}endianness(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):t_.Little}fields(e,t){let n=this.bb.__offset(this.bb_pos,6);return n?(t||new E_).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}fieldsLength(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}customMetadata(e,t){let n=this.bb.__offset(this.bb_pos,8);return n?(t||new a_).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}customMetadataLength(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}features(e){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt64(this.bb.__vector(this.bb_pos+t)+e*8):BigInt(0)}featuresLength(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__vector_len(this.bb_pos+e):0}static startSchema(e){e.startObject(4)}static addEndianness(e,t){e.addFieldInt16(0,t,t_.Little)}static addFields(e,t){e.addFieldOffset(1,t,0)}static createFieldsVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startFieldsVector(e,t){e.startVector(4,t,4)}static addCustomMetadata(e,t){e.addFieldOffset(2,t,0)}static createCustomMetadataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startCustomMetadataVector(e,t){e.startVector(4,t,4)}static addFeatures(e,t){e.addFieldOffset(3,t,0)}static createFeaturesVector(e,t){e.startVector(8,t.length,8);for(let n=t.length-1;n>=0;n--)e.addInt64(t[n]);return e.endVector()}static startFeaturesVector(e,t){e.startVector(8,t,8)}static endSchema(e){let t=e.endObject();return t}static finishSchemaBuffer(e,t){e.finish(t)}static finishSizePrefixedSchemaBuffer(e,t){e.finish(t,void 0,!0)}static createSchema(t,n,r,i,a){return e.startSchema(t),e.addEndianness(t,n),e.addFields(t,r),e.addCustomMetadata(t,i),e.addFeatures(t,a),e.endSchema(t)}},O_;(function(e){e[e.NONE=0]=`NONE`,e[e.Schema=1]=`Schema`,e[e.DictionaryBatch=2]=`DictionaryBatch`,e[e.RecordBatch=3]=`RecordBatch`,e[e.Tensor=4]=`Tensor`,e[e.SparseTensor=5]=`SparseTensor`})(O_||={});var K;(function(e){e[e.NONE=0]=`NONE`,e[e.Null=1]=`Null`,e[e.Int=2]=`Int`,e[e.Float=3]=`Float`,e[e.Binary=4]=`Binary`,e[e.Utf8=5]=`Utf8`,e[e.Bool=6]=`Bool`,e[e.Decimal=7]=`Decimal`,e[e.Date=8]=`Date`,e[e.Time=9]=`Time`,e[e.Timestamp=10]=`Timestamp`,e[e.Interval=11]=`Interval`,e[e.List=12]=`List`,e[e.Struct=13]=`Struct`,e[e.Union=14]=`Union`,e[e.FixedSizeBinary=15]=`FixedSizeBinary`,e[e.FixedSizeList=16]=`FixedSizeList`,e[e.Map=17]=`Map`,e[e.Duration=18]=`Duration`,e[e.LargeBinary=19]=`LargeBinary`,e[e.LargeUtf8=20]=`LargeUtf8`,e[e.Dictionary=-1]=`Dictionary`,e[e.Int8=-2]=`Int8`,e[e.Int16=-3]=`Int16`,e[e.Int32=-4]=`Int32`,e[e.Int64=-5]=`Int64`,e[e.Uint8=-6]=`Uint8`,e[e.Uint16=-7]=`Uint16`,e[e.Uint32=-8]=`Uint32`,e[e.Uint64=-9]=`Uint64`,e[e.Float16=-10]=`Float16`,e[e.Float32=-11]=`Float32`,e[e.Float64=-12]=`Float64`,e[e.DateDay=-13]=`DateDay`,e[e.DateMillisecond=-14]=`DateMillisecond`,e[e.TimestampSecond=-15]=`TimestampSecond`,e[e.TimestampMillisecond=-16]=`TimestampMillisecond`,e[e.TimestampMicrosecond=-17]=`TimestampMicrosecond`,e[e.TimestampNanosecond=-18]=`TimestampNanosecond`,e[e.TimeSecond=-19]=`TimeSecond`,e[e.TimeMillisecond=-20]=`TimeMillisecond`,e[e.TimeMicrosecond=-21]=`TimeMicrosecond`,e[e.TimeNanosecond=-22]=`TimeNanosecond`,e[e.DenseUnion=-23]=`DenseUnion`,e[e.SparseUnion=-24]=`SparseUnion`,e[e.IntervalDayTime=-25]=`IntervalDayTime`,e[e.IntervalYearMonth=-26]=`IntervalYearMonth`,e[e.DurationSecond=-27]=`DurationSecond`,e[e.DurationMillisecond=-28]=`DurationMillisecond`,e[e.DurationMicrosecond=-29]=`DurationMicrosecond`,e[e.DurationNanosecond=-30]=`DurationNanosecond`})(K||={});var k_;(function(e){e[e.OFFSET=0]=`OFFSET`,e[e.DATA=1]=`DATA`,e[e.VALIDITY=2]=`VALIDITY`,e[e.TYPE=3]=`TYPE`})(k_||={});const A_=void 0;function j_(e){if(e===null)return`null`;if(e===A_)return`undefined`;switch(typeof e){case`number`:return`${e}`;case`bigint`:return`${e}`;case`string`:return`"${e}"`}return typeof e[Symbol.toPrimitive]==`function`?e[Symbol.toPrimitive](`string`):ArrayBuffer.isView(e)?e instanceof BigInt64Array||e instanceof BigUint64Array?`[${[...e].map(e=>j_(e))}]`:`[${e}]`:ArrayBuffer.isView(e)?`[${e}]`:JSON.stringify(e,(e,t)=>typeof t==`bigint`?`${t}`:t)}function M_(e){if(typeof e==`bigint`&&(e<-(2**53-1)||e>2**53-1))throw TypeError(`${e} is not safe to convert to a number.`);return Number(e)}function N_(e,t){return M_(e/t)+M_(e%t)/M_(t)}const P_=Symbol.for(`isArrowBigNum`);function F_(e,...t){return t.length===0?Object.setPrototypeOf(fg(this.TypedArray,e),this.constructor.prototype):Object.setPrototypeOf(new this.TypedArray(e,...t),this.constructor.prototype)}F_.prototype[P_]=!0,F_.prototype.toJSON=function(){return`"${H_(this)}"`},F_.prototype.valueOf=function(e){return V_(this,e)},F_.prototype.toString=function(){return H_(this)},F_.prototype[Symbol.toPrimitive]=function(e=`default`){switch(e){case`number`:return V_(this);case`string`:return H_(this);case`default`:return U_(this)}return H_(this)};function I_(...e){return F_.apply(this,e)}function L_(...e){return F_.apply(this,e)}function R_(...e){return F_.apply(this,e)}Object.setPrototypeOf(I_.prototype,Object.create(Int32Array.prototype)),Object.setPrototypeOf(L_.prototype,Object.create(Uint32Array.prototype)),Object.setPrototypeOf(R_.prototype,Object.create(Uint32Array.prototype)),Object.assign(I_.prototype,F_.prototype,{constructor:I_,signed:!0,TypedArray:Int32Array,BigIntArray:BigInt64Array}),Object.assign(L_.prototype,F_.prototype,{constructor:L_,signed:!1,TypedArray:Uint32Array,BigIntArray:BigUint64Array}),Object.assign(R_.prototype,F_.prototype,{constructor:R_,signed:!0,TypedArray:Uint32Array,BigIntArray:BigUint64Array});const z_=BigInt(4294967296)*BigInt(4294967296),B_=z_-BigInt(1);function V_(e,t){let{buffer:n,byteOffset:r,byteLength:i,signed:a}=e,o=new BigUint64Array(n,r,i/8),s=a&&o.at(-1)&BigInt(1)<=0)return W_(e);t=t.slice();let r=1;for(let e=0;e(e.children=null,e.ArrayType=Array,e.OffsetArrayType=Int32Array,e[Symbol.toStringTag]=`DataType`))(mv.prototype);var hv=class extends mv{constructor(){super(K.Null)}toString(){return`Null`}};q_=Symbol.toStringTag,hv[q_]=(e=>e[Symbol.toStringTag]=`Null`)(hv.prototype);var gv=class extends mv{constructor(e,t){super(K.Int),this.isSigned=e,this.bitWidth=t}get ArrayType(){switch(this.bitWidth){case 8:return this.isSigned?Int8Array:Uint8Array;case 16:return this.isSigned?Int16Array:Uint16Array;case 32:return this.isSigned?Int32Array:Uint32Array;case 64:return this.isSigned?BigInt64Array:BigUint64Array}throw Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}toString(){return`${this.isSigned?`I`:`Ui`}nt${this.bitWidth}`}};J_=Symbol.toStringTag,gv[J_]=(e=>(e.isSigned=null,e.bitWidth=null,e[Symbol.toStringTag]=`Int`))(gv.prototype);var _v=class extends gv{constructor(){super(!0,8)}get ArrayType(){return Int8Array}},vv=class extends gv{constructor(){super(!0,16)}get ArrayType(){return Int16Array}},yv=class extends gv{constructor(){super(!0,32)}get ArrayType(){return Int32Array}},bv=class extends gv{constructor(){super(!0,64)}get ArrayType(){return BigInt64Array}},xv=class extends gv{constructor(){super(!1,8)}get ArrayType(){return Uint8Array}},Sv=class extends gv{constructor(){super(!1,16)}get ArrayType(){return Uint16Array}},Cv=class extends gv{constructor(){super(!1,32)}get ArrayType(){return Uint32Array}},wv=class extends gv{constructor(){super(!1,64)}get ArrayType(){return BigUint64Array}};Object.defineProperty(_v.prototype,`ArrayType`,{value:Int8Array}),Object.defineProperty(vv.prototype,`ArrayType`,{value:Int16Array}),Object.defineProperty(yv.prototype,`ArrayType`,{value:Int32Array}),Object.defineProperty(bv.prototype,`ArrayType`,{value:BigInt64Array}),Object.defineProperty(xv.prototype,`ArrayType`,{value:Uint8Array}),Object.defineProperty(Sv.prototype,`ArrayType`,{value:Uint16Array}),Object.defineProperty(Cv.prototype,`ArrayType`,{value:Uint32Array}),Object.defineProperty(wv.prototype,`ArrayType`,{value:BigUint64Array});var Tv=class extends mv{constructor(e){super(K.Float),this.precision=e}get ArrayType(){switch(this.precision){case Ng.HALF:return Uint16Array;case Ng.SINGLE:return Float32Array;case Ng.DOUBLE:return Float64Array}throw Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}toString(){return`Float${this.precision<<5||16}`}};Y_=Symbol.toStringTag,Tv[Y_]=(e=>(e.precision=null,e[Symbol.toStringTag]=`Float`))(Tv.prototype);var Ev=class extends Tv{constructor(){super(Ng.HALF)}},Dv=class extends Tv{constructor(){super(Ng.SINGLE)}},Ov=class extends Tv{constructor(){super(Ng.DOUBLE)}};Object.defineProperty(Ev.prototype,`ArrayType`,{value:Uint16Array}),Object.defineProperty(Dv.prototype,`ArrayType`,{value:Float32Array}),Object.defineProperty(Ov.prototype,`ArrayType`,{value:Float64Array});var kv=class extends mv{constructor(){super(K.Binary)}toString(){return`Binary`}};X_=Symbol.toStringTag,kv[X_]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=`Binary`))(kv.prototype);var Av=class extends mv{constructor(){super(K.LargeBinary)}toString(){return`LargeBinary`}};Z_=Symbol.toStringTag,Av[Z_]=(e=>(e.ArrayType=Uint8Array,e.OffsetArrayType=BigInt64Array,e[Symbol.toStringTag]=`LargeBinary`))(Av.prototype);var jv=class extends mv{constructor(){super(K.Utf8)}toString(){return`Utf8`}};Q_=Symbol.toStringTag,jv[Q_]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=`Utf8`))(jv.prototype);var Mv=class extends mv{constructor(){super(K.LargeUtf8)}toString(){return`LargeUtf8`}};$_=Symbol.toStringTag,Mv[$_]=(e=>(e.ArrayType=Uint8Array,e.OffsetArrayType=BigInt64Array,e[Symbol.toStringTag]=`LargeUtf8`))(Mv.prototype);var Nv=class extends mv{constructor(){super(K.Bool)}toString(){return`Bool`}};ev=Symbol.toStringTag,Nv[ev]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=`Bool`))(Nv.prototype);var Pv=class extends mv{constructor(e,t,n=128){super(K.Decimal),this.scale=e,this.precision=t,this.bitWidth=n}toString(){return`Decimal[${this.precision}e${this.scale>0?`+`:``}${this.scale}]`}};tv=Symbol.toStringTag,Pv[tv]=(e=>(e.scale=null,e.precision=null,e.ArrayType=Uint32Array,e[Symbol.toStringTag]=`Decimal`))(Pv.prototype);var Fv=class extends mv{constructor(e){super(K.Date),this.unit=e}toString(){return`Date${(this.unit+1)*32}<${Pg[this.unit]}>`}get ArrayType(){return this.unit===Pg.DAY?Int32Array:BigInt64Array}};nv=Symbol.toStringTag,Fv[nv]=(e=>(e.unit=null,e[Symbol.toStringTag]=`Date`))(Fv.prototype);var Iv=class extends mv{constructor(e,t){super(K.Time),this.unit=e,this.bitWidth=t}toString(){return`Time${this.bitWidth}<${Fg[this.unit]}>`}get ArrayType(){switch(this.bitWidth){case 32:return Int32Array;case 64:return BigInt64Array}throw Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}};rv=Symbol.toStringTag,Iv[rv]=(e=>(e.unit=null,e.bitWidth=null,e[Symbol.toStringTag]=`Time`))(Iv.prototype);var Lv=class extends mv{constructor(e,t){super(K.Timestamp),this.unit=e,this.timezone=t}toString(){return`Timestamp<${Fg[this.unit]}${this.timezone?`, ${this.timezone}`:``}>`}};iv=Symbol.toStringTag,Lv[iv]=(e=>(e.unit=null,e.timezone=null,e.ArrayType=BigInt64Array,e[Symbol.toStringTag]=`Timestamp`))(Lv.prototype);var Rv=class extends mv{constructor(e){super(K.Interval),this.unit=e}toString(){return`Interval<${Ig[this.unit]}>`}};av=Symbol.toStringTag,Rv[av]=(e=>(e.unit=null,e.ArrayType=Int32Array,e[Symbol.toStringTag]=`Interval`))(Rv.prototype);var zv=class extends mv{constructor(e){super(K.Duration),this.unit=e}toString(){return`Duration<${Fg[this.unit]}>`}};ov=Symbol.toStringTag,zv[ov]=(e=>(e.unit=null,e.ArrayType=BigInt64Array,e[Symbol.toStringTag]=`Duration`))(zv.prototype);var Bv=class extends mv{constructor(e){super(K.List),this.children=[e]}toString(){return`List<${this.valueType}>`}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get ArrayType(){return this.valueType.ArrayType}};sv=Symbol.toStringTag,Bv[sv]=(e=>(e.children=null,e[Symbol.toStringTag]=`List`))(Bv.prototype);var Vv=class extends mv{constructor(e){super(K.Struct),this.children=e}toString(){return`Struct<{${this.children.map(e=>`${e.name}:${e.type}`).join(`, `)}}>`}};cv=Symbol.toStringTag,Vv[cv]=(e=>(e.children=null,e[Symbol.toStringTag]=`Struct`))(Vv.prototype);var Hv=class extends mv{constructor(e,t,n){super(K.Union),this.mode=e,this.children=n,this.typeIds=t=Int32Array.from(t),this.typeIdToChildIndex=t.reduce((e,t,n)=>(e[t]=n)&&e||e,Object.create(null))}toString(){return`${this[Symbol.toStringTag]}<${this.children.map(e=>`${e.type}`).join(` | `)}>`}};lv=Symbol.toStringTag,Hv[lv]=(e=>(e.mode=null,e.typeIds=null,e.children=null,e.typeIdToChildIndex=null,e.ArrayType=Int8Array,e[Symbol.toStringTag]=`Union`))(Hv.prototype);var Uv=class extends mv{constructor(e){super(K.FixedSizeBinary),this.byteWidth=e}toString(){return`FixedSizeBinary[${this.byteWidth}]`}};uv=Symbol.toStringTag,Uv[uv]=(e=>(e.byteWidth=null,e.ArrayType=Uint8Array,e[Symbol.toStringTag]=`FixedSizeBinary`))(Uv.prototype);var Wv=class extends mv{constructor(e,t){super(K.FixedSizeList),this.listSize=e,this.children=[t]}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get ArrayType(){return this.valueType.ArrayType}toString(){return`FixedSizeList[${this.listSize}]<${this.valueType}>`}};dv=Symbol.toStringTag,Wv[dv]=(e=>(e.children=null,e.listSize=null,e[Symbol.toStringTag]=`FixedSizeList`))(Wv.prototype);var Gv=class extends mv{constructor(e,t=!1){var n,r,i;if(super(K.Map),this.children=[e],this.keysSorted=t,e&&(e.name=`entries`,(n=e?.type)?.children)){let t=(r=e?.type)?.children[0];t&&(t.name=`key`);let n=(i=e?.type)?.children[1];n&&(n.name=`value`)}}get keyType(){return this.children[0].type.children[0].type}get valueType(){return this.children[0].type.children[1].type}get childType(){return this.children[0].type}toString(){return`Map<{${this.children[0].type.children.map(e=>`${e.name}:${e.type}`).join(`, `)}}>`}};fv=Symbol.toStringTag,Gv[fv]=(e=>(e.children=null,e.keysSorted=null,e[Symbol.toStringTag]=`Map_`))(Gv.prototype);const Kv=(e=>()=>++e)(-1);var qv=class extends mv{constructor(e,t,n,r){super(K.Dictionary),this.indices=t,this.dictionary=e,this.isOrdered=r||!1,this.id=n==null?Kv():M_(n)}get children(){return this.dictionary.children}get valueType(){return this.dictionary}get ArrayType(){return this.dictionary.ArrayType}toString(){return`Dictionary<${this.indices}, ${this.dictionary}>`}};pv=Symbol.toStringTag,qv[pv]=(e=>(e.id=null,e.indices=null,e.isOrdered=null,e.dictionary=null,e[Symbol.toStringTag]=`Dictionary`))(qv.prototype);function Jv(e){let t=e;switch(e.typeId){case K.Decimal:return e.bitWidth/32;case K.Interval:return 1+t.unit;case K.FixedSizeList:return t.listSize;case K.FixedSizeBinary:return t.byteWidth;default:return 1}}var Yv=class{visitMany(e,...t){return e.map((e,n)=>this.visit(e,...t.map(e=>e[n])))}visit(...e){return this.getVisitFn(e[0],!1).apply(this,e)}getVisitFn(e,t=!0){return Xv(this,e,t)}getVisitFnByTypeId(e,t=!0){return Zv(this,e,t)}visitNull(e,...t){return null}visitBool(e,...t){return null}visitInt(e,...t){return null}visitFloat(e,...t){return null}visitUtf8(e,...t){return null}visitLargeUtf8(e,...t){return null}visitBinary(e,...t){return null}visitLargeBinary(e,...t){return null}visitFixedSizeBinary(e,...t){return null}visitDate(e,...t){return null}visitTimestamp(e,...t){return null}visitTime(e,...t){return null}visitDecimal(e,...t){return null}visitList(e,...t){return null}visitStruct(e,...t){return null}visitUnion(e,...t){return null}visitDictionary(e,...t){return null}visitInterval(e,...t){return null}visitDuration(e,...t){return null}visitFixedSizeList(e,...t){return null}visitMap(e,...t){return null}};function Xv(e,t,n=!0){return typeof t==`number`?Zv(e,t,n):typeof t==`string`&&t in K?Zv(e,K[t],n):t&&t instanceof mv?Zv(e,Qv(t),n):t?.type&&t.type instanceof mv?Zv(e,Qv(t.type),n):Zv(e,K.NONE,n)}function Zv(e,t,n=!0){let r=null;switch(t){case K.Null:r=e.visitNull;break;case K.Bool:r=e.visitBool;break;case K.Int:r=e.visitInt;break;case K.Int8:r=e.visitInt8||e.visitInt;break;case K.Int16:r=e.visitInt16||e.visitInt;break;case K.Int32:r=e.visitInt32||e.visitInt;break;case K.Int64:r=e.visitInt64||e.visitInt;break;case K.Uint8:r=e.visitUint8||e.visitInt;break;case K.Uint16:r=e.visitUint16||e.visitInt;break;case K.Uint32:r=e.visitUint32||e.visitInt;break;case K.Uint64:r=e.visitUint64||e.visitInt;break;case K.Float:r=e.visitFloat;break;case K.Float16:r=e.visitFloat16||e.visitFloat;break;case K.Float32:r=e.visitFloat32||e.visitFloat;break;case K.Float64:r=e.visitFloat64||e.visitFloat;break;case K.Utf8:r=e.visitUtf8;break;case K.LargeUtf8:r=e.visitLargeUtf8;break;case K.Binary:r=e.visitBinary;break;case K.LargeBinary:r=e.visitLargeBinary;break;case K.FixedSizeBinary:r=e.visitFixedSizeBinary;break;case K.Date:r=e.visitDate;break;case K.DateDay:r=e.visitDateDay||e.visitDate;break;case K.DateMillisecond:r=e.visitDateMillisecond||e.visitDate;break;case K.Timestamp:r=e.visitTimestamp;break;case K.TimestampSecond:r=e.visitTimestampSecond||e.visitTimestamp;break;case K.TimestampMillisecond:r=e.visitTimestampMillisecond||e.visitTimestamp;break;case K.TimestampMicrosecond:r=e.visitTimestampMicrosecond||e.visitTimestamp;break;case K.TimestampNanosecond:r=e.visitTimestampNanosecond||e.visitTimestamp;break;case K.Time:r=e.visitTime;break;case K.TimeSecond:r=e.visitTimeSecond||e.visitTime;break;case K.TimeMillisecond:r=e.visitTimeMillisecond||e.visitTime;break;case K.TimeMicrosecond:r=e.visitTimeMicrosecond||e.visitTime;break;case K.TimeNanosecond:r=e.visitTimeNanosecond||e.visitTime;break;case K.Decimal:r=e.visitDecimal;break;case K.List:r=e.visitList;break;case K.Struct:r=e.visitStruct;break;case K.Union:r=e.visitUnion;break;case K.DenseUnion:r=e.visitDenseUnion||e.visitUnion;break;case K.SparseUnion:r=e.visitSparseUnion||e.visitUnion;break;case K.Dictionary:r=e.visitDictionary;break;case K.Interval:r=e.visitInterval;break;case K.IntervalDayTime:r=e.visitIntervalDayTime||e.visitInterval;break;case K.IntervalYearMonth:r=e.visitIntervalYearMonth||e.visitInterval;break;case K.Duration:r=e.visitDuration;break;case K.DurationSecond:r=e.visitDurationSecond||e.visitDuration;break;case K.DurationMillisecond:r=e.visitDurationMillisecond||e.visitDuration;break;case K.DurationMicrosecond:r=e.visitDurationMicrosecond||e.visitDuration;break;case K.DurationNanosecond:r=e.visitDurationNanosecond||e.visitDuration;break;case K.FixedSizeList:r=e.visitFixedSizeList;break;case K.Map:r=e.visitMap;break}if(typeof r==`function`)return r;if(!n)return()=>null;throw Error(`Unrecognized type '${K[t]}'`)}function Qv(e){switch(e.typeId){case K.Null:return K.Null;case K.Int:{let{bitWidth:t,isSigned:n}=e;switch(t){case 8:return n?K.Int8:K.Uint8;case 16:return n?K.Int16:K.Uint16;case 32:return n?K.Int32:K.Uint32;case 64:return n?K.Int64:K.Uint64}return K.Int}case K.Float:switch(e.precision){case Ng.HALF:return K.Float16;case Ng.SINGLE:return K.Float32;case Ng.DOUBLE:return K.Float64}return K.Float;case K.Binary:return K.Binary;case K.LargeBinary:return K.LargeBinary;case K.Utf8:return K.Utf8;case K.LargeUtf8:return K.LargeUtf8;case K.Bool:return K.Bool;case K.Decimal:return K.Decimal;case K.Time:switch(e.unit){case Fg.SECOND:return K.TimeSecond;case Fg.MILLISECOND:return K.TimeMillisecond;case Fg.MICROSECOND:return K.TimeMicrosecond;case Fg.NANOSECOND:return K.TimeNanosecond}return K.Time;case K.Timestamp:switch(e.unit){case Fg.SECOND:return K.TimestampSecond;case Fg.MILLISECOND:return K.TimestampMillisecond;case Fg.MICROSECOND:return K.TimestampMicrosecond;case Fg.NANOSECOND:return K.TimestampNanosecond}return K.Timestamp;case K.Date:switch(e.unit){case Pg.DAY:return K.DateDay;case Pg.MILLISECOND:return K.DateMillisecond}return K.Date;case K.Interval:switch(e.unit){case Ig.DAY_TIME:return K.IntervalDayTime;case Ig.YEAR_MONTH:return K.IntervalYearMonth}return K.Interval;case K.Duration:switch(e.unit){case Fg.SECOND:return K.DurationSecond;case Fg.MILLISECOND:return K.DurationMillisecond;case Fg.MICROSECOND:return K.DurationMicrosecond;case Fg.NANOSECOND:return K.DurationNanosecond}return K.Duration;case K.Map:return K.Map;case K.List:return K.List;case K.Struct:return K.Struct;case K.Union:switch(e.mode){case Mg.Dense:return K.DenseUnion;case Mg.Sparse:return K.SparseUnion}return K.Union;case K.FixedSizeBinary:return K.FixedSizeBinary;case K.FixedSizeList:return K.FixedSizeList;case K.Dictionary:return K.Dictionary}throw Error(`Unrecognized type '${K[e.typeId]}'`)}Yv.prototype.visitInt8=null,Yv.prototype.visitInt16=null,Yv.prototype.visitInt32=null,Yv.prototype.visitInt64=null,Yv.prototype.visitUint8=null,Yv.prototype.visitUint16=null,Yv.prototype.visitUint32=null,Yv.prototype.visitUint64=null,Yv.prototype.visitFloat16=null,Yv.prototype.visitFloat32=null,Yv.prototype.visitFloat64=null,Yv.prototype.visitDateDay=null,Yv.prototype.visitDateMillisecond=null,Yv.prototype.visitTimestampSecond=null,Yv.prototype.visitTimestampMillisecond=null,Yv.prototype.visitTimestampMicrosecond=null,Yv.prototype.visitTimestampNanosecond=null,Yv.prototype.visitTimeSecond=null,Yv.prototype.visitTimeMillisecond=null,Yv.prototype.visitTimeMicrosecond=null,Yv.prototype.visitTimeNanosecond=null,Yv.prototype.visitDenseUnion=null,Yv.prototype.visitSparseUnion=null,Yv.prototype.visitIntervalDayTime=null,Yv.prototype.visitIntervalYearMonth=null,Yv.prototype.visitDuration=null,Yv.prototype.visitDurationSecond=null,Yv.prototype.visitDurationMillisecond=null,Yv.prototype.visitDurationMicrosecond=null,Yv.prototype.visitDurationNanosecond=null;const $v=new Float64Array(1),ey=new Uint32Array($v.buffer);function ty(e){let t=(e&31744)>>10,n=(e&1023)/1024,r=(-1)**((e&32768)>>15);switch(t){case 31:return r*(n?NaN:1/0);case 0:return r*(n?6103515625e-14*n:0)}return r*2**(t-15)*(1+n)}function ny(e){if(e!==e)return 32256;$v[0]=e;let t=(ey[1]&2147483648)>>16&65535,n=ey[1]&2146435072,r=0;return n>=1089470464?ey[0]>0?n=31744:(n=(n&2080374784)>>16,r=(ey[1]&1048575)>>10):n<=1056964608?(r=1048576+(ey[1]&1048575),r=1048576+(r<<(n>>20)-998)>>21,n=0):(n=n-1056964608>>10,r=(ey[1]&1048575)+512>>10),t|n|r&65535}var ry=class extends Yv{};function iy(e){return(t,n,r)=>{if(t.setValid(n,r!=null))return e(t,n,r)}}const ay=(e,t,n)=>{e[t]=Math.floor(n/864e5)},oy=(e,t,n,r)=>{if(n+1{let i=e+n;r?t[i>>3]|=1<>3]&=~(1<{e[t]=n},ly=({values:e},t,n)=>{e[t]=n},uy=({values:e},t,n)=>{e[t]=ny(n)},dy=(e,t,n)=>{switch(e.type.precision){case Ng.HALF:return uy(e,t,n);case Ng.SINGLE:case Ng.DOUBLE:return ly(e,t,n)}},fy=({values:e},t,n)=>{ay(e,t,n.valueOf())},py=({values:e},t,n)=>{e[t]=BigInt(n)},my=({stride:e,values:t},n,r)=>{t.set(r.subarray(0,e),e*n)},hy=({values:e,valueOffsets:t},n,r)=>oy(e,t,n,r),gy=({values:e,valueOffsets:t},n,r)=>oy(e,t,n,Wh(r)),_y=(e,t,n)=>{e.type.unit===Pg.DAY?fy(e,t,n):py(e,t,n)},vy=({values:e},t,n)=>{e[t]=BigInt(n/1e3)},yy=({values:e},t,n)=>{e[t]=BigInt(n)},by=({values:e},t,n)=>{e[t]=BigInt(n*1e3)},xy=({values:e},t,n)=>{e[t]=BigInt(n*1e6)},Sy=(e,t,n)=>{switch(e.type.unit){case Fg.SECOND:return vy(e,t,n);case Fg.MILLISECOND:return yy(e,t,n);case Fg.MICROSECOND:return by(e,t,n);case Fg.NANOSECOND:return xy(e,t,n)}},Cy=({values:e},t,n)=>{e[t]=n},wy=({values:e},t,n)=>{e[t]=n},Ty=({values:e},t,n)=>{e[t]=n},Ey=({values:e},t,n)=>{e[t]=n},Dy=(e,t,n)=>{switch(e.type.unit){case Fg.SECOND:return Cy(e,t,n);case Fg.MILLISECOND:return wy(e,t,n);case Fg.MICROSECOND:return Ty(e,t,n);case Fg.NANOSECOND:return Ey(e,t,n)}},Oy=({values:e,stride:t},n,r)=>{e.set(r.subarray(0,t),t*n)},ky=(e,t,n)=>{let r=e.children[0],i=e.valueOffsets,a=Yy.getVisitFn(r);if(Array.isArray(n))for(let e=-1,o=i[t],s=i[t+1];o{let r=e.children[0],{valueOffsets:i}=e,a=Yy.getVisitFn(r),{[t]:o,[t+1]:s}=i,c=n instanceof Map?n.entries():Object.entries(n);for(let e of c)if(a(r,o,e),++o>=s)break},jy=(e,t)=>(n,r,i,a)=>r&&n(r,e,t[a]),My=(e,t)=>(n,r,i,a)=>r&&n(r,e,t.get(a)),Ny=(e,t)=>(n,r,i,a)=>r&&n(r,e,t.get(i.name)),Py=(e,t)=>(n,r,i,a)=>r&&n(r,e,t[i.name]),Fy=(e,t,n)=>{let r=e.type.children.map(e=>Yy.getVisitFn(e.type)),i=n instanceof Map?Ny(t,n):n instanceof Jx?My(t,n):Array.isArray(n)?jy(t,n):Py(t,n);e.type.children.forEach((t,n)=>i(r[n],e.children[n],t,n))},Iy=(e,t,n)=>{e.type.mode===Mg.Dense?Ly(e,t,n):Ry(e,t,n)},Ly=(e,t,n)=>{let r=e.type.typeIdToChildIndex[e.typeIds[t]],i=e.children[r];Yy.visit(i,e.valueOffsets[t],n)},Ry=(e,t,n)=>{let r=e.type.typeIdToChildIndex[e.typeIds[t]],i=e.children[r];Yy.visit(i,t,n)},zy=(e,t,n)=>{var r;(r=e.dictionary)==null||r.set(e.values[t],n)},By=(e,t,n)=>{e.type.unit===Ig.DAY_TIME?Vy(e,t,n):Hy(e,t,n)},Vy=({values:e},t,n)=>{e.set(n.subarray(0,2),2*t)},Hy=({values:e},t,n)=>{e[t]=n[0]*12+n[1]%12},Uy=({values:e},t,n)=>{e[t]=n},Wy=({values:e},t,n)=>{e[t]=n},Gy=({values:e},t,n)=>{e[t]=n},Ky=({values:e},t,n)=>{e[t]=n},qy=(e,t,n)=>{switch(e.type.unit){case Fg.SECOND:return Uy(e,t,n);case Fg.MILLISECOND:return Wy(e,t,n);case Fg.MICROSECOND:return Gy(e,t,n);case Fg.NANOSECOND:return Ky(e,t,n)}},Jy=(e,t,n)=>{let{stride:r}=e,i=e.children[0],a=Yy.getVisitFn(i);if(Array.isArray(n))for(let e=-1,o=t*r;++e`${j_(e)}: ${j_(t)}`).join(`, `)}}`}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.toString()}[Symbol.iterator](){return new $y(this[Xy],this[Zy])}},$y=class{constructor(e,t){this.childIndex=0,this.children=e.children,this.rowIndex=t,this.childFields=e.type.children,this.numChildren=this.childFields.length}[Symbol.iterator](){return this}next(){let e=this.childIndex;return ee.name)}has(e,t){return e[Xy].type.children.findIndex(e=>e.name===t)!==-1}getOwnPropertyDescriptor(e,t){if(e[Xy].type.children.findIndex(e=>e.name===t)!==-1)return{writable:!0,enumerable:!0,configurable:!0}}get(e,t){if(Reflect.has(e,t))return e[t];let n=e[Xy].type.children.findIndex(e=>e.name===t);if(n!==-1){let r=Gb.visit(e[Xy].children[n],e[Zy]);return Reflect.set(e,t,r),r}}set(e,t,n){let r=e[Xy].type.children.findIndex(e=>e.name===t);return r===-1?Reflect.has(e,t)||typeof t==`symbol`?Reflect.set(e,t,n):!1:(Yy.visit(e[Xy].children[r],e[Zy],n),Reflect.set(e,t,n))}},tb=class extends Yv{};function nb(e){return(t,n)=>t.getValid(n)?e(t,n):null}const rb=(e,t)=>864e5*e[t],ib=(e,t)=>null,ab=(e,t,n)=>{if(n+1>=t.length)return null;let r=M_(t[n]),i=M_(t[n+1]);return e.subarray(r,i)},ob=({offset:e,values:t},n)=>{let r=e+n,i=t[r>>3];return(i&1<rb(e,t),cb=({values:e},t)=>M_(e[t]),lb=({stride:e,values:t},n)=>t[e*n],ub=({stride:e,values:t},n)=>ty(t[e*n]),db=({values:e},t)=>e[t],fb=({stride:e,values:t},n)=>t.subarray(e*n,e*(n+1)),pb=({values:e,valueOffsets:t},n)=>ab(e,t,n),mb=({values:e,valueOffsets:t},n)=>{let r=ab(e,t,n);return r===null?null:Hh(r)},hb=({values:e},t)=>e[t],gb=({type:e,values:t},n)=>e.precision===Ng.HALF?ty(t[n]):t[n],_b=(e,t)=>e.type.unit===Pg.DAY?sb(e,t):cb(e,t),vb=({values:e},t)=>1e3*M_(e[t]),yb=({values:e},t)=>M_(e[t]),bb=({values:e},t)=>N_(e[t],BigInt(1e3)),xb=({values:e},t)=>N_(e[t],BigInt(1e6)),Sb=(e,t)=>{switch(e.type.unit){case Fg.SECOND:return vb(e,t);case Fg.MILLISECOND:return yb(e,t);case Fg.MICROSECOND:return bb(e,t);case Fg.NANOSECOND:return xb(e,t)}},Cb=({values:e},t)=>e[t],wb=({values:e},t)=>e[t],Tb=({values:e},t)=>e[t],Eb=({values:e},t)=>e[t],Db=(e,t)=>{switch(e.type.unit){case Fg.SECOND:return Cb(e,t);case Fg.MILLISECOND:return wb(e,t);case Fg.MICROSECOND:return Tb(e,t);case Fg.NANOSECOND:return Eb(e,t)}},Ob=({values:e,stride:t},n)=>G_.decimal(e.subarray(t*n,t*(n+1))),kb=(e,t)=>{let{valueOffsets:n,stride:r,children:i}=e,{[t*r]:a,[t*r+1]:o}=n,s=i[0],c=s.slice(a,o-a);return new Jx([c])},Ab=(e,t)=>{let{valueOffsets:n,children:r}=e,{[t]:i,[t+1]:a}=n,o=r[0];return new Xb(o.slice(i,a-i))},jb=(e,t)=>new Qy(e,t),Mb=(e,t)=>e.type.mode===Mg.Dense?Nb(e,t):Pb(e,t),Nb=(e,t)=>{let n=e.type.typeIdToChildIndex[e.typeIds[t]],r=e.children[n];return Gb.visit(r,e.valueOffsets[t])},Pb=(e,t)=>{let n=e.type.typeIdToChildIndex[e.typeIds[t]],r=e.children[n];return Gb.visit(r,t)},Fb=(e,t)=>{var n;return(n=e.dictionary)?.get(e.values[t])},Ib=(e,t)=>e.type.unit===Ig.DAY_TIME?Lb(e,t):Rb(e,t),Lb=({values:e},t)=>e.subarray(2*t,2*(t+1)),Rb=({values:e},t)=>{let n=e[t],r=new Int32Array(2);return r[0]=Math.trunc(n/12),r[1]=Math.trunc(n%12),r},zb=({values:e},t)=>e[t],Bb=({values:e},t)=>e[t],Vb=({values:e},t)=>e[t],Hb=({values:e},t)=>e[t],Ub=(e,t)=>{switch(e.type.unit){case Fg.SECOND:return zb(e,t);case Fg.MILLISECOND:return Bb(e,t);case Fg.MICROSECOND:return Vb(e,t);case Fg.NANOSECOND:return Hb(e,t)}},Wb=(e,t)=>{let{stride:n,children:r}=e,i=r[0],a=i.slice(t*n,n);return new Jx([a])};tb.prototype.visitNull=nb(ib),tb.prototype.visitBool=nb(ob),tb.prototype.visitInt=nb(hb),tb.prototype.visitInt8=nb(lb),tb.prototype.visitInt16=nb(lb),tb.prototype.visitInt32=nb(lb),tb.prototype.visitInt64=nb(db),tb.prototype.visitUint8=nb(lb),tb.prototype.visitUint16=nb(lb),tb.prototype.visitUint32=nb(lb),tb.prototype.visitUint64=nb(db),tb.prototype.visitFloat=nb(gb),tb.prototype.visitFloat16=nb(ub),tb.prototype.visitFloat32=nb(lb),tb.prototype.visitFloat64=nb(lb),tb.prototype.visitUtf8=nb(mb),tb.prototype.visitLargeUtf8=nb(mb),tb.prototype.visitBinary=nb(pb),tb.prototype.visitLargeBinary=nb(pb),tb.prototype.visitFixedSizeBinary=nb(fb),tb.prototype.visitDate=nb(_b),tb.prototype.visitDateDay=nb(sb),tb.prototype.visitDateMillisecond=nb(cb),tb.prototype.visitTimestamp=nb(Sb),tb.prototype.visitTimestampSecond=nb(vb),tb.prototype.visitTimestampMillisecond=nb(yb),tb.prototype.visitTimestampMicrosecond=nb(bb),tb.prototype.visitTimestampNanosecond=nb(xb),tb.prototype.visitTime=nb(Db),tb.prototype.visitTimeSecond=nb(Cb),tb.prototype.visitTimeMillisecond=nb(wb),tb.prototype.visitTimeMicrosecond=nb(Tb),tb.prototype.visitTimeNanosecond=nb(Eb),tb.prototype.visitDecimal=nb(Ob),tb.prototype.visitList=nb(kb),tb.prototype.visitStruct=nb(jb),tb.prototype.visitUnion=nb(Mb),tb.prototype.visitDenseUnion=nb(Nb),tb.prototype.visitSparseUnion=nb(Pb),tb.prototype.visitDictionary=nb(Fb),tb.prototype.visitInterval=nb(Ib),tb.prototype.visitIntervalDayTime=nb(Lb),tb.prototype.visitIntervalYearMonth=nb(Rb),tb.prototype.visitDuration=nb(Ub),tb.prototype.visitDurationSecond=nb(zb),tb.prototype.visitDurationMillisecond=nb(Bb),tb.prototype.visitDurationMicrosecond=nb(Vb),tb.prototype.visitDurationNanosecond=nb(Hb),tb.prototype.visitFixedSizeList=nb(Wb),tb.prototype.visitMap=nb(Ab);const Gb=new tb,Kb=Symbol.for(`keys`),qb=Symbol.for(`vals`),Jb=Symbol.for(`kKeysAsStrings`),Yb=Symbol.for(`_kKeysAsStrings`);var Xb=class{constructor(e){return this[Kb]=new Jx([e.children[0]]).memoize(),this[qb]=e.children[1],new Proxy(this,new Qb)}get[Jb](){return this[Yb]||(this[Yb]=Array.from(this[Kb].toArray(),String))}[Symbol.iterator](){return new Zb(this[Kb],this[qb])}get size(){return this[Kb].length}toArray(){return Object.values(this.toJSON())}toJSON(){let e=this[Kb],t=this[qb],n={};for(let r=-1,i=e.length;++r`${j_(e)}: ${j_(t)}`).join(`, `)}}`}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.toString()}},Zb=class{constructor(e,t){this.keys=e,this.vals=t,this.keyIndex=0,this.numKeys=e.length}[Symbol.iterator](){return this}next(){let e=this.keyIndex;return e===this.numKeys?{done:!0,value:null}:(this.keyIndex++,{done:!1,value:[this.keys.get(e),Gb.visit(this.vals,e)]})}},Qb=class{isExtensible(){return!1}deleteProperty(){return!1}preventExtensions(){return!0}ownKeys(e){return e[Jb]}has(e,t){return e[Jb].includes(t)}getOwnPropertyDescriptor(e,t){let n=e[Jb].indexOf(t);if(n!==-1)return{writable:!0,enumerable:!0,configurable:!0}}get(e,t){if(Reflect.has(e,t))return e[t];let n=e[Jb].indexOf(t);if(n!==-1){let r=Gb.visit(Reflect.get(e,qb),n);return Reflect.set(e,t,r),r}}set(e,t,n){let r=e[Jb].indexOf(t);return r===-1?Reflect.has(e,t)?Reflect.set(e,t,n):!1:(Yy.visit(Reflect.get(e,qb),r,n),Reflect.set(e,t,n))}};Object.defineProperties(Xb.prototype,{[Symbol.toStringTag]:{enumerable:!1,configurable:!1,value:`Row`},[Kb]:{writable:!0,enumerable:!1,configurable:!1,value:null},[qb]:{writable:!0,enumerable:!1,configurable:!1,value:null},[Yb]:{writable:!0,enumerable:!1,configurable:!1,value:null}});let $b;function ex(e,t,n,r){let{length:i=0}=e,a=typeof t==`number`?t:0,o=typeof n==`number`?n:i;return a<0&&(a=(a%i+i)%i),o<0&&(o=(o%i+i)%i),oi&&(o=i),r?r(e,a,o):[a,o]}const tx=(e,t)=>e<0?t+e:e,nx=e=>e!==e;function rx(e){let t=typeof e;if(t!==`object`||e===null)return nx(e)?nx:t=>t===e;if(e instanceof Date){let t=e.valueOf();return e=>e instanceof Date?e.valueOf()===t:!1}return ArrayBuffer.isView(e)?t=>t?Sg(e,t):!1:e instanceof Map?ax(e):Array.isArray(e)?ix(e):e instanceof Jx?ox(e):sx(e,!0)}function ix(e){let t=[];for(let n=-1,r=e.length;++n!1;let r=[];for(let t=-1,i=n.length;++t{if(!n||typeof n!=`object`)return!1;switch(n.constructor){case Array:return lx(e,n);case Map:return dx(e,n,n.keys());case Xb:case Qy:case Object:case void 0:return dx(e,n,t||Object.keys(n))}return n instanceof Jx?ux(e,n):!1}}function lx(e,t){let n=e.length;if(t.length!==n)return!1;for(let r=-1;++r>r}function mx(e,t,n){let r=n.byteLength+7&-8;if(e>0||n.byteLength>3):hx(new gx(n,e,t,null,fx)).subarray(0,r)),i}return n}function hx(e){let t=[],n=0,r=0,i=0;for(let a of e)a&&(i|=1<0)&&(t[n++]=i);let a=new Uint8Array(t.length+7&-8);return a.set(t),a}var gx=class{constructor(e,t,n,r,i){this.bytes=e,this.length=n,this.context=r,this.get=i,this.bit=t%8,this.byteIndex=t>>3,this.byte=e[this.byteIndex++],this.index=0}next(){return this.index>3<<3,i=t+(t%8==0?0:8-t%8);return _x(e,t,i)+_x(e,r,n)+vx(e,i>>3,r-i>>3)}function vx(e,t,n){let r=0,i=Math.trunc(t),a=new DataView(e.buffer,e.byteOffset,e.byteLength),o=n===void 0?e.byteLength:i+n;for(;o-i>=4;)r+=yx(a.getUint32(i)),i+=4;for(;o-i>=2;)r+=yx(a.getUint16(i)),i+=2;for(;o-i>=1;)r+=yx(a.getUint8(i)),i+=1;return r}function yx(e){let t=Math.trunc(e);return t-=t>>>1&1431655765,t=(t&858993459)+(t>>>2&858993459),(t+(t>>>4)&252645135)*16843009>>>24}const bx=-1;var xx=class e{get typeId(){return this.type.typeId}get ArrayType(){return this.type.ArrayType}get buffers(){return[this.valueOffsets,this.values,this.nullBitmap,this.typeIds]}get nullable(){if(this._nullCount!==0){let{type:e}=this;return mv.isSparseUnion(e)||mv.isDenseUnion(e)?this.children.some(e=>e.nullable):this.nullBitmap&&this.nullBitmap.byteLength>0}return!0}get byteLength(){let e=0,{valueOffsets:t,values:n,nullBitmap:r,typeIds:i}=this;return t&&(e+=t.byteLength),n&&(e+=n.byteLength),r&&(e+=r.byteLength),i&&(e+=i.byteLength),this.children.reduce((e,t)=>e+t.byteLength,e)}get nullCount(){if(mv.isUnion(this.type))return this.children.reduce((e,t)=>e+t.nullCount,0);let e=this._nullCount,t;return e<=bx&&(t=this.nullBitmap)&&(this._nullCount=e=t.length===0?0:this.length-_x(t,this.offset,this.offset+this.length)),e}constructor(t,n,r,i,a,o=[],s){this.type=t,this.children=o,this.dictionary=s,this.offset=Math.floor(Math.max(n||0,0)),this.length=Math.floor(Math.max(r||0,0)),this._nullCount=Math.floor(Math.max(i||0,-1));let c;a instanceof e?(this.stride=a.stride,this.values=a.values,this.typeIds=a.typeIds,this.nullBitmap=a.nullBitmap,this.valueOffsets=a.valueOffsets):(this.stride=Jv(t),a&&((c=a[0])&&(this.valueOffsets=c),(c=a[1])&&(this.values=c),(c=a[2])&&(this.nullBitmap=c),(c=a[3])&&(this.typeIds=c)))}getValid(e){let{type:t}=this;if(mv.isUnion(t)){let n=t,r=this.children[n.typeIdToChildIndex[this.typeIds[e]]],i=n.mode===Mg.Dense?this.valueOffsets[e]:e;return r.getValid(i)}if(this.nullable&&this.nullCount>0){let t=this.offset+e,n=this.nullBitmap[t>>3];return(n&1<>3;(!r||r.byteLength<=c)&&(r=new Uint8Array((i+a+63&-64)>>3).fill(255),this.nullCount>0?(r.set(mx(i,a,this.nullBitmap),0),Object.assign(this,{nullBitmap:r})):Object.assign(this,{nullBitmap:r,_nullCount:0}));let l=r[c];n=(l&s)!==0,r[c]=t?l|s:l&~s}return n!==!!t&&(this._nullCount=this.nullCount+(t?-1:1)),t}clone(t=this.type,n=this.offset,r=this.length,i=this._nullCount,a=this,o=this.children){return new e(t,n,r,i,a,o,this.dictionary)}slice(e,t){let{stride:n,typeId:r,children:i}=this,a=(this._nullCount===0)-1,o=r===16?n:1,s=this._sliceBuffers(e,t,n,r);return this.clone(this.type,this.offset+e,t,a,s,i.length===0||this.valueOffsets?i:this._sliceChildren(i,o*e,o*t))}_changeLengthAndBackfillNullBitmap(e){if(this.typeId===K.Null)return this.clone(this.type,0,e,0);let{length:t,nullCount:n}=this,r=new Uint8Array((e+63&-64)>>3).fill(255,0,t>>3);r[t>>3]=(1<0&&r.set(mx(this.offset,t,this.nullBitmap),0);let i=this.buffers;return i[k_.VALIDITY]=r,this.clone(this.type,0,e,n+(e-t),i)}_sliceBuffers(e,t,n,r){let i,{buffers:a}=this;return(i=a[k_.TYPE])&&(a[k_.TYPE]=i.subarray(e,e+t)),(i=a[k_.OFFSET])&&(a[k_.OFFSET]=i.subarray(e,e+t+1))||(i=a[k_.DATA])&&(a[k_.DATA]=r===6?i:i.subarray(n*e,n*(e+t))),a}_sliceChildren(e,t,n){return e.map(e=>e.slice(t,n))}};xx.prototype.children=Object.freeze([]);var Sx=class e extends Yv{visit(e){return this.getVisitFn(e.type).call(this,e)}visitNull(e){let{type:t,offset:n=0,length:r=0}=e;return new xx(t,n,r,r)}visitBool(e){let{type:t,offset:n=0}=e,r=hg(e.nullBitmap),i=fg(t.ArrayType,e.data),{length:a=i.length>>3,nullCount:o=e.nullBitmap?-1:0}=e;return new xx(t,n,a,o,[void 0,i,r])}visitInt(e){let{type:t,offset:n=0}=e,r=hg(e.nullBitmap),i=fg(t.ArrayType,e.data),{length:a=i.length,nullCount:o=e.nullBitmap?-1:0}=e;return new xx(t,n,a,o,[void 0,i,r])}visitFloat(e){let{type:t,offset:n=0}=e,r=hg(e.nullBitmap),i=fg(t.ArrayType,e.data),{length:a=i.length,nullCount:o=e.nullBitmap?-1:0}=e;return new xx(t,n,a,o,[void 0,i,r])}visitUtf8(e){let{type:t,offset:n=0}=e,r=hg(e.data),i=hg(e.nullBitmap),a=pg(e.valueOffsets),{length:o=a.length-1,nullCount:s=e.nullBitmap?-1:0}=e;return new xx(t,n,o,s,[a,r,i])}visitLargeUtf8(e){let{type:t,offset:n=0}=e,r=hg(e.data),i=hg(e.nullBitmap),a=mg(e.valueOffsets),{length:o=a.length-1,nullCount:s=e.nullBitmap?-1:0}=e;return new xx(t,n,o,s,[a,r,i])}visitBinary(e){let{type:t,offset:n=0}=e,r=hg(e.data),i=hg(e.nullBitmap),a=pg(e.valueOffsets),{length:o=a.length-1,nullCount:s=e.nullBitmap?-1:0}=e;return new xx(t,n,o,s,[a,r,i])}visitLargeBinary(e){let{type:t,offset:n=0}=e,r=hg(e.data),i=hg(e.nullBitmap),a=mg(e.valueOffsets),{length:o=a.length-1,nullCount:s=e.nullBitmap?-1:0}=e;return new xx(t,n,o,s,[a,r,i])}visitFixedSizeBinary(e){let{type:t,offset:n=0}=e,r=hg(e.nullBitmap),i=fg(t.ArrayType,e.data),{length:a=i.length/Jv(t),nullCount:o=e.nullBitmap?-1:0}=e;return new xx(t,n,a,o,[void 0,i,r])}visitDate(e){let{type:t,offset:n=0}=e,r=hg(e.nullBitmap),i=fg(t.ArrayType,e.data),{length:a=i.length/Jv(t),nullCount:o=e.nullBitmap?-1:0}=e;return new xx(t,n,a,o,[void 0,i,r])}visitTimestamp(e){let{type:t,offset:n=0}=e,r=hg(e.nullBitmap),i=fg(t.ArrayType,e.data),{length:a=i.length/Jv(t),nullCount:o=e.nullBitmap?-1:0}=e;return new xx(t,n,a,o,[void 0,i,r])}visitTime(e){let{type:t,offset:n=0}=e,r=hg(e.nullBitmap),i=fg(t.ArrayType,e.data),{length:a=i.length/Jv(t),nullCount:o=e.nullBitmap?-1:0}=e;return new xx(t,n,a,o,[void 0,i,r])}visitDecimal(e){let{type:t,offset:n=0}=e,r=hg(e.nullBitmap),i=fg(t.ArrayType,e.data),{length:a=i.length/Jv(t),nullCount:o=e.nullBitmap?-1:0}=e;return new xx(t,n,a,o,[void 0,i,r])}visitList(e){let{type:t,offset:n=0,child:r}=e,i=hg(e.nullBitmap),a=pg(e.valueOffsets),{length:o=a.length-1,nullCount:s=e.nullBitmap?-1:0}=e;return new xx(t,n,o,s,[a,void 0,i],[r])}visitStruct(e){let{type:t,offset:n=0,children:r=[]}=e,i=hg(e.nullBitmap),{length:a=r.reduce((e,{length:t})=>Math.max(e,t),0),nullCount:o=e.nullBitmap?-1:0}=e;return new xx(t,n,a,o,[void 0,void 0,i],r)}visitUnion(e){let{type:t,offset:n=0,children:r=[]}=e,i=fg(t.ArrayType,e.typeIds),{length:a=i.length,nullCount:o=-1}=e;if(mv.isSparseUnion(t))return new xx(t,n,a,o,[void 0,void 0,void 0,i],r);let s=pg(e.valueOffsets);return new xx(t,n,a,o,[s,void 0,void 0,i],r)}visitDictionary(t){let{type:n,offset:r=0}=t,i=hg(t.nullBitmap),a=fg(n.indices.ArrayType,t.data),{dictionary:o=new Jx([new e().visit({type:n.dictionary})])}=t,{length:s=a.length,nullCount:c=t.nullBitmap?-1:0}=t;return new xx(n,r,s,c,[void 0,a,i],[],o)}visitInterval(e){let{type:t,offset:n=0}=e,r=hg(e.nullBitmap),i=fg(t.ArrayType,e.data),{length:a=i.length/Jv(t),nullCount:o=e.nullBitmap?-1:0}=e;return new xx(t,n,a,o,[void 0,i,r])}visitDuration(e){let{type:t,offset:n=0}=e,r=hg(e.nullBitmap),i=fg(t.ArrayType,e.data),{length:a=i.length,nullCount:o=e.nullBitmap?-1:0}=e;return new xx(t,n,a,o,[void 0,i,r])}visitFixedSizeList(t){let{type:n,offset:r=0,child:i=new e().visit({type:n.valueType})}=t,a=hg(t.nullBitmap),{length:o=i.length/Jv(n),nullCount:s=t.nullBitmap?-1:0}=t;return new xx(n,r,o,s,[void 0,void 0,a],[i])}visitMap(t){let{type:n,offset:r=0,child:i=new e().visit({type:n.childType})}=t,a=hg(t.nullBitmap),o=pg(t.valueOffsets),{length:s=o.length-1,nullCount:c=t.nullBitmap?-1:0}=t;return new xx(n,r,s,c,[o,void 0,a],[i])}};const Cx=new Sx;function wx(e){return Cx.visit(e)}var Tx=class{constructor(e=0,t){this.numChunks=e,this.getChunkIterator=t,this.chunkIndex=0,this.chunkIterator=this.getChunkIterator(0)}next(){for(;this.chunkIndexe.nullable)}function Dx(e){return e.reduce((e,t)=>e+t.nullCount,0)}function Ox(e){return e.reduce((e,t,n)=>(e[n+1]=e[n]+t.length,e),new Uint32Array(e.length+1))}function kx(e,t,n,r){let i=[];for(let a=-1,o=e.length;++a=r)break;if(n>=s+c)continue;if(s>=n&&s+c<=r){i.push(o);continue}let l=Math.max(0,n-s),u=Math.min(r-s,c);i.push(o.slice(l,u-l))}return i.length===0&&i.push(e[0].slice(0,0)),i}function Ax(e,t,n,r){let i=0,a=0,o=t.length-1;do{if(i>=o-1)return n0?0:-1}function Lx(e,t){let{nullBitmap:n}=e;if(!n||e.nullCount<=0)return-1;let r=0;for(let i of new gx(n,e.offset+(t||0),e.length,n,fx)){if(!i)return r;++r}return-1}function Rx(e,t,n){if(t===void 0)return-1;if(t===null)switch(e.typeId){case K.Union:break;case K.Dictionary:break;default:return Lx(e,n)}let r=Gb.getVisitFn(e),i=rx(t);for(let t=(n||0)-1,a=e.length;++t{let n=e.data[t];return n.values.subarray(0,n.length)[Symbol.iterator]()});let n=0;return new Tx(e.data.length,t=>{let r=e.data[t],i=r.length,a=e.slice(n,n+i);return n+=i,new Ux(a)})}var Ux=class{constructor(e){this.vector=e,this.index=0}next(){return this.indexe.data):t;if(a.length===0||a.some(e=>!(e instanceof xx)))throw TypeError(`Vector constructor expects an Array of Data instances.`);let o=(n=a[0])?.type;switch(a.length){case 0:this._offsets=[0];break;case 1:{let{get:e,set:t,indexOf:n}=Kx[o.typeId],r=a[0];this.isValid=e=>jx(r,e),this.get=t=>e(r,t),this.set=(e,n)=>t(r,e,n),this.indexOf=e=>n(r,e),this._offsets=[0,r.length];break}default:Object.setPrototypeOf(this,qx[o.typeId]),this._offsets=Ox(a);break}this.data=a,this.type=o,this.stride=Jv(o),this.numChildren=(i=(r=o.children)?.length)??0,this.length=this._offsets.at(-1)}get byteLength(){return this.data.reduce((e,t)=>e+t.byteLength,0)}get nullable(){return Ex(this.data)}get nullCount(){return Dx(this.data)}get ArrayType(){return this.type.ArrayType}get[Symbol.toStringTag](){return`${this.VectorName}<${this.type[Symbol.toStringTag]}>`}get VectorName(){return`${K[this.type.typeId]}Vector`}isValid(e){return!1}get(e){return null}at(e){return this.get(tx(e,this.length))}set(e,t){}indexOf(e,t){return-1}includes(e,t){return this.indexOf(e,t)>-1}[Symbol.iterator](){return Wx.visit(this)}concat(...t){return new e(this.data.concat(t.flatMap(e=>e.data).flat(1/0)))}slice(t,n){return new e(ex(this,t,n,({data:e,_offsets:t},n,r)=>kx(e,t,n,r)))}toJSON(){return[...this]}toArray(){let{type:e,data:t,length:n,stride:r,ArrayType:i}=this;switch(e.typeId){case K.Int:case K.Float:case K.Decimal:case K.Time:case K.Timestamp:switch(t.length){case 0:return new i;case 1:return t[0].values.subarray(0,n*r);default:return t.reduce((e,{values:t,length:n})=>(e.array.set(t.subarray(0,n*r),e.offset),e.offset+=n*r,e),{array:new i(n*r),offset:0}).array}}return[...this]}toString(){return`[${[...this].join(`,`)}]`}getChild(e){var t;return this.getChildAt((t=this.type.children)?.findIndex(t=>t.name===e))}getChildAt(t){return t>-1&&te[t])):null}get isMemoized(){return mv.isDictionary(this.type)?this.data[0].dictionary.isMemoized:!1}memoize(){if(mv.isDictionary(this.type)){let t=new Yx(this.data[0].dictionary),n=this.data.map(e=>{let n=e.clone();return n.dictionary=t,n});return new e(n)}return new Yx(this)}unmemoize(){if(mv.isDictionary(this.type)&&this.isMemoized){let t=this.data[0].dictionary.unmemoize(),n=this.data.map(e=>{let n=e.clone();return n.dictionary=t,n});return new e(n)}return this}};Gx=Symbol.toStringTag,Jx[Gx]=(e=>{e.type=mv.prototype,e.data=[],e.length=0,e.stride=1,e.numChildren=0,e._offsets=new Uint32Array([0]),e[Symbol.isConcatSpreadable]=!0;let t=Object.keys(K).map(e=>K[e]).filter(e=>typeof e==`number`&&e!==K.NONE);for(let n of t){let t=Gb.getVisitFnByTypeId(n),r=Yy.getVisitFnByTypeId(n),i=Bx.getVisitFnByTypeId(n);Kx[n]={get:t,set:r,indexOf:i},qx[n]=Object.create(e,{isValid:{value:Mx(jx)},get:{value:Mx(Gb.getVisitFnByTypeId(n))},set:{value:Nx(Yy.getVisitFnByTypeId(n))},indexOf:{value:Px(Bx.getVisitFnByTypeId(n))}})}return`Vector`})(Jx.prototype);var Yx=class e extends Jx{constructor(t){super(t.data);let n=this.get,r=this.set,i=this.slice,a=Array(this.length);Object.defineProperty(this,`get`,{value(e){let t=a[e];if(t!==void 0)return t;let r=n.call(this,e);return a[e]=r,r}}),Object.defineProperty(this,`set`,{value(e,t){r.call(this,e,t),a[e]=t}}),Object.defineProperty(this,`slice`,{value:(t,n)=>new e(i.call(this,t,n))}),Object.defineProperty(this,`isMemoized`,{value:!0}),Object.defineProperty(this,`unmemoize`,{value:()=>new Jx(this.data)}),Object.defineProperty(this,`memoize`,{value:()=>this})}},Xx=class{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}offset(){return this.bb.readInt64(this.bb_pos)}metaDataLength(){return this.bb.readInt32(this.bb_pos+8)}bodyLength(){return this.bb.readInt64(this.bb_pos+16)}static sizeOf(){return 24}static createBlock(e,t,n,r){return e.prep(8,24),e.writeInt64(BigInt(r??0)),e.pad(4),e.writeInt32(n),e.writeInt64(BigInt(t??0)),e.offset()}},Zx=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsFooter(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsFooter(t,n){return t.setPosition(t.position()+Bg),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}version(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):jg.V1}schema(e){let t=this.bb.__offset(this.bb_pos,6);return t?(e||new D_).__init(this.bb.__indirect(this.bb_pos+t),this.bb):null}dictionaries(e,t){let n=this.bb.__offset(this.bb_pos,8);return n?(t||new Xx).__init(this.bb.__vector(this.bb_pos+n)+e*24,this.bb):null}dictionariesLength(){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}recordBatches(e,t){let n=this.bb.__offset(this.bb_pos,10);return n?(t||new Xx).__init(this.bb.__vector(this.bb_pos+n)+e*24,this.bb):null}recordBatchesLength(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__vector_len(this.bb_pos+e):0}customMetadata(e,t){let n=this.bb.__offset(this.bb_pos,12);return n?(t||new a_).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}customMetadataLength(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.__vector_len(this.bb_pos+e):0}static startFooter(e){e.startObject(5)}static addVersion(e,t){e.addFieldInt16(0,t,jg.V1)}static addSchema(e,t){e.addFieldOffset(1,t,0)}static addDictionaries(e,t){e.addFieldOffset(2,t,0)}static startDictionariesVector(e,t){e.startVector(24,t,8)}static addRecordBatches(e,t){e.addFieldOffset(3,t,0)}static startRecordBatchesVector(e,t){e.startVector(24,t,8)}static addCustomMetadata(e,t){e.addFieldOffset(4,t,0)}static createCustomMetadataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startCustomMetadataVector(e,t){e.startVector(4,t,4)}static endFooter(e){let t=e.endObject();return t}static finishFooterBuffer(e,t){e.finish(t)}static finishSizePrefixedFooterBuffer(e,t){e.finish(t,void 0,!0)}},Qx=class e{constructor(e=[],t,n,r=jg.V5){this.fields=e||[],this.metadata=t||new Map,n||=tS(this.fields),this.dictionaries=n,this.metadataVersion=r}get[Symbol.toStringTag](){return`Schema`}get names(){return this.fields.map(e=>e.name)}toString(){return`Schema<{ ${this.fields.map((e,t)=>`${t}: ${e}`).join(`, `)} }>`}select(t){let n=new Set(t),r=this.fields.filter(e=>n.has(e.name));return new e(r,this.metadata)}selectAt(t){let n=t.map(e=>this.fields[e]).filter(Boolean);return new e(n,this.metadata)}assign(...t){let n=t[0]instanceof e?t[0]:Array.isArray(t[0])?new e(t[0]):new e(t),r=[...this.fields],i=eS(eS(new Map,this.metadata),n.metadata),a=n.fields.filter(e=>{let t=r.findIndex(t=>t.name===e.name);return~t?(r[t]=e.clone({metadata:eS(eS(new Map,r[t].metadata),e.metadata)}))&&!1:!0}),o=tS(a,new Map);return new e([...r,...a],i,new Map([...this.dictionaries,...o]))}};Qx.prototype.fields=null,Qx.prototype.metadata=null,Qx.prototype.dictionaries=null;var $x=class e{static new(...t){let[n,r,i,a]=t;return t[0]&&typeof t[0]==`object`&&({name:n}=t[0],r===void 0&&(r=t[0].type),i===void 0&&(i=t[0].nullable),a===void 0&&(a=t[0].metadata)),new e(`${n}`,r,i,a)}constructor(e,t,n=!1,r){this.name=e,this.type=t,this.nullable=n,this.metadata=r||new Map}get typeId(){return this.type.typeId}get[Symbol.toStringTag](){return`Field`}toString(){return`${this.name}: ${this.type}`}clone(...t){let[n,r,i,a]=t;return!t[0]||typeof t[0]!=`object`?[n=this.name,r=this.type,i=this.nullable,a=this.metadata]=t:{name:n=this.name,type:r=this.type,nullable:i=this.nullable,metadata:a=this.metadata}=t[0],e.new(n,r,i,a)}};$x.prototype.type=null,$x.prototype.name=null,$x.prototype.nullable=null,$x.prototype.metadata=null;function eS(e,t){return new Map([...e||new Map,...t||new Map])}function tS(e,t=new Map){for(let n=-1,r=e.length;++n0&&tS(i.children,t)}return t}var nS=qg,rS=Kg,iS=class{static decode(e){e=new rS(hg(e));let t=Zx.getRootAsFooter(e),n=Qx.decode(t.schema(),new Map,t.version());return new aS(n,t)}static encode(e){let t=new nS,n=Qx.encode(t,e.schema);Zx.startRecordBatchesVector(t,e.numRecordBatches);for(let n of[...e.recordBatches()].slice().reverse())oS.encode(t,n);let r=t.endVector();Zx.startDictionariesVector(t,e.numDictionaries);for(let n of[...e.dictionaryBatches()].slice().reverse())oS.encode(t,n);let i=t.endVector();return Zx.startFooter(t),Zx.addSchema(t,n),Zx.addVersion(t,jg.V5),Zx.addRecordBatches(t,r),Zx.addDictionaries(t,i),Zx.finishFooterBuffer(t,Zx.endFooter(t)),t.asUint8Array()}get numRecordBatches(){return this._recordBatches.length}get numDictionaries(){return this._dictionaryBatches.length}constructor(e,t=jg.V5,n,r){this.schema=e,this.version=t,n&&(this._recordBatches=n),r&&(this._dictionaryBatches=r)}*recordBatches(){for(let e,t=-1,n=this.numRecordBatches;++t=0&&e=0&&e=0&&e=0&&ethis._closedPromiseResolve=e)}get closed(){return this._closedPromise}cancel(e){return Fh(this,void 0,void 0,function*(){yield this.return(e)})}write(e){this._ensureOpen()&&(this.resolvers.length<=0?this._values.push(e):this.resolvers.shift().resolve({done:!1,value:e}))}abort(e){this._closedPromiseResolve&&(this.resolvers.length<=0?this._error={error:e}:this.resolvers.shift().reject({done:!0,value:e}))}close(){if(this._closedPromiseResolve){let{resolvers:e}=this;for(;e.length>0;)e.shift().resolve(sS);this._closedPromiseResolve(),this._closedPromiseResolve=void 0}}[Symbol.asyncIterator](){return this}toDOMStream(e){return Cg.toDOMStream(this._closedPromiseResolve||this._error?this:this._values,e)}toNodeStream(e){return Cg.toNodeStream(this._closedPromiseResolve||this._error?this:this._values,e)}throw(e){return Fh(this,void 0,void 0,function*(){return yield this.abort(e),sS})}return(e){return Fh(this,void 0,void 0,function*(){return yield this.close(),sS})}read(e){return Fh(this,void 0,void 0,function*(){return(yield this.next(e,`read`)).value})}peek(e){return Fh(this,void 0,void 0,function*(){return(yield this.next(e,`peek`)).value})}next(...e){return this._values.length>0?Promise.resolve({done:!1,value:this._values.shift()}):this._error?Promise.reject({done:!0,value:this._error.error}):this._closedPromiseResolve?new Promise((e,t)=>{this.resolvers.push({resolve:e,reject:t})}):Promise.resolve(sS)}_ensureOpen(){if(this._closedPromiseResolve)return!0;throw Error(`AsyncQueue is closed`)}},dS=class extends uS{write(e){if((e=hg(e)).byteLength>0)return super.write(e)}toString(e=!1){return e?Hh(this.toUint8Array(!0)):this.toUint8Array(!1).then(Hh)}toUint8Array(e=!1){return e?dg(this._values)[0]:(()=>Fh(this,void 0,void 0,function*(){var e,t,n,r;let i=[],a=0;try{for(var o=!0,s=Bh(this),c;c=yield s.next(),e=c.done,!e;o=!0){r=c.value,o=!1;let e=r;i.push(e),a+=e.byteLength}}catch(e){t={error:e}}finally{try{!o&&!e&&(n=s.return)&&(yield n.call(s))}finally{if(t)throw t.error}}return dg(i,a)[0]}))()}},fS=class{constructor(e){e&&(this.source=new mS(Cg.fromIterable(e)))}[Symbol.iterator](){return this}next(e){return this.source.next(e)}throw(e){return this.source.throw(e)}return(e){return this.source.return(e)}peek(e){return this.source.peek(e)}read(e){return this.source.read(e)}},pS=class e{constructor(t){t instanceof e?this.source=t.source:t instanceof dS?this.source=new hS(Cg.fromAsyncIterable(t)):og(t)?this.source=new hS(Cg.fromNodeStream(t)):ig(t)?this.source=new hS(Cg.fromDOMStream(t)):tg(t)?this.source=new hS(Cg.fromDOMStream(t.body)):Xh(t)?this.source=new hS(Cg.fromIterable(t)):(Yh(t)||Zh(t))&&(this.source=new hS(Cg.fromAsyncIterable(t)))}[Symbol.asyncIterator](){return this}next(e){return this.source.next(e)}throw(e){return this.source.throw(e)}return(e){return this.source.return(e)}get closed(){return this.source.closed}cancel(e){return this.source.cancel(e)}peek(e){return this.source.peek(e)}read(e){return this.source.read(e)}},mS=class{constructor(e){this.source=e}cancel(e){this.return(e)}peek(e){return this.next(e,`peek`).value}read(e){return this.next(e,`read`).value}next(e,t=`read`){return this.source.next({cmd:t,size:e})}throw(e){return Object.create(this.source.throw&&this.source.throw(e)||sS)}return(e){return Object.create(this.source.return&&this.source.return(e)||sS)}},hS=class{constructor(e){this.source=e,this._closedPromise=new Promise(e=>this._closedPromiseResolve=e)}cancel(e){return Fh(this,void 0,void 0,function*(){yield this.return(e)})}get closed(){return this._closedPromise}read(e){return Fh(this,void 0,void 0,function*(){return(yield this.next(e,`read`)).value})}peek(e){return Fh(this,void 0,void 0,function*(){return(yield this.next(e,`peek`)).value})}next(e){return Fh(this,arguments,void 0,function*(e,t=`read`){return yield this.source.next({cmd:t,size:e})})}throw(e){return Fh(this,void 0,void 0,function*(){let t=this.source.throw&&(yield this.source.throw(e))||sS;return this._closedPromiseResolve&&this._closedPromiseResolve(),this._closedPromiseResolve=void 0,Object.create(t)})}return(e){return Fh(this,void 0,void 0,function*(){let t=this.source.return&&(yield this.source.return(e))||sS;return this._closedPromiseResolve&&this._closedPromiseResolve(),this._closedPromiseResolve=void 0,Object.create(t)})}},gS=class extends fS{constructor(e,t){super(),this.position=0,this.buffer=hg(e),this.size=t===void 0?this.buffer.byteLength:t}readInt32(e){let{buffer:t,byteOffset:n}=this.readAt(e,4);return new DataView(t,n).getInt32(0,!0)}seek(e){return this.position=Math.min(e,this.size),eFh(this,void 0,void 0,function*(){this.size=(yield e.stat()).size,delete this._pending}))()}readInt32(e){return Fh(this,void 0,void 0,function*(){let{buffer:t,byteOffset:n}=yield this.readAt(e,4);return new DataView(t,n).getInt32(0,!0)})}seek(e){return Fh(this,void 0,void 0,function*(){return this._pending&&(yield this._pending),this.position=Math.min(e,this.size),e>>16,this.buffer[1]&65535,this.buffer[0]>>>16,this.buffer[0]&65535]),n=new Uint32Array([e.buffer[1]>>>16,e.buffer[1]&65535,e.buffer[0]>>>16,e.buffer[0]&65535]),r=t[3]*n[3];this.buffer[0]=r&65535;let i=r>>>16;return r=t[2]*n[3],i+=r,r=t[3]*n[2]>>>0,i+=r,this.buffer[0]+=i<<16,this.buffer[1]=i>>>0>>16,this.buffer[1]+=t[1]*n[3]+t[2]*n[2]+t[3]*n[1],this.buffer[1]+=t[0]*n[3]+t[1]*n[2]+t[2]*n[1]+t[3]*n[0]<<16,this}_plus(e){let t=this.buffer[0]+e.buffer[0]>>>0;this.buffer[1]+=e.buffer[1],t>>0&&++this.buffer[1],this.buffer[0]=t}lessThan(e){return this.buffer[1]>>0,t[2]=this.buffer[2]+e.buffer[2]>>>0,t[1]=this.buffer[1]+e.buffer[1]>>>0,t[0]=this.buffer[0]+e.buffer[0]>>>0,t[0]>>0&&++t[1],t[1]>>0&&++t[2],t[2]>>0&&++t[3],this.buffer[3]=t[3],this.buffer[2]=t[2],this.buffer[1]=t[1],this.buffer[0]=t[0],this}hex(){return`${yS(this.buffer[3])} ${yS(this.buffer[2])} ${yS(this.buffer[1])} ${yS(this.buffer[0])}`}static multiply(t,n){let r=new e(new Uint32Array(t.buffer));return r.times(n)}static add(t,n){let r=new e(new Uint32Array(t.buffer));return r.plus(n)}static from(t,n=new Uint32Array(4)){return e.fromString(typeof t==`string`?t:t.toString(),n)}static fromNumber(t,n=new Uint32Array(4)){return e.fromString(t.toString(),n)}static fromString(t,n=new Uint32Array(4)){let r=t.startsWith(`-`),i=t.length,a=new e(n);for(let n=r?1:0;n0&&this.readData(e,n)||new Uint8Array}readOffsets(e,t){return this.readData(e,t)}readTypeIds(e,t){return this.readData(e,t)}readData(e,{length:t,offset:n}=this.nextBufferRange()){return this.bytes.subarray(n,n+t)}readDictionary(e){return this.dictionaries.get(e.id)}},DS=class extends ES{constructor(e,t,n,r,i){super(new Uint8Array,t,n,r,i),this.sources=e}readNullBitmap(e,t,{offset:n}=this.nextBufferRange()){return t<=0?new Uint8Array:hx(this.sources[n])}readOffsets(e,{offset:t}=this.nextBufferRange()){return fg(Uint8Array,fg(e.OffsetArrayType,this.sources[t]))}readTypeIds(e,{offset:t}=this.nextBufferRange()){return fg(Uint8Array,fg(e.ArrayType,this.sources[t]))}readData(e,{offset:t}=this.nextBufferRange()){let{sources:n}=this;return mv.isTimestamp(e)||(mv.isInt(e)||mv.isTime(e))&&e.bitWidth===64||mv.isDuration(e)||mv.isDate(e)&&e.unit===Pg.MILLISECOND?fg(Uint8Array,wS.convertArray(n[t])):mv.isDecimal(e)?fg(Uint8Array,TS.convertArray(n[t])):mv.isBinary(e)||mv.isLargeBinary(e)||mv.isFixedSizeBinary(e)?OS(n[t]):mv.isBool(e)?hx(n[t]):mv.isUtf8(e)||mv.isLargeUtf8(e)?Wh(n[t].join(``)):fg(Uint8Array,fg(e.ArrayType,n[t].map(e=>+e)))}};function OS(e){let t=e.join(``),n=new Uint8Array(t.length/2);for(let e=0;e>1]=Number.parseInt(t.slice(e,e+2),16);return n}var kS=class extends Yv{compareSchemas(e,t){return e===t||t instanceof e.constructor&&this.compareManyFields(e.fields,t.fields)}compareManyFields(e,t){return e===t||Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>this.compareFields(e,t[n]))}compareFields(e,t){return e===t||t instanceof e.constructor&&e.name===t.name&&e.nullable===t.nullable&&this.visit(e.type,t.type)}};function AS(e,t){return t instanceof e.constructor}function jS(e,t){return e===t||AS(e,t)}function MS(e,t){return e===t||AS(e,t)&&e.bitWidth===t.bitWidth&&e.isSigned===t.isSigned}function NS(e,t){return e===t||AS(e,t)&&e.precision===t.precision}function PS(e,t){return e===t||AS(e,t)&&e.byteWidth===t.byteWidth}function FS(e,t){return e===t||AS(e,t)&&e.unit===t.unit}function IS(e,t){return e===t||AS(e,t)&&e.unit===t.unit&&e.timezone===t.timezone}function LS(e,t){return e===t||AS(e,t)&&e.unit===t.unit&&e.bitWidth===t.bitWidth}function RS(e,t){return e===t||AS(e,t)&&e.children.length===t.children.length&&KS.compareManyFields(e.children,t.children)}function zS(e,t){return e===t||AS(e,t)&&e.children.length===t.children.length&&KS.compareManyFields(e.children,t.children)}function BS(e,t){return e===t||AS(e,t)&&e.mode===t.mode&&e.typeIds.every((e,n)=>e===t.typeIds[n])&&KS.compareManyFields(e.children,t.children)}function VS(e,t){return e===t||AS(e,t)&&e.id===t.id&&e.isOrdered===t.isOrdered&&KS.visit(e.indices,t.indices)&&KS.visit(e.dictionary,t.dictionary)}function HS(e,t){return e===t||AS(e,t)&&e.unit===t.unit}function US(e,t){return e===t||AS(e,t)&&e.unit===t.unit}function WS(e,t){return e===t||AS(e,t)&&e.listSize===t.listSize&&e.children.length===t.children.length&&KS.compareManyFields(e.children,t.children)}function GS(e,t){return e===t||AS(e,t)&&e.keysSorted===t.keysSorted&&e.children.length===t.children.length&&KS.compareManyFields(e.children,t.children)}kS.prototype.visitNull=jS,kS.prototype.visitBool=jS,kS.prototype.visitInt=MS,kS.prototype.visitInt8=MS,kS.prototype.visitInt16=MS,kS.prototype.visitInt32=MS,kS.prototype.visitInt64=MS,kS.prototype.visitUint8=MS,kS.prototype.visitUint16=MS,kS.prototype.visitUint32=MS,kS.prototype.visitUint64=MS,kS.prototype.visitFloat=NS,kS.prototype.visitFloat16=NS,kS.prototype.visitFloat32=NS,kS.prototype.visitFloat64=NS,kS.prototype.visitUtf8=jS,kS.prototype.visitLargeUtf8=jS,kS.prototype.visitBinary=jS,kS.prototype.visitLargeBinary=jS,kS.prototype.visitFixedSizeBinary=PS,kS.prototype.visitDate=FS,kS.prototype.visitDateDay=FS,kS.prototype.visitDateMillisecond=FS,kS.prototype.visitTimestamp=IS,kS.prototype.visitTimestampSecond=IS,kS.prototype.visitTimestampMillisecond=IS,kS.prototype.visitTimestampMicrosecond=IS,kS.prototype.visitTimestampNanosecond=IS,kS.prototype.visitTime=LS,kS.prototype.visitTimeSecond=LS,kS.prototype.visitTimeMillisecond=LS,kS.prototype.visitTimeMicrosecond=LS,kS.prototype.visitTimeNanosecond=LS,kS.prototype.visitDecimal=jS,kS.prototype.visitList=RS,kS.prototype.visitStruct=zS,kS.prototype.visitUnion=BS,kS.prototype.visitDenseUnion=BS,kS.prototype.visitSparseUnion=BS,kS.prototype.visitDictionary=VS,kS.prototype.visitInterval=HS,kS.prototype.visitIntervalDayTime=HS,kS.prototype.visitIntervalYearMonth=HS,kS.prototype.visitDuration=US,kS.prototype.visitDurationSecond=US,kS.prototype.visitDurationMillisecond=US,kS.prototype.visitDurationMicrosecond=US,kS.prototype.visitDurationNanosecond=US,kS.prototype.visitFixedSizeList=WS,kS.prototype.visitMap=GS;const KS=new kS;function qS(e,t){return KS.compareSchemas(e,t)}function JS(e,t){return YS(e,t.map(e=>e.data.concat()))}function YS(e,t){let n=[...e.fields],r=[],i={numBatches:t.reduce((e,t)=>Math.max(e,t.length),0)},a=0,o=0,s=-1,c=t.length,l,u=[];for(;i.numBatches-- >0;){for(o=1/0,s=-1;++s0&&(r[a++]=wx({type:new Vv(n),length:o,nullCount:0,children:u.slice()})))}return[e=e.assign(n),r.map(t=>new eC(e,t))]}function XS(e,t,n,r,i){var a;let o=(t+63&-64)>>3;for(let s=-1,c=r.length;++s=t)l===t?n[s]=c:(n[s]=c.slice(0,t),i.numBatches=Math.max(i.numBatches,r[s].unshift(c.slice(t,l-t))));else{let r=e[s];e[s]=r.clone({nullable:!0}),n[s]=(a=c?._changeLengthAndBackfillNullBitmap(t))??wx({type:r.type,length:t,nullCount:t,nullBitmap:new Uint8Array(o)})}}return n}var ZS,QS=class e{constructor(...t){var n,r;if(t.length===0)return this.batches=[],this.schema=new Qx([]),this._offsets=[0],this;let i,a;t[0]instanceof Qx&&(i=t.shift()),t.at(-1)instanceof Uint32Array&&(a=t.pop());let o=t=>{if(t){if(t instanceof eC)return[t];if(t instanceof e)return t.batches;if(t instanceof xx){if(t.type instanceof Vv)return[new eC(new Qx(t.type.children),t)]}else if(Array.isArray(t))return t.flatMap(e=>o(e));else if(typeof t[Symbol.iterator]==`function`)return[...t].flatMap(e=>o(e));else if(typeof t==`object`){let e=Object.keys(t),n=e.map(e=>new Jx([t[e]])),r=i??new Qx(e.map((e,t)=>new $x(String(e),n[t].type,n[t].nullable))),[,a]=JS(r,n);return a.length===0?[new eC(t)]:a}}return[]},s=t.flatMap(e=>o(e));if(i=(r=i??(n=s[0])?.schema)??new Qx([]),!(i instanceof Qx))throw TypeError(`Table constructor expects a [Schema, RecordBatch[]] pair.`);for(let e of s){if(!(e instanceof eC))throw TypeError(`Table constructor expects a [Schema, RecordBatch[]] pair.`);if(!qS(i,e.schema))throw TypeError(`Table and inner RecordBatch schemas must be equivalent.`)}this.schema=i,this.batches=s,this._offsets=a??Ox(this.data)}get data(){return this.batches.map(({data:e})=>e)}get numCols(){return this.schema.fields.length}get numRows(){return this.data.reduce((e,t)=>e+t.length,0)}get nullCount(){return this._nullCount===-1&&(this._nullCount=Dx(this.data)),this._nullCount}isValid(e){return!1}get(e){return null}at(e){return this.get(tx(e,this.numRows))}set(e,t){}indexOf(e,t){return-1}[Symbol.iterator](){return this.batches.length>0?Wx.visit(new Jx(this.data)):[][Symbol.iterator]()}toArray(){return[...this]}toString(){return`[\n ${this.toArray().join(`, + `)}\n]`}concat(...t){let n=this.schema,r=this.data.concat(t.flatMap(({data:e})=>e));return new e(n,r.map(e=>new eC(n,e)))}slice(t,n){let r=this.schema;[t,n]=ex({length:this.numRows},t,n);let i=kx(this.data,this._offsets,t,n);return new e(r,i.map(e=>new eC(r,e)))}getChild(e){return this.getChildAt(this.schema.fields.findIndex(t=>t.name===e))}getChildAt(e){if(e>-1&&et.children[e]);if(t.length===0){let{type:n}=this.schema.fields[e],r=wx({type:n,length:0,nullCount:0});t.push(r._changeLengthAndBackfillNullBitmap(this.numRows))}return new Jx(t)}return null}setChild(e,t){var n;return this.setChildAt((n=this.schema.fields)?.findIndex(t=>t.name===e),t)}setChildAt(t,n){let r=this.schema,i=[...this.batches];if(t>-1&&tthis.getChildAt(t));[e[t],o[t]]=[a,n],[r,i]=JS(r,o)}return new e(r,i)}select(e){let t=this.schema.fields.reduce((e,t,n)=>e.set(t.name,n),new Map);return this.selectAt(e.map(e=>t.get(e)).filter(e=>e>-1))}selectAt(t){let n=this.schema.selectAt(t),r=this.batches.map(e=>e.selectAt(t));return new e(n,r)}assign(t){let n=this.schema.fields,[r,i]=t.schema.fields.reduce((e,t,r)=>{let[i,a]=e,o=n.findIndex(e=>e.name===t.name);return~o?a[o]=r:i.push(r),e},[[],[]]),a=this.schema.assign(t.schema),o=[...n.map((e,t)=>[t,i[t]]).map(([e,n])=>n===void 0?this.getChildAt(e):t.getChildAt(n)),...r.map(e=>t.getChildAt(e))].filter(Boolean);return new e(...JS(a,o))}};ZS=Symbol.toStringTag,QS[ZS]=(e=>(e.schema=null,e.batches=[],e._offsets=new Uint32Array([0]),e._nullCount=-1,e[Symbol.isConcatSpreadable]=!0,e.isValid=Mx(jx),e.get=Mx(Gb.getVisitFn(K.Struct)),e.set=Nx(Yy.getVisitFn(K.Struct)),e.indexOf=Px(Bx.getVisitFn(K.Struct)),`Table`))(QS.prototype);var $S,eC=class e{constructor(...e){switch(e.length){case 2:if([this.schema]=e,!(this.schema instanceof Qx)||([,this.data=wx({nullCount:0,type:new Vv(this.schema.fields),children:this.schema.fields.map(e=>wx({type:e.type,nullCount:0}))})]=e,!(this.data instanceof xx)))throw TypeError(`RecordBatch constructor expects a [Schema, Data] pair.`);[this.schema,this.data]=tC(this.schema,this.data.children);break;case 1:{let[t]=e,{fields:n,children:r,length:i}=Object.keys(t).reduce((e,n,r)=>(e.children[r]=t[n],e.length=Math.max(e.length,t[n].length),e.fields[r]=$x.new({name:n,type:t[n].type,nullable:!0}),e),{length:0,fields:[],children:[]}),a=new Qx(n),o=wx({type:new Vv(n),length:i,children:r,nullCount:0});[this.schema,this.data]=tC(a,o.children,i);break}default:throw TypeError(`RecordBatch constructor expects an Object mapping names to child Data, or a [Schema, Data] pair.`)}}get dictionaries(){return this._dictionaries||=nC(this.schema.fields,this.data.children)}get numCols(){return this.schema.fields.length}get numRows(){return this.data.length}get nullCount(){return this.data.nullCount}isValid(e){return this.data.getValid(e)}get(e){return Gb.visit(this.data,e)}at(e){return this.get(tx(e,this.numRows))}set(e,t){return Yy.visit(this.data,e,t)}indexOf(e,t){return Bx.visit(this.data,e,t)}[Symbol.iterator](){return Wx.visit(new Jx([this.data]))}toArray(){return[...this]}concat(...e){return new QS(this.schema,[this,...e])}slice(t,n){let[r]=new Jx([this.data]).slice(t,n).data;return new e(this.schema,r)}getChild(e){var t;return this.getChildAt((t=this.schema.fields)?.findIndex(t=>t.name===e))}getChildAt(e){return e>-1&&et.name===e),t)}setChildAt(t,n){let r=this.schema,i=this.data;if(t>-1&&tt.name===e);~t&&(i[t]=this.data.children[t])}return new e(n,wx({type:r,length:this.numRows,children:i}))}selectAt(t){let n=this.schema.selectAt(t),r=t.map(e=>this.data.children[e]).filter(Boolean),i=wx({type:new Vv(n.fields),length:this.numRows,children:r});return new e(n,i)}};$S=Symbol.toStringTag,eC[$S]=(e=>(e._nullCount=-1,e[Symbol.isConcatSpreadable]=!0,`RecordBatch`))(eC.prototype);function tC(e,t,n=t.reduce((e,t)=>Math.max(e,t.length),0)){var r;let i=[...e.fields],a=[...t],o=(n+63&-64)>>3;for(let[s,c]of e.fields.entries()){let e=t[s];(!e||e.length!==n)&&(i[s]=c.clone({nullable:!0}),a[s]=(r=e?._changeLengthAndBackfillNullBitmap(n))??wx({type:c.type,length:n,nullCount:n,nullBitmap:new Uint8Array(o)}))}return[e.assign(i),wx({type:new Vv(i),length:n,children:a})]}function nC(e,t,n=new Map){var r,i;if(((r=e?.length)??0)>0&&e?.length===t?.length)for(let r=-1,a=e.length;++rwx({type:e.type})),n=wx({type:new Vv(e.fields),nullCount:0,children:t});super(e,n)}},iC=class e{constructor(){this.bb=null,this.bb_pos=0}__init(e,t){return this.bb_pos=e,this.bb=t,this}static getRootAsMessage(t,n){return(n||new e).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsMessage(t,n){return t.setPosition(t.position()+Bg),(n||new e).__init(t.readInt32(t.position())+t.position(),t)}version(){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readInt16(this.bb_pos+e):jg.V1}headerType(){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readUint8(this.bb_pos+e):O_.NONE}header(e){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__union(e,this.bb_pos+t):null}bodyLength(){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readInt64(this.bb_pos+e):BigInt(`0`)}customMetadata(e,t){let n=this.bb.__offset(this.bb_pos,12);return n?(t||new a_).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+e*4),this.bb):null}customMetadataLength(){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.__vector_len(this.bb_pos+e):0}static startMessage(e){e.startObject(5)}static addVersion(e,t){e.addFieldInt16(0,t,jg.V1)}static addHeaderType(e,t){e.addFieldInt8(1,t,O_.NONE)}static addHeader(e,t){e.addFieldOffset(2,t,0)}static addBodyLength(e,t){e.addFieldInt64(3,t,BigInt(`0`))}static addCustomMetadata(e,t){e.addFieldOffset(4,t,0)}static createCustomMetadataVector(e,t){e.startVector(4,t.length,4);for(let n=t.length-1;n>=0;n--)e.addOffset(t[n]);return e.endVector()}static startCustomMetadataVector(e,t){e.startVector(4,t,4)}static endMessage(e){let t=e.endObject();return t}static finishMessageBuffer(e,t){e.finish(t)}static finishSizePrefixedMessageBuffer(e,t){e.finish(t,void 0,!0)}static createMessage(t,n,r,i,a,o){return e.startMessage(t),e.addVersion(t,n),e.addHeaderType(t,r),e.addHeader(t,i),e.addBodyLength(t,a),e.addCustomMetadata(t,o),e.endMessage(t)}},aC=class extends Yv{visit(e,t){return e==null||t==null?void 0:super.visit(e,t)}visitNull(e,t){return y_.startNull(t),y_.endNull(t)}visitInt(e,t){return r_.startInt(t),r_.addBitWidth(t,e.bitWidth),r_.addIsSigned(t,e.isSigned),r_.endInt(t)}visitFloat(e,t){return p_.startFloatingPoint(t),p_.addPrecision(t,e.precision),p_.endFloatingPoint(t)}visitBinary(e,t){return o_.startBinary(t),o_.endBinary(t)}visitLargeBinary(e,t){return h_.startLargeBinary(t),h_.endLargeBinary(t)}visitBool(e,t){return s_.startBool(t),s_.endBool(t)}visitUtf8(e,t){return w_.startUtf8(t),w_.endUtf8(t)}visitLargeUtf8(e,t){return g_.startLargeUtf8(t),g_.endLargeUtf8(t)}visitDecimal(e,t){return l_.startDecimal(t),l_.addScale(t,e.scale),l_.addPrecision(t,e.precision),l_.addBitWidth(t,e.bitWidth),l_.endDecimal(t)}visitDate(e,t){return c_.startDate(t),c_.addUnit(t,e.unit),c_.endDate(t)}visitTime(e,t){return x_.startTime(t),x_.addUnit(t,e.unit),x_.addBitWidth(t,e.bitWidth),x_.endTime(t)}visitTimestamp(e,t){let n=e.timezone&&t.createString(e.timezone)||void 0;return S_.startTimestamp(t),S_.addUnit(t,e.unit),n!==void 0&&S_.addTimezone(t,n),S_.endTimestamp(t)}visitInterval(e,t){return m_.startInterval(t),m_.addUnit(t,e.unit),m_.endInterval(t)}visitDuration(e,t){return u_.startDuration(t),u_.addUnit(t,e.unit),u_.endDuration(t)}visitList(e,t){return __.startList(t),__.endList(t)}visitStruct(e,t){return b_.startStruct_(t),b_.endStruct_(t)}visitUnion(e,t){C_.startTypeIdsVector(t,e.typeIds.length);let n=C_.createTypeIdsVector(t,e.typeIds);return C_.startUnion(t),C_.addMode(t,e.mode),C_.addTypeIds(t,n),C_.endUnion(t)}visitDictionary(e,t){let n=this.visit(e.indices,t);return i_.startDictionaryEncoding(t),i_.addId(t,BigInt(e.id)),i_.addIsOrdered(t,e.isOrdered),n!==void 0&&i_.addIndexType(t,n),i_.endDictionaryEncoding(t)}visitFixedSizeBinary(e,t){return d_.startFixedSizeBinary(t),d_.addByteWidth(t,e.byteWidth),d_.endFixedSizeBinary(t)}visitFixedSizeList(e,t){return f_.startFixedSizeList(t),f_.addListSize(t,e.listSize),f_.endFixedSizeList(t)}visitMap(e,t){return v_.startMap(t),v_.addKeysSorted(t,e.keysSorted),v_.endMap(t)}};const oC=new aC;function sC(e,t=new Map){return new Qx(uC(e,t),gC(e.metadata),t)}function cC(e){return new SC(e.count,fC(e.columns),pC(e.columns))}function lC(e){return new CC(cC(e.data),e.id,e.isDelta)}function uC(e,t){return(e.fields||[]).filter(Boolean).map(e=>$x.fromJSON(e,t))}function dC(e,t){return(e.children||[]).filter(Boolean).map(e=>$x.fromJSON(e,t))}function fC(e){return(e||[]).reduce((e,t)=>[...e,new TC(t.count,mC(t.VALIDITY)),...fC(t.children)],[])}function pC(e,t=[]){for(let n=-1,r=(e||[]).length;++ne+ +(t===0),0)}function hC(e,t){let n,r,i,a,o,s;return!t||!(a=e.dictionary)?(o=vC(e,dC(e,t)),i=new $x(e.name,o,e.nullable,gC(e.metadata))):t.has(n=a.id)?(r=(r=a.indexType)?_C(r):new yv,s=new qv(t.get(n),r,n,a.isOrdered),i=new $x(e.name,s,e.nullable,gC(e.metadata))):(r=(r=a.indexType)?_C(r):new yv,t.set(n,o=vC(e,dC(e,t))),s=new qv(o,r,n,a.isOrdered),i=new $x(e.name,s,e.nullable,gC(e.metadata))),i||null}function gC(e=[]){return new Map(e.map(({key:e,value:t})=>[e,t]))}function _C(e){return new gv(e.isSigned,e.bitWidth)}function vC(e,t){let n=e.type.name;switch(n){case`NONE`:return new hv;case`null`:return new hv;case`binary`:return new kv;case`largebinary`:return new Av;case`utf8`:return new jv;case`largeutf8`:return new Mv;case`bool`:return new Nv;case`list`:return new Bv((t||[])[0]);case`struct`:return new Vv(t||[]);case`struct_`:return new Vv(t||[])}switch(n){case`int`:{let t=e.type;return new gv(t.isSigned,t.bitWidth)}case`floatingpoint`:{let t=e.type;return new Tv(Ng[t.precision])}case`decimal`:{let t=e.type;return new Pv(t.scale,t.precision,t.bitWidth)}case`date`:{let t=e.type;return new Fv(Pg[t.unit])}case`time`:{let t=e.type;return new Iv(Fg[t.unit],t.bitWidth)}case`timestamp`:{let t=e.type;return new Lv(Fg[t.unit],t.timezone)}case`interval`:{let t=e.type;return new Rv(Ig[t.unit])}case`duration`:{let t=e.type;return new zv(Fg[t.unit])}case`union`:{let n=e.type,[r,...i]=(n.mode+``).toLowerCase(),a=r.toUpperCase()+i.join(``);return new Hv(Mg[a],n.typeIds||[],t||[])}case`fixedsizebinary`:{let t=e.type;return new Uv(t.byteWidth)}case`fixedsizelist`:{let n=e.type;return new Wv(n.listSize,(t||[])[0])}case`map`:{let n=e.type;return new Gv((t||[])[0],n.keysSorted)}}throw Error(`Unrecognized type: "${n}"`)}var yC=qg,bC=Kg,xC=class e{static fromJSON(t,n){let r=new e(0,jg.V5,n);return r._createHeader=EC(t,n),r}static decode(t){t=new bC(hg(t));let n=iC.getRootAsMessage(t),r=n.bodyLength(),i=n.version(),a=n.headerType(),o=new e(r,i,a);return o._createHeader=DC(n,a),o}static encode(e){let t=new yC,n=-1;return e.isSchema()?n=Qx.encode(t,e.header()):e.isRecordBatch()?n=SC.encode(t,e.header()):e.isDictionaryBatch()&&(n=CC.encode(t,e.header())),iC.startMessage(t),iC.addVersion(t,jg.V5),iC.addHeader(t,n),iC.addHeaderType(t,e.headerType),iC.addBodyLength(t,BigInt(e.bodyLength)),iC.finishMessageBuffer(t,iC.endMessage(t)),t.asUint8Array()}static from(t,n=0){if(t instanceof Qx)return new e(0,jg.V5,O_.Schema,t);if(t instanceof SC)return new e(n,jg.V5,O_.RecordBatch,t);if(t instanceof CC)return new e(n,jg.V5,O_.DictionaryBatch,t);throw Error(`Unrecognized Message header: ${t}`)}get type(){return this.headerType}get version(){return this._version}get headerType(){return this._headerType}get bodyLength(){return this._bodyLength}header(){return this._createHeader()}isSchema(){return this.headerType===O_.Schema}isRecordBatch(){return this.headerType===O_.RecordBatch}isDictionaryBatch(){return this.headerType===O_.DictionaryBatch}constructor(e,t,n,r){this._version=t,this._headerType=n,this.body=new Uint8Array,r&&(this._createHeader=()=>r),this._bodyLength=M_(e)}},SC=class{get nodes(){return this._nodes}get length(){return this._length}get buffers(){return this._buffers}constructor(e,t,n){this._nodes=t,this._buffers=n,this._length=M_(e)}},CC=class{get id(){return this._id}get data(){return this._data}get isDelta(){return this._isDelta}get length(){return this.data.length}get nodes(){return this.data.nodes}get buffers(){return this.data.buffers}constructor(e,t,n=!1){this._data=e,this._isDelta=n,this._id=M_(t)}},wC=class{constructor(e,t){this.offset=M_(e),this.length=M_(t)}},TC=class{constructor(e,t){this.length=M_(e),this.nullCount=M_(t)}};function EC(e,t){return()=>{switch(t){case O_.Schema:return Qx.fromJSON(e);case O_.RecordBatch:return SC.fromJSON(e);case O_.DictionaryBatch:return CC.fromJSON(e)}throw Error(`Unrecognized Message type: { name: ${O_[t]}, type: ${t} }`)}}function DC(e,t){return()=>{switch(t){case O_.Schema:return Qx.decode(e.header(new D_),new Map,e.version());case O_.RecordBatch:return SC.decode(e.header(new $g),e.version());case O_.DictionaryBatch:return CC.decode(e.header(new e_),e.version())}throw Error(`Unrecognized Message type: { name: ${O_[t]}, type: ${t} }`)}}$x.encode=HC,$x.decode=LC,$x.fromJSON=hC,Qx.encode=VC,Qx.decode=OC,Qx.fromJSON=sC,SC.encode=UC,SC.decode=kC,SC.fromJSON=cC,CC.encode=WC,CC.decode=AC,CC.fromJSON=lC,TC.encode=GC,TC.decode=MC,wC.encode=KC,wC.decode=jC;function OC(e,t=new Map,n=jg.V5){let r=FC(e,t);return new Qx(r,RC(e),t,n)}function kC(e,t=jg.V5){if(e.compression()!==null)throw Error(`Record batch compression not implemented`);return new SC(e.length(),NC(e),PC(e,t))}function AC(e,t=jg.V5){return new CC(SC.decode(e.data(),t),e.id(),e.isDelta())}function jC(e){return new wC(e.offset(),e.length())}function MC(e){return new TC(e.length(),e.nullCount())}function NC(e){let t=[];for(let n,r=-1,i=-1,a=e.nodesLength();++r$x.encode(e,t));D_.startFieldsVector(e,n.length);let r=D_.createFieldsVector(e,n),i=t.metadata&&t.metadata.size>0?D_.createCustomMetadataVector(e,[...t.metadata].map(([t,n])=>{let r=e.createString(`${t}`),i=e.createString(`${n}`);return a_.startKeyValue(e),a_.addKey(e,r),a_.addValue(e,i),a_.endKeyValue(e)})):-1;return D_.startSchema(e),D_.addFields(e,r),D_.addEndianness(e,qC?t_.Little:t_.Big),i!==-1&&D_.addCustomMetadata(e,i),D_.endSchema(e)}function HC(e,t){let n=-1,r=-1,i=-1,a=t.type,o=t.typeId;mv.isDictionary(a)?(o=a.dictionary.typeId,i=oC.visit(a,e),r=oC.visit(a.dictionary,e)):r=oC.visit(a,e);let s=(a.children||[]).map(t=>$x.encode(e,t)),c=E_.createChildrenVector(e,s),l=t.metadata&&t.metadata.size>0?E_.createCustomMetadataVector(e,[...t.metadata].map(([t,n])=>{let r=e.createString(`${t}`),i=e.createString(`${n}`);return a_.startKeyValue(e),a_.addKey(e,r),a_.addValue(e,i),a_.endKeyValue(e)})):-1;return t.name&&(n=e.createString(t.name)),E_.startField(e),E_.addType(e,r),E_.addTypeType(e,o),E_.addChildren(e,c),E_.addNullable(e,!!t.nullable),n!==-1&&E_.addName(e,n),i!==-1&&E_.addDictionary(e,i),l!==-1&&E_.addCustomMetadata(e,l),E_.endField(e)}function UC(e,t){let n=t.nodes||[],r=t.buffers||[];$g.startNodesVector(e,n.length);for(let t of n.slice().reverse())TC.encode(e,t);let i=e.endVector();$g.startBuffersVector(e,r.length);for(let t of r.slice().reverse())wC.encode(e,t);let a=e.endVector();return $g.startRecordBatch(e),$g.addLength(e,BigInt(t.length)),$g.addNodes(e,i),$g.addBuffers(e,a),$g.endRecordBatch(e)}function WC(e,t){let n=SC.encode(e,t.data);return e_.startDictionaryBatch(e),e_.addId(e,BigInt(t.id)),e_.addIsDelta(e,t.isDelta),e_.addData(e,n),e_.endDictionaryBatch(e)}function GC(e,t){return Qg.createFieldNode(e,BigInt(t.length),BigInt(t.nullCount))}function KC(e,t){return Zg.createBuffer(e,BigInt(t.offset),BigInt(t.length))}const qC=(()=>{let e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),new Int16Array(e)[0]===256})(),JC=e=>`Expected ${O_[e]} Message in stream, but was null or length 0.`,YC=e=>`Header pointer of flatbuffer-encoded ${O_[e]} Message is null or length 0.`,XC=(e,t)=>`Expected to read ${e} metadata bytes, but only read ${t}.`,ZC=(e,t)=>`Expected to read ${e} bytes for message body, but only read ${t}.`;var QC=class{constructor(e){this.source=e instanceof fS?e:new fS(e)}[Symbol.iterator](){return this}next(){let e;return(e=this.readMetadataLength()).done||e.value===-1&&(e=this.readMetadataLength()).done||(e=this.readMetadata(e.value)).done?sS:e}throw(e){return this.source.throw(e)}return(e){return this.source.return(e)}readMessage(e){let t;if((t=this.next()).done)return null;if(e!=null&&t.value.headerType!==e)throw Error(JC(e));return t.value}readMessageBody(e){if(e<=0)return new Uint8Array;let t=hg(this.source.read(e));if(t.byteLength[...e,...n.VALIDITY&&[n.VALIDITY]||[],...n.TYPE_ID&&[n.TYPE_ID]||[],...n.OFFSET&&[n.OFFSET]||[],...n.DATA&&[n.DATA]||[],...t(n.children)],[])}}readMessage(e){let t;if((t=this.next()).done)return null;if(e!=null&&t.value.headerType!==e)throw Error(JC(e));return t.value}readSchema(){let e=O_.Schema,t=this.readMessage(e),n=t?.header();if(!t||!n)throw Error(YC(e));return n}};const tw=4,nw=`ARROW1`,rw=new Uint8Array(6);for(let e=0;e<6;e+=1)rw[e]=nw.codePointAt(e);function iw(e,t=0){for(let n=-1,r=rw.length;++nthis):this}readRecordBatch(e){return this._impl.isFile()?this._impl.readRecordBatch(e):null}[Symbol.iterator](){return this._impl[Symbol.iterator]()}[Symbol.asyncIterator](){return this._impl[Symbol.asyncIterator]()}toDOMStream(){return Cg.toDOMStream(this.isSync()?{[Symbol.iterator]:()=>this}:{[Symbol.asyncIterator]:()=>this})}toNodeStream(){return Cg.toNodeStream(this.isSync()?{[Symbol.iterator]:()=>this}:{[Symbol.asyncIterator]:()=>this},{objectMode:!0})}static throughNode(e){throw Error(`"throughNode" not available in this environment`)}static throughDOM(e,t){throw Error(`"throughDOM" not available in this environment`)}static from(t){return t instanceof e?t:Qh(t)?Sw(t):eg(t)?Tw(t):Yh(t)?(()=>Fh(this,void 0,void 0,function*(){return yield e.from(yield t)}))():tg(t)||ig(t)||og(t)||Zh(t)?ww(new pS(t)):Cw(new fS(t))}static readAll(t){return t instanceof e?t.isSync()?bw(t):xw(t):Qh(t)||ArrayBuffer.isView(t)||Xh(t)||$h(t)?bw(t):xw(t)}},lw=class extends cw{constructor(e){super(e),this._impl=e}readAll(){return[...this]}[Symbol.iterator](){return this._impl[Symbol.iterator]()}[Symbol.asyncIterator](){return Rh(this,arguments,function*(){yield Lh(yield*zh(Bh(this[Symbol.iterator]())))})}},uw=class extends cw{constructor(e){super(e),this._impl=e}readAll(){return Fh(this,void 0,void 0,function*(){var e,t,n,r;let i=[];try{for(var a=!0,o=Bh(this),s;s=yield o.next(),e=s.done,!e;a=!0){r=s.value,a=!1;let e=r;i.push(e)}}catch(e){t={error:e}}finally{try{!a&&!e&&(n=o.return)&&(yield n.call(o))}finally{if(t)throw t.error}}return i})}[Symbol.iterator](){throw Error(`AsyncRecordBatchStreamReader is not Iterable`)}[Symbol.asyncIterator](){return this._impl[Symbol.asyncIterator]()}},dw=class extends lw{constructor(e){super(e),this._impl=e}},fw=class extends uw{constructor(e){super(e),this._impl=e}},pw=class{get numDictionaries(){return this._dictionaryIndex}get numRecordBatches(){return this._recordBatchIndex}constructor(e=new Map){this.closed=!1,this.autoDestroy=!0,this._dictionaryIndex=0,this._recordBatchIndex=0,this.dictionaries=e}isSync(){return!1}isAsync(){return!1}isFile(){return!1}isStream(){return!1}reset(e){return this._dictionaryIndex=0,this._recordBatchIndex=0,this.schema=e,this.dictionaries=new Map,this}_loadRecordBatch(e,t){let n=this._loadVectors(e,t,this.schema.fields),r=wx({type:new Vv(this.schema.fields),length:e.length,children:n});return new eC(this.schema,r)}_loadDictionaryBatch(e,t){let{id:n,isDelta:r}=e,{dictionaries:i,schema:a}=this,o=i.get(n),s=a.dictionaries.get(n),c=this._loadVectors(e.data,t,[s]);return(o&&r?o.concat(new Jx(c)):new Jx(c)).memoize()}_loadVectors(e,t,n){return new ES(t,e.nodes,e.buffers,this.dictionaries,this.schema.metadataVersion).visitMany(n)}},mw=class extends pw{constructor(e,t){super(t),this._reader=Qh(e)?new ew(this._handle=e):new QC(this._handle=e)}isSync(){return!0}isStream(){return!0}[Symbol.iterator](){return this}cancel(){!this.closed&&(this.closed=!0)&&(this.reset()._reader.return(),this._reader=null,this.dictionaries=null)}open(e){return this.closed||(this.autoDestroy=yw(this,e),(this.schema||=this._reader.readSchema())||this.cancel()),this}throw(e){return!this.closed&&this.autoDestroy&&(this.closed=!0)?this.reset()._reader.throw(e):sS}return(e){return!this.closed&&this.autoDestroy&&(this.closed=!0)?this.reset()._reader.return(e):sS}next(){if(this.closed)return sS;let e,{_reader:t}=this;for(;e=this._readNextMessageAndValidate();)if(e.isSchema())this.reset(e.header());else if(e.isRecordBatch()){this._recordBatchIndex++;let n=e.header(),r=t.readMessageBody(e.bodyLength),i=this._loadRecordBatch(n,r);return{done:!1,value:i}}else if(e.isDictionaryBatch()){this._dictionaryIndex++;let n=e.header(),r=t.readMessageBody(e.bodyLength),i=this._loadDictionaryBatch(n,r);this.dictionaries.set(n.id,i)}return this.schema&&this._recordBatchIndex===0?(this._recordBatchIndex++,{done:!1,value:new rC(this.schema)}):this.return()}_readNextMessageAndValidate(e){return this._reader.readMessage(e)}},hw=class extends pw{constructor(e,t){super(t),this._reader=new $C(this._handle=e)}isAsync(){return!0}isStream(){return!0}[Symbol.asyncIterator](){return this}cancel(){return Fh(this,void 0,void 0,function*(){!this.closed&&(this.closed=!0)&&(yield this.reset()._reader.return(),this._reader=null,this.dictionaries=null)})}open(e){return Fh(this,void 0,void 0,function*(){return this.closed||(this.autoDestroy=yw(this,e),(this.schema||=yield this._reader.readSchema())||(yield this.cancel())),this})}throw(e){return Fh(this,void 0,void 0,function*(){return!this.closed&&this.autoDestroy&&(this.closed=!0)?yield this.reset()._reader.throw(e):sS})}return(e){return Fh(this,void 0,void 0,function*(){return!this.closed&&this.autoDestroy&&(this.closed=!0)?yield this.reset()._reader.return(e):sS})}next(){return Fh(this,void 0,void 0,function*(){if(this.closed)return sS;let e,{_reader:t}=this;for(;e=yield this._readNextMessageAndValidate();)if(e.isSchema())yield this.reset(e.header());else if(e.isRecordBatch()){this._recordBatchIndex++;let n=e.header(),r=yield t.readMessageBody(e.bodyLength),i=this._loadRecordBatch(n,r);return{done:!1,value:i}}else if(e.isDictionaryBatch()){this._dictionaryIndex++;let n=e.header(),r=yield t.readMessageBody(e.bodyLength),i=this._loadDictionaryBatch(n,r);this.dictionaries.set(n.id,i)}return this.schema&&this._recordBatchIndex===0?(this._recordBatchIndex++,{done:!1,value:new rC(this.schema)}):yield this.return()})}_readNextMessageAndValidate(e){return Fh(this,void 0,void 0,function*(){return yield this._reader.readMessage(e)})}},gw=class extends mw{get footer(){return this._footer}get numDictionaries(){return this._footer?this._footer.numDictionaries:0}get numRecordBatches(){return this._footer?this._footer.numRecordBatches:0}constructor(e,t){super(e instanceof gS?e:new gS(e),t)}isSync(){return!0}isFile(){return!0}open(e){if(!this.closed&&!this._footer){this.schema=(this._footer=this._readFooter()).schema;for(let e of this._footer.dictionaryBatches())e&&this._readDictionaryBatch(this._dictionaryIndex++)}return super.open(e)}readRecordBatch(e){var t;if(this.closed)return null;this._footer||this.open();let n=(t=this._footer)?.getRecordBatch(e);if(n&&this._handle.seek(n.offset)){let e=this._reader.readMessage(O_.RecordBatch);if(e?.isRecordBatch()){let t=e.header(),n=this._reader.readMessageBody(e.bodyLength),r=this._loadRecordBatch(t,n);return r}}return null}_readDictionaryBatch(e){var t;let n=(t=this._footer)?.getDictionaryBatch(e);if(n&&this._handle.seek(n.offset)){let e=this._reader.readMessage(O_.DictionaryBatch);if(e?.isDictionaryBatch()){let t=e.header(),n=this._reader.readMessageBody(e.bodyLength),r=this._loadDictionaryBatch(t,n);this.dictionaries.set(t.id,r)}}}_readFooter(){let{_handle:e}=this,t=e.size-ow,n=e.readInt32(t),r=e.readAt(t-n,n);return iS.decode(r)}_readNextMessageAndValidate(e){var t;if(this._footer||this.open(),this._footer&&this._recordBatchIndexsuper.open}});return Fh(this,void 0,void 0,function*(){if(!this.closed&&!this._footer){this.schema=(this._footer=yield this._readFooter()).schema;for(let e of this._footer.dictionaryBatches())e&&(yield this._readDictionaryBatch(this._dictionaryIndex++))}return yield t.open.call(this,e)})}readRecordBatch(e){return Fh(this,void 0,void 0,function*(){var t;if(this.closed)return null;this._footer||(yield this.open());let n=(t=this._footer)?.getRecordBatch(e);if(n&&(yield this._handle.seek(n.offset))){let e=yield this._reader.readMessage(O_.RecordBatch);if(e?.isRecordBatch()){let t=e.header(),n=yield this._reader.readMessageBody(e.bodyLength),r=this._loadRecordBatch(t,n);return r}}return null})}_readDictionaryBatch(e){return Fh(this,void 0,void 0,function*(){var t;let n=(t=this._footer)?.getDictionaryBatch(e);if(n&&(yield this._handle.seek(n.offset))){let e=yield this._reader.readMessage(O_.DictionaryBatch);if(e?.isDictionaryBatch()){let t=e.header(),n=yield this._reader.readMessageBody(e.bodyLength),r=this._loadDictionaryBatch(t,n);this.dictionaries.set(t.id,r)}}})}_readFooter(){return Fh(this,void 0,void 0,function*(){let{_handle:e}=this;e._pending&&(yield e._pending);let t=e.size-ow,n=yield e.readInt32(t),r=yield e.readAt(t-n,n);return iS.decode(r)})}_readNextMessageAndValidate(e){return Fh(this,void 0,void 0,function*(){if(this._footer||(yield this.open()),this._footer&&this._recordBatchIndex=4?iw(t)?new dw(new gw(e.read())):new lw(new mw(e)):new lw(new mw(function*(){}()))}function ww(e){return Fh(this,void 0,void 0,function*(){let t=yield e.peek(aw+7&-8);return t&&t.byteLength>=4?iw(t)?new dw(new gw(yield e.read())):new uw(new hw(e)):new uw(new hw(function(){return Rh(this,arguments,function*(){})}()))})}function Tw(e){return Fh(this,void 0,void 0,function*(){let{size:t}=yield e.stat(),n=new _S(e,t);return t>=sw&&iw(yield n.readAt(0,aw+7&-8))?new fw(new _w(n)):new uw(new hw(n))})}var Ew=class e extends Yv{static assemble(...t){let n=e=>e.flatMap(e=>Array.isArray(e)?n(e):e instanceof eC?e.data.children:e.data),r=new e;return r.visitMany(n(t)),r}constructor(){super(),this._byteLength=0,this._nodes=[],this._buffers=[],this._bufferRegions=[]}visit(e){if(e instanceof Jx)return this.visitMany(e.data),this;let{type:t}=e;if(!mv.isDictionary(t)){let{length:n}=e;if(n>2147483647)throw RangeError(`Cannot write arrays larger than 2^31 - 1 in length`);if(mv.isUnion(t))this.nodes.push(new TC(n,0));else{let{nullCount:r}=e;mv.isNull(t)||Dw.call(this,r<=0?new Uint8Array:mx(e.offset,n,e.nullBitmap)),this.nodes.push(new TC(n,r))}}return super.visit(e)}visitNull(e){return this}visitDictionary(e){return this.visit(e.clone(e.type.indices))}get nodes(){return this._nodes}get buffers(){return this._buffers}get byteLength(){return this._byteLength}get bufferRegions(){return this._bufferRegions}};function Dw(e){let t=e.byteLength+7&-8;return this.buffers.push(e),this.bufferRegions.push(new wC(this._byteLength,t)),this._byteLength+=t,this}function Ow(e){var t;let{type:n,length:r,typeIds:i,valueOffsets:a}=e;if(Dw.call(this,i),n.mode===Mg.Sparse)return Nw.call(this,e);if(n.mode===Mg.Dense){if(e.offset<=0)return Dw.call(this,a),Nw.call(this,e);{let o=new Int32Array(r),s=Object.create(null),c=Object.create(null);for(let e,n,l=-1;++l{let i=n.typeIds[t],a=s[i],o=c[i];return e.slice(a,Math.min(r,o))}))}}return this}function kw(e){let t;return e.nullCount>=e.length?Dw.call(this,new Uint8Array):(t=e.values)instanceof Uint8Array?Dw.call(this,mx(e.offset,e.length,t)):Dw.call(this,hx(e.values))}function Aw(e){return Dw.call(this,e.values.subarray(0,e.length*e.stride))}function jw(e){let{length:t,values:n,valueOffsets:r}=e,i=M_(r[0]),a=M_(r[t]),o=Math.min(a-i,n.byteLength-i);return Dw.call(this,xg(-i,t+1,r)),Dw.call(this,n.subarray(i,i+o)),this}function Mw(e){let{length:t,valueOffsets:n}=e;if(n){let{0:r,[t]:i}=n;return Dw.call(this,xg(-r,t+1,n)),this.visit(e.children[0].slice(r,i-r))}return this.visit(e.children[0])}function Nw(e){return this.visitMany(e.type.children.map((t,n)=>e.children[n]).filter(Boolean))[0]}Ew.prototype.visitBool=kw,Ew.prototype.visitInt=Aw,Ew.prototype.visitFloat=Aw,Ew.prototype.visitUtf8=jw,Ew.prototype.visitLargeUtf8=jw,Ew.prototype.visitBinary=jw,Ew.prototype.visitLargeBinary=jw,Ew.prototype.visitFixedSizeBinary=Aw,Ew.prototype.visitDate=Aw,Ew.prototype.visitTimestamp=Aw,Ew.prototype.visitTime=Aw,Ew.prototype.visitDecimal=Aw,Ew.prototype.visitList=Mw,Ew.prototype.visitStruct=Nw,Ew.prototype.visitUnion=Ow,Ew.prototype.visitInterval=Aw,Ew.prototype.visitDuration=Aw,Ew.prototype.visitFixedSizeList=Mw,Ew.prototype.visitMap=Mw;var Pw=class extends lS{static throughNode(e){throw Error(`"throughNode" not available in this environment`)}static throughDOM(e,t){throw Error(`"throughDOM" not available in this environment`)}constructor(e){super(),this._position=0,this._started=!1,this._sink=new dS,this._schema=null,this._dictionaryBlocks=[],this._recordBatchBlocks=[],this._seenDictionaries=new Map,this._dictionaryDeltaOffsets=new Map,Jh(e)||(e={autoDestroy:!0,writeLegacyIpcFormat:!1}),this._autoDestroy=typeof e.autoDestroy==`boolean`?e.autoDestroy:!0,this._writeLegacyIpcFormat=typeof e.writeLegacyIpcFormat==`boolean`?e.writeLegacyIpcFormat:!1}toString(e=!1){return this._sink.toString(e)}toUint8Array(e=!1){return this._sink.toUint8Array(e)}writeAll(e){return Yh(e)?e.then(e=>this.writeAll(e)):Zh(e)?Rw(this,e):Lw(this,e)}get closed(){return this._sink.closed}[Symbol.asyncIterator](){return this._sink[Symbol.asyncIterator]()}toDOMStream(e){return this._sink.toDOMStream(e)}toNodeStream(e){return this._sink.toNodeStream(e)}close(){return this.reset()._sink.close()}abort(e){return this.reset()._sink.abort(e)}finish(){return this._autoDestroy?this.close():this.reset(this._sink,this._schema),this}reset(e=this._sink,t=null){return e===this._sink||e instanceof dS?this._sink=e:(this._sink=new dS,e&&rg(e)?this.toDOMStream({type:`bytes`}).pipeTo(e):e&&ag(e)&&this.toNodeStream({objectMode:!1}).pipe(e)),this._started&&this._schema&&this._writeFooter(this._schema),this._started=!1,this._dictionaryBlocks=[],this._recordBatchBlocks=[],this._seenDictionaries=new Map,this._dictionaryDeltaOffsets=new Map,(!t||!qS(t,this._schema))&&(t==null?(this._position=0,this._schema=null):(this._started=!0,this._schema=t,this._writeSchema(t))),this}write(e){let t=null;if(this._sink){if(e==null||e instanceof QS&&!(t=e.schema)||e instanceof eC&&!(t=e.schema))return this.finish()&&void 0}else throw Error(`RecordBatchWriter is closed`);if(t&&!qS(t,this._schema)){if(this._started&&this._autoDestroy)return this.close();this.reset(this._sink,t)}e instanceof eC?e instanceof rC||this._writeRecordBatch(e):e instanceof QS?this.writeAll(e.batches):Xh(e)&&this.writeAll(e)}_writeMessage(e,t=8){let n=t-1,r=xC.encode(e),i=r.byteLength,a=this._writeLegacyIpcFormat?4:8,o=i+a+n&~n,s=o-i-a;return e.headerType===O_.RecordBatch?this._recordBatchBlocks.push(new oS(o,e.bodyLength,this._position)):e.headerType===O_.DictionaryBatch&&this._dictionaryBlocks.push(new oS(o,e.bodyLength,this._position)),this._writeLegacyIpcFormat||this._write(Int32Array.of(-1)),this._write(Int32Array.of(o-a)),i>0&&this._write(r),this._writePadding(s)}_write(e){if(this._started){let t=hg(e);t&&t.byteLength>0&&(this._sink.write(t),this._position+=t.byteLength)}return this}_writeSchema(e){return this._writeMessage(xC.from(e))}_writeFooter(e){return this._writeLegacyIpcFormat?this._write(Int32Array.of(0)):this._write(Int32Array.of(-1,0))}_writeMagic(){return this._write(rw)}_writePadding(e){return e>0?this._write(new Uint8Array(e)):this}_writeRecordBatch(e){let{byteLength:t,nodes:n,bufferRegions:r,buffers:i}=Ew.assemble(e),a=new SC(e.numRows,n,r),o=xC.from(a,t);return this._writeDictionaries(e)._writeMessage(o)._writeBodyBuffers(i)}_writeDictionaryBatch(e,t,n=!1){let{byteLength:r,nodes:i,bufferRegions:a,buffers:o}=Ew.assemble(new Jx([e])),s=new SC(e.length,i,a),c=new CC(s,t,n),l=xC.from(c,r);return this._writeMessage(l)._writeBodyBuffers(o)}_writeBodyBuffers(e){let t,n,r;for(let i=-1,a=e.length;++i0&&(this._write(t),(r=(n+7&-8)-n)>0&&this._writePadding(r));return this}_writeDictionaries(e){var t,n;for(let[r,i]of e.dictionaries){let e=(t=i?.data)??[],a=this._seenDictionaries.get(r),o=(n=this._dictionaryDeltaOffsets.get(r))??0;if(!a||a.data[0]!==e[0])for(let[t,n]of e.entries())this._writeDictionaryBatch(n,r,t>0);else if(or.writeAll(e)):Zh(t)?Rw(r,t):Lw(r,t)}},Iw=class e extends Pw{static writeAll(t){let n=new e;return Yh(t)?t.then(e=>n.writeAll(e)):Zh(t)?Rw(n,t):Lw(n,t)}constructor(){super(),this._autoDestroy=!0}_writeSchema(e){return this._writeMagic()._writePadding(2)}_writeDictionaryBatch(e,t,n=!1){if(!n&&this._seenDictionaries.has(t))throw Error(`The Arrow File format does not support replacement dictionaries. `);return super._writeDictionaryBatch(e,t,n)}_writeFooter(e){let t=iS.encode(new iS(e,jg.V5,this._recordBatchBlocks,this._dictionaryBlocks));return super._writeFooter(e)._write(t)._write(Int32Array.of(t.byteLength))._writeMagic()}};function Lw(e,t){let n=t;t instanceof QS&&(n=t.batches,e.reset(void 0,t.schema));for(let t of n)e.write(t);return e.finish()}function Rw(e,t){return Fh(this,void 0,void 0,function*(){var n,r,i,a,o,s,c;try{for(n=!0,r=Bh(t);i=yield r.next(),a=i.done,!a;n=!0){c=i.value,n=!1;let t=c;e.write(t)}}catch(e){o={error:e}}finally{try{!n&&!a&&(s=r.return)&&(yield s.call(r))}finally{if(o)throw o.error}}return e.finish()})}function zw(e,t=`stream`){return(t===`stream`?Fw:Iw).writeAll(e).toUint8Array(!0)}var Bw=Object.create,Vw=Object.defineProperty,Hw=Object.getOwnPropertyDescriptor,Uw=Object.getOwnPropertyNames,Ww=Object.getPrototypeOf,Gw=Object.prototype.hasOwnProperty,Kw=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),qw=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let i of Uw(t))!Gw.call(e,i)&&i!==n&&Vw(e,i,{get:()=>t[i],enumerable:!(r=Hw(t,i))||r.enumerable});return e},Jw=(e,t,n)=>(n=e==null?{}:Bw(Ww(e)),qw(t||!e||!e.__esModule?Vw(n,`default`,{value:e,enumerable:!0}):n,e)),Yw=Kw((e,t)=>{t.exports=Worker}),Xw=(e=>(e[e.UNDEFINED=0]=`UNDEFINED`,e[e.AUTOMATIC=1]=`AUTOMATIC`,e[e.READ_ONLY=2]=`READ_ONLY`,e[e.READ_WRITE=3]=`READ_WRITE`,e))(Xw||{}),Zw=(e=>(e[e.IDENTIFIER=0]=`IDENTIFIER`,e[e.NUMERIC_CONSTANT=1]=`NUMERIC_CONSTANT`,e[e.STRING_CONSTANT=2]=`STRING_CONSTANT`,e[e.OPERATOR=3]=`OPERATOR`,e[e.KEYWORD=4]=`KEYWORD`,e[e.COMMENT=5]=`COMMENT`,e))(Zw||{}),Qw=(e=>(e[e.NONE=0]=`NONE`,e[e.DEBUG=1]=`DEBUG`,e[e.INFO=2]=`INFO`,e[e.WARNING=3]=`WARNING`,e[e.ERROR=4]=`ERROR`,e))(Qw||{}),$w=(e=>(e[e.NONE=0]=`NONE`,e[e.CONNECT=1]=`CONNECT`,e[e.DISCONNECT=2]=`DISCONNECT`,e[e.OPEN=3]=`OPEN`,e[e.QUERY=4]=`QUERY`,e[e.INSTANTIATE=5]=`INSTANTIATE`,e))($w||{}),eT=(e=>(e[e.NONE=0]=`NONE`,e[e.OK=1]=`OK`,e[e.ERROR=2]=`ERROR`,e[e.START=3]=`START`,e[e.RUN=4]=`RUN`,e[e.CAPTURE=5]=`CAPTURE`,e))(eT||{}),tT=(e=>(e[e.NONE=0]=`NONE`,e[e.WEB_WORKER=1]=`WEB_WORKER`,e[e.NODE_WORKER=2]=`NODE_WORKER`,e[e.BINDINGS=3]=`BINDINGS`,e[e.ASYNC_DUCKDB=4]=`ASYNC_DUCKDB`,e))(tT||{}),nT=class{log(e){}},rT=class{constructor(e=2){this.level=e}log(e){e.level>=this.level&&console.log(e)}},iT=(e=>(e[e.SUCCESS=0]=`SUCCESS`,e))(iT||{}),aT=class{constructor(e,t){this._bindings=e,this._conn=t}get bindings(){return this._bindings}async close(){return this._bindings.disconnect(this._conn)}useUnsafe(e){return e(this._bindings,this._conn)}async query(e){this._bindings.logger.log({timestamp:new Date,level:2,origin:4,topic:4,event:4,value:e});let t=await this._bindings.runQuery(this._conn,e),n=cw.from(t);return console.assert(n.isSync(),`Reader is not sync`),console.assert(n.isFile(),`Reader is not file`),new QS(n)}async send(e,t=!1){this._bindings.logger.log({timestamp:new Date,level:2,origin:4,topic:4,event:4,value:e});let n=await this._bindings.startPendingQuery(this._conn,e,t);for(;n==null;)n=await this._bindings.pollPendingQuery(this._conn);let r=new oT(this._bindings,this._conn,n),i=await cw.from(r);return console.assert(i.isAsync()),console.assert(i.isStream()),i}async cancelSent(){return await this._bindings.cancelPendingQuery(this._conn)}async getTableNames(e){return await this._bindings.getTableNames(this._conn,e)}async prepare(e){let t=await this._bindings.createPrepared(this._conn,e);return new sT(this._bindings,this._conn,t)}async insertArrowTable(e,t){let n=zw(e,`stream`);await this.insertArrowFromIPCStream(n,t)}async insertArrowFromIPCStream(e,t){await this._bindings.insertArrowFromIPCStream(this._conn,e,t)}async insertCSVFromPath(e,t){await this._bindings.insertCSVFromPath(this._conn,e,t)}async insertJSONFromPath(e,t){await this._bindings.insertJSONFromPath(this._conn,e,t)}},oT=class{constructor(e,t,n){this.db=e,this.conn=t,this.header=n,this._first=!0,this._depleted=!1,this._inFlight=null}async next(){if(this._first)return this._first=!1,{done:!1,value:this.header};if(this._depleted)return{done:!0,value:null};let e;return this._inFlight==null?e=await this.db.fetchQueryResults(this.conn):(e=await this._inFlight,this._inFlight=null),this._depleted=e.length==0,this._depleted||(this._inFlight=this.db.fetchQueryResults(this.conn)),{done:this._depleted,value:e}}[Symbol.asyncIterator](){return this}},sT=class{constructor(e,t,n){this.bindings=e,this.connectionId=t,this.statementId=n}async close(){await this.bindings.closePrepared(this.connectionId,this.statementId)}async query(...e){let t=await this.bindings.runPrepared(this.connectionId,this.statementId,e),n=cw.from(t);return console.assert(n.isSync()),console.assert(n.isFile()),new QS(n)}async send(...e){let t=await this.bindings.sendPrepared(this.connectionId,this.statementId,e),n=new oT(this.bindings,this.connectionId,t),r=await cw.from(n);return console.assert(r.isAsync()),console.assert(r.isStream()),r}},cT=(e=>(e.CANCEL_PENDING_QUERY=`CANCEL_PENDING_QUERY`,e.CLOSE_PREPARED=`CLOSE_PREPARED`,e.COLLECT_FILE_STATISTICS=`COLLECT_FILE_STATISTICS`,e.REGISTER_OPFS_FILE_NAME=`REGISTER_OPFS_FILE_NAME`,e.CONNECT=`CONNECT`,e.COPY_FILE_TO_BUFFER=`COPY_FILE_TO_BUFFER`,e.COPY_FILE_TO_PATH=`COPY_FILE_TO_PATH`,e.CREATE_PREPARED=`CREATE_PREPARED`,e.DISCONNECT=`DISCONNECT`,e.DROP_FILE=`DROP_FILE`,e.DROP_FILES=`DROP_FILES`,e.EXPORT_FILE_STATISTICS=`EXPORT_FILE_STATISTICS`,e.FETCH_QUERY_RESULTS=`FETCH_QUERY_RESULTS`,e.FLUSH_FILES=`FLUSH_FILES`,e.GET_FEATURE_FLAGS=`GET_FEATURE_FLAGS`,e.GET_TABLE_NAMES=`GET_TABLE_NAMES`,e.GET_VERSION=`GET_VERSION`,e.GLOB_FILE_INFOS=`GLOB_FILE_INFOS`,e.INSERT_ARROW_FROM_IPC_STREAM=`INSERT_ARROW_FROM_IPC_STREAM`,e.INSERT_CSV_FROM_PATH=`IMPORT_CSV_FROM_PATH`,e.INSERT_JSON_FROM_PATH=`IMPORT_JSON_FROM_PATH`,e.INSTANTIATE=`INSTANTIATE`,e.OPEN=`OPEN`,e.PING=`PING`,e.POLL_PENDING_QUERY=`POLL_PENDING_QUERY`,e.REGISTER_FILE_BUFFER=`REGISTER_FILE_BUFFER`,e.REGISTER_FILE_HANDLE=`REGISTER_FILE_HANDLE`,e.REGISTER_FILE_URL=`REGISTER_FILE_URL`,e.RESET=`RESET`,e.RUN_PREPARED=`RUN_PREPARED`,e.RUN_QUERY=`RUN_QUERY`,e.SEND_PREPARED=`SEND_PREPARED`,e.START_PENDING_QUERY=`START_PENDING_QUERY`,e.TOKENIZE=`TOKENIZE`,e))(cT||{}),lT=(e=>(e.CONNECTION_INFO=`CONNECTION_INFO`,e.ERROR=`ERROR`,e.FEATURE_FLAGS=`FEATURE_FLAGS`,e.FILE_BUFFER=`FILE_BUFFER`,e.FILE_INFOS=`FILE_INFOS`,e.FILE_SIZE=`FILE_SIZE`,e.FILE_STATISTICS=`FILE_STATISTICS`,e.INSTANTIATE_PROGRESS=`INSTANTIATE_PROGRESS`,e.LOG=`LOG`,e.OK=`OK`,e.PREPARED_STATEMENT_ID=`PREPARED_STATEMENT_ID`,e.QUERY_PLAN=`QUERY_PLAN`,e.QUERY_RESULT=`QUERY_RESULT`,e.QUERY_RESULT_CHUNK=`QUERY_RESULT_CHUNK`,e.QUERY_RESULT_HEADER=`QUERY_RESULT_HEADER`,e.QUERY_RESULT_HEADER_OR_NULL=`QUERY_RESULT_HEADER_OR_NULL`,e.REGISTERED_FILE=`REGISTERED_FILE`,e.SCRIPT_TOKENS=`SCRIPT_TOKENS`,e.SUCCESS=`SUCCESS`,e.TABLE_NAMES=`TABLE_NAMES`,e.VERSION_STRING=`VERSION_STRING`,e))(lT||{}),uT=class{constructor(e,t){this.promiseResolver=()=>{},this.promiseRejecter=()=>{},this.type=e,this.data=t,this.promise=new Promise((e,t)=>{this.promiseResolver=e,this.promiseRejecter=t})}};function dT(e){switch(e.typeId){case K.Binary:return{sqlType:`binary`};case K.Bool:return{sqlType:`bool`};case K.Date:return{sqlType:`date`};case K.DateDay:return{sqlType:`date32[d]`};case K.DateMillisecond:return{sqlType:`date64[ms]`};case K.Decimal:{let t=e;return{sqlType:`decimal`,precision:t.precision,scale:t.scale}}case K.Float:return{sqlType:`float`};case K.Float16:return{sqlType:`float16`};case K.Float32:return{sqlType:`float32`};case K.Float64:return{sqlType:`float64`};case K.Int:return{sqlType:`int32`};case K.Int16:return{sqlType:`int16`};case K.Int32:return{sqlType:`int32`};case K.Int64:return{sqlType:`int64`};case K.Uint16:return{sqlType:`uint16`};case K.Uint32:return{sqlType:`uint32`};case K.Uint64:return{sqlType:`uint64`};case K.Uint8:return{sqlType:`uint8`};case K.IntervalDayTime:return{sqlType:`interval[dt]`};case K.IntervalYearMonth:return{sqlType:`interval[m]`};case K.List:return{sqlType:`list`,valueType:dT(e.valueType)};case K.FixedSizeBinary:return{sqlType:`fixedsizebinary`,byteWidth:e.byteWidth};case K.Null:return{sqlType:`null`};case K.Utf8:return{sqlType:`utf8`};case K.Struct:return{sqlType:`struct`,fields:e.children.map(e=>fT(e.name,e.type))};case K.Map:{let t=e;return{sqlType:`map`,keyType:dT(t.keyType),valueType:dT(t.valueType)}}case K.Time:return{sqlType:`time[s]`};case K.TimeMicrosecond:return{sqlType:`time[us]`};case K.TimeMillisecond:return{sqlType:`time[ms]`};case K.TimeNanosecond:return{sqlType:`time[ns]`};case K.TimeSecond:return{sqlType:`time[s]`};case K.Timestamp:return{sqlType:`timestamp`,timezone:e.timezone||void 0};case K.TimestampSecond:return{sqlType:`timestamp[s]`,timezone:e.timezone||void 0};case K.TimestampMicrosecond:return{sqlType:`timestamp[us]`,timezone:e.timezone||void 0};case K.TimestampNanosecond:return{sqlType:`timestamp[ns]`,timezone:e.timezone||void 0};case K.TimestampMillisecond:return{sqlType:`timestamp[ms]`,timezone:e.timezone||void 0}}throw Error(`unsupported arrow type: ${e.toString()}`)}function fT(e,t){let n=dT(t);return n.name=e,n}var pT=new TextEncoder,mT=class{constructor(e,t=null){this._onInstantiationProgress=[],this._worker=null,this._workerShutdownPromise=null,this._workerShutdownResolver=()=>{},this._nextMessageId=0,this._pendingRequests=new Map,this._logger=e,this._onMessageHandler=this.onMessage.bind(this),this._onErrorHandler=this.onError.bind(this),this._onCloseHandler=this.onClose.bind(this),t!=null&&this.attach(t)}get logger(){return this._logger}attach(e){this._worker=e,this._worker.addEventListener(`message`,this._onMessageHandler),this._worker.addEventListener(`error`,this._onErrorHandler),this._worker.addEventListener(`close`,this._onCloseHandler),this._workerShutdownPromise=new Promise((e,t)=>{this._workerShutdownResolver=e})}detach(){this._worker&&(this._worker.removeEventListener(`message`,this._onMessageHandler),this._worker.removeEventListener(`error`,this._onErrorHandler),this._worker.removeEventListener(`close`,this._onCloseHandler),this._worker=null,this._workerShutdownResolver(null),this._workerShutdownPromise=null,this._workerShutdownResolver=()=>{})}async terminate(){this._worker&&(this._worker.terminate(),this._worker=null,this._workerShutdownPromise=null,this._workerShutdownResolver=()=>{})}async postTask(e,t=[]){if(!this._worker){console.error(`cannot send a message since the worker is not set!`);return}let n=this._nextMessageId++;return this._pendingRequests.set(n,e),this._worker.postMessage({messageId:n,type:e.type,data:e.data},t),await e.promise}onMessage(e){var t;let n=e.data;switch(n.type){case`LOG`:this._logger.log(n.data);return;case`INSTANTIATE_PROGRESS`:for(let e of this._onInstantiationProgress)e(n.data);return}let r=this._pendingRequests.get(n.requestId);if(!r){console.warn(`unassociated response: [${n.requestId}, ${n.type.toString()}]`);return}if(this._pendingRequests.delete(n.requestId),n.type==`ERROR`){let e=Error(n.data.message);e.name=n.data.name,(t=Object.getOwnPropertyDescriptor(e,`stack`))!=null&&t.writable&&(e.stack=n.data.stack),r.promiseRejecter(e);return}switch(r.type){case`CLOSE_PREPARED`:case`COLLECT_FILE_STATISTICS`:case`REGISTER_OPFS_FILE_NAME`:case`COPY_FILE_TO_PATH`:case`DISCONNECT`:case`DROP_FILE`:case`DROP_FILES`:case`FLUSH_FILES`:case`INSERT_ARROW_FROM_IPC_STREAM`:case`IMPORT_CSV_FROM_PATH`:case`IMPORT_JSON_FROM_PATH`:case`OPEN`:case`PING`:case`REGISTER_FILE_BUFFER`:case`REGISTER_FILE_HANDLE`:case`REGISTER_FILE_URL`:case`RESET`:if(n.type==`OK`){r.promiseResolver(n.data);return}break;case`INSTANTIATE`:if(this._onInstantiationProgress=[],n.type==`OK`){r.promiseResolver(n.data);return}break;case`GLOB_FILE_INFOS`:if(n.type==`FILE_INFOS`){r.promiseResolver(n.data);return}break;case`GET_VERSION`:if(n.type==`VERSION_STRING`){r.promiseResolver(n.data);return}break;case`GET_FEATURE_FLAGS`:if(n.type==`FEATURE_FLAGS`){r.promiseResolver(n.data);return}break;case`GET_TABLE_NAMES`:if(n.type==`TABLE_NAMES`){r.promiseResolver(n.data);return}break;case`TOKENIZE`:if(n.type==`SCRIPT_TOKENS`){r.promiseResolver(n.data);return}break;case`COPY_FILE_TO_BUFFER`:if(n.type==`FILE_BUFFER`){r.promiseResolver(n.data);return}break;case`EXPORT_FILE_STATISTICS`:if(n.type==`FILE_STATISTICS`){r.promiseResolver(n.data);return}break;case`CONNECT`:if(n.type==`CONNECTION_INFO`){r.promiseResolver(n.data);return}break;case`RUN_PREPARED`:case`RUN_QUERY`:if(n.type==`QUERY_RESULT`){r.promiseResolver(n.data);return}break;case`SEND_PREPARED`:if(n.type==`QUERY_RESULT_HEADER`){r.promiseResolver(n.data);return}break;case`START_PENDING_QUERY`:if(n.type==`QUERY_RESULT_HEADER_OR_NULL`){r.promiseResolver(n.data);return}break;case`POLL_PENDING_QUERY`:if(n.type==`QUERY_RESULT_HEADER_OR_NULL`){r.promiseResolver(n.data);return}break;case`CANCEL_PENDING_QUERY`:if(this._onInstantiationProgress=[],n.type==`SUCCESS`){r.promiseResolver(n.data);return}break;case`FETCH_QUERY_RESULTS`:if(n.type==`QUERY_RESULT_CHUNK`){r.promiseResolver(n.data);return}break;case`CREATE_PREPARED`:if(n.type==`PREPARED_STATEMENT_ID`){r.promiseResolver(n.data);return}break}r.promiseRejecter(Error(`unexpected response type: ${n.type.toString()}`))}onError(e){console.error(e),console.error(`error in duckdb worker: ${e.message}`),this._pendingRequests.clear()}onClose(){if(this._workerShutdownResolver(null),this._pendingRequests.size!=0){console.warn(`worker terminated with ${this._pendingRequests.size} pending requests`);return}this._pendingRequests.clear()}async reset(){let e=new uT(`RESET`,null);return await this.postTask(e)}async ping(){let e=new uT(`PING`,null);await this.postTask(e)}async dropFile(e){let t=new uT(`DROP_FILE`,e);return await this.postTask(t)}async dropFiles(){let e=new uT(`DROP_FILES`,null);return await this.postTask(e)}async flushFiles(){let e=new uT(`FLUSH_FILES`,null);return await this.postTask(e)}async instantiate(e,t=null,n=e=>{}){this._onInstantiationProgress.push(n);let r=new uT(`INSTANTIATE`,[e,t]);return await this.postTask(r)}async getVersion(){let e=new uT(`GET_VERSION`,null);return await this.postTask(e)}async getFeatureFlags(){let e=new uT(`GET_FEATURE_FLAGS`,null);return await this.postTask(e)}async open(e){let t=new uT(`OPEN`,e);await this.postTask(t)}async tokenize(e){let t=new uT(`TOKENIZE`,e);return await this.postTask(t)}async connectInternal(){let e=new uT(`CONNECT`,null);return await this.postTask(e)}async connect(){let e=await this.connectInternal();return new aT(this,e)}async disconnect(e){let t=new uT(`DISCONNECT`,e);await this.postTask(t)}async runQuery(e,t){let n=new uT(`RUN_QUERY`,[e,t]);return await this.postTask(n)}async startPendingQuery(e,t,n=!1){let r=new uT(`START_PENDING_QUERY`,[e,t,n]);return await this.postTask(r)}async pollPendingQuery(e){let t=new uT(`POLL_PENDING_QUERY`,e);return await this.postTask(t)}async cancelPendingQuery(e){let t=new uT(`CANCEL_PENDING_QUERY`,e);return await this.postTask(t)}async fetchQueryResults(e){let t=new uT(`FETCH_QUERY_RESULTS`,e);return await this.postTask(t)}async getTableNames(e,t){let n=new uT(`GET_TABLE_NAMES`,[e,t]);return await this.postTask(n)}async createPrepared(e,t){let n=new uT(`CREATE_PREPARED`,[e,t]);return await this.postTask(n)}async closePrepared(e,t){let n=new uT(`CLOSE_PREPARED`,[e,t]);await this.postTask(n)}async runPrepared(e,t,n){let r=new uT(`RUN_PREPARED`,[e,t,n]);return await this.postTask(r)}async sendPrepared(e,t,n){let r=new uT(`SEND_PREPARED`,[e,t,n]);return await this.postTask(r)}async globFiles(e){let t=new uT(`GLOB_FILE_INFOS`,e);return await this.postTask(t)}async registerFileText(e,t){let n=pT.encode(t);await this.registerFileBuffer(e,n)}async registerFileURL(e,t,n,r){t===void 0&&(t=e);let i=new uT(`REGISTER_FILE_URL`,[e,t,n,r]);await this.postTask(i)}async registerEmptyFileBuffer(e){}async registerFileBuffer(e,t){let n=new uT(`REGISTER_FILE_BUFFER`,[e,t]);await this.postTask(n,[t.buffer])}async registerFileHandle(e,t,n,r){let i=new uT(`REGISTER_FILE_HANDLE`,[e,t,n,r]);await this.postTask(i,[])}async registerOPFSFileName(e){let t=new uT(`REGISTER_OPFS_FILE_NAME`,[e]);await this.postTask(t,[])}async collectFileStatistics(e,t){let n=new uT(`COLLECT_FILE_STATISTICS`,[e,t]);await this.postTask(n,[])}async exportFileStatistics(e){let t=new uT(`EXPORT_FILE_STATISTICS`,e);return await this.postTask(t,[])}async copyFileToBuffer(e){let t=new uT(`COPY_FILE_TO_BUFFER`,e);return await this.postTask(t)}async copyFileToPath(e,t){let n=new uT(`COPY_FILE_TO_PATH`,[e,t]);await this.postTask(n)}async insertArrowFromIPCStream(e,t,n){if(t.length==0)return;let r=new uT(`INSERT_ARROW_FROM_IPC_STREAM`,[e,t,n]);await this.postTask(r,[t.buffer])}async insertCSVFromPath(e,t,n){if(n.columns!==void 0){let e=[];for(let t in n.columns){let r=n.columns[t];e.push(fT(t,r))}n.columnsFlat=e,delete n.columns}let r=new uT(`IMPORT_CSV_FROM_PATH`,[e,t,n]);await this.postTask(r)}async insertJSONFromPath(e,t,n){if(n.columns!==void 0){let e=[];for(let t in n.columns){let r=n.columns[t];e.push(fT(t,r))}n.columnsFlat=e,delete n.columns}let r=new uT(`IMPORT_JSON_FROM_PATH`,[e,t,n]);await this.postTask(r)}};function hT(){let e=new TextDecoder;return t=>(typeof SharedArrayBuffer<`u`&&t.buffer instanceof SharedArrayBuffer&&(t=new Uint8Array(t)),e.decode(t))}var gT=hT(),_T=(e=>(e[e.BUFFER=0]=`BUFFER`,e[e.NODE_FS=1]=`NODE_FS`,e[e.BROWSER_FILEREADER=2]=`BROWSER_FILEREADER`,e[e.BROWSER_FSACCESS=3]=`BROWSER_FSACCESS`,e[e.HTTP=4]=`HTTP`,e[e.S3=5]=`S3`,e))(_T||{}),vT=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,3,1,0,1,10,14,1,12,0,65,0,65,0,65,0,252,10,0,0,11])),yT=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11])),bT=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),xT=()=>(async e=>{try{return typeof MessageChannel<`u`&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(e)}catch{return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11])),ST={name:`@duckdb/duckdb-wasm`,version:`1.29.1-dev68.0`,description:`DuckDB powered by WebAssembly`,license:`MIT`,repository:{type:`git`,url:`https://github.com/duckdb/duckdb-wasm.git`},keywords:[`sql`,`duckdb`,`relational`,`database`,`data`,`query`,`wasm`,`analytics`,`olap`,`arrow`,`parquet`,`json`,`csv`],dependencies:{"apache-arrow":`^17.0.0`},devDependencies:{"@types/emscripten":`^1.39.10`,"@types/jasmine":`^5.1.4`,"@typescript-eslint/eslint-plugin":`^6.21.0`,"@typescript-eslint/parser":`^6.21.0`,esbuild:`^0.20.2`,eslint:`^8.57.0`,"eslint-plugin-jasmine":`^4.1.3`,"eslint-plugin-react":`^7.34.0`,"fast-glob":`^3.3.2`,jasmine:`^5.1.0`,"jasmine-core":`^5.1.2`,"jasmine-spec-reporter":`^7.0.0`,"js-sha256":`^0.11.0`,karma:`^6.4.2`,"karma-chrome-launcher":`^3.2.0`,"karma-coverage":`^2.2.1`,"karma-firefox-launcher":`^2.1.3`,"karma-jasmine":`^5.1.0`,"karma-jasmine-html-reporter":`^2.1.0`,"karma-sourcemap-loader":`^0.4.0`,"karma-spec-reporter":`^0.0.36`,"make-dir":`^4.0.0`,nyc:`^15.1.0`,prettier:`^3.2.5`,puppeteer:`^22.8.0`,rimraf:`^5.0.5`,s3rver:`^3.7.1`,typedoc:`^0.25.13`,typescript:`^5.3.3`,"wasm-feature-detect":`^1.6.1`,"web-worker":`^1.2.0`},scripts:{"build:debug":`node bundle.mjs debug && tsc --emitDeclarationOnly`,"build:release":`node bundle.mjs release && tsc --emitDeclarationOnly`,docs:`typedoc`,report:`node ./coverage.mjs`,"test:node":`node --enable-source-maps ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs`,"test:node:debug":`node --inspect-brk --enable-source-maps ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs`,"test:node:coverage":`nyc -r json --report-dir ./coverage/node node ../../node_modules/jasmine/bin/jasmine ./dist/tests-node.cjs`,"test:firefox":`karma start ./karma/tests-firefox.cjs`,"test:chrome":`karma start ./karma/tests-chrome.cjs`,"test:chrome:eh":`karma start ./karma/tests-chrome-eh.cjs`,"test:chrome:coverage":`karma start ./karma/tests-chrome-coverage.cjs`,"test:browser":`karma start ./karma/tests-all.cjs`,"test:browser:debug":`karma start ./karma/tests-debug.cjs`,test:`npm run test:chrome && npm run test:node`,"test:coverage":`npm run test:chrome:coverage && npm run test:node:coverage && npm run report`,lint:`eslint src test`},files:[`dist`,`!dist/tests-*`,`!dist/duckdb-browser-mvp.worker.js.map`,`!dist/types/test`],main:`dist/duckdb-browser.cjs`,module:`dist/duckdb-browser.mjs`,types:`dist/duckdb-browser.d.ts`,jsdelivr:`dist/duckdb-browser.cjs`,unpkg:`dist/duckdb-browser.mjs`,sideEffects:!1,browser:{fs:!1,path:!1,perf_hooks:!1,os:!1,worker_threads:!1},exports:{"./dist/duckdb-mvp.wasm":`./dist/duckdb-mvp.wasm`,"./dist/duckdb-eh.wasm":`./dist/duckdb-eh.wasm`,"./dist/duckdb-coi.wasm":`./dist/duckdb-coi.wasm`,"./dist/duckdb-browser":`./dist/duckdb-browser.mjs`,"./dist/duckdb-browser.cjs":`./dist/duckdb-browser.cjs`,"./dist/duckdb-browser.mjs":`./dist/duckdb-browser.mjs`,"./dist/duckdb-browser-coi.pthread.worker.js":`./dist/duckdb-browser-coi.pthread.worker.js`,"./dist/duckdb-browser-coi.worker.js":`./dist/duckdb-browser-coi.worker.js`,"./dist/duckdb-browser-eh.worker.js":`./dist/duckdb-browser-eh.worker.js`,"./dist/duckdb-browser-mvp.worker.js":`./dist/duckdb-browser-mvp.worker.js`,"./dist/duckdb-node":`./dist/duckdb-node.cjs`,"./dist/duckdb-node.cjs":`./dist/duckdb-node.cjs`,"./dist/duckdb-node-blocking":`./dist/duckdb-node-blocking.cjs`,"./dist/duckdb-node-blocking.cjs":`./dist/duckdb-node-blocking.cjs`,"./dist/duckdb-node-eh.worker.cjs":`./dist/duckdb-node-eh.worker.cjs`,"./dist/duckdb-node-mvp.worker.cjs":`./dist/duckdb-node-mvp.worker.cjs`,"./blocking":{node:{types:`./dist/duckdb-node-blocking.d.ts`,require:`./dist/duckdb-node-blocking.cjs`,import:`./dist/duckdb-node-blocking.cjs`},types:`./dist/duckdb-node-blocking.d.ts`,import:`./dist/duckdb-node-blocking.mjs`,require:`./dist/duckdb-node-blocking.cjs`},".":{browser:{types:`./dist/duckdb-browser.d.ts`,import:`./dist/duckdb-browser.mjs`,require:`./dist/duckdb-browser.cjs`},node:{types:`./dist/duckdb-node.d.ts`,import:`./dist/duckdb-node.cjs`,require:`./dist/duckdb-node.cjs`},types:`./dist/duckdb-browser.d.ts`,import:`./dist/duckdb-browser.mjs`,require:`./dist/duckdb-browser.cjs`}}},CT=ST.name,wT=ST.version,TT=ST.version.split(`.`),ET=TT[0],DT=TT[1],OT=TT[2],kT=()=>typeof navigator>`u`,AT=()=>kT()?`node`:navigator.userAgent,jT=()=>AT().includes(`Firefox`),MT=()=>/^((?!chrome|android).)*safari/i.test(AT()),NT=null,PT=null,FT=null,IT=null,LT=null;async function RT(){return NT??=typeof BigInt64Array<`u`,PT??=await yT(),FT??=await xT(),IT??=await bT(),LT??=await vT(),{bigInt64Array:NT,crossOriginIsolated:kT()||globalThis.crossOriginIsolated||!1,wasmExceptions:PT,wasmSIMD:IT,wasmThreads:FT,wasmBulkMemory:LT}}async function zT(e){let t=await RT();if(t.wasmExceptions){if(t.wasmSIMD&&t.wasmThreads&&t.crossOriginIsolated&&e.coi)return{mainModule:e.coi.mainModule,mainWorker:e.coi.mainWorker,pthreadWorker:e.coi.pthreadWorker};if(e.eh)return{mainModule:e.eh.mainModule,mainWorker:e.eh.mainWorker,pthreadWorker:null}}return{mainModule:e.mvp.mainModule,mainWorker:e.mvp.mainWorker,pthreadWorker:null}}var BT=Jw(Yw());const VT=Symbol.for(`constructDateFrom`),HT={},UT={};function WT(e,t){try{let n=HT[e]||=new Intl.DateTimeFormat(`en-GB`,{timeZone:e,hour:`numeric`,timeZoneName:`longOffset`}).format,r=n(t).split(`GMT`)[1]||``;return r in UT?UT[r]:KT(r,r.split(`:`))}catch{if(e in UT)return UT[e];let t=e?.match(GT);return t?KT(e,t.slice(1)):NaN}}const GT=/([+-]\d\d):?(\d\d)?/;function KT(e,t){let n=+t[0],r=+(t[1]||0);return UT[e]=n>0?n*60+r:n*60-r}var qT=class e extends Date{constructor(...e){super(),e.length>1&&typeof e[e.length-1]==`string`&&(this.timeZone=e.pop()),this.internal=new Date,isNaN(WT(this.timeZone,this))?this.setTime(NaN):e.length?typeof e[0]==`number`&&(e.length===1||e.length===2&&typeof e[1]!=`number`)?this.setTime(e[0]):typeof e[0]==`string`?this.setTime(+new Date(e[0])):e[0]instanceof Date?this.setTime(+e[0]):(this.setTime(+new Date(...e)),ZT(this,NaN),YT(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new e(...n,t):new e(Date.now(),t)}withTimeZone(t){return new e(+this,t)}getTimezoneOffset(){return-WT(this.timeZone,this)}setTime(e){return Date.prototype.setTime.apply(this,arguments),YT(this),+this}[Symbol.for(`constructDateFrom`)](t){return new e(+new Date(t),this.timeZone)}};const JT=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!JT.test(e))return;let t=e.replace(JT,`$1UTC`);qT.prototype[t]&&(e.startsWith(`get`)?qT.prototype[e]=function(){return this.internal[t]()}:(qT.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),XT(this),+this},qT.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),YT(this),+this}))});function YT(e){e.internal.setTime(+e),e.internal.setUTCMinutes(e.internal.getUTCMinutes()-e.getTimezoneOffset())}function XT(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),ZT(e)}function ZT(e){let t=WT(e.timeZone,e),n=new Date(+e);n.setUTCHours(n.getUTCHours()-1);let r=-new Date(+e).getTimezoneOffset(),i=-new Date(+n).getTimezoneOffset(),a=r-i,o=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();a&&o&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+a);let s=r-t;s&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+s);let c=WT(e.timeZone,e),l=-new Date(+e).getTimezoneOffset(),u=l-c,d=c!==t,f=u-s;if(d&&f){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+f);let t=WT(e.timeZone,e),n=c-t;n&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+n),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+n))}}var QT=class e extends qT{static tz(t,...n){return n.length?new e(...n,t):new e(Date.now(),t)}toISOString(){let[e,t,n]=this.tzComponents(),r=`${e}${t}:${n}`;return this.internal.toISOString().slice(0,-1)+r}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){let[e,t,n,r]=this.internal.toUTCString().split(` `);return`${e?.slice(0,-1)} ${n} ${t} ${r}`}toTimeString(){let e=this.internal.toUTCString().split(` `)[4],[t,n,r]=this.tzComponents();return`${e} GMT${t}${n}${r} (${$T(this.timeZone,this)})`}toLocaleString(e,t){return Date.prototype.toLocaleString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}toLocaleDateString(e,t){return Date.prototype.toLocaleDateString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}toLocaleTimeString(e,t){return Date.prototype.toLocaleTimeString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}tzComponents(){let e=this.getTimezoneOffset(),t=e>0?`-`:`+`,n=String(Math.floor(Math.abs(e)/60)).padStart(2,`0`),r=String(Math.abs(e)%60).padStart(2,`0`);return[t,n,r]}withTimeZone(t){return new e(+this,t)}[Symbol.for(`constructDateFrom`)](t){return new e(+new Date(t),this.timeZone)}};function $T(e,t){return new Intl.DateTimeFormat(`en-GB`,{timeZone:e,timeZoneName:`long`}).format(t).slice(12)}const eE=new TextDecoder(`utf-8`),tE=e=>eE.decode(e),nE=new TextEncoder,rE=e=>nE.encode(e),iE=e=>typeof e==`function`,aE=e=>e!=null&&Object(e)===e,oE=e=>aE(e)&&iE(e.then),sE=e=>aE(e)&&iE(e[Symbol.iterator]),cE=e=>aE(e)&&iE(e[Symbol.asyncIterator]),lE=e=>aE(e)&&`done`in e&&`value`in e,uE=e=>aE(e)&&iE(e.clear)&&iE(e.bytes)&&iE(e.position)&&iE(e.setPosition)&&iE(e.capacity)&&iE(e.getBufferIdentifier)&&iE(e.createLong);var dE={};Tn(dE,{compareArrayLike:()=>XE,joinUint8Arrays:()=>hE,memcpy:()=>mE,rebaseValueOffsets:()=>YE,toArrayBufferView:()=>gE,toArrayBufferViewAsyncIterator:()=>zE,toArrayBufferViewIterator:()=>kE,toBigInt64Array:()=>bE,toBigUint64Array:()=>wE,toFloat32Array:()=>TE,toFloat32ArrayAsyncIterator:()=>KE,toFloat32ArrayIterator:()=>IE,toFloat64Array:()=>EE,toFloat64ArrayAsyncIterator:()=>qE,toFloat64ArrayIterator:()=>LE,toInt16Array:()=>vE,toInt16ArrayAsyncIterator:()=>VE,toInt16ArrayIterator:()=>jE,toInt32Array:()=>yE,toInt32ArrayAsyncIterator:()=>HE,toInt32ArrayIterator:()=>ME,toInt8Array:()=>_E,toInt8ArrayAsyncIterator:()=>BE,toInt8ArrayIterator:()=>AE,toUint16Array:()=>SE,toUint16ArrayAsyncIterator:()=>WE,toUint16ArrayIterator:()=>PE,toUint32Array:()=>CE,toUint32ArrayAsyncIterator:()=>GE,toUint32ArrayIterator:()=>FE,toUint8Array:()=>xE,toUint8ArrayAsyncIterator:()=>UE,toUint8ArrayIterator:()=>NE,toUint8ClampedArray:()=>DE,toUint8ClampedArrayAsyncIterator:()=>JE,toUint8ClampedArrayIterator:()=>RE});const fE=typeof SharedArrayBuffer<`u`?SharedArrayBuffer:ArrayBuffer;function pE(e){let t=e[0]?[e[0]]:[],n,r,i,a;for(let o,s,c=0,l=0,u=e.length;++ce+t.byteLength,0),i,a,o,s=0,c=-1,l=Math.min(t||1/0,r);for(let e=n.length;++cgE(Int8Array,e),vE=e=>gE(Int16Array,e),yE=e=>gE(Int32Array,e),bE=e=>gE(BigInt64Array,e),xE=e=>gE(Uint8Array,e),SE=e=>gE(Uint16Array,e),CE=e=>gE(Uint32Array,e),wE=e=>gE(BigUint64Array,e),TE=e=>gE(Float32Array,e),EE=e=>gE(Float64Array,e),DE=e=>gE(Uint8ClampedArray,e),OE=e=>(e.next(),e);function*kE(e,t){let n=function*(e){yield e},r=typeof t==`string`||ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof fE?n(t):sE(t)?t:n(t);return yield*OE(function*(t){let n=null;do n=t.next(yield gE(e,n));while(!n.done)}(r[Symbol.iterator]())),new e}const AE=e=>kE(Int8Array,e),jE=e=>kE(Int16Array,e),ME=e=>kE(Int32Array,e),NE=e=>kE(Uint8Array,e),PE=e=>kE(Uint16Array,e),FE=e=>kE(Uint32Array,e),IE=e=>kE(Float32Array,e),LE=e=>kE(Float64Array,e),RE=e=>kE(Uint8ClampedArray,e);function zE(e,t){return Rh(this,arguments,function*(){if(oE(t))return yield Lh(yield Lh(yield*zh(Bh(zE(e,yield Lh(t))))));let n=function(e){return Rh(this,arguments,function*(){yield yield Lh(yield Lh(e))})},r=function(e){return Rh(this,arguments,function*(){yield Lh(yield*zh(Bh(OE(function*(e){let t=null;do t=e.next(yield t?.value);while(!t.done)}(e[Symbol.iterator]())))))})},i=typeof t==`string`||ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof fE?n(t):sE(t)?r(t):cE(t)?t:n(t);return yield Lh(yield*zh(Bh(OE(function(t){return Rh(this,arguments,function*(){let n=null;do n=yield Lh(t.next(yield yield Lh(gE(e,n))));while(!n.done)})}(i[Symbol.asyncIterator]()))))),yield Lh(new e)})}const BE=e=>zE(Int8Array,e),VE=e=>zE(Int16Array,e),HE=e=>zE(Int32Array,e),UE=e=>zE(Uint8Array,e),WE=e=>zE(Uint16Array,e),GE=e=>zE(Uint32Array,e),KE=e=>zE(Float32Array,e),qE=e=>zE(Float64Array,e),JE=e=>zE(Uint8ClampedArray,e);function YE(e,t,n){if(e!==0){n=n.slice(0,t);for(let t=-1,r=n.length;++t0)do if(e[n]!==t[n])return!1;while(++naD});const iD=void 0;function aD(e){if(e===null)return`null`;if(e===iD)return`undefined`;switch(typeof e){case`number`:return`${e}`;case`bigint`:return`${e}`;case`string`:return`"${e}"`}return typeof e[Symbol.toPrimitive]==`function`?e[Symbol.toPrimitive](`string`):ArrayBuffer.isView(e)?e instanceof BigInt64Array||e instanceof BigUint64Array?`[${[...e].map(e=>aD(e))}]`:`[${e}]`:ArrayBuffer.isView(e)?`[${e}]`:JSON.stringify(e,(e,t)=>typeof t==`bigint`?`${t}`:t)}function oD(e){if(typeof e==`bigint`&&(e<-(2**53-1)||e>2**53-1))throw TypeError(`${e} is not safe to convert to a number.`);return Number(e)}function sD(e,t){return oD(e/t)+oD(e%t)/oD(t)}var cD={};Tn(cD,{BN:()=>bD,bigNumToBigInt:()=>vD,bigNumToNumber:()=>gD,bigNumToString:()=>_D,isArrowBigNumSymbol:()=>lD});const lD=Symbol.for(`isArrowBigNum`);function uD(e,...t){return t.length===0?Object.setPrototypeOf(gE(this.TypedArray,e),this.constructor.prototype):Object.setPrototypeOf(new this.TypedArray(e,...t),this.constructor.prototype)}uD.prototype[lD]=!0,uD.prototype.toJSON=function(){return`"${_D(this)}"`},uD.prototype.valueOf=function(e){return gD(this,e)},uD.prototype.toString=function(){return _D(this)},uD.prototype[Symbol.toPrimitive]=function(e=`default`){switch(e){case`number`:return gD(this);case`string`:return _D(this);case`default`:return vD(this)}return _D(this)};function dD(...e){return uD.apply(this,e)}function fD(...e){return uD.apply(this,e)}function pD(...e){return uD.apply(this,e)}Object.setPrototypeOf(dD.prototype,Object.create(Int32Array.prototype)),Object.setPrototypeOf(fD.prototype,Object.create(Uint32Array.prototype)),Object.setPrototypeOf(pD.prototype,Object.create(Uint32Array.prototype)),Object.assign(dD.prototype,uD.prototype,{constructor:dD,signed:!0,TypedArray:Int32Array,BigIntArray:BigInt64Array}),Object.assign(fD.prototype,uD.prototype,{constructor:fD,signed:!1,TypedArray:Uint32Array,BigIntArray:BigUint64Array}),Object.assign(pD.prototype,uD.prototype,{constructor:pD,signed:!0,TypedArray:Uint32Array,BigIntArray:BigUint64Array});const mD=BigInt(4294967296)*BigInt(4294967296),hD=mD-BigInt(1);function gD(e,t){let{buffer:n,byteOffset:r,byteLength:i,signed:a}=e,o=new BigUint64Array(n,r,i/8),s=a&&o.at(-1)&BigInt(1)<0){let e=BigInt(`1`.padEnd(t+1,`0`)),n=c/e,r=s?-(c%e):c%e,i=oD(n),a=`${r}`.padStart(t,`0`),o=s&&i===0?`-`:``;return+`${o}${i}.${a}`}return oD(c)}function _D(e){if(e.byteLength===8){let t=new e.BigIntArray(e.buffer,e.byteOffset,1);return`${t[0]}`}if(!e.signed)return yD(e);let t=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),n=new Int16Array([t.at(-1)])[0];if(n>=0)return yD(e);t=t.slice();let r=1;for(let e=0;e(e.children=null,e.ArrayType=Array,e.OffsetArrayType=Int32Array,e[Symbol.toStringTag]=`DataType`))(UD.prototype);var WD=class extends UD{constructor(){super(q.Null)}toString(){return`Null`}};SD=Symbol.toStringTag,WD[SD]=(e=>e[Symbol.toStringTag]=`Null`)(WD.prototype);var GD=class extends UD{constructor(e,t){super(q.Int),this.isSigned=e,this.bitWidth=t}get ArrayType(){switch(this.bitWidth){case 8:return this.isSigned?Int8Array:Uint8Array;case 16:return this.isSigned?Int16Array:Uint16Array;case 32:return this.isSigned?Int32Array:Uint32Array;case 64:return this.isSigned?BigInt64Array:BigUint64Array}throw Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}toString(){return`${this.isSigned?`I`:`Ui`}nt${this.bitWidth}`}};CD=Symbol.toStringTag,GD[CD]=(e=>(e.isSigned=null,e.bitWidth=null,e[Symbol.toStringTag]=`Int`))(GD.prototype);var KD=class extends GD{constructor(){super(!0,8)}get ArrayType(){return Int8Array}},qD=class extends GD{constructor(){super(!0,16)}get ArrayType(){return Int16Array}},JD=class extends GD{constructor(){super(!0,32)}get ArrayType(){return Int32Array}},YD=class extends GD{constructor(){super(!0,64)}get ArrayType(){return BigInt64Array}},XD=class extends GD{constructor(){super(!1,8)}get ArrayType(){return Uint8Array}},ZD=class extends GD{constructor(){super(!1,16)}get ArrayType(){return Uint16Array}},QD=class extends GD{constructor(){super(!1,32)}get ArrayType(){return Uint32Array}},$D=class extends GD{constructor(){super(!1,64)}get ArrayType(){return BigUint64Array}};Object.defineProperty(KD.prototype,`ArrayType`,{value:Int8Array}),Object.defineProperty(qD.prototype,`ArrayType`,{value:Int16Array}),Object.defineProperty(JD.prototype,`ArrayType`,{value:Int32Array}),Object.defineProperty(YD.prototype,`ArrayType`,{value:BigInt64Array}),Object.defineProperty(XD.prototype,`ArrayType`,{value:Uint8Array}),Object.defineProperty(ZD.prototype,`ArrayType`,{value:Uint16Array}),Object.defineProperty(QD.prototype,`ArrayType`,{value:Uint32Array}),Object.defineProperty($D.prototype,`ArrayType`,{value:BigUint64Array});var eO=class extends UD{constructor(e){super(q.Float),this.precision=e}get ArrayType(){switch(this.precision){case QE.HALF:return Uint16Array;case QE.SINGLE:return Float32Array;case QE.DOUBLE:return Float64Array}throw Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}toString(){return`Float${this.precision<<5||16}`}};wD=Symbol.toStringTag,eO[wD]=(e=>(e.precision=null,e[Symbol.toStringTag]=`Float`))(eO.prototype);var tO=class extends eO{constructor(){super(QE.HALF)}},nO=class extends eO{constructor(){super(QE.SINGLE)}},rO=class extends eO{constructor(){super(QE.DOUBLE)}};Object.defineProperty(tO.prototype,`ArrayType`,{value:Uint16Array}),Object.defineProperty(nO.prototype,`ArrayType`,{value:Float32Array}),Object.defineProperty(rO.prototype,`ArrayType`,{value:Float64Array});var iO=class extends UD{constructor(){super(q.Binary)}toString(){return`Binary`}};TD=Symbol.toStringTag,iO[TD]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=`Binary`))(iO.prototype);var aO=class extends UD{constructor(){super(q.LargeBinary)}toString(){return`LargeBinary`}};ED=Symbol.toStringTag,aO[ED]=(e=>(e.ArrayType=Uint8Array,e.OffsetArrayType=BigInt64Array,e[Symbol.toStringTag]=`LargeBinary`))(aO.prototype);var oO=class extends UD{constructor(){super(q.Utf8)}toString(){return`Utf8`}};DD=Symbol.toStringTag,oO[DD]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=`Utf8`))(oO.prototype);var sO=class extends UD{constructor(){super(q.LargeUtf8)}toString(){return`LargeUtf8`}};OD=Symbol.toStringTag,sO[OD]=(e=>(e.ArrayType=Uint8Array,e.OffsetArrayType=BigInt64Array,e[Symbol.toStringTag]=`LargeUtf8`))(sO.prototype);var cO=class extends UD{constructor(){super(q.Bool)}toString(){return`Bool`}};kD=Symbol.toStringTag,cO[kD]=(e=>(e.ArrayType=Uint8Array,e[Symbol.toStringTag]=`Bool`))(cO.prototype);var lO=class extends UD{constructor(e,t,n=128){super(q.Decimal),this.scale=e,this.precision=t,this.bitWidth=n}toString(){return`Decimal[${this.precision}e${this.scale>0?`+`:``}${this.scale}]`}};AD=Symbol.toStringTag,lO[AD]=(e=>(e.scale=null,e.precision=null,e.ArrayType=Uint32Array,e[Symbol.toStringTag]=`Decimal`))(lO.prototype);var uO=class extends UD{constructor(e){super(q.Date),this.unit=e}toString(){return`Date${(this.unit+1)*32}<${$E[this.unit]}>`}get ArrayType(){return this.unit===$E.DAY?Int32Array:BigInt64Array}};jD=Symbol.toStringTag,uO[jD]=(e=>(e.unit=null,e[Symbol.toStringTag]=`Date`))(uO.prototype);var dO=class extends UD{constructor(e,t){super(q.Time),this.unit=e,this.bitWidth=t}toString(){return`Time${this.bitWidth}<${eD[this.unit]}>`}get ArrayType(){switch(this.bitWidth){case 32:return Int32Array;case 64:return BigInt64Array}throw Error(`Unrecognized ${this[Symbol.toStringTag]} type`)}};MD=Symbol.toStringTag,dO[MD]=(e=>(e.unit=null,e.bitWidth=null,e[Symbol.toStringTag]=`Time`))(dO.prototype);var fO=class extends UD{constructor(e,t){super(q.Timestamp),this.unit=e,this.timezone=t}toString(){return`Timestamp<${eD[this.unit]}${this.timezone?`, ${this.timezone}`:``}>`}};ND=Symbol.toStringTag,fO[ND]=(e=>(e.unit=null,e.timezone=null,e.ArrayType=BigInt64Array,e[Symbol.toStringTag]=`Timestamp`))(fO.prototype);var pO=class extends UD{constructor(e){super(q.Interval),this.unit=e}toString(){return`Interval<${tD[this.unit]}>`}};PD=Symbol.toStringTag,pO[PD]=(e=>(e.unit=null,e.ArrayType=Int32Array,e[Symbol.toStringTag]=`Interval`))(pO.prototype);var mO=class extends UD{constructor(e){super(q.Duration),this.unit=e}toString(){return`Duration<${eD[this.unit]}>`}};FD=Symbol.toStringTag,mO[FD]=(e=>(e.unit=null,e.ArrayType=BigInt64Array,e[Symbol.toStringTag]=`Duration`))(mO.prototype);var hO=class extends UD{constructor(e){super(q.List),this.children=[e]}toString(){return`List<${this.valueType}>`}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get ArrayType(){return this.valueType.ArrayType}};ID=Symbol.toStringTag,hO[ID]=(e=>(e.children=null,e[Symbol.toStringTag]=`List`))(hO.prototype);var gO=class extends UD{constructor(e){super(q.Struct),this.children=e}toString(){return`Struct<{${this.children.map(e=>`${e.name}:${e.type}`).join(`, `)}}>`}};LD=Symbol.toStringTag,gO[LD]=(e=>(e.children=null,e[Symbol.toStringTag]=`Struct`))(gO.prototype);var _O=class extends UD{constructor(e,t,n){super(q.Union),this.mode=e,this.children=n,this.typeIds=t=Int32Array.from(t),this.typeIdToChildIndex=t.reduce((e,t,n)=>(e[t]=n)&&e||e,Object.create(null))}toString(){return`${this[Symbol.toStringTag]}<${this.children.map(e=>`${e.type}`).join(` | `)}>`}};RD=Symbol.toStringTag,_O[RD]=(e=>(e.mode=null,e.typeIds=null,e.children=null,e.typeIdToChildIndex=null,e.ArrayType=Int8Array,e[Symbol.toStringTag]=`Union`))(_O.prototype);var vO=class extends UD{constructor(e){super(q.FixedSizeBinary),this.byteWidth=e}toString(){return`FixedSizeBinary[${this.byteWidth}]`}};zD=Symbol.toStringTag,vO[zD]=(e=>(e.byteWidth=null,e.ArrayType=Uint8Array,e[Symbol.toStringTag]=`FixedSizeBinary`))(vO.prototype);var yO=class extends UD{constructor(e,t){super(q.FixedSizeList),this.listSize=e,this.children=[t]}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get ArrayType(){return this.valueType.ArrayType}toString(){return`FixedSizeList[${this.listSize}]<${this.valueType}>`}};BD=Symbol.toStringTag,yO[BD]=(e=>(e.children=null,e.listSize=null,e[Symbol.toStringTag]=`FixedSizeList`))(yO.prototype);var bO=class extends UD{constructor(e,t=!1){var n,r,i;if(super(q.Map),this.children=[e],this.keysSorted=t,e&&(e.name=`entries`,(n=e?.type)?.children)){let t=(r=e?.type)?.children[0];t&&(t.name=`key`);let n=(i=e?.type)?.children[1];n&&(n.name=`value`)}}get keyType(){return this.children[0].type.children[0].type}get valueType(){return this.children[0].type.children[1].type}get childType(){return this.children[0].type}toString(){return`Map<{${this.children[0].type.children.map(e=>`${e.name}:${e.type}`).join(`, `)}}>`}};VD=Symbol.toStringTag,bO[VD]=(e=>(e.children=null,e.keysSorted=null,e[Symbol.toStringTag]=`Map_`))(bO.prototype);const xO=(e=>()=>++e)(-1);var SO=class extends UD{constructor(e,t,n,r){super(q.Dictionary),this.indices=t,this.dictionary=e,this.isOrdered=r||!1,this.id=n==null?xO():oD(n)}get children(){return this.dictionary.children}get valueType(){return this.dictionary}get ArrayType(){return this.dictionary.ArrayType}toString(){return`Dictionary<${this.indices}, ${this.dictionary}>`}};HD=Symbol.toStringTag,SO[HD]=(e=>(e.id=null,e.indices=null,e.isOrdered=null,e.dictionary=null,e[Symbol.toStringTag]=`Dictionary`))(SO.prototype);function CO(e){let t=e;switch(e.typeId){case q.Decimal:return e.bitWidth/32;case q.Interval:return t.unit===tD.MONTH_DAY_NANO?4:1+t.unit;case q.FixedSizeList:return t.listSize;case q.FixedSizeBinary:return t.byteWidth;default:return 1}}var wO=class{visitMany(e,...t){return e.map((e,n)=>this.visit(e,...t.map(e=>e[n])))}visit(...e){return this.getVisitFn(e[0],!1).apply(this,e)}getVisitFn(e,t=!0){return TO(this,e,t)}getVisitFnByTypeId(e,t=!0){return EO(this,e,t)}visitNull(e,...t){return null}visitBool(e,...t){return null}visitInt(e,...t){return null}visitFloat(e,...t){return null}visitUtf8(e,...t){return null}visitLargeUtf8(e,...t){return null}visitBinary(e,...t){return null}visitLargeBinary(e,...t){return null}visitFixedSizeBinary(e,...t){return null}visitDate(e,...t){return null}visitTimestamp(e,...t){return null}visitTime(e,...t){return null}visitDecimal(e,...t){return null}visitList(e,...t){return null}visitStruct(e,...t){return null}visitUnion(e,...t){return null}visitDictionary(e,...t){return null}visitInterval(e,...t){return null}visitDuration(e,...t){return null}visitFixedSizeList(e,...t){return null}visitMap(e,...t){return null}};function TO(e,t,n=!0){return typeof t==`number`?EO(e,t,n):typeof t==`string`&&t in q?EO(e,q[t],n):t&&t instanceof UD?EO(e,DO(t),n):t?.type&&t.type instanceof UD?EO(e,DO(t.type),n):EO(e,q.NONE,n)}function EO(e,t,n=!0){let r=null;switch(t){case q.Null:r=e.visitNull;break;case q.Bool:r=e.visitBool;break;case q.Int:r=e.visitInt;break;case q.Int8:r=e.visitInt8||e.visitInt;break;case q.Int16:r=e.visitInt16||e.visitInt;break;case q.Int32:r=e.visitInt32||e.visitInt;break;case q.Int64:r=e.visitInt64||e.visitInt;break;case q.Uint8:r=e.visitUint8||e.visitInt;break;case q.Uint16:r=e.visitUint16||e.visitInt;break;case q.Uint32:r=e.visitUint32||e.visitInt;break;case q.Uint64:r=e.visitUint64||e.visitInt;break;case q.Float:r=e.visitFloat;break;case q.Float16:r=e.visitFloat16||e.visitFloat;break;case q.Float32:r=e.visitFloat32||e.visitFloat;break;case q.Float64:r=e.visitFloat64||e.visitFloat;break;case q.Utf8:r=e.visitUtf8;break;case q.LargeUtf8:r=e.visitLargeUtf8;break;case q.Binary:r=e.visitBinary;break;case q.LargeBinary:r=e.visitLargeBinary;break;case q.FixedSizeBinary:r=e.visitFixedSizeBinary;break;case q.Date:r=e.visitDate;break;case q.DateDay:r=e.visitDateDay||e.visitDate;break;case q.DateMillisecond:r=e.visitDateMillisecond||e.visitDate;break;case q.Timestamp:r=e.visitTimestamp;break;case q.TimestampSecond:r=e.visitTimestampSecond||e.visitTimestamp;break;case q.TimestampMillisecond:r=e.visitTimestampMillisecond||e.visitTimestamp;break;case q.TimestampMicrosecond:r=e.visitTimestampMicrosecond||e.visitTimestamp;break;case q.TimestampNanosecond:r=e.visitTimestampNanosecond||e.visitTimestamp;break;case q.Time:r=e.visitTime;break;case q.TimeSecond:r=e.visitTimeSecond||e.visitTime;break;case q.TimeMillisecond:r=e.visitTimeMillisecond||e.visitTime;break;case q.TimeMicrosecond:r=e.visitTimeMicrosecond||e.visitTime;break;case q.TimeNanosecond:r=e.visitTimeNanosecond||e.visitTime;break;case q.Decimal:r=e.visitDecimal;break;case q.List:r=e.visitList;break;case q.Struct:r=e.visitStruct;break;case q.Union:r=e.visitUnion;break;case q.DenseUnion:r=e.visitDenseUnion||e.visitUnion;break;case q.SparseUnion:r=e.visitSparseUnion||e.visitUnion;break;case q.Dictionary:r=e.visitDictionary;break;case q.Interval:r=e.visitInterval;break;case q.IntervalDayTime:r=e.visitIntervalDayTime||e.visitInterval;break;case q.IntervalYearMonth:r=e.visitIntervalYearMonth||e.visitInterval;break;case q.IntervalMonthDayNano:r=e.visitIntervalMonthDayNano||e.visitInterval;break;case q.Duration:r=e.visitDuration;break;case q.DurationSecond:r=e.visitDurationSecond||e.visitDuration;break;case q.DurationMillisecond:r=e.visitDurationMillisecond||e.visitDuration;break;case q.DurationMicrosecond:r=e.visitDurationMicrosecond||e.visitDuration;break;case q.DurationNanosecond:r=e.visitDurationNanosecond||e.visitDuration;break;case q.FixedSizeList:r=e.visitFixedSizeList;break;case q.Map:r=e.visitMap;break}if(typeof r==`function`)return r;if(!n)return()=>null;throw Error(`Unrecognized type '${q[t]}'`)}function DO(e){switch(e.typeId){case q.Null:return q.Null;case q.Int:{let{bitWidth:t,isSigned:n}=e;switch(t){case 8:return n?q.Int8:q.Uint8;case 16:return n?q.Int16:q.Uint16;case 32:return n?q.Int32:q.Uint32;case 64:return n?q.Int64:q.Uint64}return q.Int}case q.Float:switch(e.precision){case QE.HALF:return q.Float16;case QE.SINGLE:return q.Float32;case QE.DOUBLE:return q.Float64}return q.Float;case q.Binary:return q.Binary;case q.LargeBinary:return q.LargeBinary;case q.Utf8:return q.Utf8;case q.LargeUtf8:return q.LargeUtf8;case q.Bool:return q.Bool;case q.Decimal:return q.Decimal;case q.Time:switch(e.unit){case eD.SECOND:return q.TimeSecond;case eD.MILLISECOND:return q.TimeMillisecond;case eD.MICROSECOND:return q.TimeMicrosecond;case eD.NANOSECOND:return q.TimeNanosecond}return q.Time;case q.Timestamp:switch(e.unit){case eD.SECOND:return q.TimestampSecond;case eD.MILLISECOND:return q.TimestampMillisecond;case eD.MICROSECOND:return q.TimestampMicrosecond;case eD.NANOSECOND:return q.TimestampNanosecond}return q.Timestamp;case q.Date:switch(e.unit){case $E.DAY:return q.DateDay;case $E.MILLISECOND:return q.DateMillisecond}return q.Date;case q.Interval:switch(e.unit){case tD.DAY_TIME:return q.IntervalDayTime;case tD.YEAR_MONTH:return q.IntervalYearMonth;case tD.MONTH_DAY_NANO:return q.IntervalMonthDayNano}return q.Interval;case q.Duration:switch(e.unit){case eD.SECOND:return q.DurationSecond;case eD.MILLISECOND:return q.DurationMillisecond;case eD.MICROSECOND:return q.DurationMicrosecond;case eD.NANOSECOND:return q.DurationNanosecond}return q.Duration;case q.Map:return q.Map;case q.List:return q.List;case q.Struct:return q.Struct;case q.Union:switch(e.mode){case ZE.Dense:return q.DenseUnion;case ZE.Sparse:return q.SparseUnion}return q.Union;case q.FixedSizeBinary:return q.FixedSizeBinary;case q.FixedSizeList:return q.FixedSizeList;case q.Dictionary:return q.Dictionary}throw Error(`Unrecognized type '${q[e.typeId]}'`)}wO.prototype.visitInt8=null,wO.prototype.visitInt16=null,wO.prototype.visitInt32=null,wO.prototype.visitInt64=null,wO.prototype.visitUint8=null,wO.prototype.visitUint16=null,wO.prototype.visitUint32=null,wO.prototype.visitUint64=null,wO.prototype.visitFloat16=null,wO.prototype.visitFloat32=null,wO.prototype.visitFloat64=null,wO.prototype.visitDateDay=null,wO.prototype.visitDateMillisecond=null,wO.prototype.visitTimestampSecond=null,wO.prototype.visitTimestampMillisecond=null,wO.prototype.visitTimestampMicrosecond=null,wO.prototype.visitTimestampNanosecond=null,wO.prototype.visitTimeSecond=null,wO.prototype.visitTimeMillisecond=null,wO.prototype.visitTimeMicrosecond=null,wO.prototype.visitTimeNanosecond=null,wO.prototype.visitDenseUnion=null,wO.prototype.visitSparseUnion=null,wO.prototype.visitIntervalDayTime=null,wO.prototype.visitIntervalYearMonth=null,wO.prototype.visitIntervalMonthDayNano=null,wO.prototype.visitDuration=null,wO.prototype.visitDurationSecond=null,wO.prototype.visitDurationMillisecond=null,wO.prototype.visitDurationMicrosecond=null,wO.prototype.visitDurationNanosecond=null;var OO={};Tn(OO,{float64ToUint16:()=>MO,uint16ToFloat64:()=>jO});const kO=new Float64Array(1),AO=new Uint32Array(kO.buffer);function jO(e){let t=(e&31744)>>10,n=(e&1023)/1024,r=(-1)**((e&32768)>>15);switch(t){case 31:return r*(n?NaN:1/0);case 0:return r*(n?6103515625e-14*n:0)}return r*2**(t-15)*(1+n)}function MO(e){if(e!==e)return 32256;kO[0]=e;let t=(AO[1]&2147483648)>>16&65535,n=AO[1]&2146435072,r=0;return n>=1089470464?AO[0]>0?n=31744:(n=(n&2080374784)>>16,r=(AO[1]&1048575)>>10):n<=1056964608?(r=1048576+(AO[1]&1048575),r=1048576+(r<<(n>>20)-998)>>21,n=0):(n=n-1056964608>>10,r=(AO[1]&1048575)+512>>10),t|n|r&65535}var NO=class extends wO{};function PO(e){return(t,n,r)=>{if(t.setValid(n,r!=null))return e(t,n,r)}}const FO=(e,t,n)=>{e[t]=Math.floor(n/864e5)},IO=(e,t,n,r)=>{if(n+1{let i=e+n;r?t[i>>3]|=1<>3]&=~(1<{e[t]=n},zO=({values:e},t,n)=>{e[t]=n},BO=({values:e},t,n)=>{e[t]=MO(n)},VO=(e,t,n)=>{switch(e.type.precision){case QE.HALF:return BO(e,t,n);case QE.SINGLE:case QE.DOUBLE:return zO(e,t,n)}},HO=({values:e},t,n)=>{FO(e,t,n.valueOf())},UO=({values:e},t,n)=>{e[t]=BigInt(n)},WO=({stride:e,values:t},n,r)=>{t.set(r.subarray(0,e),e*n)},GO=({values:e,valueOffsets:t},n,r)=>IO(e,t,n,r),KO=({values:e,valueOffsets:t},n,r)=>IO(e,t,n,rE(r)),qO=(e,t,n)=>{e.type.unit===$E.DAY?HO(e,t,n):UO(e,t,n)},JO=({values:e},t,n)=>{e[t]=BigInt(n/1e3)},YO=({values:e},t,n)=>{e[t]=BigInt(n)},XO=({values:e},t,n)=>{e[t]=BigInt(n*1e3)},ZO=({values:e},t,n)=>{e[t]=BigInt(n*1e6)},QO=(e,t,n)=>{switch(e.type.unit){case eD.SECOND:return JO(e,t,n);case eD.MILLISECOND:return YO(e,t,n);case eD.MICROSECOND:return XO(e,t,n);case eD.NANOSECOND:return ZO(e,t,n)}},$O=({values:e},t,n)=>{e[t]=n},ek=({values:e},t,n)=>{e[t]=n},tk=({values:e},t,n)=>{e[t]=n},nk=({values:e},t,n)=>{e[t]=n},rk=(e,t,n)=>{switch(e.type.unit){case eD.SECOND:return $O(e,t,n);case eD.MILLISECOND:return ek(e,t,n);case eD.MICROSECOND:return tk(e,t,n);case eD.NANOSECOND:return nk(e,t,n)}},ik=({values:e,stride:t},n,r)=>{e.set(r.subarray(0,t),t*n)},ak=(e,t,n)=>{let r=e.children[0],i=e.valueOffsets,a=Ek.getVisitFn(r);if(Array.isArray(n))for(let e=-1,o=i[t],s=i[t+1];o{let r=e.children[0],{valueOffsets:i}=e,a=Ek.getVisitFn(r),{[t]:o,[t+1]:s}=i,c=n instanceof Map?n.entries():Object.entries(n);for(let e of c)if(a(r,o,e),++o>=s)break},sk=(e,t)=>(n,r,i,a)=>r&&n(r,e,t[a]),ck=(e,t)=>(n,r,i,a)=>r&&n(r,e,t.get(a)),lk=(e,t)=>(n,r,i,a)=>r&&n(r,e,t.get(i.name)),uk=(e,t)=>(n,r,i,a)=>r&&n(r,e,t[i.name]),dk=(e,t,n)=>{let r=e.type.children.map(e=>Ek.getVisitFn(e.type)),i=n instanceof Map?lk(t,n):n instanceof kj?ck(t,n):Array.isArray(n)?sk(t,n):uk(t,n);e.type.children.forEach((t,n)=>i(r[n],e.children[n],t,n))},fk=(e,t,n)=>{e.type.mode===ZE.Dense?pk(e,t,n):mk(e,t,n)},pk=(e,t,n)=>{let r=e.type.typeIdToChildIndex[e.typeIds[t]],i=e.children[r];Ek.visit(i,e.valueOffsets[t],n)},mk=(e,t,n)=>{let r=e.type.typeIdToChildIndex[e.typeIds[t]],i=e.children[r];Ek.visit(i,t,n)},hk=(e,t,n)=>{var r;(r=e.dictionary)==null||r.set(e.values[t],n)},gk=(e,t,n)=>{switch(e.type.unit){case tD.YEAR_MONTH:return vk(e,t,n);case tD.DAY_TIME:return _k(e,t,n);case tD.MONTH_DAY_NANO:return yk(e,t,n)}},_k=({values:e},t,n)=>{e.set(n.subarray(0,2),2*t)},vk=({values:e},t,n)=>{e[t]=n[0]*12+n[1]%12},yk=({values:e,stride:t},n,r)=>{e.set(r.subarray(0,t),t*n)},bk=({values:e},t,n)=>{e[t]=n},xk=({values:e},t,n)=>{e[t]=n},Sk=({values:e},t,n)=>{e[t]=n},Ck=({values:e},t,n)=>{e[t]=n},wk=(e,t,n)=>{switch(e.type.unit){case eD.SECOND:return bk(e,t,n);case eD.MILLISECOND:return xk(e,t,n);case eD.MICROSECOND:return Sk(e,t,n);case eD.NANOSECOND:return Ck(e,t,n)}},Tk=(e,t,n)=>{let{stride:r}=e,i=e.children[0],a=Ek.getVisitFn(i);if(Array.isArray(n))for(let e=-1,o=t*r;++e`${aD(e)}: ${aD(t)}`).join(`, `)}}`}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.toString()}[Symbol.iterator](){return new Ak(this[Dk],this[Ok])}},Ak=class{constructor(e,t){this.childIndex=0,this.children=e.children,this.rowIndex=t,this.childFields=e.type.children,this.numChildren=this.childFields.length}[Symbol.iterator](){return this}next(){let e=this.childIndex;return ee.name)}has(e,t){return e[Dk].type.children.some(e=>e.name===t)}getOwnPropertyDescriptor(e,t){if(e[Dk].type.children.some(e=>e.name===t))return{writable:!0,enumerable:!0,configurable:!0}}get(e,t){if(Reflect.has(e,t))return e[t];let n=e[Dk].type.children.findIndex(e=>e.name===t);if(n!==-1){let r=wA.visit(e[Dk].children[n],e[Ok]);return Reflect.set(e,t,r),r}}set(e,t,n){let r=e[Dk].type.children.findIndex(e=>e.name===t);return r===-1?Reflect.has(e,t)||typeof t==`symbol`?Reflect.set(e,t,n):!1:(Ek.visit(e[Dk].children[r],e[Ok],n),Reflect.set(e,t,n))}};const Mk=new jk;var Nk=class extends wO{};function Pk(e){return(t,n)=>t.getValid(n)?e(t,n):null}const Fk=(e,t)=>864e5*e[t],Ik=(e,t)=>null,Lk=(e,t,n)=>{if(n+1>=t.length)return null;let r=oD(t[n]),i=oD(t[n+1]);return e.subarray(r,i)},Rk=({offset:e,values:t},n)=>{let r=e+n,i=t[r>>3];return(i&1<Fk(e,t),Bk=({values:e},t)=>oD(e[t]),Vk=({stride:e,values:t},n)=>t[e*n],Hk=({stride:e,values:t},n)=>jO(t[e*n]),Uk=({values:e},t)=>e[t],Wk=({stride:e,values:t},n)=>t.subarray(e*n,e*(n+1)),Gk=({values:e,valueOffsets:t},n)=>Lk(e,t,n),Kk=({values:e,valueOffsets:t},n)=>{let r=Lk(e,t,n);return r===null?null:tE(r)},qk=({values:e},t)=>e[t],Jk=({type:e,values:t},n)=>e.precision===QE.HALF?jO(t[n]):t[n],Yk=(e,t)=>e.type.unit===$E.DAY?zk(e,t):Bk(e,t),Xk=({values:e},t)=>1e3*oD(e[t]),Zk=({values:e},t)=>oD(e[t]),Qk=({values:e},t)=>sD(e[t],BigInt(1e3)),$k=({values:e},t)=>sD(e[t],BigInt(1e6)),eA=(e,t)=>{switch(e.type.unit){case eD.SECOND:return Xk(e,t);case eD.MILLISECOND:return Zk(e,t);case eD.MICROSECOND:return Qk(e,t);case eD.NANOSECOND:return $k(e,t)}},tA=({values:e},t)=>e[t],nA=({values:e},t)=>e[t],rA=({values:e},t)=>e[t],iA=({values:e},t)=>e[t],aA=(e,t)=>{switch(e.type.unit){case eD.SECOND:return tA(e,t);case eD.MILLISECOND:return nA(e,t);case eD.MICROSECOND:return rA(e,t);case eD.NANOSECOND:return iA(e,t)}},oA=({values:e,stride:t},n)=>bD.decimal(e.subarray(t*n,t*(n+1))),sA=(e,t)=>{let{valueOffsets:n,stride:r,children:i}=e,{[t*r]:a,[t*r+1]:o}=n,s=i[0],c=s.slice(a,o-a);return new kj([c])},cA=(e,t)=>{let{valueOffsets:n,children:r}=e,{[t]:i,[t+1]:a}=n,o=r[0];return new kA(o.slice(i,a-i))},lA=(e,t)=>new kk(e,t),uA=(e,t)=>e.type.mode===ZE.Dense?dA(e,t):fA(e,t),dA=(e,t)=>{let n=e.type.typeIdToChildIndex[e.typeIds[t]],r=e.children[n];return wA.visit(r,e.valueOffsets[t])},fA=(e,t)=>{let n=e.type.typeIdToChildIndex[e.typeIds[t]],r=e.children[n];return wA.visit(r,t)},pA=(e,t)=>{var n;return(n=e.dictionary)?.get(e.values[t])},mA=(e,t)=>e.type.unit===tD.MONTH_DAY_NANO?_A(e,t):e.type.unit===tD.DAY_TIME?hA(e,t):gA(e,t),hA=({values:e},t)=>e.subarray(2*t,2*(t+1)),gA=({values:e},t)=>{let n=e[t],r=new Int32Array(2);return r[0]=Math.trunc(n/12),r[1]=Math.trunc(n%12),r},_A=({values:e},t)=>e.subarray(4*t,4*(t+1)),vA=({values:e},t)=>e[t],yA=({values:e},t)=>e[t],bA=({values:e},t)=>e[t],xA=({values:e},t)=>e[t],SA=(e,t)=>{switch(e.type.unit){case eD.SECOND:return vA(e,t);case eD.MILLISECOND:return yA(e,t);case eD.MICROSECOND:return bA(e,t);case eD.NANOSECOND:return xA(e,t)}},CA=(e,t)=>{let{stride:n,children:r}=e,i=r[0],a=i.slice(t*n,n);return new kj([a])};Nk.prototype.visitNull=Pk(Ik),Nk.prototype.visitBool=Pk(Rk),Nk.prototype.visitInt=Pk(qk),Nk.prototype.visitInt8=Pk(Vk),Nk.prototype.visitInt16=Pk(Vk),Nk.prototype.visitInt32=Pk(Vk),Nk.prototype.visitInt64=Pk(Uk),Nk.prototype.visitUint8=Pk(Vk),Nk.prototype.visitUint16=Pk(Vk),Nk.prototype.visitUint32=Pk(Vk),Nk.prototype.visitUint64=Pk(Uk),Nk.prototype.visitFloat=Pk(Jk),Nk.prototype.visitFloat16=Pk(Hk),Nk.prototype.visitFloat32=Pk(Vk),Nk.prototype.visitFloat64=Pk(Vk),Nk.prototype.visitUtf8=Pk(Kk),Nk.prototype.visitLargeUtf8=Pk(Kk),Nk.prototype.visitBinary=Pk(Gk),Nk.prototype.visitLargeBinary=Pk(Gk),Nk.prototype.visitFixedSizeBinary=Pk(Wk),Nk.prototype.visitDate=Pk(Yk),Nk.prototype.visitDateDay=Pk(zk),Nk.prototype.visitDateMillisecond=Pk(Bk),Nk.prototype.visitTimestamp=Pk(eA),Nk.prototype.visitTimestampSecond=Pk(Xk),Nk.prototype.visitTimestampMillisecond=Pk(Zk),Nk.prototype.visitTimestampMicrosecond=Pk(Qk),Nk.prototype.visitTimestampNanosecond=Pk($k),Nk.prototype.visitTime=Pk(aA),Nk.prototype.visitTimeSecond=Pk(tA),Nk.prototype.visitTimeMillisecond=Pk(nA),Nk.prototype.visitTimeMicrosecond=Pk(rA),Nk.prototype.visitTimeNanosecond=Pk(iA),Nk.prototype.visitDecimal=Pk(oA),Nk.prototype.visitList=Pk(sA),Nk.prototype.visitStruct=Pk(lA),Nk.prototype.visitUnion=Pk(uA),Nk.prototype.visitDenseUnion=Pk(dA),Nk.prototype.visitSparseUnion=Pk(fA),Nk.prototype.visitDictionary=Pk(pA),Nk.prototype.visitInterval=Pk(mA),Nk.prototype.visitIntervalDayTime=Pk(hA),Nk.prototype.visitIntervalYearMonth=Pk(gA),Nk.prototype.visitIntervalMonthDayNano=Pk(_A),Nk.prototype.visitDuration=Pk(SA),Nk.prototype.visitDurationSecond=Pk(vA),Nk.prototype.visitDurationMillisecond=Pk(yA),Nk.prototype.visitDurationMicrosecond=Pk(bA),Nk.prototype.visitDurationNanosecond=Pk(xA),Nk.prototype.visitFixedSizeList=Pk(CA),Nk.prototype.visitMap=Pk(cA);const wA=new Nk,TA=Symbol.for(`keys`),EA=Symbol.for(`vals`),DA=Symbol.for(`kKeysAsStrings`),OA=Symbol.for(`_kKeysAsStrings`);var kA=class{constructor(e){return this[TA]=new kj([e.children[0]]).memoize(),this[EA]=e.children[1],new Proxy(this,new jA)}get[DA](){return this[OA]||(this[OA]=Array.from(this[TA].toArray(),String))}[Symbol.iterator](){return new AA(this[TA],this[EA])}get size(){return this[TA].length}toArray(){return Object.values(this.toJSON())}toJSON(){let e=this[TA],t=this[EA],n={};for(let r=-1,i=e.length;++r`${aD(e)}: ${aD(t)}`).join(`, `)}}`}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.toString()}},AA=class{constructor(e,t){this.keys=e,this.vals=t,this.keyIndex=0,this.numKeys=e.length}[Symbol.iterator](){return this}next(){let e=this.keyIndex;return e===this.numKeys?{done:!0,value:null}:(this.keyIndex++,{done:!1,value:[this.keys.get(e),wA.visit(this.vals,e)]})}},jA=class{isExtensible(){return!1}deleteProperty(){return!1}preventExtensions(){return!0}ownKeys(e){return e[DA]}has(e,t){return e[DA].includes(t)}getOwnPropertyDescriptor(e,t){let n=e[DA].indexOf(t);if(n!==-1)return{writable:!0,enumerable:!0,configurable:!0}}get(e,t){if(Reflect.has(e,t))return e[t];let n=e[DA].indexOf(t);if(n!==-1){let r=wA.visit(Reflect.get(e,EA),n);return Reflect.set(e,t,r),r}}set(e,t,n){let r=e[DA].indexOf(t);return r===-1?Reflect.has(e,t)?Reflect.set(e,t,n):!1:(Ek.visit(Reflect.get(e,EA),r,n),Reflect.set(e,t,n))}};Object.defineProperties(kA.prototype,{[Symbol.toStringTag]:{enumerable:!1,configurable:!1,value:`Row`},[TA]:{writable:!0,enumerable:!1,configurable:!1,value:null},[EA]:{writable:!0,enumerable:!1,configurable:!1,value:null},[OA]:{writable:!0,enumerable:!1,configurable:!1,value:null}});var MA={};Tn(MA,{clampRange:()=>PA,createElementComparator:()=>LA,wrapIndex:()=>FA});let NA;function PA(e,t,n,r){let{length:i=0}=e,a=typeof t==`number`?t:0,o=typeof n==`number`?n:i;return a<0&&(a=(a%i+i)%i),o<0&&(o=(o%i+i)%i),oi&&(o=i),r?r(e,a,o):[a,o]}const FA=(e,t)=>e<0?t+e:e,IA=e=>e!==e;function LA(e){let t=typeof e;if(t!==`object`||e===null)return IA(e)?IA:t=>t===e;if(e instanceof Date){let t=e.valueOf();return e=>e instanceof Date?e.valueOf()===t:!1}return ArrayBuffer.isView(e)?t=>t?XE(e,t):!1:e instanceof Map?zA(e):Array.isArray(e)?RA(e):e instanceof kj?BA(e):VA(e,!0)}function RA(e){let t=[];for(let n=-1,r=e.length;++n!1;let r=[];for(let t=-1,i=n.length;++t{if(!n||typeof n!=`object`)return!1;switch(n.constructor){case Array:return UA(e,n);case Map:return GA(e,n,n.keys());case kA:case kk:case Object:case void 0:return GA(e,n,t||Object.keys(n))}return n instanceof kj?WA(e,n):!1}}function UA(e,t){let n=e.length;if(t.length!==n)return!1;for(let r=-1;++rQA,getBit:()=>JA,getBool:()=>qA,packBools:()=>ZA,popcnt_array:()=>ej,popcnt_bit_range:()=>$A,popcnt_uint32:()=>tj,setBool:()=>YA,truncateBitmap:()=>XA});function qA(e,t,n,r){return(n&1<>r}function YA(e,t,n){return n?!!(e[t>>3]|=1<>3]&=~(1<0||n.byteLength>3):ZA(new QA(n,e,t,null,qA)).subarray(0,r)),i}return n}function ZA(e){let t=[],n=0,r=0,i=0;for(let a of e)a&&(i|=1<0)&&(t[n++]=i);let a=new Uint8Array(t.length+7&-8);return a.set(t),a}var QA=class{constructor(e,t,n,r,i){this.bytes=e,this.length=n,this.context=r,this.get=i,this.bit=t%8,this.byteIndex=t>>3,this.byte=e[this.byteIndex++],this.index=0}next(){return this.index>3<<3,i=t+(t%8==0?0:8-t%8);return $A(e,t,i)+$A(e,r,n)+ej(e,i>>3,r-i>>3)}function ej(e,t,n){let r=0,i=Math.trunc(t),a=new DataView(e.buffer,e.byteOffset,e.byteLength),o=n===void 0?e.byteLength:i+n;for(;o-i>=4;)r+=tj(a.getUint32(i)),i+=4;for(;o-i>=2;)r+=tj(a.getUint16(i)),i+=2;for(;o-i>=1;)r+=tj(a.getUint8(i)),i+=1;return r}function tj(e){let t=Math.trunc(e);return t-=t>>>1&1431655765,t=(t&858993459)+(t>>>2&858993459),(t+(t>>>4)&252645135)*16843009>>>24}const nj=-1;var rj=class e{get typeId(){return this.type.typeId}get ArrayType(){return this.type.ArrayType}get buffers(){return[this.valueOffsets,this.values,this.nullBitmap,this.typeIds]}get nullable(){if(this._nullCount!==0){let{type:e}=this;return UD.isSparseUnion(e)||UD.isDenseUnion(e)?this.children.some(e=>e.nullable):this.nullBitmap&&this.nullBitmap.byteLength>0}return!0}get byteLength(){let e=0,{valueOffsets:t,values:n,nullBitmap:r,typeIds:i}=this;return t&&(e+=t.byteLength),n&&(e+=n.byteLength),r&&(e+=r.byteLength),i&&(e+=i.byteLength),this.children.reduce((e,t)=>e+t.byteLength,e)}get nullCount(){if(UD.isUnion(this.type))return this.children.reduce((e,t)=>e+t.nullCount,0);let e=this._nullCount,t;return e<=nj&&(t=this.nullBitmap)&&(this._nullCount=e=t.length===0?0:this.length-$A(t,this.offset,this.offset+this.length)),e}constructor(t,n,r,i,a,o=[],s){this.type=t,this.children=o,this.dictionary=s,this.offset=Math.floor(Math.max(n||0,0)),this.length=Math.floor(Math.max(r||0,0)),this._nullCount=Math.floor(Math.max(i||0,-1));let c;a instanceof e?(this.stride=a.stride,this.values=a.values,this.typeIds=a.typeIds,this.nullBitmap=a.nullBitmap,this.valueOffsets=a.valueOffsets):(this.stride=CO(t),a&&((c=a[0])&&(this.valueOffsets=c),(c=a[1])&&(this.values=c),(c=a[2])&&(this.nullBitmap=c),(c=a[3])&&(this.typeIds=c)))}getValid(e){let{type:t}=this;if(UD.isUnion(t)){let n=t,r=this.children[n.typeIdToChildIndex[this.typeIds[e]]],i=n.mode===ZE.Dense?this.valueOffsets[e]:e;return r.getValid(i)}if(this.nullable&&this.nullCount>0){let t=this.offset+e,n=this.nullBitmap[t>>3];return(n&1<>3;(!r||r.byteLength<=c)&&(r=new Uint8Array((i+a+63&-64)>>3).fill(255),this.nullCount>0?(r.set(XA(i,a,this.nullBitmap),0),Object.assign(this,{nullBitmap:r})):Object.assign(this,{nullBitmap:r,_nullCount:0}));let l=r[c];n=(l&s)!==0,r[c]=t?l|s:l&~s}return n!==!!t&&(this._nullCount=this.nullCount+(t?-1:1)),t}clone(t=this.type,n=this.offset,r=this.length,i=this._nullCount,a=this,o=this.children){return new e(t,n,r,i,a,o,this.dictionary)}slice(e,t){let{stride:n,typeId:r,children:i}=this,a=(this._nullCount===0)-1,o=r===16?n:1,s=this._sliceBuffers(e,t,n,r);return this.clone(this.type,this.offset+e,t,a,s,i.length===0||this.valueOffsets?i:this._sliceChildren(i,o*e,o*t))}_changeLengthAndBackfillNullBitmap(e){if(this.typeId===q.Null)return this.clone(this.type,0,e,0);let{length:t,nullCount:n}=this,r=new Uint8Array((e+63&-64)>>3).fill(255,0,t>>3);r[t>>3]=(1<0&&r.set(XA(this.offset,t,this.nullBitmap),0);let i=this.buffers;return i[nD.VALIDITY]=r,this.clone(this.type,0,e,n+(e-t),i)}_sliceBuffers(e,t,n,r){let i,{buffers:a}=this;return(i=a[nD.TYPE])&&(a[nD.TYPE]=i.subarray(e,e+t)),(i=a[nD.OFFSET])&&(a[nD.OFFSET]=i.subarray(e,e+t+1))||(i=a[nD.DATA])&&(a[nD.DATA]=r===6?i:i.subarray(n*e,n*(e+t))),a}_sliceChildren(e,t,n){return e.map(e=>e.slice(t,n))}};rj.prototype.children=Object.freeze([]);var ij=class e extends wO{visit(e){return this.getVisitFn(e.type).call(this,e)}visitNull(e){let{type:t,offset:n=0,length:r=0}=e;return new rj(t,n,r,r)}visitBool(e){let{type:t,offset:n=0}=e,r=xE(e.nullBitmap),i=gE(t.ArrayType,e.data),{length:a=i.length>>3,nullCount:o=e.nullBitmap?-1:0}=e;return new rj(t,n,a,o,[void 0,i,r])}visitInt(e){let{type:t,offset:n=0}=e,r=xE(e.nullBitmap),i=gE(t.ArrayType,e.data),{length:a=i.length,nullCount:o=e.nullBitmap?-1:0}=e;return new rj(t,n,a,o,[void 0,i,r])}visitFloat(e){let{type:t,offset:n=0}=e,r=xE(e.nullBitmap),i=gE(t.ArrayType,e.data),{length:a=i.length,nullCount:o=e.nullBitmap?-1:0}=e;return new rj(t,n,a,o,[void 0,i,r])}visitUtf8(e){let{type:t,offset:n=0}=e,r=xE(e.data),i=xE(e.nullBitmap),a=yE(e.valueOffsets),{length:o=a.length-1,nullCount:s=e.nullBitmap?-1:0}=e;return new rj(t,n,o,s,[a,r,i])}visitLargeUtf8(e){let{type:t,offset:n=0}=e,r=xE(e.data),i=xE(e.nullBitmap),a=bE(e.valueOffsets),{length:o=a.length-1,nullCount:s=e.nullBitmap?-1:0}=e;return new rj(t,n,o,s,[a,r,i])}visitBinary(e){let{type:t,offset:n=0}=e,r=xE(e.data),i=xE(e.nullBitmap),a=yE(e.valueOffsets),{length:o=a.length-1,nullCount:s=e.nullBitmap?-1:0}=e;return new rj(t,n,o,s,[a,r,i])}visitLargeBinary(e){let{type:t,offset:n=0}=e,r=xE(e.data),i=xE(e.nullBitmap),a=bE(e.valueOffsets),{length:o=a.length-1,nullCount:s=e.nullBitmap?-1:0}=e;return new rj(t,n,o,s,[a,r,i])}visitFixedSizeBinary(e){let{type:t,offset:n=0}=e,r=xE(e.nullBitmap),i=gE(t.ArrayType,e.data),{length:a=i.length/CO(t),nullCount:o=e.nullBitmap?-1:0}=e;return new rj(t,n,a,o,[void 0,i,r])}visitDate(e){let{type:t,offset:n=0}=e,r=xE(e.nullBitmap),i=gE(t.ArrayType,e.data),{length:a=i.length/CO(t),nullCount:o=e.nullBitmap?-1:0}=e;return new rj(t,n,a,o,[void 0,i,r])}visitTimestamp(e){let{type:t,offset:n=0}=e,r=xE(e.nullBitmap),i=gE(t.ArrayType,e.data),{length:a=i.length/CO(t),nullCount:o=e.nullBitmap?-1:0}=e;return new rj(t,n,a,o,[void 0,i,r])}visitTime(e){let{type:t,offset:n=0}=e,r=xE(e.nullBitmap),i=gE(t.ArrayType,e.data),{length:a=i.length/CO(t),nullCount:o=e.nullBitmap?-1:0}=e;return new rj(t,n,a,o,[void 0,i,r])}visitDecimal(e){let{type:t,offset:n=0}=e,r=xE(e.nullBitmap),i=gE(t.ArrayType,e.data),{length:a=i.length/CO(t),nullCount:o=e.nullBitmap?-1:0}=e;return new rj(t,n,a,o,[void 0,i,r])}visitList(e){let{type:t,offset:n=0,child:r}=e,i=xE(e.nullBitmap),a=yE(e.valueOffsets),{length:o=a.length-1,nullCount:s=e.nullBitmap?-1:0}=e;return new rj(t,n,o,s,[a,void 0,i],[r])}visitStruct(e){let{type:t,offset:n=0,children:r=[]}=e,i=xE(e.nullBitmap),{length:a=r.reduce((e,{length:t})=>Math.max(e,t),0),nullCount:o=e.nullBitmap?-1:0}=e;return new rj(t,n,a,o,[void 0,void 0,i],r)}visitUnion(e){let{type:t,offset:n=0,children:r=[]}=e,i=gE(t.ArrayType,e.typeIds),{length:a=i.length,nullCount:o=-1}=e;if(UD.isSparseUnion(t))return new rj(t,n,a,o,[void 0,void 0,void 0,i],r);let s=yE(e.valueOffsets);return new rj(t,n,a,o,[s,void 0,void 0,i],r)}visitDictionary(t){let{type:n,offset:r=0}=t,i=xE(t.nullBitmap),a=gE(n.indices.ArrayType,t.data),{dictionary:o=new kj([new e().visit({type:n.dictionary})])}=t,{length:s=a.length,nullCount:c=t.nullBitmap?-1:0}=t;return new rj(n,r,s,c,[void 0,a,i],[],o)}visitInterval(e){let{type:t,offset:n=0}=e,r=xE(e.nullBitmap),i=gE(t.ArrayType,e.data),{length:a=i.length/CO(t),nullCount:o=e.nullBitmap?-1:0}=e;return new rj(t,n,a,o,[void 0,i,r])}visitDuration(e){let{type:t,offset:n=0}=e,r=xE(e.nullBitmap),i=gE(t.ArrayType,e.data),{length:a=i.length,nullCount:o=e.nullBitmap?-1:0}=e;return new rj(t,n,a,o,[void 0,i,r])}visitFixedSizeList(t){let{type:n,offset:r=0,child:i=new e().visit({type:n.valueType})}=t,a=xE(t.nullBitmap),{length:o=i.length/CO(n),nullCount:s=t.nullBitmap?-1:0}=t;return new rj(n,r,o,s,[void 0,void 0,a],[i])}visitMap(t){let{type:n,offset:r=0,child:i=new e().visit({type:n.childType})}=t,a=xE(t.nullBitmap),o=yE(t.valueOffsets),{length:s=o.length-1,nullCount:c=t.nullBitmap?-1:0}=t;return new rj(n,r,s,c,[o,void 0,a],[i])}};const aj=new ij;var oj=class{constructor(e=0,t){this.numChunks=e,this.getChunkIterator=t,this.chunkIndex=0,this.chunkIterator=this.getChunkIterator(0)}next(){for(;this.chunkIndexe.nullable)}function cj(e){return e.reduce((e,t)=>e+t.nullCount,0)}function lj(e){return e.reduce((e,t,n)=>(e[n+1]=e[n]+t.length,e),new Uint32Array(e.length+1))}function uj(e,t,n,r){let i=[];for(let a=-1,o=e.length;++a=r)break;if(n>=s+c)continue;if(s>=n&&s+c<=r){i.push(o);continue}let l=Math.max(0,n-s),u=Math.min(r-s,c);i.push(o.slice(l,u-l))}return i.length===0&&i.push(e[0].slice(0,0)),i}function dj(e,t,n,r){let i=0,a=0,o=t.length-1;do{if(i>=o-1)return n0?0:-1}function vj(e,t){let{nullBitmap:n}=e;if(!n||e.nullCount<=0)return-1;let r=0;for(let i of new QA(n,e.offset+(t||0),e.length,n,qA)){if(!i)return r;++r}return-1}function yj(e,t,n){if(t===void 0)return-1;if(t===null)switch(e.typeId){case q.Union:break;case q.Dictionary:break;default:return vj(e,n)}let r=wA.getVisitFn(e),i=LA(t);for(let t=(n||0)-1,a=e.length;++t{let n=e.data[t];return n.values.subarray(0,n.length)[Symbol.iterator]()});let n=0;return new oj(e.data.length,t=>{let r=e.data[t],i=r.length,a=e.slice(n,n+i);return n+=i,new wj(a)})}var wj=class{constructor(e){this.vector=e,this.index=0}next(){return this.indexe.data):t;if(a.length===0||a.some(e=>!(e instanceof rj)))throw TypeError(`Vector constructor expects an Array of Data instances.`);let o=(n=a[0])?.type;switch(a.length){case 0:this._offsets=[0];break;case 1:{let{get:e,set:t,indexOf:n}=Dj[o.typeId],r=a[0];this.isValid=e=>fj(r,e),this.get=t=>e(r,t),this.set=(e,n)=>t(r,e,n),this.indexOf=e=>n(r,e),this._offsets=[0,r.length];break}default:Object.setPrototypeOf(this,Oj[o.typeId]),this._offsets=lj(a);break}this.data=a,this.type=o,this.stride=CO(o),this.numChildren=(i=(r=o.children)?.length)??0,this.length=this._offsets.at(-1)}get byteLength(){return this.data.reduce((e,t)=>e+t.byteLength,0)}get nullable(){return sj(this.data)}get nullCount(){return cj(this.data)}get ArrayType(){return this.type.ArrayType}get[Symbol.toStringTag](){return`${this.VectorName}<${this.type[Symbol.toStringTag]}>`}get VectorName(){return`${q[this.type.typeId]}Vector`}isValid(e){return!1}get(e){return null}at(e){return this.get(FA(e,this.length))}set(e,t){}indexOf(e,t){return-1}includes(e,t){return this.indexOf(e,t)>-1}[Symbol.iterator](){return Tj.visit(this)}concat(...t){return new e(this.data.concat(t.flatMap(e=>e.data).flat(1/0)))}slice(t,n){return new e(PA(this,t,n,({data:e,_offsets:t},n,r)=>uj(e,t,n,r)))}toJSON(){return[...this]}toArray(){let{type:e,data:t,length:n,stride:r,ArrayType:i}=this;switch(e.typeId){case q.Int:case q.Float:case q.Decimal:case q.Time:case q.Timestamp:switch(t.length){case 0:return new i;case 1:return t[0].values.subarray(0,n*r);default:return t.reduce((e,{values:t,length:n})=>(e.array.set(t.subarray(0,n*r),e.offset),e.offset+=n*r,e),{array:new i(n*r),offset:0}).array}}return[...this]}toString(){return`[${[...this].join(`,`)}]`}getChild(e){var t;return this.getChildAt((t=this.type.children)?.findIndex(t=>t.name===e))}getChildAt(t){return t>-1&&te[t])):null}get isMemoized(){return UD.isDictionary(this.type)?this.data[0].dictionary.isMemoized:!1}memoize(){if(UD.isDictionary(this.type)){let t=new Aj(this.data[0].dictionary),n=this.data.map(e=>{let n=e.clone();return n.dictionary=t,n});return new e(n)}return new Aj(this)}unmemoize(){if(UD.isDictionary(this.type)&&this.isMemoized){let t=this.data[0].dictionary.unmemoize(),n=this.data.map(e=>{let n=e.clone();return n.dictionary=t,n});return new e(n)}return this}};Ej=Symbol.toStringTag,kj[Ej]=(e=>{e.type=UD.prototype,e.data=[],e.length=0,e.stride=1,e.numChildren=0,e._offsets=new Uint32Array([0]),e[Symbol.isConcatSpreadable]=!0;let t=Object.keys(q).map(e=>q[e]).filter(e=>typeof e==`number`&&e!==q.NONE);for(let n of t){let t=wA.getVisitFnByTypeId(n),r=Ek.getVisitFnByTypeId(n),i=xj.getVisitFnByTypeId(n);Dj[n]={get:t,set:r,indexOf:i},Oj[n]=Object.create(e,{isValid:{value:pj(fj)},get:{value:pj(wA.getVisitFnByTypeId(n))},set:{value:mj(Ek.getVisitFnByTypeId(n))},indexOf:{value:hj(xj.getVisitFnByTypeId(n))}})}return`Vector`})(kj.prototype);var Aj=class e extends kj{constructor(t){super(t.data);let n=this.get,r=this.set,i=this.slice,a=Array(this.length);Object.defineProperty(this,`get`,{value(e){let t=a[e];if(t!==void 0)return t;let r=n.call(this,e);return a[e]=r,r}}),Object.defineProperty(this,`set`,{value(e,t){r.call(this,e,t),a[e]=t}}),Object.defineProperty(this,`slice`,{value:(t,n)=>new e(i.call(this,t,n))}),Object.defineProperty(this,`isMemoized`,{value:!0}),Object.defineProperty(this,`unmemoize`,{value:()=>new kj(this.data)}),Object.defineProperty(this,`memoize`,{value:()=>this})}},jj={};Tn(jj,{BaseInt64:()=>Ij,Int128:()=>zj,Int64:()=>Rj,Uint64:()=>Lj});const Mj=65536;function Nj(e){return e<0&&(e=4294967295+e+1),`0x${e.toString(16)}`}const Pj=8,Fj=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8];var Ij=class{constructor(e){this.buffer=e}high(){return this.buffer[1]}low(){return this.buffer[0]}_times(e){let t=new Uint32Array([this.buffer[1]>>>16,this.buffer[1]&65535,this.buffer[0]>>>16,this.buffer[0]&65535]),n=new Uint32Array([e.buffer[1]>>>16,e.buffer[1]&65535,e.buffer[0]>>>16,e.buffer[0]&65535]),r=t[3]*n[3];this.buffer[0]=r&65535;let i=r>>>16;return r=t[2]*n[3],i+=r,r=t[3]*n[2]>>>0,i+=r,this.buffer[0]+=i<<16,this.buffer[1]=i>>>0>>16,this.buffer[1]+=t[1]*n[3]+t[2]*n[2]+t[3]*n[1],this.buffer[1]+=t[0]*n[3]+t[1]*n[2]+t[2]*n[1]+t[3]*n[0]<<16,this}_plus(e){let t=this.buffer[0]+e.buffer[0]>>>0;this.buffer[1]+=e.buffer[1],t>>0&&++this.buffer[1],this.buffer[0]=t}lessThan(e){return this.buffer[1]>>0,t[2]=this.buffer[2]+e.buffer[2]>>>0,t[1]=this.buffer[1]+e.buffer[1]>>>0,t[0]=this.buffer[0]+e.buffer[0]>>>0,t[0]>>0&&++t[1],t[1]>>0&&++t[2],t[2]>>0&&++t[3],this.buffer[3]=t[3],this.buffer[2]=t[2],this.buffer[1]=t[1],this.buffer[0]=t[0],this}hex(){return`${Nj(this.buffer[3])} ${Nj(this.buffer[2])} ${Nj(this.buffer[1])} ${Nj(this.buffer[0])}`}static multiply(t,n){let r=new e(new Uint32Array(t.buffer));return r.times(n)}static add(t,n){let r=new e(new Uint32Array(t.buffer));return r.plus(n)}static from(t,n=new Uint32Array(4)){return e.fromString(typeof t==`string`?t:t.toString(),n)}static fromNumber(t,n=new Uint32Array(4)){return e.fromString(t.toString(),n)}static fromString(t,n=new Uint32Array(4)){let r=t.startsWith(`-`),i=t.length,a=new e(n);for(let n=r?1:0;nVj,toIntervalDayTimeObjects:()=>Uj,toIntervalMonthDayNanoInt32Array:()=>Hj,toIntervalMonthDayNanoObjects:()=>Wj});function Vj(e){var t,n;let r=e.length,i=new Int32Array(r*2);for(let a=0,o=0;a>BigInt(32))):o+=2}return i}function Uj(e){let t=e.length,n=Array(t/2);for(let r=0,i=0;r>>0);r[a++]={months:e[i],days:e[i+1],nanoseconds:t?`${n}`:n}}return r}var Gj=class extends wO{compareSchemas(e,t){return e===t||t instanceof e.constructor&&this.compareManyFields(e.fields,t.fields)}compareManyFields(e,t){return e===t||Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>this.compareFields(e,t[n]))}compareFields(e,t){return e===t||t instanceof e.constructor&&e.name===t.name&&e.nullable===t.nullable&&this.visit(e.type,t.type)}};function Kj(e,t){return t instanceof e.constructor}function qj(e,t){return e===t||Kj(e,t)}function Jj(e,t){return e===t||Kj(e,t)&&e.bitWidth===t.bitWidth&&e.isSigned===t.isSigned}function Yj(e,t){return e===t||Kj(e,t)&&e.precision===t.precision}function Xj(e,t){return e===t||Kj(e,t)&&e.byteWidth===t.byteWidth}function Zj(e,t){return e===t||Kj(e,t)&&e.unit===t.unit}function Qj(e,t){return e===t||Kj(e,t)&&e.unit===t.unit&&e.timezone===t.timezone}function $j(e,t){return e===t||Kj(e,t)&&e.unit===t.unit&&e.bitWidth===t.bitWidth}function eM(e,t){return e===t||Kj(e,t)&&e.children.length===t.children.length&&cM.compareManyFields(e.children,t.children)}function tM(e,t){return e===t||Kj(e,t)&&e.children.length===t.children.length&&cM.compareManyFields(e.children,t.children)}function nM(e,t){return e===t||Kj(e,t)&&e.mode===t.mode&&e.typeIds.every((e,n)=>e===t.typeIds[n])&&cM.compareManyFields(e.children,t.children)}function rM(e,t){return e===t||Kj(e,t)&&e.id===t.id&&e.isOrdered===t.isOrdered&&cM.visit(e.indices,t.indices)&&cM.visit(e.dictionary,t.dictionary)}function iM(e,t){return e===t||Kj(e,t)&&e.unit===t.unit}function aM(e,t){return e===t||Kj(e,t)&&e.unit===t.unit}function oM(e,t){return e===t||Kj(e,t)&&e.listSize===t.listSize&&e.children.length===t.children.length&&cM.compareManyFields(e.children,t.children)}function sM(e,t){return e===t||Kj(e,t)&&e.keysSorted===t.keysSorted&&e.children.length===t.children.length&&cM.compareManyFields(e.children,t.children)}Gj.prototype.visitNull=qj,Gj.prototype.visitBool=qj,Gj.prototype.visitInt=Jj,Gj.prototype.visitInt8=Jj,Gj.prototype.visitInt16=Jj,Gj.prototype.visitInt32=Jj,Gj.prototype.visitInt64=Jj,Gj.prototype.visitUint8=Jj,Gj.prototype.visitUint16=Jj,Gj.prototype.visitUint32=Jj,Gj.prototype.visitUint64=Jj,Gj.prototype.visitFloat=Yj,Gj.prototype.visitFloat16=Yj,Gj.prototype.visitFloat32=Yj,Gj.prototype.visitFloat64=Yj,Gj.prototype.visitUtf8=qj,Gj.prototype.visitLargeUtf8=qj,Gj.prototype.visitBinary=qj,Gj.prototype.visitLargeBinary=qj,Gj.prototype.visitFixedSizeBinary=Xj,Gj.prototype.visitDate=Zj,Gj.prototype.visitDateDay=Zj,Gj.prototype.visitDateMillisecond=Zj,Gj.prototype.visitTimestamp=Qj,Gj.prototype.visitTimestampSecond=Qj,Gj.prototype.visitTimestampMillisecond=Qj,Gj.prototype.visitTimestampMicrosecond=Qj,Gj.prototype.visitTimestampNanosecond=Qj,Gj.prototype.visitTime=$j,Gj.prototype.visitTimeSecond=$j,Gj.prototype.visitTimeMillisecond=$j,Gj.prototype.visitTimeMicrosecond=$j,Gj.prototype.visitTimeNanosecond=$j,Gj.prototype.visitDecimal=qj,Gj.prototype.visitList=eM,Gj.prototype.visitStruct=tM,Gj.prototype.visitUnion=nM,Gj.prototype.visitDenseUnion=nM,Gj.prototype.visitSparseUnion=nM,Gj.prototype.visitDictionary=rM,Gj.prototype.visitInterval=iM,Gj.prototype.visitIntervalDayTime=iM,Gj.prototype.visitIntervalYearMonth=iM,Gj.prototype.visitIntervalMonthDayNano=iM,Gj.prototype.visitDuration=aM,Gj.prototype.visitDurationSecond=aM,Gj.prototype.visitDurationMillisecond=aM,Gj.prototype.visitDurationMicrosecond=aM,Gj.prototype.visitDurationNanosecond=aM,Gj.prototype.visitFixedSizeList=oM,Gj.prototype.visitMap=sM;const cM=new Gj;function lM(e,t){return cM.compareSchemas(e,t)}function uM(e,t){return cM.compareFields(e,t)}function dM(e,t){return cM.visit(e,t)}const fM=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},cD),jj),KA),OO),dE),MA),rD),Bj),{compareSchemas:lM,compareFields:uM,compareTypes:dM}),pM=365.2425,mM=10**8*24*60*60*1e3,hM=6048e5,gM=864e5,_M=3600,vM=_M*24,yM=vM*7,bM=vM*pM,xM=bM/12,SM=xM*3,CM=Symbol.for(`constructDateFrom`);function wM(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&CM in e?e[CM](t):e instanceof Date?new e.constructor(t):new Date(t)}function TM(e,t){return wM(t||e,e)}let EM={};function DM(){return EM}function OM(e,t){let n=DM(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=TM(e,t?.in),a=i.getDay(),o=(a=a.getTime()?r+1:n.getTime()>=s.getTime()?r:r-1}function jM(e){let t=TM(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),e-+n}function MM(e,...t){let n=wM.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}function NM(e,t){let n=TM(e,t?.in);return n.setHours(0,0,0,0),n}function PM(e,t,n){let[r,i]=MM(n?.in,e,t),a=NM(r),o=NM(i),s=+a-jM(a),c=+o-jM(o);return Math.round((s-c)/gM)}function FM(e,t){let n=AM(e,t),r=wM(t?.in||e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),kM(r)}function IM(e){return e instanceof Date||typeof e==`object`&&Object.prototype.toString.call(e)===`[object Date]`}function LM(e){return!(!IM(e)&&typeof e!=`number`||isNaN(+TM(e)))}function RM(e,t){let n=TM(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}const zM={lessThanXSeconds:{one:`less than a second`,other:`less than {{count}} seconds`},xSeconds:{one:`1 second`,other:`{{count}} seconds`},halfAMinute:`half a minute`,lessThanXMinutes:{one:`less than a minute`,other:`less than {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`about 1 hour`,other:`about {{count}} hours`},xHours:{one:`1 hour`,other:`{{count}} hours`},xDays:{one:`1 day`,other:`{{count}} days`},aboutXWeeks:{one:`about 1 week`,other:`about {{count}} weeks`},xWeeks:{one:`1 week`,other:`{{count}} weeks`},aboutXMonths:{one:`about 1 month`,other:`about {{count}} months`},xMonths:{one:`1 month`,other:`{{count}} months`},aboutXYears:{one:`about 1 year`,other:`about {{count}} years`},xYears:{one:`1 year`,other:`{{count}} years`},overXYears:{one:`over 1 year`,other:`over {{count}} years`},almostXYears:{one:`almost 1 year`,other:`almost {{count}} years`}},BM=(e,t,n)=>{let r,i=zM[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r};function VM(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth,r=e.formats[n]||e.formats[e.defaultWidth];return r}}const HM={full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},UM={full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},WM={full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},GM={date:VM({formats:HM,defaultWidth:`full`}),time:VM({formats:UM,defaultWidth:`full`}),dateTime:VM({formats:WM,defaultWidth:`full`})},KM={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},qM=(e,t,n,r)=>KM[e];function JM(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}const YM={narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},XM={narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},ZM={narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],wide:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]},QM={narrow:[`S`,`M`,`T`,`W`,`T`,`F`,`S`],short:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],abbreviated:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],wide:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`]},$M={narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`}},eN={narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`}},tN=(e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},nN={ordinalNumber:tN,era:JM({values:YM,defaultWidth:`wide`}),quarter:JM({values:XM,defaultWidth:`wide`,argumentCallback:e=>e-1}),month:JM({values:ZM,defaultWidth:`wide`}),day:JM({values:QM,defaultWidth:`wide`}),dayPeriod:JM({values:$M,defaultWidth:`wide`,formattingValues:eN,defaultFormattingWidth:`wide`})};function rN(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?aN(s,e=>e.test(o)):iN(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let u=t.slice(o.length);return{value:l,rest:u}}}function iN(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function aN(e,t){for(let n=0;n{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}const sN=/^(\d+)(th|st|nd|rd)?/i,cN=/\d+/i,lN={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},uN={any:[/^b/i,/^(a|c)/i]},dN={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},fN={any:[/1/i,/2/i,/3/i,/4/i]},pN={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},mN={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},hN={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},gN={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},_N={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},vN={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},yN={ordinalNumber:oN({matchPattern:sN,parsePattern:cN,valueCallback:e=>parseInt(e,10)}),era:rN({matchPatterns:lN,defaultMatchWidth:`wide`,parsePatterns:uN,defaultParseWidth:`any`}),quarter:rN({matchPatterns:dN,defaultMatchWidth:`wide`,parsePatterns:fN,defaultParseWidth:`any`,valueCallback:e=>e+1}),month:rN({matchPatterns:pN,defaultMatchWidth:`wide`,parsePatterns:mN,defaultParseWidth:`any`}),day:rN({matchPatterns:hN,defaultMatchWidth:`wide`,parsePatterns:gN,defaultParseWidth:`any`}),dayPeriod:rN({matchPatterns:_N,defaultMatchWidth:`any`,parsePatterns:vN,defaultParseWidth:`any`})},bN={code:`en-US`,formatDistance:BM,formatLong:GM,formatRelative:qM,localize:nN,match:yN,options:{weekStartsOn:0,firstWeekContainsDate:1}};function xN(e,t){let n=TM(e,t?.in),r=PM(n,RM(n)),i=r+1;return i}function SN(e,t){let n=TM(e,t?.in),r=kM(n)-+FM(n);return Math.round(r/hM)+1}function CN(e,t){let n=TM(e,t?.in),r=n.getFullYear(),i=DM(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=wM(t?.in||e,0);o.setFullYear(r+1,0,a),o.setHours(0,0,0,0);let s=OM(o,t),c=wM(t?.in||e,0);c.setFullYear(r,0,a),c.setHours(0,0,0,0);let l=OM(c,t);return+n>=+s?r+1:+n>=+l?r:r-1}function wN(e,t){let n=DM(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=CN(e,t),a=wM(t?.in||e,0);a.setFullYear(i,0,r),a.setHours(0,0,0,0);let o=OM(a,t);return o}function TN(e,t){let n=TM(e,t?.in),r=OM(n,t)-+wN(n,t);return Math.round(r/hM)+1}function EN(e,t){let n=e<0?`-`:``,r=Math.abs(e).toString().padStart(t,`0`);return n+r}const DN={y(e,t){let n=e.getFullYear(),r=n>0?n:1-n;return EN(t===`yy`?r%100:r,t.length)},M(e,t){let n=e.getMonth();return t===`M`?String(n+1):EN(n+1,2)},d(e,t){return EN(e.getDate(),t.length)},a(e,t){let n=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.toUpperCase();case`aaa`:return n;case`aaaaa`:return n[0];case`aaaa`:default:return n===`am`?`a.m.`:`p.m.`}},h(e,t){return EN(e.getHours()%12||12,t.length)},H(e,t){return EN(e.getHours(),t.length)},m(e,t){return EN(e.getMinutes(),t.length)},s(e,t){return EN(e.getSeconds(),t.length)},S(e,t){let n=t.length,r=e.getMilliseconds(),i=Math.trunc(r*10**(n-3));return EN(i,t.length)}},ON={am:`am`,pm:`pm`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},kN={G:function(e,t,n){let r=e.getFullYear()>0?1:0;switch(t){case`G`:case`GG`:case`GGG`:return n.era(r,{width:`abbreviated`});case`GGGGG`:return n.era(r,{width:`narrow`});case`GGGG`:default:return n.era(r,{width:`wide`})}},y:function(e,t,n){if(t===`yo`){let t=e.getFullYear(),r=t>0?t:1-t;return n.ordinalNumber(r,{unit:`year`})}return DN.y(e,t)},Y:function(e,t,n,r){let i=CN(e,r),a=i>0?i:1-i;if(t===`YY`){let e=a%100;return EN(e,2)}return t===`Yo`?n.ordinalNumber(a,{unit:`year`}):EN(a,t.length)},R:function(e,t){let n=AM(e);return EN(n,t.length)},u:function(e,t){let n=e.getFullYear();return EN(n,t.length)},Q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`Q`:return String(r);case`QQ`:return EN(r,2);case`Qo`:return n.ordinalNumber(r,{unit:`quarter`});case`QQQ`:return n.quarter(r,{width:`abbreviated`,context:`formatting`});case`QQQQQ`:return n.quarter(r,{width:`narrow`,context:`formatting`});case`QQQQ`:default:return n.quarter(r,{width:`wide`,context:`formatting`})}},q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`q`:return String(r);case`qq`:return EN(r,2);case`qo`:return n.ordinalNumber(r,{unit:`quarter`});case`qqq`:return n.quarter(r,{width:`abbreviated`,context:`standalone`});case`qqqqq`:return n.quarter(r,{width:`narrow`,context:`standalone`});case`qqqq`:default:return n.quarter(r,{width:`wide`,context:`standalone`})}},M:function(e,t,n){let r=e.getMonth();switch(t){case`M`:case`MM`:return DN.M(e,t);case`Mo`:return n.ordinalNumber(r+1,{unit:`month`});case`MMM`:return n.month(r,{width:`abbreviated`,context:`formatting`});case`MMMMM`:return n.month(r,{width:`narrow`,context:`formatting`});case`MMMM`:default:return n.month(r,{width:`wide`,context:`formatting`})}},L:function(e,t,n){let r=e.getMonth();switch(t){case`L`:return String(r+1);case`LL`:return EN(r+1,2);case`Lo`:return n.ordinalNumber(r+1,{unit:`month`});case`LLL`:return n.month(r,{width:`abbreviated`,context:`standalone`});case`LLLLL`:return n.month(r,{width:`narrow`,context:`standalone`});case`LLLL`:default:return n.month(r,{width:`wide`,context:`standalone`})}},w:function(e,t,n,r){let i=TN(e,r);return t===`wo`?n.ordinalNumber(i,{unit:`week`}):EN(i,t.length)},I:function(e,t,n){let r=SN(e);return t===`Io`?n.ordinalNumber(r,{unit:`week`}):EN(r,t.length)},d:function(e,t,n){return t===`do`?n.ordinalNumber(e.getDate(),{unit:`date`}):DN.d(e,t)},D:function(e,t,n){let r=xN(e);return t===`Do`?n.ordinalNumber(r,{unit:`dayOfYear`}):EN(r,t.length)},E:function(e,t,n){let r=e.getDay();switch(t){case`E`:case`EE`:case`EEE`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`EEEEE`:return n.day(r,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(r,{width:`short`,context:`formatting`});case`EEEE`:default:return n.day(r,{width:`wide`,context:`formatting`})}},e:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`e`:return String(a);case`ee`:return EN(a,2);case`eo`:return n.ordinalNumber(a,{unit:`day`});case`eee`:return n.day(i,{width:`abbreviated`,context:`formatting`});case`eeeee`:return n.day(i,{width:`narrow`,context:`formatting`});case`eeeeee`:return n.day(i,{width:`short`,context:`formatting`});case`eeee`:default:return n.day(i,{width:`wide`,context:`formatting`})}},c:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`c`:return String(a);case`cc`:return EN(a,t.length);case`co`:return n.ordinalNumber(a,{unit:`day`});case`ccc`:return n.day(i,{width:`abbreviated`,context:`standalone`});case`ccccc`:return n.day(i,{width:`narrow`,context:`standalone`});case`cccccc`:return n.day(i,{width:`short`,context:`standalone`});case`cccc`:default:return n.day(i,{width:`wide`,context:`standalone`})}},i:function(e,t,n){let r=e.getDay(),i=r===0?7:r;switch(t){case`i`:return String(i);case`ii`:return EN(i,t.length);case`io`:return n.ordinalNumber(i,{unit:`day`});case`iii`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`iiiii`:return n.day(r,{width:`narrow`,context:`formatting`});case`iiiiii`:return n.day(r,{width:`short`,context:`formatting`});case`iiii`:default:return n.day(r,{width:`wide`,context:`formatting`})}},a:function(e,t,n){let r=e.getHours(),i=r/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`aaa`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`aaaaa`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});case`aaaa`:default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},b:function(e,t,n){let r=e.getHours(),i;switch(i=r===12?ON.noon:r===0?ON.midnight:r/12>=1?`pm`:`am`,t){case`b`:case`bb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`bbb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`bbbbb`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});case`bbbb`:default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},B:function(e,t,n){let r=e.getHours(),i;switch(i=r>=17?ON.evening:r>=12?ON.afternoon:r>=4?ON.morning:ON.night,t){case`B`:case`BB`:case`BBB`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`BBBBB`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});case`BBBB`:default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},h:function(e,t,n){if(t===`ho`){let t=e.getHours()%12;return t===0&&(t=12),n.ordinalNumber(t,{unit:`hour`})}return DN.h(e,t)},H:function(e,t,n){return t===`Ho`?n.ordinalNumber(e.getHours(),{unit:`hour`}):DN.H(e,t)},K:function(e,t,n){let r=e.getHours()%12;return t===`Ko`?n.ordinalNumber(r,{unit:`hour`}):EN(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t===`ko`?n.ordinalNumber(r,{unit:`hour`}):EN(r,t.length)},m:function(e,t,n){return t===`mo`?n.ordinalNumber(e.getMinutes(),{unit:`minute`}):DN.m(e,t)},s:function(e,t,n){return t===`so`?n.ordinalNumber(e.getSeconds(),{unit:`second`}):DN.s(e,t)},S:function(e,t){return DN.S(e,t)},X:function(e,t,n){let r=e.getTimezoneOffset();if(r===0)return`Z`;switch(t){case`X`:return jN(r);case`XXXX`:case`XX`:return MN(r);case`XXXXX`:case`XXX`:default:return MN(r,`:`)}},x:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`x`:return jN(r);case`xxxx`:case`xx`:return MN(r);case`xxxxx`:case`xxx`:default:return MN(r,`:`)}},O:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`O`:case`OO`:case`OOO`:return`GMT`+AN(r,`:`);case`OOOO`:default:return`GMT`+MN(r,`:`)}},z:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`z`:case`zz`:case`zzz`:return`GMT`+AN(r,`:`);case`zzzz`:default:return`GMT`+MN(r,`:`)}},t:function(e,t,n){let r=Math.trunc(e/1e3);return EN(r,t.length)},T:function(e,t,n){return EN(+e,t.length)}};function AN(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=Math.trunc(r/60),a=r%60;return a===0?n+String(i):n+String(i)+t+EN(a,2)}function jN(e,t){if(e%60==0){let t=e>0?`-`:`+`;return t+EN(Math.abs(e)/60,2)}return MN(e,t)}function MN(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=EN(Math.trunc(r/60),2),a=EN(r%60,2);return n+i+t+a}const NN=(e,t)=>{switch(e){case`P`:return t.date({width:`short`});case`PP`:return t.date({width:`medium`});case`PPP`:return t.date({width:`long`});case`PPPP`:default:return t.date({width:`full`})}},PN=(e,t)=>{switch(e){case`p`:return t.time({width:`short`});case`pp`:return t.time({width:`medium`});case`ppp`:return t.time({width:`long`});case`pppp`:default:return t.time({width:`full`})}},FN=(e,t)=>{let n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return NN(e,t);let a;switch(r){case`P`:a=t.dateTime({width:`short`});break;case`PP`:a=t.dateTime({width:`medium`});break;case`PPP`:a=t.dateTime({width:`long`});break;case`PPPP`:default:a=t.dateTime({width:`full`});break}return a.replace(`{{date}}`,NN(r,t)).replace(`{{time}}`,PN(i,t))},IN={p:PN,P:FN},LN=/^D+$/,RN=/^Y+$/,zN=[`D`,`DD`,`YY`,`YYYY`];function BN(e){return LN.test(e)}function VN(e){return RN.test(e)}function HN(e,t,n){let r=UN(e,t,n);if(console.warn(r),zN.includes(e))throw RangeError(r)}function UN(e,t,n){let r=e[0]===`Y`?`years`:`days of the month`;return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const WN=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,GN=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,KN=/^'([^]*?)'?$/,qN=/''/g,JN=/[a-zA-Z]/;function YN(e,t,n){let r=DM(),i=n?.locale??r.locale??bN,a=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=TM(e,n?.in);if(!LM(s))throw RangeError(`Invalid time value`);let c=t.match(GN).map(e=>{let t=e[0];if(t===`p`||t===`P`){let n=IN[t];return n(e,i.formatLong)}return e}).join(``).match(WN).map(e=>{if(e===`''`)return{isToken:!1,value:`'`};let t=e[0];if(t===`'`)return{isToken:!1,value:XN(e)};if(kN[t])return{isToken:!0,value:e};if(t.match(JN))throw RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));let l={firstWeekContainsDate:a,weekStartsOn:o,locale:i};return c.map(r=>{if(!r.isToken)return r.value;let a=r.value;(!n?.useAdditionalWeekYearTokens&&VN(a)||!n?.useAdditionalDayOfYearTokens&&BN(a))&&HN(a,t,String(e));let o=kN[a[0]];return o(s,a,i.localize,l)}).join(``)}function XN(e){let t=e.match(KN);return t?t[1].replace(qN,`'`):e}function ZN(e,t){return TM(e*1e3,t?.in)}function QN(e,t){let n=$N(t)?new t(0):wM(t,0);return n.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),n.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()),n}function $N(e){return typeof e==`function`&&e.prototype?.constructor===e}function eP(e,t){if(t===void 0)return e.trimEnd();let n=e.length;switch(typeof t){case`string`:if(t.length!==1)throw Error(`The 'chars' parameter should be a single character string.`);for(;n>0&&e[n-1]===t;)n--;break;case`object`:for(;n>0&&t.includes(e[n-1]);)n--}return e.substring(0,n)}function tP(e){return e==null}function nP(e){return e!=null}async function rP(){if(typeof window<`u`&&window!==null)return`browser`;try{let e=await b(()=>import(`./__vite-browser-external-BulQMdUI.js`).then(En(1)),__vite__mapDeps([0,1,2]));return e!==void 0&&e.versions!=null&&e.versions.node!=null?`node`:`unknown`}catch{return`unknown`}}function iP(e){return tP(e)?!1:UD.isInt(e.type)&&!uP(e)||aP(e)}function aP(e){return tP(e)?!1:UD.isInt(e.type)&&e.type.isSigned===!1}function oP(e){return tP(e)?!1:UD.isFloat(e.type)??!1}function sP(e){return tP(e)?!1:UD.isDecimal(e.type)}function cP(e){return tP(e)?!1:UD.isBool(e.type)}function lP(e){return tP(e)?!1:UD.isDuration(e.type)}function uP(e){return tP(e)?!1:UD.isInt(e.type)&&e.metadata.get(`ARROW:extension:name`)===`period`}function dP(e){return tP(e)?!1:UD.isTimestamp(e.type)}function fP(e){return tP(e)?!1:UD.isDate(e.type)}function pP(e){return tP(e)?!1:UD.isTime(e.type)}function mP(e){return tP(e)?!1:UD.isList(e.type)||UD.isFixedSizeList(e.type)}function hP(e){return tP(e)?!1:UD.isStruct(e.type)||UD.isMap(e.type)}function gP(e){return tP(e)?!1:UD.isStruct(e.type)&&e.metadata.get(`ARROW:extension:name`)===`interval`||UD.isInterval(e.type)}const _P=new Date(1970,0,1);function vP(e,t){let n;if(t===eD.MILLISECOND)n=1e3;else if(t===eD.MICROSECOND)n=1e3*1e3;else if(t===eD.NANOSECOND)n=1e3*1e3*1e3;else return Number(e);return typeof e==`bigint`&&!Number.isSafeInteger(Number(e))?Number(e/BigInt(n)):Number(e)/n}function yP(e,t){let n=vP(e,t?.type?.unit??eD.SECOND);return ZN(n)}function bP(e,t){let n=yP(e,t);return YN(n,n.getMilliseconds()===0?`HH:mm:ss`:`HH:mm:ss.SSS`)}function xP(e){let t=`yyyy-MM-dd`;return e instanceof Date||typeof e==`number`&&Number.isFinite(e)?YN(e,t):(console.warn(`Unsupported date value: ${e}`),String(e))}function SP(e,t){if(!(e instanceof Date||typeof e==`number`&&Number.isFinite(e)))return console.warn(`Unsupported datetime value: ${e}`),null;let n,r=t?.type?.timezone;return n=r?new qT(e,r):new qT(e),QN(n,Date)}function CP(e,t){let n=t?.type?.scale||0,r=fM.bigNumToString(new fM.BN(e)).padStart(n,`0`);if(n===0)return r;let i=``;r.startsWith(`-`)&&(i=`-`,r=r.slice(1));let a=r.slice(0,-n)||`0`,o=eP(r.slice(-n),`0`)||``;return`${i}${a}${o?`.${o}`:``}`}const wP=new Intl.NumberFormat(`en-US`,{style:`decimal`,maximumFractionDigits:4,minimumFractionDigits:4,useGrouping:!0});function TP(e){let t=e[0],n=e[1],r=[];return t!==0&&r.push(`${t} year${t>1?`s`:``}`),n!==0&&r.push(`${n} month${n>1?`s`:``}`),r.length?r.join(` `):`0 months`}function EP(e,t){if(UD.isInterval(t?.type))return TP(e);let n=t&&t.metadata.get(`ARROW:extension:name`);if(n&&n===`pandas.interval`){let n=JSON.parse(t.metadata.get(`ARROW:extension:metadata`)),{closed:r}=n,i=e.toJSON(),a=r===`both`||r===`left`?`[`:`(`,o=r===`both`||r===`right`?`]`:`)`,s=OP(i.left,t.type?.children?.[0]),c=OP(i.right,t.type?.children?.[1]);return`${a+s}, ${c+o}`}return String(e)}function DP(e,t){return t?.type instanceof gO?JSON.parse(JSON.stringify(e,(e,t)=>{if(nP(t))return typeof t==`bigint`?Number(t):t})):JSON.parse(JSON.stringify(e,(e,t)=>typeof t==`bigint`?Number(t):t))}function OP(e,t){if(tP(e))return null;let n=e instanceof Date||Number.isFinite(e);if(n&&fP(t))return xP(e);if(typeof e==`bigint`&&pP(t))return bP(Number(e),t);if(n&&dP(t))return SP(e,t);if(uP(t))throw Error(`Period type is not supported yet`);if(gP(t))return EP(e,t);if(lP(t))throw Error(`Duration type is not supported yet`);return sP(t)?CP(e,t):oP(t)&&Number.isFinite(e)||iP(t)?e:hP(t)||mP(t)?DP(e,t):cP(t)?!!e:String(e)}function kP(e){let t=(e.toArray()||[]).map(e=>e.toJSON())||[],n=t.map(t=>(e.schema.fields.forEach(e=>t[e.name]=OP(t[e.name],e)),t));return n}let AP=function(e){return e.ORIGIN_PRIVATE_FS=`origin-private-fs`,e.NODE_FS=`node-fs`,e}({});async function jP(e){let t=re(e,{logger:!1}),n,r,i=await rP();if(i===`browser`){if(t.bundles===void 0){let{getBundles:e}=await b(async()=>{let{getBundles:e}=await import(`./default-browser-CICL74Rl.js`);return{getBundles:e}},[]);t.bundles=await e()}r=await zT(await t.bundles),n=new Worker(r.mainWorker)}else if(i===`node`){if(t.bundles===void 0){let{getBundles:e}=await b(async()=>{let{getBundles:e}=await import(`./default-node-rOqXPBPi.js`);return{getBundles:e}},__vite__mapDeps([3,1,2]));t.bundles=await e()}r=await zT(await t.bundles);let e=r.mainWorker;e.startsWith(`/@fs/`)&&(e=e.replace(`/@fs/`,`file://`));let i=await b(()=>import(`./browser-DAWwZmxu.js`),[]);n=new i.default(e,{type:`module`})}else throw Error(`Unsupported environment: ${i}`);let a;a=t.logger===!0?new rT:t.logger===!1?new nT:t.logger;let o=new mT(a,n);if(await o.instantiate(r.mainModule,r.pthreadWorker),t.storage)switch(t.storage.type){case AP.ORIGIN_PRIVATE_FS:try{let e=t.storage.path;e.startsWith(`/`)&&(e=e.slice(1)),await o.open({path:`opfs://${e}`,accessMode:t.storage.accessMode})}catch(e){throw await o.terminate(),await n.terminate(),e}break;case AP.NODE_FS:try{await o.open({path:t.storage.path,accessMode:t.storage.accessMode,useDirectIO:!0})}catch(e){throw await o.terminate(),await n.terminate(),e}break}let s=await o.connect();async function c(e,t=[]){if(!t||t.length===0){let t=await s.query(e);return{_results:t,_schema:t.schema,columns:t.schema.fields,rows:kP(t)}}let n=await s.prepare(e),r=await n.query(...t);return n.close(),{_results:r,_schema:r.schema,columns:r.schema.fields,rows:kP(r)}}return{worker:n,db:o,conn:s,query:async(e,t=[])=>c(e,t).then(e=>e.rows),queryWithColumns:async(e,t=[])=>c(e,t),close:async()=>{await s.close(),await o.terminate(),await n.terminate()}}}async function MP(e,t){await(await e).conn.send(`BEGIN TRANSACTION`);try{let n=await t(e);return await(await e).conn.send(`COMMIT`),n}catch(t){throw await(await e).conn.send(`ROLLBACK`),t}}async function NP(e,t,n){await(await e).conn.send(`SAVEPOINT ${t}`);try{let r=await n(e);return await(await e).conn.send(`RELEASE SAVEPOINT ${t}`),r}catch(n){throw await(await e).conn.send(`ROLLBACK TO SAVEPOINT ${t}`),n}}const J=Symbol.for(`drizzle:entityKind`),PP=Symbol.for(`drizzle:hasOwnEntityKind`);function Y(e,t){if(!e||typeof e!=`object`)return!1;if(e instanceof t)return!0;if(!Object.prototype.hasOwnProperty.call(t,J))throw Error(`Class "${t.name??``}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let n=Object.getPrototypeOf(e).constructor;if(n)for(;n;){if(J in n&&n[J]===t[J])return!0;n=Object.getPrototypeOf(n)}return!1}var FP=class{constructor(e,t){this.table=e,this.config=t,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity}static[J]=`Column`;name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!==`byDefault`}},IP=class{static[J]=`ColumnBuilder`;config;constructor(e,t,n){this.config={name:e,keyAsName:e===``,notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:n,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(e){return this.config.onUpdateFn=e,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(e){this.config.name===``&&(this.config.name=e)}};const LP=Symbol.for(`drizzle:Name`);var RP=class{static[J]=`PgForeignKeyBuilder`;reference;_onUpdate=`no action`;_onDelete=`no action`;constructor(e,t){this.reference=()=>{let{name:t,columns:n,foreignColumns:r}=e();return{name:t,columns:n,foreignTable:r[0].table,foreignColumns:r}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e===void 0?`no action`:e,this}onDelete(e){return this._onDelete=e===void 0?`no action`:e,this}build(e){return new zP(e,this)}},zP=class{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[J]=`PgForeignKey`;reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:n}=this.reference(),r=t.map(e=>e.name),i=n.map(e=>e.name),a=[this.table[LP],...r,n[0].table[LP],...i];return e??`${a.join(`_`)}_fk`}};function BP(e,...t){return e(...t)}function VP(e,t){return`${e[LP]}_${t.join(`_`)}_unique`}var HP=class{constructor(e,t){this.name=t,this.columns=e}static[J]=`PgUniqueConstraintBuilder`;columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new WP(e,this.columns,this.nullsNotDistinctConfig,this.name)}},UP=class{static[J]=`PgUniqueOnConstraintBuilder`;name;constructor(e){this.name=e}on(...e){return new HP(e,this.name)}},WP=class{constructor(e,t,n,r){this.table=e,this.columns=t,this.name=r??VP(this.table,this.columns.map(e=>e.name)),this.nullsNotDistinct=n}static[J]=`PgUniqueConstraint`;columns;name;nullsNotDistinct=!1;getName(){return this.name}};function GP(e,t,n){for(let r=t;rArray.isArray(e)?JP(e):typeof e==`string`?`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`:`${e}`).join(`,`)}}`}var YP=class extends IP{foreignKeyConfigs=[];static[J]=`PgColumnBuilder`;array(e){return new $P(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:`always`,mode:`stored`},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:n,actions:r})=>BP((n,r)=>{let i=new RP(()=>{let t=n();return{columns:[e],foreignColumns:[t]}});return r.onUpdate&&i.onUpdate(r.onUpdate),r.onDelete&&i.onDelete(r.onDelete),i.build(t)},n,r))}buildExtraConfigColumn(e){return new ZP(e,this.config)}},XP=class extends FP{constructor(e,t){t.uniqueName||=VP(e,[t.name]),super(e,t),this.table=e}static[J]=`PgColumn`},ZP=class extends XP{static[J]=`ExtraConfigColumn`;getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??`asc`,nulls:this.config.nulls??`last`,opClass:this.config.opClass};defaultConfig={order:`asc`,nulls:`last`,opClass:void 0};asc(){return this.indexConfig.order=`asc`,this}desc(){return this.indexConfig.order=`desc`,this}nullsFirst(){return this.indexConfig.nulls=`first`,this}nullsLast(){return this.indexConfig.nulls=`last`,this}op(e){return this.indexConfig.opClass=e,this}},QP=class{static[J]=`IndexedColumn`;constructor(e,t,n,r){this.name=e,this.keyAsName=t,this.type=n,this.indexConfig=r}name;keyAsName;type;indexConfig},$P=class extends YP{static[J]=`PgArrayBuilder`;constructor(e,t,n){super(e,`array`,`PgArray`),this.config.baseBuilder=t,this.config.size=n}build(e){let t=this.config.baseBuilder.build(e);return new eF(e,this.config,t)}},eF=class e extends XP{constructor(e,t,n,r){super(e,t),this.baseColumn=n,this.range=r,this.size=t.size}size;static[J]=`PgArray`;getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==`number`?this.size:``}]`}mapFromDriverValue(e){return typeof e==`string`&&(e=qP(e)),e.map(e=>this.baseColumn.mapFromDriverValue(e))}mapToDriverValue(t,n=!1){let r=t.map(t=>t===null?null:Y(this.baseColumn,e)?this.baseColumn.mapToDriverValue(t,!0):this.baseColumn.mapToDriverValue(t));return n?r:JP(r)}},tF=class extends YP{static[J]=`PgEnumObjectColumnBuilder`;constructor(e,t){super(e,`string`,`PgEnumObjectColumn`),this.config.enum=t}build(e){return new nF(e,this.config)}},nF=class extends XP{static[J]=`PgEnumObjectColumn`;enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}};const rF=Symbol.for(`drizzle:isPgEnum`);function iF(e){return!!e&&typeof e==`function`&&rF in e&&e[rF]===!0}var aF=class extends YP{static[J]=`PgEnumColumnBuilder`;constructor(e,t){super(e,`string`,`PgEnumColumn`),this.config.enum=t}build(e){return new oF(e,this.config)}},oF=class extends XP{static[J]=`PgEnumColumn`;enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}},sF=class{static[J]=`Subquery`;constructor(e,t,n,r=!1,i=[]){this._={brand:`Subquery`,sql:e,selectedFields:t,alias:n,isWith:r,usedTables:i}}},cF=class extends sF{static[J]=`WithSubquery`},lF=`0.44.2`;let uF,dF;const fF={startActiveSpan(e,t){return uF?(dF||=uF.trace.getTracer(`drizzle-orm`,lF),BP((n,r)=>r.startActiveSpan(e,e=>{try{return t(e)}catch(t){throw e.setStatus({code:n.SpanStatusCode.ERROR,message:t instanceof Error?t.message:`Unknown error`}),t}finally{e.end()}}),uF,dF)):t()}},pF=Symbol.for(`drizzle:ViewBaseConfig`),mF=Symbol.for(`drizzle:Schema`),hF=Symbol.for(`drizzle:Columns`),gF=Symbol.for(`drizzle:ExtraConfigColumns`),_F=Symbol.for(`drizzle:OriginalName`),vF=Symbol.for(`drizzle:BaseName`),yF=Symbol.for(`drizzle:IsAlias`),bF=Symbol.for(`drizzle:ExtraConfigBuilder`),xF=Symbol.for(`drizzle:IsDrizzleTable`);var X=class{static[J]=`Table`;static Symbol={Name:LP,Schema:mF,OriginalName:_F,Columns:hF,ExtraConfigColumns:gF,BaseName:vF,IsAlias:yF,ExtraConfigBuilder:bF};[LP];[_F];[mF];[hF];[gF];[vF];[yF]=!1;[xF]=!0;[bF]=void 0;constructor(e,t,n){this[LP]=this[_F]=e,this[mF]=t,this[vF]=n}};function SF(e){return e[LP]}function CF(e){return`${e[mF]??`public`}.${e[LP]}`}var wF=class{static[J]=`FakePrimitiveParam`};function TF(e){return e!=null&&typeof e.getSQL==`function`}function EF(e){let t={sql:``,params:[]};for(let n of e)t.sql+=n.sql,t.params.push(...n.params),n.typings?.length&&(t.typings||=[],t.typings.push(...n.typings));return t}var DF=class{static[J]=`StringChunk`;value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new OF([this])}},OF=class e{constructor(e){this.queryChunks=e;for(let t of e)if(Y(t,X)){let e=t[X.Symbol.Schema];this.usedTables.push(e===void 0?t[X.Symbol.Name]:e+`.`+t[X.Symbol.Name])}}static[J]=`SQL`;decoder=jF;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return fF.startActiveSpan(`drizzle.buildSQL`,t=>{let n=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":n.sql,"drizzle.query.params":JSON.stringify(n.params)}),n})}buildQueryFromSourceParams(t,n){let r=Object.assign({},n,{inlineParams:n.inlineParams||this.shouldInlineParams,paramStartIndex:n.paramStartIndex||{value:0}}),{casing:i,escapeName:a,escapeParam:o,prepareTyping:s,inlineParams:c,paramStartIndex:l}=r;return EF(t.map(t=>{if(Y(t,DF))return{sql:t.value.join(``),params:[]};if(Y(t,kF))return{sql:a(t.value),params:[]};if(t===void 0)return{sql:``,params:[]};if(Array.isArray(t)){let e=[new DF(`(`)];for(let[n,r]of t.entries())e.push(r),ne},MF={mapToDriverValue:e=>e},NF={...jF,...MF};var PF=class{constructor(e,t=MF){this.value=e,this.encoder=t}static[J]=`Param`;brand;getSQL(){return new OF([this])}};function Z(e,...t){let n=[];(t.length>0||e.length>0&&e[0]!==``)&&n.push(new DF(e[0]));for(let[r,i]of t.entries())n.push(i,new DF(e[r+1]));return new OF(n)}(e=>{function t(){return new OF([])}e.empty=t;function n(e){return new OF(e)}e.fromList=n;function r(e){return new OF([new DF(e)])}e.raw=r;function i(e,t){let n=[];for(let[r,i]of e.entries())r>0&&t!==void 0&&n.push(t),n.push(i);return new OF(n)}e.join=i;function a(e){return new kF(e)}e.identifier=a;function o(e){return new FF(e)}e.placeholder=o;function s(e,t){return new PF(e,t)}e.param=s})(Z||={}),(e=>{class t{constructor(e,t){this.sql=e,this.fieldAlias=t}static[J]=`SQL.Aliased`;isSelectionField=!1;getSQL(){return this.sql}clone(){return new t(this.sql,this.fieldAlias)}}e.Aliased=t})(OF||={});var FF=class{constructor(e){this.name=e}static[J]=`Placeholder`;getSQL(){return new OF([this])}};function IF(e,t){return e.map(e=>{if(Y(e,FF)){if(!(e.name in t))throw Error(`No value for placeholder "${e.name}" was provided`);return t[e.name]}if(Y(e,PF)&&Y(e.value,FF)){if(!(e.value.name in t))throw Error(`No value for placeholder "${e.value.name}" was provided`);return e.encoder.mapToDriverValue(t[e.value.name])}return e})}const LF=Symbol.for(`drizzle:IsDrizzleView`);var RF=class{static[J]=`View`;[pF];[LF]=!0;constructor({name:e,schema:t,selectedFields:n,query:r}){this[pF]={name:e,originalName:e,schema:t,selectedFields:n,query:r,isExisting:!r,isAlias:!1}}getSQL(){return new OF([this])}};FP.prototype.getSQL=function(){return new OF([this])},X.prototype.getSQL=function(){return new OF([this])},sF.prototype.getSQL=function(){return new OF([this])};var zF=class{constructor(e){this.table=e}static[J]=`ColumnAliasProxyHandler`;get(e,t){return t===`table`?this.table:e[t]}},BF=class{constructor(e,t){this.alias=e,this.replaceOriginalName=t}static[J]=`TableAliasProxyHandler`;get(e,t){if(t===X.Symbol.IsAlias)return!0;if(t===X.Symbol.Name||this.replaceOriginalName&&t===X.Symbol.OriginalName)return this.alias;if(t===pF)return{...e[pF],name:this.alias,isAlias:!0};if(t===X.Symbol.Columns){let t=e[X.Symbol.Columns];if(!t)return t;let n={};return Object.keys(t).map(r=>{n[r]=new Proxy(t[r],new zF(new Proxy(e,this)))}),n}let n=e[t];return Y(n,FP)?new Proxy(n,new zF(new Proxy(e,this))):n}},VF=class{constructor(e){this.alias=e}static[J]=`RelationTableAliasProxyHandler`;get(e,t){return t===`sourceTable`?HF(e.sourceTable,this.alias):e[t]}};function HF(e,t){return new Proxy(e,new BF(t,!1))}function UF(e,t){return new Proxy(e,new zF(new Proxy(e.table,new BF(t,!1))))}function WF(e,t){return new OF.Aliased(GF(e.sql,t),e.fieldAlias)}function GF(e,t){return Z.join(e.queryChunks.map(e=>Y(e,FP)?UF(e,t):Y(e,OF)?GF(e,t):Y(e,OF.Aliased)?WF(e,t):e))}var KF=class extends Error{static[J]=`DrizzleError`;constructor({message:e,cause:t}){super(e),this.name=`DrizzleError`,this.cause=t}},qF=class extends KF{static[J]=`TransactionRollbackError`;constructor(){super({message:`Rollback`})}},JF=class{static[J]=`ConsoleLogWriter`;write(e){console.log(e)}},YF=class{static[J]=`DefaultLogger`;writer;constructor(e){this.writer=e?.writer??new JF}logQuery(e,t){let n=t.map(e=>{try{return JSON.stringify(e)}catch{return String(e)}}),r=n.length?` -- params: [${n.join(`, `)}]`:``;this.writer.write(`Query: ${e}${r}`)}},XF=class{static[J]=`NoopLogger`;logQuery(){}},ZF=class{static[J]=`QueryPromise`;[Symbol.toStringTag]=`QueryPromise`;catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}};function QF(e,t){return Object.entries(e).reduce((e,[n,r])=>{if(typeof n!=`string`)return e;let i=t?[...t,n]:[n];return Y(r,FP)||Y(r,OF)||Y(r,OF.Aliased)?e.push({path:i,field:r}):Y(r,X)?e.push(...QF(r[X.Symbol.Columns],i)):e.push(...QF(r,i)),e},[])}function $F(e,t){let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let[e,t]of n.entries())if(t!==r[e])return!1;return!0}function eI(e,t){let n=Object.entries(t).filter(([,e])=>e!==void 0).map(([t,n])=>Y(n,OF)||Y(n,FP)?[t,n]:[t,new PF(n,e[X.Symbol.Columns][t])]);if(n.length===0)throw Error(`No values to set`);return Object.fromEntries(n)}function tI(e,t){for(let n of t)for(let t of Object.getOwnPropertyNames(n.prototype)){if(t===`constructor`)continue;Object.defineProperty(e.prototype,t,Object.getOwnPropertyDescriptor(n.prototype,t)||Object.create(null))}}function nI(e){return e[X.Symbol.Columns]}function rI(e){return Y(e,sF)?e._.alias:Y(e,RF)?e[pF].name:Y(e,OF)?void 0:e[X.Symbol.IsAlias]?e[X.Symbol.Name]:e[X.Symbol.BaseName]}function iI(e){if(typeof e!=`object`||!e||e.constructor.name!==`Object`)return!1;if(`logger`in e){let t=typeof e.logger;return!(t!==`boolean`&&(t!==`object`||typeof e.logger.logQuery!=`function`)&&t!==`undefined`)}if(`schema`in e){let t=typeof e.schema;return!(t!==`object`&&t!==`undefined`)}if(`casing`in e){let t=typeof e.casing;return!(t!==`string`&&t!==`undefined`)}if(`mode`in e)return!(e.mode!==`default`||e.mode!==`planetscale`||e.mode!==void 0);if(`connection`in e){let t=typeof e.connection;return!(t!==`string`&&t!==`object`&&t!==`undefined`)}if(`client`in e){let t=typeof e.client;return!(t!==`object`&&t!==`function`&&t!==`undefined`)}return Object.keys(e).length===0}var aI=class extends YP{static[J]=`PgDateColumnBaseBuilder`;defaultNow(){return this.default(Z`now()`)}},oI=class extends aI{static[J]=`PgDateBuilder`;constructor(e){super(e,`date`,`PgDate`)}build(e){return new sI(e,this.config)}},sI=class extends XP{static[J]=`PgDate`;getSQLType(){return`date`}mapFromDriverValue(e){return new Date(e)}mapToDriverValue(e){return e.toISOString()}},cI=class extends aI{static[J]=`PgDateStringBuilder`;constructor(e){super(e,`string`,`PgDateString`)}build(e){return new lI(e,this.config)}},lI=class extends XP{static[J]=`PgDateString`;getSQLType(){return`date`}},uI=class extends YP{static[J]=`PgJsonBuilder`;constructor(e){super(e,`json`,`PgJson`)}build(e){return new dI(e,this.config)}},dI=class extends XP{static[J]=`PgJson`;constructor(e,t){super(e,t)}getSQLType(){return`json`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if(typeof e==`string`)try{return JSON.parse(e)}catch{return e}return e}},fI=class extends YP{static[J]=`PgJsonbBuilder`;constructor(e){super(e,`json`,`PgJsonb`)}build(e){return new pI(e,this.config)}},pI=class extends XP{static[J]=`PgJsonb`;constructor(e,t){super(e,t)}getSQLType(){return`jsonb`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if(typeof e==`string`)try{return JSON.parse(e)}catch{return e}return e}},mI=class extends YP{static[J]=`PgNumericBuilder`;constructor(e,t,n){super(e,`string`,`PgNumeric`),this.config.precision=t,this.config.scale=n}build(e){return new hI(e,this.config)}},hI=class extends XP{static[J]=`PgNumeric`;precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return typeof e==`string`?e:String(e)}getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?`numeric`:`numeric(${this.precision})`}},gI=class extends YP{static[J]=`PgNumericNumberBuilder`;constructor(e,t,n){super(e,`number`,`PgNumericNumber`),this.config.precision=t,this.config.scale=n}build(e){return new _I(e,this.config)}},_I=class extends XP{static[J]=`PgNumericNumber`;precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return typeof e==`number`?e:Number(e)}mapToDriverValue=String;getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?`numeric`:`numeric(${this.precision})`}},vI=class extends YP{static[J]=`PgNumericBigIntBuilder`;constructor(e,t,n){super(e,`bigint`,`PgNumericBigInt`),this.config.precision=t,this.config.scale=n}build(e){return new yI(e,this.config)}},yI=class extends XP{static[J]=`PgNumericBigInt`;precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?`numeric`:`numeric(${this.precision})`}},bI=class extends aI{constructor(e,t,n){super(e,`string`,`PgTime`),this.withTimezone=t,this.precision=n,this.config.withTimezone=t,this.config.precision=n}static[J]=`PgTimeBuilder`;build(e){return new xI(e,this.config)}},xI=class extends XP{static[J]=`PgTime`;withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){let e=this.precision===void 0?``:`(${this.precision})`;return`time${e}${this.withTimezone?` with time zone`:``}`}},SI=class extends aI{static[J]=`PgTimestampBuilder`;constructor(e,t,n){super(e,`date`,`PgTimestamp`),this.config.withTimezone=t,this.config.precision=n}build(e){return new CI(e,this.config)}},CI=class extends XP{static[J]=`PgTimestamp`;withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){let e=this.precision===void 0?``:` (${this.precision})`;return`timestamp${e}${this.withTimezone?` with time zone`:``}`}mapFromDriverValue=e=>new Date(this.withTimezone?e:e+`+0000`);mapToDriverValue=e=>e.toISOString()},wI=class extends aI{static[J]=`PgTimestampStringBuilder`;constructor(e,t,n){super(e,`string`,`PgTimestampString`),this.config.withTimezone=t,this.config.precision=n}build(e){return new TI(e,this.config)}},TI=class extends XP{static[J]=`PgTimestampString`;withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){let e=this.precision===void 0?``:`(${this.precision})`;return`timestamp${e}${this.withTimezone?` with time zone`:``}`}},EI=class extends YP{static[J]=`PgUUIDBuilder`;constructor(e){super(e,`string`,`PgUUID`)}defaultRandom(){return this.default(Z`gen_random_uuid()`)}build(e){return new DI(e,this.config)}},DI=class extends XP{static[J]=`PgUUID`;getSQLType(){return`uuid`}};const OI=Symbol.for(`drizzle:PgInlineForeignKeys`),kI=Symbol.for(`drizzle:EnableRLS`);var AI=class extends X{static[J]=`PgTable`;static Symbol=Object.assign({},X.Symbol,{InlineForeignKeys:OI,EnableRLS:kI});[OI]=[];[kI]=!1;[X.Symbol.ExtraConfigBuilder]=void 0;[X.Symbol.ExtraConfigColumns]={}},jI=class{static[J]=`PgPrimaryKeyBuilder`;columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new MI(e,this.columns,this.name)}},MI=class{constructor(e,t,n){this.table=e,this.columns=t,this.name=n}static[J]=`PgPrimaryKey`;columns;name;getName(){return this.name??`${this.table[AI.Symbol.Name]}_${this.columns.map(e=>e.name).join(`_`)}_pk`}};function NI(e,t){return AF(t)&&!TF(e)&&!Y(e,PF)&&!Y(e,FF)&&!Y(e,FP)&&!Y(e,X)&&!Y(e,RF)?new PF(e,t):e}const PI=(e,t)=>Z`${e} = ${NI(t,e)}`,FI=(e,t)=>Z`${e} <> ${NI(t,e)}`;function II(...e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?new OF(t):new OF([new DF(`(`),Z.join(t,new DF(` and `)),new DF(`)`)])}function LI(...e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.length===1?new OF(t):new OF([new DF(`(`),Z.join(t,new DF(` or `)),new DF(`)`)])}function RI(e){return Z`not ${e}`}const zI=(e,t)=>Z`${e} > ${NI(t,e)}`,BI=(e,t)=>Z`${e} >= ${NI(t,e)}`,VI=(e,t)=>Z`${e} < ${NI(t,e)}`,HI=(e,t)=>Z`${e} <= ${NI(t,e)}`;function UI(e,t){return Array.isArray(t)?t.length===0?Z`false`:Z`${e} in ${t.map(t=>NI(t,e))}`:Z`${e} in ${NI(t,e)}`}function WI(e,t){return Array.isArray(t)?t.length===0?Z`true`:Z`${e} not in ${t.map(t=>NI(t,e))}`:Z`${e} not in ${NI(t,e)}`}function GI(e){return Z`${e} is null`}function KI(e){return Z`${e} is not null`}function qI(e){return Z`exists ${e}`}function JI(e){return Z`not exists ${e}`}function YI(e,t,n){return Z`${e} between ${NI(t,e)} and ${NI(n,e)}`}function XI(e,t,n){return Z`${e} not between ${NI(t,e)} and ${NI(n,e)}`}function ZI(e,t){return Z`${e} like ${t}`}function QI(e,t){return Z`${e} not like ${t}`}function $I(e,t){return Z`${e} ilike ${t}`}function eL(e,t){return Z`${e} not ilike ${t}`}function tL(e){return Z`${e} asc`}function nL(e){return Z`${e} desc`}var rL=class{constructor(e,t,n){this.sourceTable=e,this.referencedTable=t,this.relationName=n,this.referencedTableName=t[X.Symbol.Name]}static[J]=`Relation`;referencedTableName;fieldName},iL=class{constructor(e,t){this.table=e,this.config=t}static[J]=`Relations`},aL=class e extends rL{constructor(e,t,n,r){super(e,t,n?.relationName),this.config=n,this.isNullable=r}static[J]=`One`;withFieldName(t){let n=new e(this.sourceTable,this.referencedTable,this.config,this.isNullable);return n.fieldName=t,n}},oL=class e extends rL{constructor(e,t,n){super(e,t,n?.relationName),this.config=n}static[J]=`Many`;withFieldName(t){let n=new e(this.sourceTable,this.referencedTable,this.config);return n.fieldName=t,n}};function sL(){return{and:II,between:YI,eq:PI,exists:qI,gt:zI,gte:BI,ilike:$I,inArray:UI,isNull:GI,isNotNull:KI,like:ZI,lt:VI,lte:HI,ne:FI,not:RI,notBetween:XI,notExists:JI,notLike:QI,notIlike:eL,notInArray:WI,or:LI,sql:Z}}function cL(){return{sql:Z,asc:tL,desc:nL}}function lL(e,t){Object.keys(e).length===1&&`default`in e&&!Y(e.default,X)&&(e=e.default);let n={},r={},i={};for(let[a,o]of Object.entries(e))if(Y(o,X)){let e=CF(o),t=r[e];n[e]=a,i[a]={tsName:a,dbName:o[X.Symbol.Name],schema:o[X.Symbol.Schema],columns:o[X.Symbol.Columns],relations:t?.relations??{},primaryKey:t?.primaryKey??[]};for(let e of Object.values(o[X.Symbol.Columns]))e.primary&&i[a].primaryKey.push(e);let s=o[X.Symbol.ExtraConfigBuilder]?.(o[X.Symbol.ExtraConfigColumns]);if(s)for(let e of Object.values(s))Y(e,jI)&&i[a].primaryKey.push(...e.columns)}else if(Y(o,iL)){let e=CF(o.table),a=n[e],s=o.config(t(o.table)),c;for(let[t,n]of Object.entries(s))if(a){let e=i[a];e.relations[t]=n,c&&e.primaryKey.push(...c)}else e in r||(r[e]={relations:{},primaryKey:c}),r[e].relations[t]=n}return{tables:i,tableNamesMap:n}}function uL(e){return function(t,n){return new aL(e,t,n,n?.fields.reduce((e,t)=>e&&t.notNull,!0)??!1)}}function dL(e){return function(t,n){return new oL(e,t,n)}}function fL(e,t,n){if(Y(n,aL)&&n.config)return{fields:n.config.fields,references:n.config.references};let r=t[CF(n.referencedTable)];if(!r)throw Error(`Table "${n.referencedTable[X.Symbol.Name]}" not found in schema`);let i=e[r];if(!i)throw Error(`Table "${r}" not found in schema`);let a=n.sourceTable,o=t[CF(a)];if(!o)throw Error(`Table "${a[X.Symbol.Name]}" not found in schema`);let s=[];for(let e of Object.values(i.relations))(n.relationName&&n!==e&&e.relationName===n.relationName||!n.relationName&&e.referencedTable===n.sourceTable)&&s.push(e);if(s.length>1)throw n.relationName?Error(`There are multiple relations with name "${n.relationName}" in table "${r}"`):Error(`There are multiple relations between "${r}" and "${n.sourceTable[X.Symbol.Name]}". Please specify relation name`);if(s[0]&&Y(s[0],aL)&&s[0].config)return{fields:s[0].config.references,references:s[0].config.fields};throw Error(`There is not enough information to infer relation "${o}.${n.fieldName}"`)}function pL(e){return{one:uL(e),many:dL(e)}}function mL(e,t,n,r,i=e=>e){let a={};for(let[o,s]of r.entries())if(s.isJson){let r=t.relations[s.tsKey],c=n[o],l=typeof c==`string`?JSON.parse(c):c;a[s.tsKey]=Y(r,aL)?l&&mL(e,e[s.relationTableTsKey],l,s.selection,i):l.map(t=>mL(e,e[s.relationTableTsKey],t,s.selection,i))}else{let e=i(n[o]),t=s.field,r;r=Y(t,FP)?t:Y(t,OF)?t.decoder:t.sql.decoder,a[s.tsKey]=e===null?null:r.mapFromDriverValue(e)}return a}var hL=class e{static[J]=`SelectionProxyHandler`;config;constructor(e){this.config={...e}}get(t,n){if(n===`_`)return{...t._,selectedFields:new Proxy(t._.selectedFields,this)};if(n===pF)return{...t[pF],selectedFields:new Proxy(t[pF].selectedFields,this)};if(typeof n==`symbol`)return t[n];let r=Y(t,sF)?t._.selectedFields:Y(t,RF)?t[pF].selectedFields:t,i=r[n];if(Y(i,OF.Aliased)){if(this.config.sqlAliasedBehavior===`sql`&&!i.isSelectionField)return i.sql;let e=i.clone();return e.isSelectionField=!0,e}if(Y(i,OF)){if(this.config.sqlBehavior===`sql`)return i;throw Error(`You tried to reference "${n}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return Y(i,FP)?this.config.alias?new Proxy(i,new zF(new Proxy(i.table,new BF(this.config.alias,this.config.replaceOriginalName??!1)))):i:typeof i!=`object`||!i?i:new Proxy(i,new e(this.config))}};function gL(e){let t=e.replace(/['\u2019]/g,``).match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[];return t.map(e=>e.toLowerCase()).join(`_`)}function _L(e){let t=e.replace(/['\u2019]/g,``).match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[];return t.reduce((e,t,n)=>{let r=n===0?t.toLowerCase():`${t[0].toUpperCase()}${t.slice(1)}`;return e+r},``)}function vL(e){return e}var yL=class{static[J]=`CasingCache`;cache={};cachedTables={};convert;constructor(e){this.convert=e===`snake_case`?gL:e===`camelCase`?_L:vL}getColumnCasing(e){if(!e.keyAsName)return e.name;let t=e.table[X.Symbol.Schema]??`public`,n=e.table[X.Symbol.OriginalName],r=`${t}.${n}.${e.name}`;return this.cache[r]||this.cacheTable(e.table),this.cache[r]}cacheTable(e){let t=e[X.Symbol.Schema]??`public`,n=e[X.Symbol.OriginalName],r=`${t}.${n}`;if(!this.cachedTables[r]){for(let t of Object.values(e[X.Symbol.Columns])){let e=`${r}.${t.name}`;this.cache[e]=this.convert(t.name)}this.cachedTables[r]=!0}}clearCache(){this.cache={},this.cachedTables={}}},bL=class extends RF{static[J]=`PgViewBase`},xL=class{static[J]=`PgDialect`;casing;constructor(e){this.casing=new yL(e?.casing)}async migrate(e,t,n){let r=typeof n==`string`?`__drizzle_migrations`:n.migrationsTable??`__drizzle_migrations`,i=typeof n==`string`?`drizzle`:n.migrationsSchema??`drizzle`,a=Z` + CREATE TABLE IF NOT EXISTS ${Z.identifier(i)}.${Z.identifier(r)} ( + id SERIAL PRIMARY KEY, + hash text NOT NULL, + created_at bigint + ) + `;await t.execute(Z`CREATE SCHEMA IF NOT EXISTS ${Z.identifier(i)}`),await t.execute(a);let o=await t.all(Z`select id, hash, created_at from ${Z.identifier(i)}.${Z.identifier(r)} order by created_at desc limit 1`),s=o[0];await t.transaction(async t=>{for await(let n of e)if(!s||Number(s.created_at)t[e]!==void 0||n[e]?.onUpdateFn!==void 0),i=r.length;return Z.join(r.flatMap((e,r)=>{let a=n[e],o=t[e]??Z.param(a.onUpdateFn(),a),s=Z`${Z.identifier(this.casing.getColumnCasing(a))} = ${o}`;return r{let i=[];if(Y(e,OF.Aliased)&&e.isSelectionField)i.push(Z.identifier(e.fieldAlias));else if(Y(e,OF.Aliased)||Y(e,OF)){let n=Y(e,OF.Aliased)?e.sql:e;t?i.push(new OF(n.queryChunks.map(e=>Y(e,XP)?Z.identifier(this.casing.getColumnCasing(e)):e))):i.push(n),Y(e,OF.Aliased)&&i.push(Z` as ${Z.identifier(e.fieldAlias)}`)}else Y(e,FP)&&(t?i.push(Z.identifier(this.casing.getColumnCasing(e))):i.push(e));return ro?.some(({alias:t})=>t===(e[X.Symbol.IsAlias]?SF(e):e[X.Symbol.BaseName])))(e.field.table)){let t=SF(e.field.table);throw Error(`Your "${e.path.join(`->`)}" field references a column "${t}"."${e.field.name}", but the table "${t}" is not part of the query! Did you forget to join it?`)}let h=!o||o.length===0,g=this.buildWithCTE(e),_;f&&(_=f===!0?Z` distinct`:Z` distinct on (${Z.join(f.on,Z`, `)})`);let v=this.buildSelection(m,{isSingleTable:h}),y=this.buildFromTable(a),b=this.buildJoins(o),x=r?Z` where ${r}`:void 0,S=i?Z` having ${i}`:void 0,C;s&&s.length>0&&(C=Z` order by ${Z.join(s,Z`, `)}`);let w;c&&c.length>0&&(w=Z` group by ${Z.join(c,Z`, `)}`);let T=typeof l==`object`||typeof l==`number`&&l>=0?Z` limit ${l}`:void 0,E=u?Z` offset ${u}`:void 0,D=Z.empty();if(d){let e=Z` for ${Z.raw(d.strength)}`;d.config.of&&e.append(Z` of ${Z.join(Array.isArray(d.config.of)?d.config.of:[d.config.of],Z`, `)}`),d.config.noWait?e.append(Z` nowait`):d.config.skipLocked&&e.append(Z` skip locked`),D.append(e)}let O=Z`${g}select${_} ${v} from ${y}${b}${x}${w}${S}${C}${T}${E}${D}`;return p.length>0?this.buildSetOperations(O,p):O}buildSetOperations(e,t){let[n,...r]=t;if(!n)throw Error(`Cannot pass undefined values to any set operator`);return r.length===0?this.buildSetOperationQuery({leftSelect:e,setOperator:n}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:n}),r)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:n,rightSelect:r,limit:i,orderBy:a,offset:o}}){let s=Z`(${e.getSQL()}) `,c=Z`(${r.getSQL()})`,l;if(a&&a.length>0){let e=[];for(let t of a)if(Y(t,XP))e.push(Z.identifier(t.name));else if(Y(t,OF)){for(let e=0;e=0?Z` limit ${i}`:void 0,d=Z.raw(`${t} ${n?`all `:``}`),f=o?Z` offset ${o}`:void 0;return Z`${s}${d}${c}${l}${u}${f}`}buildInsertQuery({table:e,values:t,onConflict:n,returning:r,withList:i,select:a,overridingSystemValue_:o}){let s=[],c=e[X.Symbol.Columns],l=Object.entries(c).filter(([e,t])=>!t.shouldDisableInsert()),u=l.map(([,e])=>Z.identifier(this.casing.getColumnCasing(e)));if(a){let e=t;Y(e,OF)?s.push(e):s.push(e.getSQL())}else{let e=t;s.push(Z.raw(`values `));for(let[t,n]of e.entries()){let r=[];for(let[e,t]of l){let i=n[e];if(i===void 0||Y(i,PF)&&i.value===void 0)if(t.defaultFn!==void 0){let e=t.defaultFn(),n=Y(e,OF)?e:Z.param(e,t);r.push(n)}else if(!t.default&&t.onUpdateFn!==void 0){let e=t.onUpdateFn(),n=Y(e,OF)?e:Z.param(e,t);r.push(n)}else r.push(Z`default`);else r.push(i)}s.push(r),t({dbKey:t.name,tsKey:e,field:UF(t,o),relationTableTsKey:void 0,isJson:!1,selection:[]}))}else{let r=Object.fromEntries(Object.entries(i.columns).map(([e,t])=>[e,UF(t,o)]));if(a.where){let e=typeof a.where==`function`?a.where(r,sL()):a.where;p=e&&GF(e,o)}let s=[],c=[];if(a.columns){let e=!1;for(let[t,n]of Object.entries(a.columns)){if(n===void 0)continue;t in i.columns&&(!e&&n===!0&&(e=!0),c.push(t))}c.length>0&&(c=e?c.filter(e=>a.columns?.[e]===!0):Object.keys(i.columns).filter(e=>!c.includes(e)))}else c=Object.keys(i.columns);for(let e of c){let t=i.columns[e];s.push({tsKey:e,value:t})}let h=[];a.with&&(h=Object.entries(a.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:i.relations[e]})));let g;if(a.extras){g=typeof a.extras==`function`?a.extras(r,{sql:Z}):a.extras;for(let[e,t]of Object.entries(g))s.push({tsKey:e,value:WF(t,o)})}for(let{tsKey:e,value:t}of s)l.push({dbKey:Y(t,OF.Aliased)?t.fieldAlias:i.columns[e].name,tsKey:e,field:Y(t,FP)?UF(t,o):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let _=typeof a.orderBy==`function`?a.orderBy(r,cL()):a.orderBy??[];Array.isArray(_)||(_=[_]),f=_.map(e=>Y(e,FP)?UF(e,o):GF(e,o)),u=a.limit,d=a.offset;for(let{tsKey:r,queryConfig:i,relation:a}of h){let s=fL(t,n,a),c=CF(a.referencedTable),u=n[c],d=`${o}_${r}`,f=II(...s.fields.map((e,t)=>PI(UF(s.references[t],d),UF(e,o)))),p=this.buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:n,table:e[u],tableConfig:t[u],queryConfig:Y(a,aL)?i===!0?{limit:1}:{...i,limit:1}:i,tableAlias:d,joinOn:f,nestedQueryRelation:a}),h=Z`${Z.identifier(d)}.${Z.identifier(`data`)}`.as(r);m.push({on:Z`true`,table:new sF(p.sql,{},d),alias:d,joinType:`left`,lateral:!0}),l.push({dbKey:r,tsKey:r,field:h,relationTableTsKey:u,isJson:!0,selection:p.selection})}}if(l.length===0)throw new KF({message:`No fields selected for table "${i.tsName}" ("${o}")`});let h;if(p=II(c,p),s){let e=Z`json_build_array(${Z.join(l.map(({field:e,tsKey:t,isJson:n})=>n?Z`${Z.identifier(`${o}_${t}`)}.${Z.identifier(`data`)}`:Y(e,OF.Aliased)?e.sql:e),Z`, `)})`;Y(s,oL)&&(e=Z`coalesce(json_agg(${e}${f.length>0?Z` order by ${Z.join(f,Z`, `)}`:void 0}), '[]'::json)`);let t=[{dbKey:`data`,tsKey:`data`,field:e.as(`data`),isJson:!0,relationTableTsKey:i.tsName,selection:l}],n=u!==void 0||d!==void 0||f.length>0;n?(h=this.buildSelectQuery({table:HF(r,o),fields:{},fieldsFlat:[{path:[],field:Z.raw(`*`)}],where:p,limit:u,offset:d,orderBy:f,setOperators:[]}),p=void 0,u=void 0,d=void 0,f=[]):h=HF(r,o),h=this.buildSelectQuery({table:Y(h,AI)?h:new sF(h,{},o),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:Y(e,FP)?UF(e,o):e})),joins:m,where:p,limit:u,offset:d,orderBy:f,setOperators:[]})}else h=this.buildSelectQuery({table:HF(r,o),fields:{},fieldsFlat:l.map(({field:e})=>({path:[],field:Y(e,FP)?UF(e,o):e})),joins:m,where:p,limit:u,offset:d,orderBy:f,setOperators:[]});return{tableTsKey:i.tsName,sql:h,selection:l}}},SL=class{static[J]=`TypedQueryBuilder`;getSelectedFields(){return this._.selectedFields}},CL=class{static[J]=`PgSelectBuilder`;fields;session;dialect;withList=[];distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,e.withList&&(this.withList=e.withList),this.distinct=e.distinct}authToken;setToken(e){return this.authToken=e,this}from(e){let t=!!this.fields,n=e,r;return r=this.fields?this.fields:Y(n,sF)?Object.fromEntries(Object.keys(n._.selectedFields).map(e=>[e,n[e]])):Y(n,bL)?n[pF].selectedFields:Y(n,OF)?{}:nI(n),new TL({table:n,fields:r,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}},wL=class extends SL{static[J]=`PgSelectQueryBuilder`;_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:e,fields:t,isPartialSelect:n,session:r,dialect:i,withList:a,distinct:o}){super(),this.config={withList:a,table:e,fields:{...t},distinct:o,setOperators:[]},this.isPartialSelect=n,this.session=r,this.dialect=i,this._={selectedFields:t,config:this.config},this.tableName=rI(e),this.joinsNotNullableMap=typeof this.tableName==`string`?{[this.tableName]:!0}:{};for(let t of FL(e))this.usedTables.add(t)}getUsedTables(){return[...this.usedTables]}createJoin(e,t){return(n,r)=>{let i=this.tableName,a=rI(n);for(let e of FL(n))this.usedTables.add(e);if(typeof a==`string`&&this.config.joins?.some(e=>e.alias===a))throw Error(`Alias "${a}" is already used in this query`);if(!this.isPartialSelect&&(Object.keys(this.joinsNotNullableMap).length===1&&typeof i==`string`&&(this.config.fields={[i]:this.config.fields}),typeof a==`string`&&!Y(n,OF))){let e=Y(n,sF)?n._.selectedFields:Y(n,RF)?n[pF].selectedFields:n[X.Symbol.Columns];this.config.fields[a]=e}if(typeof r==`function`&&(r=r(new Proxy(this.config.fields,new hL({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:r,table:n,joinType:e,alias:a,lateral:t}),typeof a==`string`)switch(e){case`left`:this.joinsNotNullableMap[a]=!1;break;case`right`:this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[a]=!0;break;case`cross`:case`inner`:this.joinsNotNullableMap[a]=!0;break;case`full`:this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[a]=!1;break}return this}}leftJoin=this.createJoin(`left`,!1);leftJoinLateral=this.createJoin(`left`,!0);rightJoin=this.createJoin(`right`,!1);innerJoin=this.createJoin(`inner`,!1);innerJoinLateral=this.createJoin(`inner`,!0);fullJoin=this.createJoin(`full`,!1);crossJoin=this.createJoin(`cross`,!1);crossJoinLateral=this.createJoin(`cross`,!0);createSetOperator(e,t){return n=>{let r=typeof n==`function`?n(DL()):n;if(!$F(this.getSelectedFields(),r.getSelectedFields()))throw Error(`Set operator error (union / intersect / except): selected fields are not the same or are in a different order`);return this.config.setOperators.push({type:e,isAll:t,rightSelect:r}),this}}union=this.createSetOperator(`union`,!1);unionAll=this.createSetOperator(`union`,!0);intersect=this.createSetOperator(`intersect`,!1);intersectAll=this.createSetOperator(`intersect`,!0);except=this.createSetOperator(`except`,!1);exceptAll=this.createSetOperator(`except`,!0);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return typeof e==`function`&&(e=e(new Proxy(this.config.fields,new hL({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))),this.config.where=e,this}having(e){return typeof e==`function`&&(e=e(new Proxy(this.config.fields,new hL({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))),this.config.having=e,this}groupBy(...e){if(typeof e[0]==`function`){let t=e[0](new Proxy(this.config.fields,new hL({sqlAliasedBehavior:`alias`,sqlBehavior:`sql`})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if(typeof e[0]==`function`){let t=e[0](new Proxy(this.config.fields,new hL({sqlAliasedBehavior:`alias`,sqlBehavior:`sql`}))),n=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=n:this.config.orderBy=n}else{let t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}for(e,t={}){return this.config.lockingClause={strength:e,config:t},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){let t=[];if(t.push(...FL(this.config.table)),this.config.joins)for(let e of this.config.joins)t.push(...FL(e.table));return new Proxy(new sF(this.getSQL(),this.config.fields,e,!1,[...new Set(t)]),new hL({alias:e,sqlAliasedBehavior:`alias`,sqlBehavior:`error`}))}getSelectedFields(){return new Proxy(this.config.fields,new hL({alias:this.tableName,sqlAliasedBehavior:`alias`,sqlBehavior:`error`}))}$dynamic(){return this}$withCache(e){return this.cacheConfig=e===void 0?{config:{},enable:!0,autoInvalidate:!0}:e===!1?{enable:!1}:{enable:!0,autoInvalidate:!0,...e},this}},TL=class extends wL{static[J]=`PgSelect`;_prepare(e){let{session:t,config:n,dialect:r,joinsNotNullableMap:i,authToken:a,cacheConfig:o,usedTables:s}=this;if(!t)throw Error(`Cannot execute a query on a query builder. Please use a database instance instead.`);let{fields:c}=n;return fF.startActiveSpan(`drizzle.prepareQuery`,()=>{let n=QF(c),l=t.prepareQuery(r.sqlToQuery(this.getSQL()),n,e,!0,void 0,{type:`select`,tables:[...s]},o);return l.joinsNotNullableMap=i,l.setToken(a)})}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>fF.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken))};tI(TL,[ZF]);function EL(e,t){return(n,r,...i)=>{let a=[r,...i].map(n=>({type:e,isAll:t,rightSelect:n}));for(let e of a)if(!$F(n.getSelectedFields(),e.rightSelect.getSelectedFields()))throw Error(`Set operator error (union / intersect / except): selected fields are not the same or are in a different order`);return n.addSetOperators(a)}}const DL=()=>({union:OL,unionAll:kL,intersect:AL,intersectAll:jL,except:ML,exceptAll:NL}),OL=EL(`union`,!1),kL=EL(`union`,!0),AL=EL(`intersect`,!1),jL=EL(`intersect`,!0),ML=EL(`except`,!1),NL=EL(`except`,!0);var PL=class{static[J]=`PgQueryBuilder`;dialect;dialectConfig;constructor(e){this.dialect=Y(e,xL)?e:void 0,this.dialectConfig=Y(e,xL)?void 0:e}$with=(e,t)=>{let n=this,r=r=>(typeof r==`function`&&(r=r(n)),new Proxy(new cF(r.getSQL(),t??(`getSelectedFields`in r?r.getSelectedFields()??{}:{}),e,!0),new hL({alias:e,sqlAliasedBehavior:`alias`,sqlBehavior:`error`})));return{as:r}};with(...e){let t=this;function n(n){return new CL({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e})}function r(e){return new CL({fields:e??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})}function i(e,n){return new CL({fields:n??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:e}})}return{select:n,selectDistinct:r,selectDistinctOn:i}}select(e){return new CL({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new CL({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new CL({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||=new xL(this.dialectConfig),this.dialect}};function FL(e){return Y(e,AI)?[e[mF]?`${e[mF]}.${e[X.Symbol.BaseName]}`:e[X.Symbol.BaseName]]:Y(e,sF)?e._.usedTables??[]:Y(e,OF)?e.usedTables??[]:[]}var IL=class extends ZF{constructor(e,t,n,r){super(),this.session=t,this.dialect=n,this.config={table:e,withList:r}}static[J]=`PgDelete`;config;cacheConfig;where(e){return this.config.where=e,this}returning(e=this.config.table[X.Symbol.Columns]){return this.config.returningFields=e,this.config.returning=QF(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return fF.startActiveSpan(`drizzle.prepareQuery`,()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:`delete`,tables:FL(this.config.table)},this.cacheConfig))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>fF.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken));getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new hL({alias:SF(this.config.table),sqlAliasedBehavior:`alias`,sqlBehavior:`error`})):void 0}$dynamic(){return this}},LL=class{constructor(e,t,n,r,i){this.table=e,this.session=t,this.dialect=n,this.withList=r,this.overridingSystemValue_=i}static[J]=`PgInsertBuilder`;authToken;setToken(e){return this.authToken=e,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(e){if(e=Array.isArray(e)?e:[e],e.length===0)throw Error(`values() must be called with at least one value`);let t=e.map(e=>{let t={},n=this.table[X.Symbol.Columns];for(let r of Object.keys(e)){let i=e[r];t[r]=Y(i,OF)?i:new PF(i,n[r])}return t});return new RL(this.table,t,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(e){let t=typeof e==`function`?e(new PL):e;if(!Y(t,OF)&&!$F(this.table[hF],t._.selectedFields))throw Error(`Insert select error: selected fields are not the same or are in a different order compared to the table definition`);return new RL(this.table,t,this.session,this.dialect,this.withList,!0)}},RL=class extends ZF{constructor(e,t,n,r,i,a,o){super(),this.session=n,this.dialect=r,this.config={table:e,values:t,withList:i,select:a,overridingSystemValue_:o}}static[J]=`PgInsert`;config;cacheConfig;returning(e=this.config.table[X.Symbol.Columns]){return this.config.returningFields=e,this.config.returning=QF(e),this}onConflictDoNothing(e={}){if(e.target===void 0)this.config.onConflict=Z`do nothing`;else{let t=``;t=Array.isArray(e.target)?e.target.map(e=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(e))).join(`,`):this.dialect.escapeName(this.dialect.casing.getColumnCasing(e.target));let n=e.where?Z` where ${e.where}`:void 0;this.config.onConflict=Z`(${Z.raw(t)})${n} do nothing`}return this}onConflictDoUpdate(e){if(e.where&&(e.targetWhere||e.setWhere))throw Error(`You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.`);let t=e.where?Z` where ${e.where}`:void 0,n=e.targetWhere?Z` where ${e.targetWhere}`:void 0,r=e.setWhere?Z` where ${e.setWhere}`:void 0,i=this.dialect.buildUpdateSet(this.config.table,eI(this.config.table,e.set)),a=``;return a=Array.isArray(e.target)?e.target.map(e=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(e))).join(`,`):this.dialect.escapeName(this.dialect.casing.getColumnCasing(e.target)),this.config.onConflict=Z`(${Z.raw(a)})${n} do update set ${i}${t}${r}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return fF.startActiveSpan(`drizzle.prepareQuery`,()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:`insert`,tables:FL(this.config.table)},this.cacheConfig))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>fF.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken));getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new hL({alias:SF(this.config.table),sqlAliasedBehavior:`alias`,sqlBehavior:`error`})):void 0}$dynamic(){return this}},zL=class extends ZF{constructor(e,t,n){super(),this.session=t,this.dialect=n,this.config={view:e}}static[J]=`PgRefreshMaterializedView`;config;concurrently(){if(this.config.withNoData!==void 0)throw Error(`Cannot use concurrently and withNoData together`);return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw Error(`Cannot use concurrently and withNoData together`);return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return fF.startActiveSpan(`drizzle.prepareQuery`,()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,e,!0))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>fF.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(e,this.authToken))},BL=class{constructor(e,t,n,r){this.table=e,this.session=t,this.dialect=n,this.withList=r}static[J]=`PgUpdateBuilder`;authToken;setToken(e){return this.authToken=e,this}set(e){return new VL(this.table,eI(this.table,e),this.session,this.dialect,this.withList).setToken(this.authToken)}},VL=class extends ZF{constructor(e,t,n,r,i){super(),this.session=n,this.dialect=r,this.config={set:t,table:e,withList:i,joins:[]},this.tableName=rI(e),this.joinsNotNullableMap=typeof this.tableName==`string`?{[this.tableName]:!0}:{}}static[J]=`PgUpdate`;config;tableName;joinsNotNullableMap;cacheConfig;from(e){let t=e,n=rI(t);return typeof n==`string`&&(this.joinsNotNullableMap[n]=!0),this.config.from=t,this}getTableLikeFields(e){return Y(e,AI)?e[X.Symbol.Columns]:Y(e,sF)?e._.selectedFields:e[pF].selectedFields}createJoin(e){return(t,n)=>{let r=rI(t);if(typeof r==`string`&&this.config.joins.some(e=>e.alias===r))throw Error(`Alias "${r}" is already used in this query`);if(typeof n==`function`){let e=this.config.from&&!Y(this.config.from,OF)?this.getTableLikeFields(this.config.from):void 0;n=n(new Proxy(this.config.table[X.Symbol.Columns],new hL({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})),e&&new Proxy(e,new hL({sqlAliasedBehavior:`sql`,sqlBehavior:`sql`})))}if(this.config.joins.push({on:n,table:t,joinType:e,alias:r}),typeof r==`string`)switch(e){case`left`:this.joinsNotNullableMap[r]=!1;break;case`right`:this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[r]=!0;break;case`inner`:this.joinsNotNullableMap[r]=!0;break;case`full`:this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[r]=!1;break}return this}}leftJoin=this.createJoin(`left`);rightJoin=this.createJoin(`right`);innerJoin=this.createJoin(`inner`);fullJoin=this.createJoin(`full`);where(e){return this.config.where=e,this}returning(e){if(!e&&(e=Object.assign({},this.config.table[X.Symbol.Columns]),this.config.from)){let t=rI(this.config.from);if(typeof t==`string`&&this.config.from&&!Y(this.config.from,OF)){let n=this.getTableLikeFields(this.config.from);e[t]=n}for(let t of this.config.joins){let n=rI(t.table);if(typeof n==`string`&&!Y(t.table,OF)){let r=this.getTableLikeFields(t.table);e[n]=r}}}return this.config.returningFields=e,this.config.returning=QF(e),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){let t=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:`insert`,tables:FL(this.config.table)},this.cacheConfig);return t.joinsNotNullableMap=this.joinsNotNullableMap,t}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>this._prepare().execute(e,this.authToken);getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new hL({alias:SF(this.config.table),sqlAliasedBehavior:`alias`,sqlBehavior:`error`})):void 0}$dynamic(){return this}},HL=class e extends OF{constructor(t){super(e.buildEmbeddedCount(t.source,t.filters).queryChunks),this.params=t,this.mapWith(Number),this.session=t.session,this.sql=e.buildCount(t.source,t.filters)}sql;token;static[J]=`PgCountBuilder`;[Symbol.toStringTag]=`PgCountBuilder`;session;static buildEmbeddedCount(e,t){return Z`(select count(*) from ${e}${Z.raw(` where `).if(t)}${t})`}static buildCount(e,t){return Z`select count(*) as count from ${e}${Z.raw(` where `).if(t)}${t};`}setToken(e){return this.token=e,this}then(e,t){return Promise.resolve(this.session.count(this.sql,this.token)).then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}},UL=class{constructor(e,t,n,r,i,a,o){this.fullSchema=e,this.schema=t,this.tableNamesMap=n,this.table=r,this.tableConfig=i,this.dialect=a,this.session=o}static[J]=`PgRelationalQueryBuilder`;findMany(e){return new WL(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},`many`)}findFirst(e){return new WL(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},`first`)}},WL=class extends ZF{constructor(e,t,n,r,i,a,o,s,c){super(),this.fullSchema=e,this.schema=t,this.tableNamesMap=n,this.table=r,this.tableConfig=i,this.dialect=a,this.session=o,this.config=s,this.mode=c}static[J]=`PgRelationalQuery`;_prepare(e){return fF.startActiveSpan(`drizzle.prepareQuery`,()=>{let{query:t,builtQuery:n}=this._toSQL();return this.session.prepareQuery(n,void 0,e,!0,(e,n)=>{let r=e.map(e=>mL(this.schema,this.tableConfig,e,t.selection,n));return this.mode===`first`?r[0]:r})})}prepare(e){return this._prepare(e)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let e=this._getQuery(),t=this.dialect.sqlToQuery(e.sql);return{query:e,builtQuery:t}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(e){return this.authToken=e,this}execute(){return fF.startActiveSpan(`drizzle.operation`,()=>this._prepare().execute(void 0,this.authToken))}},GL=class extends ZF{constructor(e,t,n,r){super(),this.execute=e,this.sql=t,this.query=n,this.mapBatchResult=r}static[J]=`PgRaw`;getSQL(){return this.sql}getQuery(){return this.query}mapResult(e,t){return t?this.mapBatchResult(e):e}_prepare(){return this}isResponseInArrayMode(){return!1}},KL=class{constructor(e,t,n){if(this.dialect=e,this.session=t,this._=n?{schema:n.schema,fullSchema:n.fullSchema,tableNamesMap:n.tableNamesMap,session:t}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:t},this.query={},this._.schema)for(let[r,i]of Object.entries(this._.schema))this.query[r]=new UL(n.fullSchema,this._.schema,this._.tableNamesMap,n.fullSchema[r],i,e,t);this.$cache={invalidate:async e=>{}}}static[J]=`PgDatabase`;query;$with=(e,t)=>{let n=this,r=r=>(typeof r==`function`&&(r=r(new PL(n.dialect))),new Proxy(new cF(r.getSQL(),t??(`getSelectedFields`in r?r.getSelectedFields()??{}:{}),e,!0),new hL({alias:e,sqlAliasedBehavior:`alias`,sqlBehavior:`error`})));return{as:r}};$count(e,t){return new HL({source:e,filters:t,session:this.session})}$cache;with(...e){let t=this;function n(n){return new CL({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e})}function r(n){return new CL({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}function i(n,r){return new CL({fields:r??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:{on:n}})}function a(n){return new BL(n,t.session,t.dialect,e)}function o(n){return new LL(n,t.session,t.dialect,e)}function s(n){return new IL(n,t.session,t.dialect,e)}return{select:n,selectDistinct:r,selectDistinctOn:i,update:a,insert:o,delete:s}}select(e){return new CL({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new CL({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(e,t){return new CL({fields:t??void 0,session:this.session,dialect:this.dialect,distinct:{on:e}})}update(e){return new BL(e,this.session,this.dialect)}insert(e){return new LL(e,this.session,this.dialect)}delete(e){return new IL(e,this.session,this.dialect)}refreshMaterializedView(e){return new zL(e,this.session,this.dialect)}authToken;execute(e){let t=typeof e==`string`?Z.raw(e):e.getSQL(),n=this.dialect.sqlToQuery(t),r=this.session.prepareQuery(n,void 0,void 0,!1);return new GL(()=>r.execute(void 0,this.authToken),t,n,e=>r.mapResult(e,!0))}transaction(e,t){return this.session.transaction(e,t)}},qL=class{static[J]=`Cache`},JL=class extends qL{strategy(){return`all`}static[J]=`NoopCache`;async get(e){}async put(e,t,n,r){}async onMutate(e){}};async function YL(e,t){let n=`${e}-${JSON.stringify(t)}`,r=new TextEncoder,i=r.encode(n),a=await crypto.subtle.digest(`SHA-256`,i),o=[...new Uint8Array(a)],s=o.map(e=>e.toString(16).padStart(2,`0`)).join(``);return s}var XL=class e extends Error{constructor(t,n,r){super(`Failed query: ${t} +params: ${n}`),this.query=t,this.params=n,this.cause=r,Error.captureStackTrace(this,e),r&&(this.cause=r)}},ZL=class{constructor(e,t,n,r){this.query=e,this.cache=t,this.queryMetadata=n,this.cacheConfig=r,t&&t.strategy()===`all`&&r===void 0&&(this.cacheConfig={enable:!0,autoInvalidate:!0}),this.cacheConfig?.enable||(this.cacheConfig=void 0)}authToken;getQuery(){return this.query}mapResult(e,t){return e}setToken(e){return this.authToken=e,this}static[J]=`PgPreparedQuery`;joinsNotNullableMap;async queryWithCache(e,t,n){if(this.cache===void 0||Y(this.cache,JL)||this.queryMetadata===void 0)try{return await n()}catch(n){throw new XL(e,t,n)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await n()}catch(n){throw new XL(e,t,n)}if((this.queryMetadata.type===`insert`||this.queryMetadata.type===`update`||this.queryMetadata.type===`delete`)&&this.queryMetadata.tables.length>0)try{let[e]=await Promise.all([n(),this.cache.onMutate({tables:this.queryMetadata.tables})]);return e}catch(n){throw new XL(e,t,n)}if(!this.cacheConfig)try{return await n()}catch(n){throw new XL(e,t,n)}if(this.queryMetadata.type===`select`){let r=await this.cache.get(this.cacheConfig.tag??await YL(e,t),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(r===void 0){let r;try{r=await n()}catch(n){throw new XL(e,t,n)}return await this.cache.put(this.cacheConfig.tag??await YL(e,t),r,this.cacheConfig.autoInvalidate?this.queryMetadata.tables:[],this.cacheConfig.tag!==void 0,this.cacheConfig.config),r}return r}try{return await n()}catch(n){throw new XL(e,t,n)}}},QL=class{constructor(e){this.dialect=e}static[J]=`PgSession`;execute(e,t){return fF.startActiveSpan(`drizzle.operation`,()=>{let n=fF.startActiveSpan(`drizzle.prepareQuery`,()=>this.prepareQuery(this.dialect.sqlToQuery(e),void 0,void 0,!1));return n.setToken(t).execute(void 0,t)})}all(e){return this.prepareQuery(this.dialect.sqlToQuery(e),void 0,void 0,!1).all()}async count(e,t){let n=await this.execute(e,t);return Number(n[0].count)}},$L=class extends KL{constructor(e,t,n,r=0){super(e,t,n),this.schema=n,this.nestedIndex=r}static[J]=`PgTransaction`;rollback(){throw new qF}getTransactionConfigSQL(e){let t=[];return e.isolationLevel&&t.push(`isolation level ${e.isolationLevel}`),e.accessMode&&t.push(e.accessMode),typeof e.deferrable==`boolean`&&t.push(e.deferrable?`deferrable`:`not deferrable`),Z.raw(t.join(` `))}setTransaction(e){return this.session.execute(Z`set transaction ${this.getTransactionConfigSQL(e)}`)}};function eR(e){return typeof e==`string`&&/^true$/i.test(e)}function tR(e){let t={scheme:`duckdb-wasm:`},n=new URL(e);if(!n.protocol.startsWith(`duckdb-wasm:`))throw Error(`Expected scheme to be "duckdb-wasm:" but got "${n.protocol}"`);n.searchParams.get(`bundles`)===`import-url`&&(t.bundles=`import-url`);let r=n.searchParams.get(`logger`);r&&eR(r)&&(t.logger=!0);let i=n.searchParams.get(`storage`);switch(i){case AP.ORIGIN_PRIVATE_FS:{n.host.length>0&&console.warn(`Host "${n.host}" will be ignored while using Origin Private FS`);let e=n.searchParams.get(`write`);t.storage={type:AP.ORIGIN_PRIVATE_FS,path:n.pathname.startsWith(`/`)?n.pathname.slice(1):n.pathname,...e&&eR(e)&&{accessMode:Xw.READ_WRITE}};break}case null:break;default:console.warn(`Unknown storage type "${i}"`);break}return t}var nR=class extends ZL{static[J]=`DuckDBWasmPreparedQuery`;constructor(e,t,n,r,i,a){super({sql:t,params:n}),this.client=e,this.queryString=t,this.params=n,this.logger=r,this.fields=i,this.customResultMapper=a}async execute(e={}){let t=IF(this.params,e);this.logger.logQuery(this.queryString,t);let{fields:n,queryString:r,client:i,customResultMapper:a}=this,o=await i;return o.query(r,t)}async all(e={}){let t=IF(this.params,e);this.logger.logQuery(this.queryString,t);let n=await this.client;return n.query(this.queryString,t)}},rR=class e extends QL{static[J]=`DuckDBWasmSession`;logger;constructor(e,t,n,r={}){super(t),this.client=e,this.schema=n,this.options=r,this.logger=r.logger??new XF}prepareQuery(e,t,n,r,i){return new nR(this.client,e.sql,e.params,this.logger,t,i)}async query(e,t){this.logger.logQuery(e,t);let n=await this.client;return n.query(e,t)}async queryObjects(e,t){this.logger.logQuery(e,t);let n=await this.client;return n.query(e,t)}transaction(t,n){return MP(this.client,async r=>{let i=new e(r,this.dialect,this.schema,this.options),a=new iR(this.dialect,i,this.schema);return n&&await a.setTransaction(n),t(a)})}},iR=class e extends $L{static[J]=`DuckDBWasmTransaction`;dialect;session;constructor(e,t,n,r=0){super(e,t,n,r),this.dialect=e,this.session=t}async transaction(t){return NP(this.session.client,``,async n=>{let r=new rR(n,this.dialect,this.schema,this.session.options),i=new e(this.dialect,r,this.schema);return t(i)})}},aR=class extends KL{static[J]=`DuckDBWasmDatabase`};function oR(e,t={}){let n=new xL({casing:t.casing}),r;t.logger===!0?r=new YF:t.logger!==!1&&(r=t.logger);let i;if(t.schema){let e=lL(t.schema,pL);i={fullSchema:t.schema,schema:e.tables,tableNamesMap:e.tableNamesMap}}let a=new rR(e,n,i,{logger:r}),o=new aR(n,a,i);return o.$client=e,o}function sR(e,t){let n=tR(e),r;if(n.bundles===`import-url`){let e=async()=>{let e=await rP();switch(e){case`browser`:return(await b(async()=>{let{getImportUrlBundles:e}=await import(`./import-url-browser-CXhM7gkL.js`);return{getImportUrlBundles:e}},__vite__mapDeps([4,5,6]))).getImportUrlBundles();case`node`:return await(await b(async()=>{let{getImportUrlBundles:e}=await import(`./import-url-node-DcfQpSzu.js`);return{getImportUrlBundles:e}},__vite__mapDeps([7,6]))).getImportUrlBundles();default:throw Error(`Unsupported environment: "${e}"`)}};r=e()}else{let e=async()=>{let e=await rP();switch(e){case`browser`:return(await b(async()=>{let{getBundles:e}=await import(`./default-browser-CICL74Rl.js`);return{getBundles:e}},[])).getBundles();case`node`:return await(await b(async()=>{let{getBundles:e}=await import(`./default-node-rOqXPBPi.js`);return{getBundles:e}},__vite__mapDeps([3,1,2]))).getBundles();default:throw Error(`Unsupported environment: "${e}"`)}};r=e()}return oR(jP({bundles:r,logger:n.logger?new rT:void 0,storage:n.storage}),t)}function cR(...e){if(typeof e[0]==`string`)return sR(e[0],e[1]);if(iI(e[0])){let{connection:t,client:n,...r}=e[0];if(n)return oR(n,r);if(typeof t==`string`)return sR(t,r);if(t===void 0)throw Error(`connection option is required`);return oR(jP({bundles:t.bundles,logger:t.logger,storage:t.storage}),r)}return oR(e[0],e[1])}(function(e){function t(e){return oR({options:{parsers:{},serializers:{}}},e)}e.mock=t})(cR||={});var lR=Object.defineProperty,uR=(e,t,n)=>t in e?lR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dR=(e,t,n)=>uR(e,typeof t==`symbol`?t:t+``,n);function fR(e){return Ln()?(Bn(e),!0):!1}function pR(e){return typeof e==`function`?e():H(e)}const mR=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;const hR=Object.prototype.toString,gR=e=>hR.call(e)===`[object Object]`,_R=()=>{};function vR(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return n}function yR(e,t={}){let n,r,i=_R,a=e=>{clearTimeout(e),i(),i=_R};return o=>{let s=pR(e),c=pR(t.maxWait);return n&&a(n),s<=0||c!==void 0&&c<=0?(r&&(a(r),r=null),Promise.resolve(o())):new Promise((e,l)=>{i=t.rejectOnCancel?l:e,c&&!r&&(r=setTimeout(()=>{n&&a(n),r=null,e(o())},c)),n=setTimeout(()=>{r&&a(r),r=null,e(o())},s)})}}function bR(...e){let t=0,n,r=!0,i=_R,a,o,s,c,l;!Un(e[0])&&typeof e[0]==`object`?{delay:o,trailing:s=!0,leading:c=!0,rejectOnCancel:l=!1}=e[0]:[o,s=!0,c=!0,l=!1]=e;let u=()=>{n&&(clearTimeout(n),n=void 0,i(),i=_R)};return e=>{let d=pR(o),f=Date.now()-t,p=()=>a=e();return u(),d<=0?(t=Date.now(),p()):(f>d&&(c||!r)?(t=Date.now(),p()):s&&(a=new Promise((e,a)=>{i=l?a:e,n=setTimeout(()=>{t=Date.now(),r=!0,e(p()),u()},Math.max(0,d-f))})),!c&&!n&&(n=setTimeout(()=>r=!0,d)),r=!1,a)}}function xR(e){return _n()}function SR(e,t=200,n={}){return vR(yR(t,n),e)}function CR(e,t=200,n=!1,r=!0,i=!1){return vR(bR(t,n,r,i),e)}function wR(e,t=!0,n){xR()?jn(e,n):t?e():Mn(e)}const TR=mR?window:void 0;function ER(e){var t;let n=pR(e);return(t=n?.$el)??n}function DR(...e){let t,n,r,i;if(typeof e[0]==`string`||Array.isArray(e[0])?([n,r,i]=e,t=TR):[t,n,r,i]=e,!t)return _R;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);let a=[],o=()=>{a.forEach(e=>e()),a.length=0},s=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),c=R(()=>[ER(t),pR(i)],([e,t])=>{if(o(),!e)return;let i=gR(t)?{...t}:t;a.push(...n.flatMap(t=>r.map(n=>s(e,t,n,i))))},{immediate:!0,flush:`post`}),l=()=>{c(),o()};return fR(l),l}function OR(){let e=U(!1),t=_n();return t&&jn(()=>{e.value=!0},t),e}function kR(e){let t=OR();return gn(()=>(t.value,!!e()))}function AR(e,t={}){let{window:n=TR}=t,r=kR(()=>n&&`matchMedia`in n&&typeof n.matchMedia==`function`),i,a=U(!1),o=e=>{a.value=e.matches},s=()=>{i&&(`removeEventListener`in i?i.removeEventListener(`change`,o):i.removeListener(o))},c=st(()=>{r.value&&(s(),i=n.matchMedia(pR(e)),`addEventListener`in i?i.addEventListener(`change`,o):i.addListener(o),a.value=i.matches)});return fR(()=>{c(),s(),i=void 0}),a}function jR(e,t,n={}){let{window:r=TR,...i}=n,a,o=kR(()=>r&&`ResizeObserver`in r),s=()=>{a&&(a.disconnect(),a=void 0)},c=gn(()=>{let t=pR(e);return Array.isArray(t)?t.map(e=>ER(e)):[ER(t)]}),l=R(c,e=>{if(s(),o.value&&r){a=new ResizeObserver(t);for(let t of e)t&&a.observe(t,i)}},{immediate:!0,flush:`post`}),u=()=>{s(),l()};return fR(u),{isSupported:o,stop:u}}function MR(e,t={width:0,height:0},n={}){let{window:r=TR,box:i=`content-box`}=n,a=gn(()=>{var t,n;return(n=(t=ER(e))?.namespaceURI)?.includes(`svg`)}),o=U(t.width),s=U(t.height),{stop:c}=jR(e,([t])=>{let n=i===`border-box`?t.borderBoxSize:i===`content-box`?t.contentBoxSize:t.devicePixelContentBoxSize;if(r&&a.value){let t=ER(e);if(t){let e=t.getBoundingClientRect();o.value=e.width,s.value=e.height}}else if(n){let e=Array.isArray(n)?n:[n];o.value=e.reduce((e,{inlineSize:t})=>e+t,0),s.value=e.reduce((e,{blockSize:t})=>e+t,0)}else o.value=t.contentRect.width,s.value=t.contentRect.height},n);wR(()=>{let n=ER(e);n&&(o.value=`offsetWidth`in n?n.offsetWidth:t.width,s.value=`offsetHeight`in n?n.offsetHeight:t.height)});let l=R(()=>ER(e),e=>{o.value=e?t.width:0,s.value=e?t.height:0});function u(){c(),l()}return{width:o,height:s,stop:u}}const NR=1;function PR(e,t={}){let{throttle:n=0,idle:r=200,onStop:i=_R,onScroll:a=_R,offset:o={left:0,right:0,top:0,bottom:0},eventListenerOptions:s={capture:!1,passive:!0},behavior:c=`auto`,window:l=TR,onError:u=e=>{console.error(e)}}=t,d=U(0),f=U(0),p=gn({get(){return d.value},set(e){h(e,void 0)}}),m=gn({get(){return f.value},set(e){h(void 0,e)}});function h(t,n){var r,i,a,o;if(!l)return;let s=pR(e);if(!s)return;(a=s instanceof Document?l.document.body:s)==null||a.scrollTo({top:(r=pR(n))??m.value,left:(i=pR(t))??p.value,behavior:pR(c)});let u=(o=s?.document)?.documentElement||s?.documentElement||s;p!=null&&(d.value=u.scrollLeft),m!=null&&(f.value=u.scrollTop)}let g=U(!1),_=zn({left:!0,right:!1,top:!0,bottom:!1}),v=zn({left:!1,right:!1,top:!1,bottom:!1}),y=e=>{g.value&&(g.value=!1,v.left=!1,v.right=!1,v.top=!1,v.bottom=!1,i(e))},b=SR(y,n+r),x=e=>{var t;if(!l)return;let n=(t=e?.document)?.documentElement||e?.documentElement||ER(e),{display:r,flexDirection:i}=getComputedStyle(n),a=n.scrollLeft;v.left=ad.value;let s=Math.abs(a)<=(o.left||0),c=Math.abs(a)+n.clientWidth>=n.scrollWidth-(o.right||0)-NR;r===`flex`&&i===`row-reverse`?(_.left=c,_.right=s):(_.left=s,_.right=c),d.value=a;let u=n.scrollTop;e===l.document&&!u&&(u=l.document.body.scrollTop),v.top=uf.value;let p=Math.abs(u)<=(o.top||0),m=Math.abs(u)+n.clientHeight>=n.scrollHeight-(o.bottom||0)-NR;r===`flex`&&i===`column-reverse`?(_.top=m,_.bottom=p):(_.top=p,_.bottom=m),f.value=u},S=e=>{var t;if(!l)return;let n=(t=e.target.documentElement)??e.target;x(n),g.value=!0,b(e),a(e)};return DR(e,`scroll`,n?CR(S,n,!0,!1):S,s),wR(()=>{try{let t=pR(e);if(!t)return;x(t)}catch(e){u(e)}}),DR(e,`scrollend`,y,s),{x:p,y:m,isScrolling:g,arrivedState:_,directions:v,measure(){let t=pR(e);l&&t&&x(t)}}}const FR={ctrl:`control`,command:`meta`,cmd:`meta`,option:`alt`,up:`arrowup`,down:`arrowdown`,left:`arrowleft`,right:`arrowright`};function IR(e={}){let{reactive:t=!1,target:n=TR,aliasMap:r=FR,passive:i=!0,onEventFired:a=_R}=e,o=zn(new Set),s={toJSON(){return{}},current:o},c=t?zn(s):s,l=new Set,u=new Set;function d(e,n){e in c&&(t?c[e]=n:c[e].value=n)}function f(){o.clear();for(let e of u)d(e,!1)}function p(e,t){var n,r;let i=(n=e.key)?.toLowerCase(),a=[(r=e.code)?.toLowerCase(),i].filter(Boolean);i&&(t?o.add(i):o.delete(i));for(let e of a)u.add(e),d(e,t);i===`meta`&&!t?(l.forEach(e=>{o.delete(e),d(e,!1)}),l.clear()):typeof e.getModifierState==`function`&&e.getModifierState(`Meta`)&&t&&[...o,...a].forEach(e=>l.add(e))}DR(n,`keydown`,e=>(p(e,!0),a(e)),{passive:i}),DR(n,`keyup`,e=>(p(e,!1),a(e)),{passive:i}),DR(`blur`,f,{passive:!0}),DR(`focus`,f,{passive:!0});let m=new Proxy(c,{get(e,n,i){if(typeof n!=`string`)return Reflect.get(e,n,i);if(n=n.toLowerCase(),n in r&&(n=r[n]),!(n in c))if(/[+_-]/.test(n)){let e=n.split(/[+_-]/g).map(e=>e.trim());c[n]=gn(()=>e.every(e=>pR(m[e])))}else c[n]=U(!1);let a=Reflect.get(e,n,i);return t?pR(a):a}});return m}const LR={page:e=>[e.pageX,e.pageY],client:e=>[e.clientX,e.clientY],screen:e=>[e.screenX,e.screenY],movement:e=>e instanceof Touch?null:[e.movementX,e.movementY]};function RR(e={}){let{type:t=`page`,touch:n=!0,resetOnTouchEnds:r=!1,initialValue:i={x:0,y:0},window:a=TR,target:o=a,scroll:s=!0,eventFilter:c}=e,l=null,u=0,d=0,f=U(i.x),p=U(i.y),m=U(null),h=typeof t==`function`?t:LR[t],g=e=>{let t=h(e);l=e,t&&([f.value,p.value]=t,m.value=`mouse`),a&&(u=a.scrollX,d=a.scrollY)},_=e=>{if(e.touches.length>0){let t=h(e.touches[0]);t&&([f.value,p.value]=t,m.value=`touch`)}},v=()=>{if(!l||!a)return;let e=h(l);l instanceof MouseEvent&&e&&(f.value=e[0]+a.scrollX-u,p.value=e[1]+a.scrollY-d)},y=()=>{f.value=i.x,p.value=i.y},b=c?e=>c(()=>g(e),{}):e=>g(e),x=c?e=>c(()=>_(e),{}):e=>_(e),S=c?()=>c(()=>v(),{}):()=>v();if(o){let e={passive:!0};DR(o,[`mousemove`,`dragover`],b,e),n&&t!==`movement`&&(DR(o,[`touchstart`,`touchmove`],x,e),r&&DR(o,`touchend`,y,e)),s&&t===`page`&&DR(a,`scroll`,S,{passive:!0})}return{x:f,y:p,sourceType:m}}function zR(e={}){let{window:t=TR,behavior:n=`auto`}=e;if(!t)return{x:U(0),y:U(0)};let r=U(t.scrollX),i=U(t.scrollY),a=gn({get(){return r.value},set(e){scrollTo({left:e,behavior:n})}}),o=gn({get(){return i.value},set(e){scrollTo({top:e,behavior:n})}});return DR(t,`scroll`,()=>{r.value=t.scrollX,i.value=t.scrollY},{capture:!1,passive:!0}),{x:a,y:o}}function BR(e={}){let{window:t=TR,initialWidth:n=1/0,initialHeight:r=1/0,listenOrientation:i=!0,includeScrollbar:a=!0,type:o=`inner`}=e,s=U(n),c=U(r),l=()=>{t&&(o===`outer`?(s.value=t.outerWidth,c.value=t.outerHeight):a?(s.value=t.innerWidth,c.value=t.innerHeight):(s.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight))};if(l(),wR(l),DR(`resize`,l,{passive:!0}),i){let e=AR(`(orientation: portrait)`);R(e,()=>l())}return{width:s,height:c}}function VR(e){let{resolution:t,renderer:n,scene:r,envMap:i,fog:a,near:o,far:s}=e;n??=j().renderer,r??=j().scene,st(()=>{t=Hn(e.resolution)??255,o=Hn(e.near)??.1,s=Hn(e.far)??1e3,i=Hn(e.envMap)??void 0,a=Hn(e.fog)??void 0,n=Hn(e.renderer)??n,r=Hn(e.scene)??r});let c=gn(()=>new Qt(Hn(t)));c.value.texture.type=Ge,fR(()=>{c.value.dispose()});let l=gn(()=>new Tt(Hn(o),Hn(s),Hn(c))),u=()=>{let e=Hn(r),t=e.fog,o=e.background;e.background=Hn(i)||o,e.fog=Hn(a)||t,l.value.update(Hn(n),e),e.fog=t,e.background=o};return st(u),{fbo:c,camera:l,update:u}}const HR=[`object`],UR=B({__name:`component`,props:{frames:{default:1/0},resolution:{},near:{},far:{},envMap:{},fog:{},renderer:{},scene:{}},setup(e,{expose:t}){let n=e,r=L(),{fbo:i,camera:a,update:o}=VR(n),s=0;return ie().onBeforeRender(()=>{r.value&&(n.frames===1/0||s{`material`in e&&typeof e.material==`object`&&e.material&&`envMap`in e.material&&(e.material.envMap=i.value.texture)}),s++)}),t({instance:r,fbo:i,camera:a,update:o}),(e,t)=>(z(),V(`TresGroup`,{ref_key:`groupRef`,ref:r},[I(`primitive`,{object:H(a)},null,8,HR),fn(e.$slots,`default`)],512))}}),WR=B({__name:`Billboard`,props:{autoUpdate:{type:Boolean,default:!0},lockX:{type:Boolean,default:!1},lockY:{type:Boolean,default:!1},lockZ:{type:Boolean,default:!1}},setup(e,{expose:t}){let n=e,r=L(new Ne),i=L(new Ne),a=new Jt,o=new et;function s(e){r.value&&(!e&&(e=j().camera.value,!e)||(i.value.rotation.copy(o),r.value.updateMatrix(),r.value.updateWorldMatrix(!1,!1),r.value.getWorldQuaternion(a),e.getWorldQuaternion(i.value.quaternion).premultiply(a.invert()),n.lockX&&(i.value.rotation.x=o.x),n.lockY&&(i.value.rotation.y=o.y),n.lockZ&&(i.value.rotation.z=o.z)))}return ie().onBeforeRender(({camera:e})=>{n.autoUpdate&&s(e)}),t({instance:r,update:s}),(e,t)=>(z(),V(`TresGroup`,{ref_key:`outerRef`,ref:r},[I(`TresGroup`,{ref_key:`innerRef`,ref:i},[fn(e.$slots,`default`)],512)],512))}}),GR=B({name:`GlobalAudio`,props:[`src`,`loop`,`volume`,`playbackRate`,`playTrigger`,`stopTrigger`],async setup(e,{expose:t,emit:n}){var r;let{camera:i,renderer:a}=Ie(),o=new we;(r=i.value)==null||r.add(o);let s=new Rt(o),c=new Ct;t({instance:s}),In(()=>{s&&s.disconnect()}),R(()=>[e.playbackRate],()=>s.setPlaybackRate(e.playbackRate??1),{immediate:!0}),R(()=>[e.volume],()=>s.setVolume(e.volume??.5),{immediate:!0}),R(()=>[e.loop],()=>s.setLoop(e.loop??!1),{immediate:!0}),R(()=>[e.src],async()=>{let t=await c.loadAsync(e.src);s.setBuffer(t)},{immediate:!0});let l=document.getElementById(e.playTrigger??``)||a.value.domElement;DR(l,`click`,()=>{s.isPlaying?s.pause():s.play(),n(`isPlaying`,s.isPlaying)});let u=document.getElementById(e.stopTrigger??``);return u&&DR(u,`click`,()=>{s.stop(),n(`isPlaying`,s.isPlaying)}),null}}),KR=[`color-space`,`args`,`attach`],qR=B({__name:`GradientTexture`,props:{stops:{},colors:{},attach:{default:`map`},height:{default:1024},width:{default:16},type:{default:`linear`},innerCircleRadius:{default:0},outerCircleRadius:{default:`auto`}},setup(e,{expose:t}){let n=e,r=L(),i=document.createElement(`canvas`);function a(e){let t=e.getContext(`2d`);e.width=n.width,e.height=n.height;let i;if(n.type===`linear`)i=t.createLinearGradient(0,0,0,n.height);else{let r=e.width/2,a=e.height/2,o=n.outerCircleRadius===`auto`?Math.sqrt(r**2+a**2):Math.abs(Number(n.outerCircleRadius));i=t.createRadialGradient(r,a,Math.abs(n.innerCircleRadius),r,a,o)}let a=new je,o=n.stops.length;for(;o--;)i.addColorStop(n.stops[o],a.set(n.colors[o]).getStyle());t.save(),t.fillStyle=i,t.fillRect(0,0,n.width,n.height),t.restore(),r.value&&(r.value.needsUpdate=!0)}let o=j().renderer;return R(()=>[n.colors,n.stops,n.height,n.width,n.type,n.innerCircleRadius,n.outerCircleRadius],()=>{a(i)},{immediate:!0}),yn(n.colors)&&R(n.colors,()=>a(i)),yn(n.stops)&&R(n.stops,()=>a(i)),t({instance:r}),(e,t)=>(z(),V(`TresCanvasTexture`,{ref_key:`textureRef`,ref:r,"color-space":H(o).outputColorSpace,args:[H(i)],attach:n.attach},null,8,KR))}});function JR(e,t,n,r){let i=class extends Zt{constructor(r={}){let i=Object.entries(e);super({uniforms:i.reduce((e,[t,n])=>{let r=zt.clone({[t]:{value:n}});return{...e,...r}},{}),vertexShader:t,fragmentShader:n}),dR(this,`key`,``),i.forEach(([e])=>Object.defineProperty(this,e,{get:()=>this.uniforms[e].value,set:t=>this.uniforms[e].value=t})),Object.assign(this,r)}};return i.key=bt.generateUUID(),i}const YR=JR({color:new je(`white`),scale:new Et(1,1),imageBounds:new Et(1,1),resolution:1024,map:null,zoom:1,radius:0,grayscale:0,opacity:1},` + varying vec2 vUv; + varying vec2 vPos; + void main() { + gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.); + vUv = uv; + vPos = position.xy; + } + `,` + // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44 + varying vec2 vUv; + varying vec2 vPos; + uniform vec2 scale; + uniform vec2 imageBounds; + uniform float resolution; + uniform vec3 color; + uniform sampler2D map; + uniform float radius; + uniform float zoom; + uniform float grayscale; + uniform float opacity; + const vec3 luma = vec3(.299, 0.587, 0.114); + vec4 toGrayscale(vec4 color, float intensity) { + return vec4(mix(color.rgb, vec3(dot(color.rgb, luma)), intensity), color.a); + } + vec2 aspect(vec2 size) { + return size / min(size.x, size.y); + } + + const float PI = 3.14159265; + + // from https://iquilezles.org/articles/distfunctions + float udRoundBox( vec2 p, vec2 b, float r ) { + return length(max(abs(p)-b+r,0.0))-r; + } + + void main() { + vec2 s = aspect(scale); + vec2 i = aspect(imageBounds); + float rs = s.x / s.y; + float ri = i.x / i.y; + vec2 new = rs < ri ? vec2(i.x * s.y / i.y, s.y) : vec2(s.x, i.y * s.x / i.x); + vec2 offset = (rs < ri ? vec2((new.x - s.x) / 2.0, 0.0) : vec2(0.0, (new.y - s.y) / 2.0)) / new; + vec2 uv = vUv * s / new + offset; + vec2 zUv = (uv - vec2(0.5, 0.5)) / zoom + vec2(0.5, 0.5); + + vec2 res = vec2(scale * resolution); + vec2 halfRes = 0.5 * res; + float b = udRoundBox(vUv.xy * res - halfRes, halfRes, resolution * radius); + vec3 a = mix(vec3(1.0,0.0,0.0), vec3(0.0,0.0,0.0), smoothstep(0.0, 1.0, b)); + gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, opacity * a), grayscale); + + #include + #include + } + `),XR=B({__name:`ImageMaterial`,setup(e,{expose:t}){ce({ImageMaterial:YR});let n=L();return t({instance:n}),(e,t)=>(z(),V(`TresImageMaterial`,{ref_key:`materialRef`,ref:n},null,512))}}),ZR=[`scale`],QR=[`args`],$R=B({__name:`component`,props:{segments:{default:1},scale:{default:1},color:{default:()=>new je(`white`)},zoom:{default:1},radius:{default:0},grayscale:{default:0},toneMapped:{type:Boolean,default:!0},transparent:{type:Boolean,default:!1},opacity:{default:1},side:{default:Ue},texture:{},url:{}},setup(e,{expose:t}){let n=e,r=L(),i=L(n.texture??null),a=j().sizes,o=gn(()=>Array.isArray(n.scale)?[n.scale[0],n.scale[1]]:[n.scale,n.scale]),s=gn(()=>{var e,t;return[(e=i.value)?.image.width??0,(t=i.value)?.image.height??0]}),c=gn(()=>Math.max(a.width.value,a.height.value));st(()=>{n.texture?i.value=n.texture:ae([n.url]).then(e=>i.value=e)});let l=gn(()=>Array.isArray(n.scale)?[...n.scale,1]:n.scale);return t({instance:r}),(e,t)=>(z(),V(`TresMesh`,{ref_key:`imageRef`,ref:r,scale:l.value},[fn(e.$slots,`default`,{},()=>[I(`TresPlaneGeometry`,{args:[1,1,n.segments,n.segments]},null,8,QR)]),kn(XR,{color:n.color,map:i.value,zoom:n.zoom,grayscale:n.grayscale,opacity:n.opacity,scale:o.value,imageBounds:s.value,resolution:c.value,radius:e.radius,toneMapped:e.toneMapped,transparent:e.transparent,side:e.side},null,8,[`color`,`map`,`zoom`,`grayscale`,`opacity`,`scale`,`imageBounds`,`resolution`,`radius`,`toneMapped`,`transparent`,`side`])],8,ZR))}}),ez=parseInt(gt.replace(/\D+/g,``)),tz=ez>=125?`uv1`:`uv2`;function nz(e,t=Math.PI/3){let n=Math.cos(t),r=1.0000000001*100,i=[new P,new P,new P],a=new P,o=new P,s=new P,c=new P;function l(e){let t=~~(e.x*r),n=~~(e.y*r),i=~~(e.z*r);return`${t},${n},${i}`}let u=e.index?e.toNonIndexed():e,d=u.attributes.position,f={};for(let e=0,t=d.count/3;en&&c.add(t)}c.normalize(),m.setXYZ(t+e,c.x,c.y,c.z)}}return u.setAttribute(`normal`,m),u}var rz=Object.defineProperty,iz=(e,t,n)=>t in e?rz(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,az=(e,t,n)=>(iz(e,t+``,n),n);async function oz(e){let t=await e.arrayBuffer(),n=btoa(String.fromCharCode(...new Uint8Array(t)));return`data:${e.type||``};base64,${n}`}let sz,cz,lz,uz;function dz(e,t=1/0,n=null){cz||=new dt(2,2,1,1),lz||=new Zt({uniforms:{blitTexture:new ye(e)},vertexShader:` + varying vec2 vUv; + void main(){ + vUv = uv; + gl_Position = vec4(position.xy * 1.0,0.,.999999); + } + `,fragmentShader:` + uniform sampler2D blitTexture; + varying vec2 vUv; + + void main(){ + gl_FragColor = vec4(vUv.xy, 0, 1); + + #ifdef IS_SRGB + gl_FragColor = LinearTosRGB( texture2D( blitTexture, vUv) ); + #else + gl_FragColor = texture2D( blitTexture, vUv); + #endif + } + `}),lz.uniforms.blitTexture.value=e,lz.defines.IS_SRGB=`colorSpace`in e?e.colorSpace===`srgb`:e.encoding===3001,lz.needsUpdate=!0,uz||(uz=new F(cz,lz),uz.frustrumCulled=!1);let r=new lt,i=new Dt;i.add(uz),n||=sz=new ze({antialias:!1}),n.setSize(Math.min(e.image.width,t),Math.min(e.image.height,t)),n.clear(),n.render(i,r);let a=new cn(n.domElement);return a.minFilter=e.minFilter,a.magFilter=e.magFilter,a.wrapS=e.wrapS,a.wrapT=e.wrapT,a.name=e.name,sz&&(sz.dispose(),sz=null),a}const fz={POSITION:[`byte`,`byte normalized`,`unsigned byte`,`unsigned byte normalized`,`short`,`short normalized`,`unsigned short`,`unsigned short normalized`],NORMAL:[`byte normalized`,`short normalized`],TANGENT:[`byte normalized`,`short normalized`],TEXCOORD:[`byte`,`byte normalized`,`unsigned byte`,`short`,`short normalized`,`unsigned short`]};var pz=class{constructor(){this.pluginCallbacks=[],this.register(function(e){return new Pz(e)}),this.register(function(e){return new Fz(e)}),this.register(function(e){return new Rz(e)}),this.register(function(e){return new zz(e)}),this.register(function(e){return new Bz(e)}),this.register(function(e){return new Vz(e)}),this.register(function(e){return new Iz(e)}),this.register(function(e){return new Lz(e)}),this.register(function(e){return new Hz(e)}),this.register(function(e){return new Uz(e)}),this.register(function(e){return new Wz(e)})}register(e){return this.pluginCallbacks.indexOf(e)===-1&&this.pluginCallbacks.push(e),this}unregister(e){return this.pluginCallbacks.indexOf(e)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,n,r){let i=new Nz,a=[];for(let e=0,t=this.pluginCallbacks.length;ee.times[e.times.length-1]){if(Math.abs(e.times[e.times.length-1]-t)<.001)return e.times.length-1;r[r.length-1]=t,r.set(e.times,0),i.set(e.values,0),i.set(a.evaluate(t),e.values.length),o=r.length-1}else for(let s=0;st){r.set(e.times.slice(0,s+1),0),r[s+1]=t,r.set(e.times.slice(s+1),s+2),i.set(e.values.slice(0,(s+1)*n),0),i.set(a.evaluate(t),(s+1)*n),i.set(e.values.slice((s+1)*n),(s+2)*n),o=s+1;break}}return e.times=r,e.values=i,o},mergeMorphTargetTracks:function(e,t){let n=[],r={},i=e.tracks;for(let e=0;e4?n=e.array[i*e.itemSize+t]:(t===0?n=e.getX(i):t===1?n=e.getY(i):t===2?n=e.getZ(i):t===3&&(n=e.getW(i)),e.normalized===!0&&(n=bt.normalize(n,e.array))),r.min[t]=Math.min(r.min[t],n),r.max[t]=Math.max(r.max[t],n)}return r}function kz(e){return Math.ceil(e/4)*4}function Az(e,t=0){let n=kz(e.byteLength);if(n!==e.byteLength){let r=new Uint8Array(n);if(r.set(new Uint8Array(e)),t!==0)for(let i=e.byteLength;i`u`&&typeof OffscreenCanvas<`u`?new OffscreenCanvas(1,1):document.createElement(`canvas`)}function Mz(e,t){if(e.toBlob!==void 0)return new Promise(n=>e.toBlob(n,t));let n;return t===`image/jpeg`?n=.92:t===`image/webp`&&(n=.8),e.convertToBlob({type:t,quality:n})}var Nz=class{constructor(){this.plugins=[],this.options={},this.pending=[],this.buffers=[],this.byteOffset=0,this.buffers=[],this.nodeMap=new Map,this.skins=[],this.extensionsUsed={},this.extensionsRequired={},this.uids=new Map,this.uid=0,this.json={asset:{version:`2.0`,generator:`THREE.GLTFExporter`}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map}}setPlugins(e){this.plugins=e}async write(e,t,n={}){this.options=Object.assign({binary:!1,trs:!1,onlyVisible:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},n),this.options.animations.length>0&&(this.options.trs=!0),this.processInput(e),await Promise.all(this.pending);let r=this,i=r.buffers,a=r.json;n=r.options;let o=r.extensionsUsed,s=r.extensionsRequired,c=new Blob(i,{type:`application/octet-stream`}),l=Object.keys(o),u=Object.keys(s);l.length>0&&(a.extensionsUsed=l),u.length>0&&(a.extensionsRequired=u),a.buffers&&a.buffers.length>0&&(a.buffers[0].byteLength=c.size),n.binary===!0?c.arrayBuffer().then(e=>{let n=Az(e),r=new DataView(new ArrayBuffer(Sz));r.setUint32(0,n.byteLength,!0),r.setUint32(4,wz,!0);let i=Az(Ez(JSON.stringify(a)),32),o=new DataView(new ArrayBuffer(Sz));o.setUint32(0,i.byteLength,!0),o.setUint32(4,Cz,!0);let s=new ArrayBuffer(yz),c=new DataView(s);c.setUint32(0,bz,!0),c.setUint32(4,xz,!0);let l=yz+o.byteLength+i.byteLength+r.byteLength+n.byteLength;c.setUint32(8,l,!0),new Blob([s,o,i,r,n],{type:`application/octet-stream`}).arrayBuffer().then(t)}):a.buffers&&a.buffers.length>0?oz(c).then(e=>{a.buffers[0].uri=e,t(a)}):t(a)}serializeUserData(e,t){if(Object.keys(e.userData).length===0)return;let n=this.options,r=this.extensionsUsed;try{let i=JSON.parse(JSON.stringify(e.userData));if(n.includeCustomExtensions&&i.gltfExtensions){for(let e in t.extensions===void 0&&(t.extensions={}),i.gltfExtensions)t.extensions[e]=i.gltfExtensions[e],r[e]=!0;delete i.gltfExtensions}Object.keys(i).length>0&&(t.extras=i)}catch(t){console.warn(`THREE.GLTFExporter: userData of '`+e.name+`' won't be serialized because of JSON.stringify error - `+t.message)}}getUID(e,t=!1){if(this.uids.has(e)===!1){let t=new Map;t.set(!0,this.uid++),t.set(!1,this.uid++),this.uids.set(e,t)}return this.uids.get(e).get(t)}isNormalizedNormalAttribute(e){if(this.cache.attributesNormalized.has(e))return!1;let t=new P;for(let n=0,r=e.count;n5e-4)return!1;return!0}createNormalizedNormalAttribute(e){let t=this.cache;if(t.attributesNormalized.has(e))return t.attributesNormalized.get(e);let n=e.clone(),r=new P;for(let e=0,t=n.count;e4?r=e.array[i*e.itemSize+n]:(n===0?r=e.getX(i):n===1?r=e.getY(i):n===2?r=e.getZ(i):n===3&&(r=e.getW(i)),e.normalized===!0&&(r=bt.normalize(r,e.array))),t===mz.FLOAT?c.setFloat32(l,r,!0):t===mz.INT?c.setInt32(l,r,!0):t===mz.UNSIGNED_INT?c.setUint32(l,r,!0):t===mz.SHORT?c.setInt16(l,r,!0):t===mz.UNSIGNED_SHORT?c.setUint16(l,r,!0):t===mz.BYTE?c.setInt8(l,r):t===mz.UNSIGNED_BYTE&&c.setUint8(l,r),l+=o}let u={buffer:this.processBuffer(c.buffer),byteOffset:this.byteOffset,byteLength:s};return i!==void 0&&(u.target=i),i===mz.ARRAY_BUFFER&&(u.byteStride=e.itemSize*o),this.byteOffset+=s,a.bufferViews.push(u),{id:a.bufferViews.length-1,byteLength:0}}processBufferViewImage(e){let t=this,n=t.json;return n.bufferViews||=[],e.arrayBuffer().then(e=>{let r=Az(e),i={buffer:t.processBuffer(r),byteOffset:t.byteOffset,byteLength:r.byteLength};return t.byteOffset+=r.byteLength,n.bufferViews.push(i)-1})}processAccessor(e,t,n,r){let i=this.json,a={1:`SCALAR`,2:`VEC2`,3:`VEC3`,4:`VEC4`,9:`MAT3`,16:`MAT4`},o;if(e.array.constructor===Float32Array)o=mz.FLOAT;else if(e.array.constructor===Int32Array)o=mz.INT;else if(e.array.constructor===Uint32Array)o=mz.UNSIGNED_INT;else if(e.array.constructor===Int16Array)o=mz.SHORT;else if(e.array.constructor===Uint16Array)o=mz.UNSIGNED_SHORT;else if(e.array.constructor===Int8Array)o=mz.BYTE;else if(e.array.constructor===Uint8Array)o=mz.UNSIGNED_BYTE;else throw Error(`THREE.GLTFExporter: Unsupported bufferAttribute component type: `+e.array.constructor.name);if(n===void 0&&(n=0),r===void 0&&(r=e.count),r===0)return null;let s=Oz(e,n,r),c;t!==void 0&&(c=e===t.index?mz.ELEMENT_ARRAY_BUFFER:mz.ARRAY_BUFFER);let l=this.processBufferView(e,o,n,r,c),u={bufferView:l.id,byteOffset:l.byteOffset,componentType:o,count:r,max:s.max,min:s.min,type:a[e.itemSize]};return e.normalized===!0&&(u.normalized=!0),i.accessors||=[],i.accessors.push(u)-1}processImage(e,t,n,r=`image/png`){if(e!==null){let i=this,a=i.cache,o=i.json,s=i.options,c=i.pending;a.images.has(e)||a.images.set(e,{});let l=a.images.get(e),u=r+`:flipY/`+n.toString();if(l[u]!==void 0)return l[u];o.images||=[];let d={mimeType:r},f=jz();f.width=Math.min(e.width,s.maxTextureSize),f.height=Math.min(e.height,s.maxTextureSize);let p=f.getContext(`2d`);if(n===!0&&(p.translate(0,f.height),p.scale(1,-1)),e.data!==void 0){t!==xe&&console.error(`GLTFExporter: Only RGBAFormat is supported.`,t),(e.width>s.maxTextureSize||e.height>s.maxTextureSize)&&console.warn(`GLTFExporter: Image size is bigger than maxTextureSize`,e);let n=new Uint8ClampedArray(e.height*e.width*4);for(let t=0;ti.processBufferViewImage(e)).then(e=>{d.bufferView=e})):f.toDataURL===void 0?c.push(Mz(f,r).then(oz).then(e=>{d.uri=e})):d.uri=f.toDataURL(r);let m=o.images.push(d)-1;return l[u]=m,m}else throw Error(`THREE.GLTFExporter: No valid image data found. Unable to process texture.`)}processSampler(e){let t=this.json;t.samplers||=[];let n={magFilter:gz[e.magFilter],minFilter:gz[e.minFilter],wrapS:gz[e.wrapS],wrapT:gz[e.wrapT]};return t.samplers.push(n)-1}processTexture(e){let t=this.options,n=this.cache,r=this.json;if(n.textures.has(e))return n.textures.get(e);r.textures||=[],e instanceof Ce&&(e=dz(e,t.maxTextureSize));let i=e.userData.mimeType;i===`image/webp`&&(i=`image/png`);let a={sampler:this.processSampler(e),source:this.processImage(e.image,e.format,e.flipY,i)};e.name&&(a.name=e.name),this._invokeAll(function(t){t.writeTexture&&t.writeTexture(e,a)});let o=r.textures.push(a)-1;return n.textures.set(e,o),o}processMaterial(e){let t=this.cache,n=this.json;if(t.materials.has(e))return t.materials.get(e);if(e.isShaderMaterial)return console.warn(`GLTFExporter: THREE.ShaderMaterial not supported.`),null;n.materials||=[];let r={pbrMetallicRoughness:{}};e.isMeshStandardMaterial!==!0&&e.isMeshBasicMaterial!==!0&&console.warn(`GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.`);let i=e.color.toArray().concat([e.opacity]);if(Tz(i,[1,1,1,1])||(r.pbrMetallicRoughness.baseColorFactor=i),e.isMeshStandardMaterial?(r.pbrMetallicRoughness.metallicFactor=e.metalness,r.pbrMetallicRoughness.roughnessFactor=e.roughness):(r.pbrMetallicRoughness.metallicFactor=.5,r.pbrMetallicRoughness.roughnessFactor=.5),e.metalnessMap||e.roughnessMap){let t=this.buildMetalRoughTexture(e.metalnessMap,e.roughnessMap),n={index:this.processTexture(t),channel:t.channel};this.applyTextureTransform(n,t),r.pbrMetallicRoughness.metallicRoughnessTexture=n}if(e.map){let t={index:this.processTexture(e.map),texCoord:e.map.channel};this.applyTextureTransform(t,e.map),r.pbrMetallicRoughness.baseColorTexture=t}if(e.emissive){let t=e.emissive;if(Math.max(t.r,t.g,t.b)>0&&(r.emissiveFactor=e.emissive.toArray()),e.emissiveMap){let t={index:this.processTexture(e.emissiveMap),texCoord:e.emissiveMap.channel};this.applyTextureTransform(t,e.emissiveMap),r.emissiveTexture=t}}if(e.normalMap){let t={index:this.processTexture(e.normalMap),texCoord:e.normalMap.channel};e.normalScale&&e.normalScale.x!==1&&(t.scale=e.normalScale.x),this.applyTextureTransform(t,e.normalMap),r.normalTexture=t}if(e.aoMap){let t={index:this.processTexture(e.aoMap),texCoord:e.aoMap.channel};e.aoMapIntensity!==1&&(t.strength=e.aoMapIntensity),this.applyTextureTransform(t,e.aoMap),r.occlusionTexture=t}e.transparent?r.alphaMode=`BLEND`:e.alphaTest>0&&(r.alphaMode=`MASK`,r.alphaCutoff=e.alphaTest),e.side===tt&&(r.doubleSided=!0),e.name!==``&&(r.name=e.name),this.serializeUserData(e,r),this._invokeAll(function(t){t.writeMaterial&&t.writeMaterial(e,r)});let a=n.materials.push(r)-1;return t.materials.set(e,a),a}processMesh(e){let t=this.cache,n=this.json,r=[e.geometry.uuid];if(Array.isArray(e.material))for(let t=0,n=e.material.length;t=152?{uv:`TEXCOORD_0`,uv1:`TEXCOORD_1`,uv2:`TEXCOORD_2`,uv3:`TEXCOORD_3`}:{uv:`TEXCOORD_0`,uv2:`TEXCOORD_1`},color:`COLOR_0`,skinWeight:`WEIGHTS_0`,skinIndex:`JOINTS_0`},f=a.getAttribute(`normal`);f!==void 0&&!this.isNormalizedNormalAttribute(f)&&(console.warn(`THREE.GLTFExporter: Creating normalized normal attribute from the non-normalized one.`),a.setAttribute(`normal`,this.createNormalizedNormalAttribute(f)));let p=null;for(let e in a.attributes){if(e.slice(0,5)===`morph`)continue;let n=a.attributes[e];if(e=d[e]||e.toUpperCase(),/^(POSITION|NORMAL|TANGENT|TEXCOORD_\d+|COLOR_\d+|JOINTS_\d+|WEIGHTS_\d+)$/.test(e)||(e=`_`+e),t.attributes.has(this.getUID(n))){c[e]=t.attributes.get(this.getUID(n));continue}p=null;let r=n.array;e===`JOINTS_0`&&!(r instanceof Uint16Array)&&!(r instanceof Uint8Array)&&(console.warn(`GLTFExporter: Attribute "skinIndex" converted to type UNSIGNED_SHORT.`),p=new Se(new Uint16Array(r),n.itemSize,n.normalized));let i=this.processAccessor(p||n,a);i!==null&&(e.startsWith(`_`)||this.detectMeshQuantization(e,n),c[e]=i,t.attributes.set(this.getUID(n),i))}if(f!==void 0&&a.setAttribute(`normal`,f),Object.keys(c).length===0)return null;if(e.morphTargetInfluences!==void 0&&e.morphTargetInfluences.length>0){let n=[],r=[],i={};if(e.morphTargetDictionary!==void 0)for(let t in e.morphTargetDictionary)i[e.morphTargetDictionary[t]]=t;for(let o=0;o0&&(s.extras={},s.extras.targetNames=r)}let m=Array.isArray(e.material);if(m&&a.groups.length===0)return null;let h=m?e.material:[e.material],g=m?a.groups:[{materialIndex:0,start:void 0,count:void 0}];for(let e=0,n=g.length;e0&&(n.targets=u),a.index!==null){let r=this.getUID(a.index);(g[e].start!==void 0||g[e].count!==void 0)&&(r+=`:`+g[e].start+`:`+g[e].count),t.attributes.has(r)?n.indices=t.attributes.get(r):(n.indices=this.processAccessor(a.index,a,g[e].start,g[e].count),t.attributes.set(r,n.indices)),n.indices===null&&delete n.indices}let r=this.processMaterial(h[g[e].materialIndex]);r!==null&&(n.material=r),l.push(n)}s.primitives=l,n.meshes||=[],this._invokeAll(function(t){t.writeMesh&&t.writeMesh(e,s)});let _=n.meshes.push(s)-1;return t.meshes.set(i,_),_}detectMeshQuantization(e,t){if(this.extensionsUsed[hz])return;let n;switch(t.array.constructor){case Int8Array:n=`byte`;break;case Uint8Array:n=`unsigned byte`;break;case Int16Array:n=`short`;break;case Uint16Array:n=`unsigned short`;break;default:return}t.normalized&&(n+=` normalized`);let r=e.split(`_`,1)[0];fz[r]&&fz[r].includes(n)&&(this.extensionsUsed[hz]=!0,this.extensionsRequired[hz]=!0)}processCamera(e){let t=this.json;t.cameras||=[];let n=e.isOrthographicCamera,r={type:n?`orthographic`:`perspective`};return n?r.orthographic={xmag:e.right*2,ymag:e.top*2,zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near}:r.perspective={aspectRatio:e.aspect,yfov:bt.degToRad(e.fov),zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near},e.name!==``&&(r.name=e.type),t.cameras.push(r)-1}processAnimation(e,t){let n=this.json,r=this.nodeMap;n.animations||=[],e=pz.Utils.mergeMorphTargetTracks(e.clone(),t);let i=e.tracks,a=[],o=[];for(let e=0;e0){let t=[];for(let r=0,i=e.children.length;r0&&(i.children=t)}this._invokeAll(function(t){t.writeNode&&t.writeNode(e,i)});let a=t.nodes.push(i)-1;return r.set(e,a),a}processScene(e){let t=this.json,n=this.options;t.scenes||(t.scenes=[],t.scene=0);let r={};e.name!==``&&(r.name=e.name),t.scenes.push(r);let i=[];for(let t=0,r=e.children.length;t0&&(r.nodes=i),this.serializeUserData(e,r)}processObjects(e){let t=new Dt;t.name=`AuxScene`;for(let n=0;n0&&this.processObjects(n);for(let e=0;e0&&(a.range=e.distance)):e.isSpotLight&&(a.type=`spot`,e.distance>0&&(a.range=e.distance),a.spot={},a.spot.innerConeAngle=(e.penumbra-1)*e.angle*-1,a.spot.outerConeAngle=e.angle),e.decay!==void 0&&e.decay!==2&&console.warn(`THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2.`),e.target&&(e.target.parent!==e||e.target.position.x!==0||e.target.position.y!==0||e.target.position.z!==-1)&&console.warn(`THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1.`),i[this.name]||(r.extensions=r.extensions||{},r.extensions[this.name]={lights:[]},i[this.name]=!0);let o=r.extensions[this.name].lights;o.push(a),t.extensions=t.extensions||{},t.extensions[this.name]={light:o.length-1}}};let Fz=class{constructor(e){this.writer=e,this.name=`KHR_materials_unlit`}writeMaterial(e,t){if(!e.isMeshBasicMaterial)return;let n=this.writer.extensionsUsed;t.extensions=t.extensions||{},t.extensions[this.name]={},n[this.name]=!0,t.pbrMetallicRoughness.metallicFactor=0,t.pbrMetallicRoughness.roughnessFactor=.9}},Iz=class{constructor(e){this.writer=e,this.name=`KHR_materials_clearcoat`}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||e.clearcoat===0)return;let n=this.writer,r=n.extensionsUsed,i={};if(i.clearcoatFactor=e.clearcoat,e.clearcoatMap){let t={index:n.processTexture(e.clearcoatMap),texCoord:e.clearcoatMap.channel};n.applyTextureTransform(t,e.clearcoatMap),i.clearcoatTexture=t}if(i.clearcoatRoughnessFactor=e.clearcoatRoughness,e.clearcoatRoughnessMap){let t={index:n.processTexture(e.clearcoatRoughnessMap),texCoord:e.clearcoatRoughnessMap.channel};n.applyTextureTransform(t,e.clearcoatRoughnessMap),i.clearcoatRoughnessTexture=t}if(e.clearcoatNormalMap){let t={index:n.processTexture(e.clearcoatNormalMap),texCoord:e.clearcoatNormalMap.channel};n.applyTextureTransform(t,e.clearcoatNormalMap),i.clearcoatNormalTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=i,r[this.name]=!0}},Lz=class{constructor(e){this.writer=e,this.name=`KHR_materials_iridescence`}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||e.iridescence===0)return;let n=this.writer,r=n.extensionsUsed,i={};if(i.iridescenceFactor=e.iridescence,e.iridescenceMap){let t={index:n.processTexture(e.iridescenceMap),texCoord:e.iridescenceMap.channel};n.applyTextureTransform(t,e.iridescenceMap),i.iridescenceTexture=t}if(i.iridescenceIor=e.iridescenceIOR,i.iridescenceThicknessMinimum=e.iridescenceThicknessRange[0],i.iridescenceThicknessMaximum=e.iridescenceThicknessRange[1],e.iridescenceThicknessMap){let t={index:n.processTexture(e.iridescenceThicknessMap),texCoord:e.iridescenceThicknessMap.channel};n.applyTextureTransform(t,e.iridescenceThicknessMap),i.iridescenceThicknessTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=i,r[this.name]=!0}},Rz=class{constructor(e){this.writer=e,this.name=`KHR_materials_transmission`}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||e.transmission===0)return;let n=this.writer,r=n.extensionsUsed,i={};if(i.transmissionFactor=e.transmission,e.transmissionMap){let t={index:n.processTexture(e.transmissionMap),texCoord:e.transmissionMap.channel};n.applyTextureTransform(t,e.transmissionMap),i.transmissionTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=i,r[this.name]=!0}},zz=class{constructor(e){this.writer=e,this.name=`KHR_materials_volume`}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||e.transmission===0)return;let n=this.writer,r=n.extensionsUsed,i={};if(i.thicknessFactor=e.thickness,e.thicknessMap){let t={index:n.processTexture(e.thicknessMap),texCoord:e.thicknessMap.channel};n.applyTextureTransform(t,e.thicknessMap),i.thicknessTexture=t}i.attenuationDistance=e.attenuationDistance,i.attenuationColor=e.attenuationColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=i,r[this.name]=!0}},Bz=class{constructor(e){this.writer=e,this.name=`KHR_materials_ior`}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||e.ior===1.5)return;let n=this.writer.extensionsUsed,r={};r.ior=e.ior,t.extensions=t.extensions||{},t.extensions[this.name]=r,n[this.name]=!0}},Vz=class{constructor(e){this.writer=e,this.name=`KHR_materials_specular`}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||e.specularIntensity===1&&e.specularColor.equals(vz)&&!e.specularIntensityMap&&!e.specularColorTexture)return;let n=this.writer,r=n.extensionsUsed,i={};if(e.specularIntensityMap){let t={index:n.processTexture(e.specularIntensityMap),texCoord:e.specularIntensityMap.channel};n.applyTextureTransform(t,e.specularIntensityMap),i.specularTexture=t}if(e.specularColorMap){let t={index:n.processTexture(e.specularColorMap),texCoord:e.specularColorMap.channel};n.applyTextureTransform(t,e.specularColorMap),i.specularColorTexture=t}i.specularFactor=e.specularIntensity,i.specularColorFactor=e.specularColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=i,r[this.name]=!0}},Hz=class{constructor(e){this.writer=e,this.name=`KHR_materials_sheen`}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||e.sheen==0)return;let n=this.writer,r=n.extensionsUsed,i={};if(e.sheenRoughnessMap){let t={index:n.processTexture(e.sheenRoughnessMap),texCoord:e.sheenRoughnessMap.channel};n.applyTextureTransform(t,e.sheenRoughnessMap),i.sheenRoughnessTexture=t}if(e.sheenColorMap){let t={index:n.processTexture(e.sheenColorMap),texCoord:e.sheenColorMap.channel};n.applyTextureTransform(t,e.sheenColorMap),i.sheenColorTexture=t}i.sheenRoughnessFactor=e.sheenRoughness,i.sheenColorFactor=e.sheenColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=i,r[this.name]=!0}},Uz=class{constructor(e){this.writer=e,this.name=`KHR_materials_anisotropy`}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||e.anisotropy==0)return;let n=this.writer,r=n.extensionsUsed,i={};if(e.anisotropyMap){let t={index:n.processTexture(e.anisotropyMap)};n.applyTextureTransform(t,e.anisotropyMap),i.anisotropyTexture=t}i.anisotropyStrength=e.anisotropy,i.anisotropyRotation=e.anisotropyRotation,t.extensions=t.extensions||{},t.extensions[this.name]=i,r[this.name]=!0}},Wz=class{constructor(e){this.writer=e,this.name=`KHR_materials_emissive_strength`}writeMaterial(e,t){if(!e.isMeshStandardMaterial||e.emissiveIntensity===1)return;let n=this.writer.extensionsUsed,r={};r.emissiveStrength=e.emissiveIntensity,t.extensions=t.extensions||{},t.extensions[this.name]=r,n[this.name]=!0}};var Gz=Uint8Array,Kz=Uint16Array,qz=Uint32Array,Jz=new Gz([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Yz=new Gz([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Xz=new Gz([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Zz=function(e,t){for(var n=new Kz(31),r=0;r<31;++r)n[r]=t+=1<>>1|(iB&21845)<<1;aB=(aB&52428)>>>2|(aB&13107)<<2,aB=(aB&61680)>>>4|(aB&3855)<<4,rB[iB]=((aB&65280)>>>8|(aB&255)<<8)>>>1}for(var oB=function(e,t,n){for(var r=e.length,i=0,a=new Kz(t);i>>c]=l}else for(s=new Kz(r),i=0;i>>15-e[i]);return s},sB=new Gz(288),iB=0;iB<144;++iB)sB[iB]=8;for(var iB=144;iB<256;++iB)sB[iB]=9;for(var iB=256;iB<280;++iB)sB[iB]=7;for(var iB=280;iB<288;++iB)sB[iB]=8;for(var cB=new Gz(32),iB=0;iB<32;++iB)cB[iB]=5;var lB=oB(sB,9,1),uB=oB(cB,5,1),dB=function(e){for(var t=e[0],n=1;nt&&(t=e[n]);return t},fB=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},pB=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},mB=function(e){return(e/8|0)+(e&7&&1)},hB=function(e,t,n){(n==null||n>e.length)&&(n=e.length);var r=new(e instanceof Kz?Kz:e instanceof qz?qz:Gz)(n-t);return r.set(e.subarray(t,n)),r},gB=function(e,t,n){var r=e.length;if(!r||n&&!n.l&&r<5)return t||new Gz(0);var i=!t||n,a=!n||n.i;n||={},t||=new Gz(r*3);var o=function(e){var n=t.length;if(e>n){var r=new Gz(Math.max(n*2,e));r.set(t),t=r}},s=n.f||0,c=n.p||0,l=n.b||0,u=n.l,d=n.d,f=n.m,p=n.n,m=r*8;do{if(!u){n.f=s=fB(e,c,1);var h=fB(e,c+1,3);if(c+=3,h)if(h==1)u=lB,d=uB,f=9,p=5;else if(h==2){var g=fB(e,c,31)+257,_=fB(e,c+10,15)+4,v=g+fB(e,c+5,31)+1;c+=14;for(var y=new Gz(v),b=new Gz(19),x=0;x<_;++x)b[Xz[x]]=fB(e,c+x*3,7);c+=_*3;for(var S=dB(b),C=(1<>>4;if(E<16)y[x++]=E;else{var D=0,O=0;for(E==16?(O=3+fB(e,c,3),c+=2,D=y[x-1]):E==17?(O=3+fB(e,c,7),c+=3):E==18&&(O=11+fB(e,c,127),c+=7);O--;)y[x++]=D}}var ee=y.subarray(0,g),te=y.subarray(g);f=dB(ee),p=dB(te),u=oB(ee,f,1),d=oB(te,p,1)}else throw`invalid block type`;else{var E=mB(c)+4,ne=e[E-4]|e[E-3]<<8,k=E+ne;if(k>r){if(a)throw`unexpected EOF`;break}i&&o(l+ne),t.set(e.subarray(E,k),l),n.b=l+=ne,n.p=c=k*8;continue}if(c>m){if(a)throw`unexpected EOF`;break}}i&&o(l+131072);for(var A=(1<>>4;if(c+=D&15,c>m){if(a)throw`unexpected EOF`;break}if(!D)throw`invalid length/literal`;if(ie<256)t[l++]=ie;else if(ie==256){j=c,u=null;break}else{var ae=ie-254;if(ie>264){var x=ie-257,oe=Jz[x];ae=fB(e,c,(1<>>4;if(!se)throw`invalid distance`;c+=se&15;var te=nB[M];if(M>3){var oe=Yz[M];te+=pB(e,c)&(1<m){if(a)throw`unexpected EOF`;break}i&&o(l+131072);for(var ce=l+ae;l>>4>7||(e[0]<<8|e[1])%31)throw`invalid zlib data`;if(e[1]&32)throw`invalid zlib data: preset dictionaries not supported`},yB=typeof TextDecoder<`u`&&new TextDecoder,bB=0;try{yB.decode(_B,{stream:!0}),bB=1}catch{}var xB=Object.defineProperty,SB=(e,t,n)=>t in e?xB(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,CB=(e,t,n)=>(SB(e,t+``,n),n);const wB=class extends F{constructor(e,t={}){super(e),this.isReflector=!0,this.type=`Reflector`,this.camera=new lt;let n=this,r=t.color===void 0?new je(8355711):new je(t.color),i=t.textureWidth||512,a=t.textureHeight||512,o=t.clipBias||0,s=t.shader||wB.ReflectorShader,c=t.multisample===void 0?4:t.multisample,l=new Kt,u=new P,d=new P,f=new P,p=new qe,m=new P(0,0,-1),h=new sn,g=new P,_=new P,v=new sn,y=new qe,b=this.camera,x=new ve(i,a,{samples:c,type:Ge}),S=new Zt({uniforms:zt.clone(s.uniforms),fragmentShader:s.fragmentShader,vertexShader:s.vertexShader});S.uniforms.tDiffuse.value=x.texture,S.uniforms.color.value=r,S.uniforms.textureMatrix.value=y,this.material=S,this.onBeforeRender=function(e,t,r){if(d.setFromMatrixPosition(n.matrixWorld),f.setFromMatrixPosition(r.matrixWorld),p.extractRotation(n.matrixWorld),u.set(0,0,1),u.applyMatrix4(p),g.subVectors(d,f),g.dot(u)>0)return;g.reflect(u).negate(),g.add(d),p.extractRotation(r.matrixWorld),m.set(0,0,-1),m.applyMatrix4(p),m.add(f),_.subVectors(d,m),_.reflect(u).negate(),_.add(d),b.position.copy(g),b.up.set(0,1,0),b.up.applyMatrix4(p),b.up.reflect(u),b.lookAt(_),b.far=r.far,b.updateMatrixWorld(),b.projectionMatrix.copy(r.projectionMatrix),y.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),y.multiply(b.projectionMatrix),y.multiply(b.matrixWorldInverse),y.multiply(n.matrixWorld),l.setFromNormalAndCoplanarPoint(u,d),l.applyMatrix4(b.matrixWorldInverse),h.set(l.normal.x,l.normal.y,l.normal.z,l.constant);let i=b.projectionMatrix;v.x=(Math.sign(h.x)+i.elements[8])/i.elements[0],v.y=(Math.sign(h.y)+i.elements[9])/i.elements[5],v.z=-1,v.w=(1+i.elements[10])/i.elements[14],h.multiplyScalar(2/h.dot(v)),i.elements[2]=h.x,i.elements[6]=h.y,i.elements[10]=h.z+1-o,i.elements[14]=h.w,n.visible=!1;let a=e.getRenderTarget(),s=e.xr.enabled,c=e.shadowMap.autoUpdate,S=e.toneMapping,C=!1;C=`outputColorSpace`in e?e.outputColorSpace===`srgb`:e.outputEncoding===3001,e.xr.enabled=!1,e.shadowMap.autoUpdate=!1,`outputColorSpace`in e?e.outputColorSpace=`srgb-linear`:e.outputEncoding=3e3,e.toneMapping=Ht,e.setRenderTarget(x),e.state.buffers.depth.setMask(!0),e.autoClear===!1&&e.clear(),e.render(t,b),e.xr.enabled=s,e.shadowMap.autoUpdate=c,e.toneMapping=S,`outputColorSpace`in e?e.outputColorSpace=C?`srgb`:`srgb-linear`:e.outputEncoding=C?3001:3e3,e.setRenderTarget(a);let w=r.viewport;w!==void 0&&e.state.viewport(w),n.visible=!0},this.getRenderTarget=function(){return x},this.dispose=function(){x.dispose(),n.material.dispose()}}};let TB=wB;CB(TB,`ReflectorShader`,{uniforms:{color:{value:null},tDiffuse:{value:null},textureMatrix:{value:null}},vertexShader:` + uniform mat4 textureMatrix; + varying vec4 vUv; + + #include + #include + + void main() { + + vUv = textureMatrix * vec4( position, 1.0 ); + + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + + #include + + }`,fragmentShader:` + uniform vec3 color; + uniform sampler2D tDiffuse; + varying vec4 vUv; + + #include + + float blendOverlay( float base, float blend ) { + + return( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) ); + + } + + vec3 blendOverlay( vec3 base, vec3 blend ) { + + return vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) ); + + } + + void main() { + + #include + + vec4 base = texture2DProj( tDiffuse, vUv ); + gl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 ); + + #include + #include <${ez>=154?`colorspace_fragment`:`encodings_fragment`}> + + }`});var EB=Object.defineProperty,DB=(e,t,n)=>t in e?EB(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,OB=(e,t,n)=>(DB(e,typeof t==`symbol`?t:t+``,n),n);const kB=new yt,AB=new Float32Array([-1,-1,0,0,0,1,-1,0,1,0,1,1,0,1,1,-1,1,0,0,1]),jB=new Ye(AB,5);kB.setIndex([0,1,2,0,2,3]),kB.setAttribute(`position`,new kt(jB,3,0,!1)),kB.setAttribute(`uv`,new kt(jB,2,3,!1));const MB=class extends F{constructor(){super(MB.Geometry,new Mt({opacity:0,transparent:!0})),this.isLensflare=!0,this.type=`Lensflare`,this.frustumCulled=!1,this.renderOrder=1/0;let e=new P,t=new P,n=new Ot(new Uint8Array(16*16*3),16,16,xe);n.minFilter=De,n.magFilter=De,n.wrapS=me,n.wrapT=me;let r=new Ot(new Uint8Array(16*16*3),16,16,xe);r.minFilter=De,r.magFilter=De,r.wrapS=me,r.wrapT=me;let i=MB.Geometry,a=new $t({uniforms:{scale:{value:null},screenPosition:{value:null}},vertexShader:` + + precision highp float; + + uniform vec3 screenPosition; + uniform vec2 scale; + + attribute vec3 position; + + void main() { + + gl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 ); + + }`,fragmentShader:` + + precision highp float; + + void main() { + + gl_FragColor = vec4( 1.0, 0.0, 1.0, 1.0 ); + + }`,depthTest:!0,depthWrite:!1,transparent:!1}),o=new $t({uniforms:{map:{value:n},scale:{value:null},screenPosition:{value:null}},vertexShader:` + + precision highp float; + + uniform vec3 screenPosition; + uniform vec2 scale; + + attribute vec3 position; + attribute vec2 uv; + + varying vec2 vUV; + + void main() { + + vUV = uv; + + gl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 ); + + }`,fragmentShader:` + + precision highp float; + + uniform sampler2D map; + + varying vec2 vUV; + + void main() { + + gl_FragColor = texture2D( map, vUV ); + + }`,depthTest:!1,depthWrite:!1,transparent:!1}),s=new F(i,a),c=[],l=PB.Shader,u=new $t({uniforms:{map:{value:null},occlusionMap:{value:r},color:{value:new je(16777215)},scale:{value:new Et},screenPosition:{value:new P}},vertexShader:l.vertexShader,fragmentShader:l.fragmentShader,blending:de,transparent:!0,depthWrite:!1}),d=new F(i,u);this.addElement=function(e){c.push(e)};let f=new Et,p=new Et,m=new Ut,h=new sn;this.onBeforeRender=function(l,g,_){l.getCurrentViewport(h);let v=h.w/h.z,y=h.z/2,b=h.w/2,x=16/h.w;if(f.set(x*v,x),m.min.set(h.x,h.y),m.max.set(h.x+(h.z-16),h.y+(h.w-16)),t.setFromMatrixPosition(this.matrixWorld),t.applyMatrix4(_.matrixWorldInverse),!(t.z>0)&&(e.copy(t).applyMatrix4(_.projectionMatrix),p.x=h.x+e.x*y+y-8,p.y=h.y+e.y*b+b-8,m.containsPoint(p))){l.copyFramebufferToTexture(p,n);let t=a.uniforms;t.scale.value=f,t.screenPosition.value=e,l.renderBufferDirect(_,null,i,a,s,null),l.copyFramebufferToTexture(p,r),t=o.uniforms,t.scale.value=f,t.screenPosition.value=e,l.renderBufferDirect(_,null,i,o,s,null);let m=-e.x*2,g=-e.y*2;for(let t=0,n=c.length;t + #include + #include + #include + + void main() { + mirrorCoord = modelMatrix * vec4( position, 1.0 ); + worldPosition = mirrorCoord.xyzw; + mirrorCoord = textureMatrix * mirrorCoord; + vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 ); + gl_Position = projectionMatrix * mvPosition; + + #include + #include + #include + #include + #include + }`,fragmentShader:` + uniform sampler2D mirrorSampler; + uniform float alpha; + uniform float time; + uniform float size; + uniform float distortionScale; + uniform sampler2D normalSampler; + uniform vec3 sunColor; + uniform vec3 sunDirection; + uniform vec3 eye; + uniform vec3 waterColor; + + varying vec4 mirrorCoord; + varying vec4 worldPosition; + + vec4 getNoise( vec2 uv ) { + vec2 uv0 = ( uv / 103.0 ) + vec2(time / 17.0, time / 29.0); + vec2 uv1 = uv / 107.0-vec2( time / -19.0, time / 31.0 ); + vec2 uv2 = uv / vec2( 8907.0, 9803.0 ) + vec2( time / 101.0, time / 97.0 ); + vec2 uv3 = uv / vec2( 1091.0, 1027.0 ) - vec2( time / 109.0, time / -113.0 ); + vec4 noise = texture2D( normalSampler, uv0 ) + + texture2D( normalSampler, uv1 ) + + texture2D( normalSampler, uv2 ) + + texture2D( normalSampler, uv3 ); + return noise * 0.5 - 1.0; + } + + void sunLight( const vec3 surfaceNormal, const vec3 eyeDirection, float shiny, float spec, float diffuse, inout vec3 diffuseColor, inout vec3 specularColor ) { + vec3 reflection = normalize( reflect( -sunDirection, surfaceNormal ) ); + float direction = max( 0.0, dot( eyeDirection, reflection ) ); + specularColor += pow( direction, shiny ) * sunColor * spec; + diffuseColor += max( dot( sunDirection, surfaceNormal ), 0.0 ) * sunColor * diffuse; + } + + #include + #include + #include + #include + #include + #include + #include + #include + + void main() { + + #include + vec4 noise = getNoise( worldPosition.xz * size ); + vec3 surfaceNormal = normalize( noise.xzy * vec3( 1.5, 1.0, 1.5 ) ); + + vec3 diffuseLight = vec3(0.0); + vec3 specularLight = vec3(0.0); + + vec3 worldToEye = eye-worldPosition.xyz; + vec3 eyeDirection = normalize( worldToEye ); + sunLight( surfaceNormal, eyeDirection, 100.0, 2.0, 0.5, diffuseLight, specularLight ); + + float distance = length(worldToEye); + + vec2 distortion = surfaceNormal.xz * ( 0.001 + 1.0 / distance ) * distortionScale; + vec3 reflectionSample = vec3( texture2D( mirrorSampler, mirrorCoord.xy / mirrorCoord.w + distortion ) ); + + float theta = max( dot( eyeDirection, surfaceNormal ), 0.0 ); + float rf0 = 0.3; + float reflectance = rf0 + ( 1.0 - rf0 ) * pow( ( 1.0 - theta ), 5.0 ); + vec3 scatter = max( 0.0, dot( surfaceNormal, eyeDirection ) ) * waterColor; + vec3 albedo = mix( ( sunColor * diffuseLight * 0.3 + scatter ) * getShadowMask(), ( vec3( 0.1 ) + reflectionSample * 0.9 + reflectionSample * specularLight ), reflectance); + vec3 outgoingLight = albedo; + gl_FragColor = vec4( outgoingLight, alpha ); + + #include + #include <${parseInt(gt.replace(/\D+/g,``))>=154?`colorspace_fragment`:`encodings_fragment`}> + #include + }`},te=new Zt({fragmentShader:ee.fragmentShader,vertexShader:ee.vertexShader,uniforms:zt.clone(ee.uniforms),lights:!0,side:m,fog:h});te.uniforms.mirrorSampler.value=O.texture,te.uniforms.textureMatrix.value=E,te.uniforms.alpha.value=o,te.uniforms.time.value=s,te.uniforms.normalSampler.value=c,te.uniforms.sunColor.value=u,te.uniforms.waterColor.value=d,te.uniforms.sunDirection.value=l,te.uniforms.distortionScale.value=p,te.uniforms.eye.value=f,n.material=te,n.onBeforeRender=function(e,t,r){if(v.setFromMatrixPosition(n.matrixWorld),y.setFromMatrixPosition(r.matrixWorld),b.extractRotation(n.matrixWorld),_.set(0,0,1),_.applyMatrix4(b),C.subVectors(v,y),C.dot(_)>0)return;C.reflect(_).negate(),C.add(v),b.extractRotation(r.matrixWorld),x.set(0,0,-1),x.applyMatrix4(b),x.add(y),w.subVectors(v,x),w.reflect(_).negate(),w.add(v),D.position.copy(C),D.up.set(0,1,0),D.up.applyMatrix4(b),D.up.reflect(_),D.lookAt(w),D.far=r.far,D.updateMatrixWorld(),D.projectionMatrix.copy(r.projectionMatrix),E.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),E.multiply(D.projectionMatrix),E.multiply(D.matrixWorldInverse),g.setFromNormalAndCoplanarPoint(_,v),g.applyMatrix4(D.matrixWorldInverse),S.set(g.normal.x,g.normal.y,g.normal.z,g.constant);let i=D.projectionMatrix;T.x=(Math.sign(S.x)+i.elements[8])/i.elements[0],T.y=(Math.sign(S.y)+i.elements[9])/i.elements[5],T.z=-1,T.w=(1+i.elements[10])/i.elements[14],S.multiplyScalar(2/S.dot(T)),i.elements[2]=S.x,i.elements[6]=S.y,i.elements[10]=S.z+1-a,i.elements[14]=S.w,f.setFromMatrixPosition(r.matrixWorld);let o=e.getRenderTarget(),s=e.xr.enabled,c=e.shadowMap.autoUpdate;n.visible=!1,e.xr.enabled=!1,e.shadowMap.autoUpdate=!1,e.setRenderTarget(O),e.state.buffers.depth.setMask(!0),e.autoClear===!1&&e.clear(),e.render(t,D),n.visible=!0,e.xr.enabled=s,e.shadowMap.autoUpdate=c,e.setRenderTarget(o);let l=r.viewport;l!==void 0&&e.state.viewport(l)}}},IB=Object.defineProperty,LB=(e,t,n)=>t in e?IB(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,RB=(e,t,n)=>(LB(e,typeof t==`symbol`?t:t+``,n),n);const zB={uniforms:{turbidity:{value:2},rayleigh:{value:1},mieCoefficient:{value:.005},mieDirectionalG:{value:.8},sunPosition:{value:new P},up:{value:new P(0,1,0)}},vertexShader:` + uniform vec3 sunPosition; + uniform float rayleigh; + uniform float turbidity; + uniform float mieCoefficient; + uniform vec3 up; + + varying vec3 vWorldPosition; + varying vec3 vSunDirection; + varying float vSunfade; + varying vec3 vBetaR; + varying vec3 vBetaM; + varying float vSunE; + + // constants for atmospheric scattering + const float e = 2.71828182845904523536028747135266249775724709369995957; + const float pi = 3.141592653589793238462643383279502884197169; + + // wavelength of used primaries, according to preetham + const vec3 lambda = vec3( 680E-9, 550E-9, 450E-9 ); + // this pre-calcuation replaces older TotalRayleigh(vec3 lambda) function: + // (8.0 * pow(pi, 3.0) * pow(pow(n, 2.0) - 1.0, 2.0) * (6.0 + 3.0 * pn)) / (3.0 * N * pow(lambda, vec3(4.0)) * (6.0 - 7.0 * pn)) + const vec3 totalRayleigh = vec3( 5.804542996261093E-6, 1.3562911419845635E-5, 3.0265902468824876E-5 ); + + // mie stuff + // K coefficient for the primaries + const float v = 4.0; + const vec3 K = vec3( 0.686, 0.678, 0.666 ); + // MieConst = pi * pow( ( 2.0 * pi ) / lambda, vec3( v - 2.0 ) ) * K + const vec3 MieConst = vec3( 1.8399918514433978E14, 2.7798023919660528E14, 4.0790479543861094E14 ); + + // earth shadow hack + // cutoffAngle = pi / 1.95; + const float cutoffAngle = 1.6110731556870734; + const float steepness = 1.5; + const float EE = 1000.0; + + float sunIntensity( float zenithAngleCos ) { + zenithAngleCos = clamp( zenithAngleCos, -1.0, 1.0 ); + return EE * max( 0.0, 1.0 - pow( e, -( ( cutoffAngle - acos( zenithAngleCos ) ) / steepness ) ) ); + } + + vec3 totalMie( float T ) { + float c = ( 0.2 * T ) * 10E-18; + return 0.434 * c * MieConst; + } + + void main() { + + vec4 worldPosition = modelMatrix * vec4( position, 1.0 ); + vWorldPosition = worldPosition.xyz; + + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + gl_Position.z = gl_Position.w; // set z to camera.far + + vSunDirection = normalize( sunPosition ); + + vSunE = sunIntensity( dot( vSunDirection, up ) ); + + vSunfade = 1.0 - clamp( 1.0 - exp( ( sunPosition.y / 450000.0 ) ), 0.0, 1.0 ); + + float rayleighCoefficient = rayleigh - ( 1.0 * ( 1.0 - vSunfade ) ); + + // extinction (absorbtion + out scattering) + // rayleigh coefficients + vBetaR = totalRayleigh * rayleighCoefficient; + + // mie coefficients + vBetaM = totalMie( turbidity ) * mieCoefficient; + + } + `,fragmentShader:` + varying vec3 vWorldPosition; + varying vec3 vSunDirection; + varying float vSunfade; + varying vec3 vBetaR; + varying vec3 vBetaM; + varying float vSunE; + + uniform float mieDirectionalG; + uniform vec3 up; + + const vec3 cameraPos = vec3( 0.0, 0.0, 0.0 ); + + // constants for atmospheric scattering + const float pi = 3.141592653589793238462643383279502884197169; + + const float n = 1.0003; // refractive index of air + const float N = 2.545E25; // number of molecules per unit volume for air at 288.15K and 1013mb (sea level -45 celsius) + + // optical length at zenith for molecules + const float rayleighZenithLength = 8.4E3; + const float mieZenithLength = 1.25E3; + // 66 arc seconds -> degrees, and the cosine of that + const float sunAngularDiameterCos = 0.999956676946448443553574619906976478926848692873900859324; + + // 3.0 / ( 16.0 * pi ) + const float THREE_OVER_SIXTEENPI = 0.05968310365946075; + // 1.0 / ( 4.0 * pi ) + const float ONE_OVER_FOURPI = 0.07957747154594767; + + float rayleighPhase( float cosTheta ) { + return THREE_OVER_SIXTEENPI * ( 1.0 + pow( cosTheta, 2.0 ) ); + } + + float hgPhase( float cosTheta, float g ) { + float g2 = pow( g, 2.0 ); + float inverse = 1.0 / pow( 1.0 - 2.0 * g * cosTheta + g2, 1.5 ); + return ONE_OVER_FOURPI * ( ( 1.0 - g2 ) * inverse ); + } + + void main() { + + vec3 direction = normalize( vWorldPosition - cameraPos ); + + // optical length + // cutoff angle at 90 to avoid singularity in next formula. + float zenithAngle = acos( max( 0.0, dot( up, direction ) ) ); + float inverse = 1.0 / ( cos( zenithAngle ) + 0.15 * pow( 93.885 - ( ( zenithAngle * 180.0 ) / pi ), -1.253 ) ); + float sR = rayleighZenithLength * inverse; + float sM = mieZenithLength * inverse; + + // combined extinction factor + vec3 Fex = exp( -( vBetaR * sR + vBetaM * sM ) ); + + // in scattering + float cosTheta = dot( direction, vSunDirection ); + + float rPhase = rayleighPhase( cosTheta * 0.5 + 0.5 ); + vec3 betaRTheta = vBetaR * rPhase; + + float mPhase = hgPhase( cosTheta, mieDirectionalG ); + vec3 betaMTheta = vBetaM * mPhase; + + vec3 Lin = pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * ( 1.0 - Fex ), vec3( 1.5 ) ); + Lin *= mix( vec3( 1.0 ), pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * Fex, vec3( 1.0 / 2.0 ) ), clamp( pow( 1.0 - dot( up, vSunDirection ), 5.0 ), 0.0, 1.0 ) ); + + // nightsky + float theta = acos( direction.y ); // elevation --> y-axis, [-pi/2, pi/2] + float phi = atan( direction.z, direction.x ); // azimuth --> x-axis [-pi/2, pi/2] + vec2 uv = vec2( phi, theta ) / vec2( 2.0 * pi, pi ) + vec2( 0.5, 0.0 ); + vec3 L0 = vec3( 0.1 ) * Fex; + + // composition + solar disc + float sundisk = smoothstep( sunAngularDiameterCos, sunAngularDiameterCos + 0.00002, cosTheta ); + L0 += ( vSunE * 19000.0 * Fex ) * sundisk; + + vec3 texColor = ( Lin + L0 ) * 0.04 + vec3( 0.0, 0.0003, 0.00075 ); + + vec3 retColor = pow( texColor, vec3( 1.0 / ( 1.2 + ( 1.2 * vSunfade ) ) ) ); + + gl_FragColor = vec4( retColor, 1.0 ); + + #include + #include <${ez>=154?`colorspace_fragment`:`encodings_fragment`}> + + } + `},BB=new Zt({name:`SkyShader`,fragmentShader:zB.fragmentShader,vertexShader:zB.vertexShader,uniforms:zt.clone(zB.uniforms),side:Xe,depthWrite:!1});var VB=class extends F{constructor(){super(new jt(1,1,1),BB)}};RB(VB,`SkyShader`,zB),RB(VB,`material`,BB);const HB=new Xt,UB=new P;var WB=class{constructor(e){let t=e.geometry;t.index&&(console.warn(`THREE.MeshSurfaceSampler: Converting geometry to non-indexed BufferGeometry.`),t=t.toNonIndexed()),this.geometry=t,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute(`position`),this.colorAttribute=this.geometry.getAttribute(`color`),this.weightAttribute=null,this.distribution=null}setWeightAttribute(e){return this.weightAttribute=e?this.geometry.getAttribute(e):null,this}build(){let e=this.positionAttribute,t=this.weightAttribute,n=new Float32Array(e.count/3);for(let r=0;re){i=a;break}else e1&&(i=1-i,a=1-a),HB.a.fromBufferAttribute(this.positionAttribute,e*3),HB.b.fromBufferAttribute(this.positionAttribute,e*3+1),HB.c.fromBufferAttribute(this.positionAttribute,e*3+2),t.set(0,0,0).addScaledVector(HB.a,i).addScaledVector(HB.b,a).addScaledVector(HB.c,1-(i+a)),n!==void 0&&HB.getNormal(n),r!==void 0&&this.colorAttribute!==void 0&&(HB.a.fromBufferAttribute(this.colorAttribute,e*3),HB.b.fromBufferAttribute(this.colorAttribute,e*3+1),HB.c.fromBufferAttribute(this.colorAttribute,e*3+2),UB.set(0,0,0).addScaledVector(HB.a,i).addScaledVector(HB.b,a).addScaledVector(HB.c,1-(i+a)),r.r=UB.x,r.g=UB.y,r.b=UB.z),this}},GB=Object.defineProperty,KB=(e,t,n)=>t in e?GB(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Q=(e,t,n)=>(KB(e,typeof t==`symbol`?t:t+``,n),n),qB=class extends Me{constructor(e,t){super(),Q(this,`isTransformControls`,!0),Q(this,`visible`,!1),Q(this,`domElement`),Q(this,`raycaster`,new xt),Q(this,`gizmo`),Q(this,`plane`),Q(this,`tempVector`,new P),Q(this,`tempVector2`,new P),Q(this,`tempQuaternion`,new Jt),Q(this,`unit`,{X:new P(1,0,0),Y:new P(0,1,0),Z:new P(0,0,1)}),Q(this,`pointStart`,new P),Q(this,`pointEnd`,new P),Q(this,`offset`,new P),Q(this,`rotationAxis`,new P),Q(this,`startNorm`,new P),Q(this,`endNorm`,new P),Q(this,`rotationAngle`,0),Q(this,`cameraPosition`,new P),Q(this,`cameraQuaternion`,new Jt),Q(this,`cameraScale`,new P),Q(this,`parentPosition`,new P),Q(this,`parentQuaternion`,new Jt),Q(this,`parentQuaternionInv`,new Jt),Q(this,`parentScale`,new P),Q(this,`worldPositionStart`,new P),Q(this,`worldQuaternionStart`,new Jt),Q(this,`worldScaleStart`,new P),Q(this,`worldPosition`,new P),Q(this,`worldQuaternion`,new Jt),Q(this,`worldQuaternionInv`,new Jt),Q(this,`worldScale`,new P),Q(this,`eye`,new P),Q(this,`positionStart`,new P),Q(this,`quaternionStart`,new Jt),Q(this,`scaleStart`,new P),Q(this,`camera`),Q(this,`object`),Q(this,`enabled`,!0),Q(this,`axis`,null),Q(this,`mode`,`translate`),Q(this,`translationSnap`,null),Q(this,`rotationSnap`,null),Q(this,`scaleSnap`,null),Q(this,`space`,`world`),Q(this,`size`,1),Q(this,`dragging`,!1),Q(this,`showX`,!0),Q(this,`showY`,!0),Q(this,`showZ`,!0),Q(this,`changeEvent`,{type:`change`}),Q(this,`mouseDownEvent`,{type:`mouseDown`,mode:this.mode}),Q(this,`mouseUpEvent`,{type:`mouseUp`,mode:this.mode}),Q(this,`objectChangeEvent`,{type:`objectChange`}),Q(this,`intersectObjectWithRay`,(e,t,n)=>{let r=t.intersectObject(e,!0);for(let e=0;e(this.object=e,this.visible=!0,this)),Q(this,`detach`,()=>(this.object=void 0,this.visible=!1,this.axis=null,this)),Q(this,`reset`,()=>(this.enabled&&this.dragging&&this.object!==void 0&&(this.object.position.copy(this.positionStart),this.object.quaternion.copy(this.quaternionStart),this.object.scale.copy(this.scaleStart),this.dispatchEvent(this.changeEvent),this.dispatchEvent(this.objectChangeEvent),this.pointStart.copy(this.pointEnd)),this)),Q(this,`updateMatrixWorld`,()=>{this.object!==void 0&&(this.object.updateMatrixWorld(),this.object.parent===null?console.error(`TransformControls: The attached 3D object must be a part of the scene graph.`):this.object.parent.matrixWorld.decompose(this.parentPosition,this.parentQuaternion,this.parentScale),this.object.matrixWorld.decompose(this.worldPosition,this.worldQuaternion,this.worldScale),this.parentQuaternionInv.copy(this.parentQuaternion).invert(),this.worldQuaternionInv.copy(this.worldQuaternion).invert()),this.camera.updateMatrixWorld(),this.camera.matrixWorld.decompose(this.cameraPosition,this.cameraQuaternion,this.cameraScale),this.eye.copy(this.cameraPosition).sub(this.worldPosition).normalize(),super.updateMatrixWorld()}),Q(this,`pointerHover`,e=>{if(this.object===void 0||this.dragging===!0)return;this.raycaster.setFromCamera(e,this.camera);let t=this.intersectObjectWithRay(this.gizmo.picker[this.mode],this.raycaster);t?this.axis=t.object.name:this.axis=null}),Q(this,`pointerDown`,e=>{if(!(this.object===void 0||this.dragging===!0||e.button!==0)&&this.axis!==null){this.raycaster.setFromCamera(e,this.camera);let t=this.intersectObjectWithRay(this.plane,this.raycaster,!0);if(t){let e=this.space;if(this.mode===`scale`?e=`local`:(this.axis===`E`||this.axis===`XYZE`||this.axis===`XYZ`)&&(e=`world`),e===`local`&&this.mode===`rotate`){let e=this.rotationSnap;this.axis===`X`&&e&&(this.object.rotation.x=Math.round(this.object.rotation.x/e)*e),this.axis===`Y`&&e&&(this.object.rotation.y=Math.round(this.object.rotation.y/e)*e),this.axis===`Z`&&e&&(this.object.rotation.z=Math.round(this.object.rotation.z/e)*e)}this.object.updateMatrixWorld(),this.object.parent&&this.object.parent.updateMatrixWorld(),this.positionStart.copy(this.object.position),this.quaternionStart.copy(this.object.quaternion),this.scaleStart.copy(this.object.scale),this.object.matrixWorld.decompose(this.worldPositionStart,this.worldQuaternionStart,this.worldScaleStart),this.pointStart.copy(t.point).sub(this.worldPositionStart)}this.dragging=!0,this.mouseDownEvent.mode=this.mode,this.dispatchEvent(this.mouseDownEvent)}}),Q(this,`pointerMove`,e=>{let t=this.axis,n=this.mode,r=this.object,i=this.space;if(n===`scale`?i=`local`:(t===`E`||t===`XYZE`||t===`XYZ`)&&(i=`world`),r===void 0||t===null||this.dragging===!1||e.button!==-1)return;this.raycaster.setFromCamera(e,this.camera);let a=this.intersectObjectWithRay(this.plane,this.raycaster,!0);if(a){if(this.pointEnd.copy(a.point).sub(this.worldPositionStart),n===`translate`)this.offset.copy(this.pointEnd).sub(this.pointStart),i===`local`&&t!==`XYZ`&&this.offset.applyQuaternion(this.worldQuaternionInv),t.indexOf(`X`)===-1&&(this.offset.x=0),t.indexOf(`Y`)===-1&&(this.offset.y=0),t.indexOf(`Z`)===-1&&(this.offset.z=0),i===`local`&&t!==`XYZ`?this.offset.applyQuaternion(this.quaternionStart).divide(this.parentScale):this.offset.applyQuaternion(this.parentQuaternionInv).divide(this.parentScale),r.position.copy(this.offset).add(this.positionStart),this.translationSnap&&(i===`local`&&(r.position.applyQuaternion(this.tempQuaternion.copy(this.quaternionStart).invert()),t.search(`X`)!==-1&&(r.position.x=Math.round(r.position.x/this.translationSnap)*this.translationSnap),t.search(`Y`)!==-1&&(r.position.y=Math.round(r.position.y/this.translationSnap)*this.translationSnap),t.search(`Z`)!==-1&&(r.position.z=Math.round(r.position.z/this.translationSnap)*this.translationSnap),r.position.applyQuaternion(this.quaternionStart)),i===`world`&&(r.parent&&r.position.add(this.tempVector.setFromMatrixPosition(r.parent.matrixWorld)),t.search(`X`)!==-1&&(r.position.x=Math.round(r.position.x/this.translationSnap)*this.translationSnap),t.search(`Y`)!==-1&&(r.position.y=Math.round(r.position.y/this.translationSnap)*this.translationSnap),t.search(`Z`)!==-1&&(r.position.z=Math.round(r.position.z/this.translationSnap)*this.translationSnap),r.parent&&r.position.sub(this.tempVector.setFromMatrixPosition(r.parent.matrixWorld))));else if(n===`scale`){if(t.search(`XYZ`)!==-1){let e=this.pointEnd.length()/this.pointStart.length();this.pointEnd.dot(this.pointStart)<0&&(e*=-1),this.tempVector2.set(e,e,e)}else this.tempVector.copy(this.pointStart),this.tempVector2.copy(this.pointEnd),this.tempVector.applyQuaternion(this.worldQuaternionInv),this.tempVector2.applyQuaternion(this.worldQuaternionInv),this.tempVector2.divide(this.tempVector),t.search(`X`)===-1&&(this.tempVector2.x=1),t.search(`Y`)===-1&&(this.tempVector2.y=1),t.search(`Z`)===-1&&(this.tempVector2.z=1);r.scale.copy(this.scaleStart).multiply(this.tempVector2),this.scaleSnap&&this.object&&(t.search(`X`)!==-1&&(this.object.scale.x=Math.round(r.scale.x/this.scaleSnap)*this.scaleSnap||this.scaleSnap),t.search(`Y`)!==-1&&(r.scale.y=Math.round(r.scale.y/this.scaleSnap)*this.scaleSnap||this.scaleSnap),t.search(`Z`)!==-1&&(r.scale.z=Math.round(r.scale.z/this.scaleSnap)*this.scaleSnap||this.scaleSnap))}else if(n===`rotate`){this.offset.copy(this.pointEnd).sub(this.pointStart);let e=20/this.worldPosition.distanceTo(this.tempVector.setFromMatrixPosition(this.camera.matrixWorld));t===`E`?(this.rotationAxis.copy(this.eye),this.rotationAngle=this.pointEnd.angleTo(this.pointStart),this.startNorm.copy(this.pointStart).normalize(),this.endNorm.copy(this.pointEnd).normalize(),this.rotationAngle*=this.endNorm.cross(this.startNorm).dot(this.eye)<0?1:-1):t===`XYZE`?(this.rotationAxis.copy(this.offset).cross(this.eye).normalize(),this.rotationAngle=this.offset.dot(this.tempVector.copy(this.rotationAxis).cross(this.eye))*e):(t===`X`||t===`Y`||t===`Z`)&&(this.rotationAxis.copy(this.unit[t]),this.tempVector.copy(this.unit[t]),i===`local`&&this.tempVector.applyQuaternion(this.worldQuaternion),this.rotationAngle=this.offset.dot(this.tempVector.cross(this.eye).normalize())*e),this.rotationSnap&&(this.rotationAngle=Math.round(this.rotationAngle/this.rotationSnap)*this.rotationSnap),i===`local`&&t!==`E`&&t!==`XYZE`?(r.quaternion.copy(this.quaternionStart),r.quaternion.multiply(this.tempQuaternion.setFromAxisAngle(this.rotationAxis,this.rotationAngle)).normalize()):(this.rotationAxis.applyQuaternion(this.parentQuaternionInv),r.quaternion.copy(this.tempQuaternion.setFromAxisAngle(this.rotationAxis,this.rotationAngle)),r.quaternion.multiply(this.quaternionStart).normalize())}this.dispatchEvent(this.changeEvent),this.dispatchEvent(this.objectChangeEvent)}}),Q(this,`pointerUp`,e=>{e.button===0&&(this.dragging&&this.axis!==null&&(this.mouseUpEvent.mode=this.mode,this.dispatchEvent(this.mouseUpEvent)),this.dragging=!1,this.axis=null)}),Q(this,`getPointer`,e=>{var t;if(this.domElement&&(t=this.domElement.ownerDocument)!=null&&t.pointerLockElement)return{x:0,y:0,button:e.button};{let t=e.changedTouches?e.changedTouches[0]:e,n=this.domElement.getBoundingClientRect();return{x:(t.clientX-n.left)/n.width*2-1,y:-(t.clientY-n.top)/n.height*2+1,button:e.button}}}),Q(this,`onPointerHover`,e=>{if(this.enabled)switch(e.pointerType){case`mouse`:case`pen`:this.pointerHover(this.getPointer(e));break}}),Q(this,`onPointerDown`,e=>{!this.enabled||!this.domElement||(this.domElement.style.touchAction=`none`,this.domElement.ownerDocument.addEventListener(`pointermove`,this.onPointerMove),this.pointerHover(this.getPointer(e)),this.pointerDown(this.getPointer(e)))}),Q(this,`onPointerMove`,e=>{this.enabled&&this.pointerMove(this.getPointer(e))}),Q(this,`onPointerUp`,e=>{!this.enabled||!this.domElement||(this.domElement.style.touchAction=``,this.domElement.ownerDocument.removeEventListener(`pointermove`,this.onPointerMove),this.pointerUp(this.getPointer(e)))}),Q(this,`getMode`,()=>this.mode),Q(this,`setMode`,e=>{this.mode=e}),Q(this,`setTranslationSnap`,e=>{this.translationSnap=e}),Q(this,`setRotationSnap`,e=>{this.rotationSnap=e}),Q(this,`setScaleSnap`,e=>{this.scaleSnap=e}),Q(this,`setSize`,e=>{this.size=e}),Q(this,`setSpace`,e=>{this.space=e}),Q(this,`update`,()=>{console.warn(`THREE.TransformControls: update function has no more functionality and therefore has been deprecated.`)}),Q(this,`connect`,e=>{e===document&&console.error(`THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.`),this.domElement=e,this.domElement.addEventListener(`pointerdown`,this.onPointerDown),this.domElement.addEventListener(`pointermove`,this.onPointerHover),this.domElement.ownerDocument.addEventListener(`pointerup`,this.onPointerUp)}),Q(this,`dispose`,()=>{var e,t,n,r,i,a;(e=this.domElement)==null||e.removeEventListener(`pointerdown`,this.onPointerDown),(t=this.domElement)==null||t.removeEventListener(`pointermove`,this.onPointerHover),(r=(n=this.domElement)?.ownerDocument)==null||r.removeEventListener(`pointermove`,this.onPointerMove),(a=(i=this.domElement)?.ownerDocument)==null||a.removeEventListener(`pointerup`,this.onPointerUp),this.traverse(e=>{let t=e;t.geometry&&t.geometry.dispose(),t.material&&t.material.dispose()})}),this.domElement=t,this.camera=e,this.gizmo=new JB,this.add(this.gizmo),this.plane=new YB,this.add(this.plane);let n=(e,t)=>{let n=t;Object.defineProperty(this,e,{get:function(){return n===void 0?t:n},set:function(t){n!==t&&(n=t,this.plane[e]=t,this.gizmo[e]=t,this.dispatchEvent({type:e+`-changed`,value:t}),this.dispatchEvent(this.changeEvent))}}),this[e]=t,this.plane[e]=t,this.gizmo[e]=t};n(`camera`,this.camera),n(`object`,this.object),n(`enabled`,this.enabled),n(`axis`,this.axis),n(`mode`,this.mode),n(`translationSnap`,this.translationSnap),n(`rotationSnap`,this.rotationSnap),n(`scaleSnap`,this.scaleSnap),n(`space`,this.space),n(`size`,this.size),n(`dragging`,this.dragging),n(`showX`,this.showX),n(`showY`,this.showY),n(`showZ`,this.showZ),n(`worldPosition`,this.worldPosition),n(`worldPositionStart`,this.worldPositionStart),n(`worldQuaternion`,this.worldQuaternion),n(`worldQuaternionStart`,this.worldQuaternionStart),n(`cameraPosition`,this.cameraPosition),n(`cameraQuaternion`,this.cameraQuaternion),n(`pointStart`,this.pointStart),n(`pointEnd`,this.pointEnd),n(`rotationAxis`,this.rotationAxis),n(`rotationAngle`,this.rotationAngle),n(`eye`,this.eye),t!==void 0&&this.connect(t)}},JB=class extends Me{constructor(){super(),Q(this,`isTransformControlsGizmo`,!0),Q(this,`type`,`TransformControlsGizmo`),Q(this,`tempVector`,new P(0,0,0)),Q(this,`tempEuler`,new et),Q(this,`alignVector`,new P(0,1,0)),Q(this,`zeroVector`,new P(0,0,0)),Q(this,`lookAtMatrix`,new qe),Q(this,`tempQuaternion`,new Jt),Q(this,`tempQuaternion2`,new Jt),Q(this,`identityQuaternion`,new Jt),Q(this,`unitX`,new P(1,0,0)),Q(this,`unitY`,new P(0,1,0)),Q(this,`unitZ`,new P(0,0,1)),Q(this,`gizmo`),Q(this,`picker`),Q(this,`helper`),Q(this,`rotationAxis`,new P),Q(this,`cameraPosition`,new P),Q(this,`worldPositionStart`,new P),Q(this,`worldQuaternionStart`,new Jt),Q(this,`worldPosition`,new P),Q(this,`worldQuaternion`,new Jt),Q(this,`eye`,new P),Q(this,`camera`,null),Q(this,`enabled`,!0),Q(this,`axis`,null),Q(this,`mode`,`translate`),Q(this,`space`,`world`),Q(this,`size`,1),Q(this,`dragging`,!1),Q(this,`showX`,!0),Q(this,`showY`,!0),Q(this,`showZ`,!0),Q(this,`updateMatrixWorld`,()=>{let e=this.space;this.mode===`scale`&&(e=`local`);let t=e===`local`?this.worldQuaternion:this.identityQuaternion;this.gizmo.translate.visible=this.mode===`translate`,this.gizmo.rotate.visible=this.mode===`rotate`,this.gizmo.scale.visible=this.mode===`scale`,this.helper.translate.visible=this.mode===`translate`,this.helper.rotate.visible=this.mode===`rotate`,this.helper.scale.visible=this.mode===`scale`;let n=[];n=n.concat(this.picker[this.mode].children),n=n.concat(this.gizmo[this.mode].children),n=n.concat(this.helper[this.mode].children);for(let e=0;e.9&&(r.visible=!1)),this.axis===`Y`&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,0,Math.PI/2)),r.quaternion.copy(t).multiply(this.tempQuaternion),Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(t).dot(this.eye))>.9&&(r.visible=!1)),this.axis===`Z`&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,Math.PI/2,0)),r.quaternion.copy(t).multiply(this.tempQuaternion),Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye))>.9&&(r.visible=!1)),this.axis===`XYZE`&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,Math.PI/2,0)),this.alignVector.copy(this.rotationAxis),r.quaternion.setFromRotationMatrix(this.lookAtMatrix.lookAt(this.zeroVector,this.alignVector,this.unitY)),r.quaternion.multiply(this.tempQuaternion),r.visible=this.dragging),this.axis===`E`&&(r.visible=!1)):r.name===`START`?(r.position.copy(this.worldPositionStart),r.visible=this.dragging):r.name===`END`?(r.position.copy(this.worldPosition),r.visible=this.dragging):r.name===`DELTA`?(r.position.copy(this.worldPositionStart),r.quaternion.copy(this.worldQuaternionStart),this.tempVector.set(1e-10,1e-10,1e-10).add(this.worldPositionStart).sub(this.worldPosition).multiplyScalar(-1),this.tempVector.applyQuaternion(this.worldQuaternionStart.clone().invert()),r.scale.copy(this.tempVector),r.visible=this.dragging):(r.quaternion.copy(t),this.dragging?r.position.copy(this.worldPositionStart):r.position.copy(this.worldPosition),this.axis&&(r.visible=this.axis.search(r.name)!==-1));continue}r.quaternion.copy(t),this.mode===`translate`||this.mode===`scale`?((r.name===`X`||r.name===`XYZX`)&&Math.abs(this.alignVector.copy(this.unitX).applyQuaternion(t).dot(this.eye))>.99&&(r.scale.set(1e-10,1e-10,1e-10),r.visible=!1),(r.name===`Y`||r.name===`XYZY`)&&Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(t).dot(this.eye))>.99&&(r.scale.set(1e-10,1e-10,1e-10),r.visible=!1),(r.name===`Z`||r.name===`XYZZ`)&&Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye))>.99&&(r.scale.set(1e-10,1e-10,1e-10),r.visible=!1),r.name===`XY`&&Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye))<.2&&(r.scale.set(1e-10,1e-10,1e-10),r.visible=!1),r.name===`YZ`&&Math.abs(this.alignVector.copy(this.unitX).applyQuaternion(t).dot(this.eye))<.2&&(r.scale.set(1e-10,1e-10,1e-10),r.visible=!1),r.name===`XZ`&&Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(t).dot(this.eye))<.2&&(r.scale.set(1e-10,1e-10,1e-10),r.visible=!1),r.name.search(`X`)!==-1&&(this.alignVector.copy(this.unitX).applyQuaternion(t).dot(this.eye)<0?r.tag===`fwd`?r.visible=!1:r.scale.x*=-1:r.tag===`bwd`&&(r.visible=!1)),r.name.search(`Y`)!==-1&&(this.alignVector.copy(this.unitY).applyQuaternion(t).dot(this.eye)<0?r.tag===`fwd`?r.visible=!1:r.scale.y*=-1:r.tag===`bwd`&&(r.visible=!1)),r.name.search(`Z`)!==-1&&(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye)<0?r.tag===`fwd`?r.visible=!1:r.scale.z*=-1:r.tag===`bwd`&&(r.visible=!1))):this.mode===`rotate`&&(this.tempQuaternion2.copy(t),this.alignVector.copy(this.eye).applyQuaternion(this.tempQuaternion.copy(t).invert()),r.name.search(`E`)!==-1&&r.quaternion.setFromRotationMatrix(this.lookAtMatrix.lookAt(this.eye,this.zeroVector,this.unitY)),r.name===`X`&&(this.tempQuaternion.setFromAxisAngle(this.unitX,Math.atan2(-this.alignVector.y,this.alignVector.z)),this.tempQuaternion.multiplyQuaternions(this.tempQuaternion2,this.tempQuaternion),r.quaternion.copy(this.tempQuaternion)),r.name===`Y`&&(this.tempQuaternion.setFromAxisAngle(this.unitY,Math.atan2(this.alignVector.x,this.alignVector.z)),this.tempQuaternion.multiplyQuaternions(this.tempQuaternion2,this.tempQuaternion),r.quaternion.copy(this.tempQuaternion)),r.name===`Z`&&(this.tempQuaternion.setFromAxisAngle(this.unitZ,Math.atan2(this.alignVector.y,this.alignVector.x)),this.tempQuaternion.multiplyQuaternions(this.tempQuaternion2,this.tempQuaternion),r.quaternion.copy(this.tempQuaternion))),r.visible=r.visible&&(r.name.indexOf(`X`)===-1||this.showX),r.visible=r.visible&&(r.name.indexOf(`Y`)===-1||this.showY),r.visible=r.visible&&(r.name.indexOf(`Z`)===-1||this.showZ),r.visible=r.visible&&(r.name.indexOf(`E`)===-1||this.showX&&this.showY&&this.showZ),r.material.tempOpacity=r.material.tempOpacity||r.material.opacity,r.material.tempColor=r.material.tempColor||r.material.color.clone(),r.material.color.copy(r.material.tempColor),r.material.opacity=r.material.tempOpacity,this.enabled?this.axis&&(r.name===this.axis||this.axis.split(``).some(function(e){return r.name===e})?(r.material.opacity=1,r.material.color.lerp(new je(1,1,1),.5)):(r.material.opacity*=.25,r.material.color.lerp(new je(1,1,1),.5))):(r.material.opacity*=.5,r.material.color.lerp(new je(1,1,1),.5))}super.updateMatrixWorld()});let e=new Mt({depthTest:!1,depthWrite:!1,transparent:!0,side:tt,fog:!1,toneMapped:!1}),t=new ue({depthTest:!1,depthWrite:!1,transparent:!0,linewidth:1,fog:!1,toneMapped:!1}),n=e.clone();n.opacity=.15;let r=e.clone();r.opacity=.33;let i=e.clone();i.color.set(16711680);let a=e.clone();a.color.set(65280);let o=e.clone();o.color.set(255);let s=e.clone();s.opacity=.25;let c=s.clone();c.color.set(16776960);let l=s.clone();l.color.set(65535);let u=s.clone();u.color.set(16711935),e.clone().color.set(16776960);let d=t.clone();d.color.set(16711680);let f=t.clone();f.color.set(65280);let p=t.clone();p.color.set(255);let m=t.clone();m.color.set(65535);let h=t.clone();h.color.set(16711935);let g=t.clone();g.color.set(16776960);let _=t.clone();_.color.set(7895160);let v=g.clone();v.opacity=.25;let y=new an(0,.05,.2,12,1,!1),b=new jt(.125,.125,.125),x=new yt;x.setAttribute(`position`,new Oe([0,0,0,1,0,0],3));let S=(e,t)=>{let n=new yt,r=[];for(let n=0;n<=64*t;++n)r.push(0,Math.cos(n/32*Math.PI)*e,Math.sin(n/32*Math.PI)*e);return n.setAttribute(`position`,new Oe(r,3)),n},C=()=>{let e=new yt;return e.setAttribute(`position`,new Oe([0,0,0,1,1,1],3)),e},w={X:[[new F(y,i),[1,0,0],[0,0,-Math.PI/2],null,`fwd`],[new F(y,i),[1,0,0],[0,0,Math.PI/2],null,`bwd`],[new mt(x,d)]],Y:[[new F(y,a),[0,1,0],null,null,`fwd`],[new F(y,a),[0,1,0],[Math.PI,0,0],null,`bwd`],[new mt(x,f),null,[0,0,Math.PI/2]]],Z:[[new F(y,o),[0,0,1],[Math.PI/2,0,0],null,`fwd`],[new F(y,o),[0,0,1],[-Math.PI/2,0,0],null,`bwd`],[new mt(x,p),null,[0,-Math.PI/2,0]]],XYZ:[[new F(new he(.1,0),s.clone()),[0,0,0],[0,0,0]]],XY:[[new F(new dt(.295,.295),c.clone()),[.15,.15,0]],[new mt(x,g),[.18,.3,0],null,[.125,1,1]],[new mt(x,g),[.3,.18,0],[0,0,Math.PI/2],[.125,1,1]]],YZ:[[new F(new dt(.295,.295),l.clone()),[0,.15,.15],[0,Math.PI/2,0]],[new mt(x,m),[0,.18,.3],[0,0,Math.PI/2],[.125,1,1]],[new mt(x,m),[0,.3,.18],[0,-Math.PI/2,0],[.125,1,1]]],XZ:[[new F(new dt(.295,.295),u.clone()),[.15,0,.15],[-Math.PI/2,0,0]],[new mt(x,h),[.18,0,.3],null,[.125,1,1]],[new mt(x,h),[.3,0,.18],[0,-Math.PI/2,0],[.125,1,1]]]},T={X:[[new F(new an(.2,0,1,4,1,!1),n),[.6,0,0],[0,0,-Math.PI/2]]],Y:[[new F(new an(.2,0,1,4,1,!1),n),[0,.6,0]]],Z:[[new F(new an(.2,0,1,4,1,!1),n),[0,0,.6],[Math.PI/2,0,0]]],XYZ:[[new F(new he(.2,0),n)]],XY:[[new F(new dt(.4,.4),n),[.2,.2,0]]],YZ:[[new F(new dt(.4,.4),n),[0,.2,.2],[0,Math.PI/2,0]]],XZ:[[new F(new dt(.4,.4),n),[.2,0,.2],[-Math.PI/2,0,0]]]},E={START:[[new F(new he(.01,2),r),null,null,null,`helper`]],END:[[new F(new he(.01,2),r),null,null,null,`helper`]],DELTA:[[new mt(C(),r),null,null,null,`helper`]],X:[[new mt(x,r.clone()),[-1e3,0,0],null,[1e6,1,1],`helper`]],Y:[[new mt(x,r.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],`helper`]],Z:[[new mt(x,r.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],`helper`]]},D={X:[[new mt(S(1,.5),d)],[new F(new he(.04,0),i),[0,0,.99],null,[1,3,1]]],Y:[[new mt(S(1,.5),f),null,[0,0,-Math.PI/2]],[new F(new he(.04,0),a),[0,0,.99],null,[3,1,1]]],Z:[[new mt(S(1,.5),p),null,[0,Math.PI/2,0]],[new F(new he(.04,0),o),[.99,0,0],null,[1,3,1]]],E:[[new mt(S(1.25,1),v),null,[0,Math.PI/2,0]],[new F(new an(.03,0,.15,4,1,!1),v),[1.17,0,0],[0,0,-Math.PI/2],[1,1,.001]],[new F(new an(.03,0,.15,4,1,!1),v),[-1.17,0,0],[0,0,Math.PI/2],[1,1,.001]],[new F(new an(.03,0,.15,4,1,!1),v),[0,-1.17,0],[Math.PI,0,0],[1,1,.001]],[new F(new an(.03,0,.15,4,1,!1),v),[0,1.17,0],[0,0,0],[1,1,.001]]],XYZE:[[new mt(S(1,1),_),null,[0,Math.PI/2,0]]]},O={AXIS:[[new mt(x,r.clone()),[-1e3,0,0],null,[1e6,1,1],`helper`]]},ee={X:[[new F(new at(1,.1,4,24),n),[0,0,0],[0,-Math.PI/2,-Math.PI/2]]],Y:[[new F(new at(1,.1,4,24),n),[0,0,0],[Math.PI/2,0,0]]],Z:[[new F(new at(1,.1,4,24),n),[0,0,0],[0,0,-Math.PI/2]]],E:[[new F(new at(1.25,.1,2,24),n)]],XYZE:[[new F(new Gt(.7,10,8),n)]]},te={X:[[new F(b,i),[.8,0,0],[0,0,-Math.PI/2]],[new mt(x,d),null,null,[.8,1,1]]],Y:[[new F(b,a),[0,.8,0]],[new mt(x,f),null,[0,0,Math.PI/2],[.8,1,1]]],Z:[[new F(b,o),[0,0,.8],[Math.PI/2,0,0]],[new mt(x,p),null,[0,-Math.PI/2,0],[.8,1,1]]],XY:[[new F(b,c),[.85,.85,0],null,[2,2,.2]],[new mt(x,g),[.855,.98,0],null,[.125,1,1]],[new mt(x,g),[.98,.855,0],[0,0,Math.PI/2],[.125,1,1]]],YZ:[[new F(b,l),[0,.85,.85],null,[.2,2,2]],[new mt(x,m),[0,.855,.98],[0,0,Math.PI/2],[.125,1,1]],[new mt(x,m),[0,.98,.855],[0,-Math.PI/2,0],[.125,1,1]]],XZ:[[new F(b,u),[.85,0,.85],null,[2,.2,2]],[new mt(x,h),[.855,0,.98],null,[.125,1,1]],[new mt(x,h),[.98,0,.855],[0,-Math.PI/2,0],[.125,1,1]]],XYZX:[[new F(new jt(.125,.125,.125),s.clone()),[1.1,0,0]]],XYZY:[[new F(new jt(.125,.125,.125),s.clone()),[0,1.1,0]]],XYZZ:[[new F(new jt(.125,.125,.125),s.clone()),[0,0,1.1]]]},ne={X:[[new F(new an(.2,0,.8,4,1,!1),n),[.5,0,0],[0,0,-Math.PI/2]]],Y:[[new F(new an(.2,0,.8,4,1,!1),n),[0,.5,0]]],Z:[[new F(new an(.2,0,.8,4,1,!1),n),[0,0,.5],[Math.PI/2,0,0]]],XY:[[new F(b,n),[.85,.85,0],null,[3,3,.2]]],YZ:[[new F(b,n),[0,.85,.85],null,[.2,3,3]]],XZ:[[new F(b,n),[.85,0,.85],null,[3,.2,3]]],XYZX:[[new F(new jt(.2,.2,.2),n),[1.1,0,0]]],XYZY:[[new F(new jt(.2,.2,.2),n),[0,1.1,0]]],XYZZ:[[new F(new jt(.2,.2,.2),n),[0,0,1.1]]]},k={X:[[new mt(x,r.clone()),[-1e3,0,0],null,[1e6,1,1],`helper`]],Y:[[new mt(x,r.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],`helper`]],Z:[[new mt(x,r.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],`helper`]]},A=e=>{let t=new Me;for(let n in e)for(let r=e[n].length;r--;){let i=e[n][r][0].clone(),a=e[n][r][1],o=e[n][r][2],s=e[n][r][3],c=e[n][r][4];i.name=n,i.tag=c,a&&i.position.set(a[0],a[1],a[2]),o&&i.rotation.set(o[0],o[1],o[2]),s&&i.scale.set(s[0],s[1],s[2]),i.updateMatrix();let l=i.geometry.clone();l.applyMatrix4(i.matrix),i.geometry=l,i.renderOrder=1/0,i.position.set(0,0,0),i.rotation.set(0,0,0),i.scale.set(1,1,1),t.add(i)}return t};this.gizmo={},this.picker={},this.helper={},this.add(this.gizmo.translate=A(w)),this.add(this.gizmo.rotate=A(D)),this.add(this.gizmo.scale=A(te)),this.add(this.picker.translate=A(T)),this.add(this.picker.rotate=A(ee)),this.add(this.picker.scale=A(ne)),this.add(this.helper.translate=A(E)),this.add(this.helper.rotate=A(O)),this.add(this.helper.scale=A(k)),this.picker.translate.visible=!1,this.picker.rotate.visible=!1,this.picker.scale.visible=!1}},YB=class extends F{constructor(){super(new dt(1e5,1e5,2,2),new Mt({visible:!1,wireframe:!0,side:tt,transparent:!0,opacity:.1,toneMapped:!1})),Q(this,`isTransformControlsPlane`,!0),Q(this,`type`,`TransformControlsPlane`),Q(this,`unitX`,new P(1,0,0)),Q(this,`unitY`,new P(0,1,0)),Q(this,`unitZ`,new P(0,0,1)),Q(this,`tempVector`,new P),Q(this,`dirVector`,new P),Q(this,`alignVector`,new P),Q(this,`tempMatrix`,new qe),Q(this,`identityQuaternion`,new Jt),Q(this,`cameraQuaternion`,new Jt),Q(this,`worldPosition`,new P),Q(this,`worldQuaternion`,new Jt),Q(this,`eye`,new P),Q(this,`axis`,null),Q(this,`mode`,`translate`),Q(this,`space`,`world`),Q(this,`updateMatrixWorld`,()=>{let e=this.space;switch(this.position.copy(this.worldPosition),this.mode===`scale`&&(e=`local`),this.unitX.set(1,0,0).applyQuaternion(e===`local`?this.worldQuaternion:this.identityQuaternion),this.unitY.set(0,1,0).applyQuaternion(e===`local`?this.worldQuaternion:this.identityQuaternion),this.unitZ.set(0,0,1).applyQuaternion(e===`local`?this.worldQuaternion:this.identityQuaternion),this.alignVector.copy(this.unitY),this.mode){case`translate`:case`scale`:switch(this.axis){case`X`:this.alignVector.copy(this.eye).cross(this.unitX),this.dirVector.copy(this.unitX).cross(this.alignVector);break;case`Y`:this.alignVector.copy(this.eye).cross(this.unitY),this.dirVector.copy(this.unitY).cross(this.alignVector);break;case`Z`:this.alignVector.copy(this.eye).cross(this.unitZ),this.dirVector.copy(this.unitZ).cross(this.alignVector);break;case`XY`:this.dirVector.copy(this.unitZ);break;case`YZ`:this.dirVector.copy(this.unitX);break;case`XZ`:this.alignVector.copy(this.unitZ),this.dirVector.copy(this.unitY);break;case`XYZ`:case`E`:this.dirVector.set(0,0,0);break}break;case`rotate`:default:this.dirVector.set(0,0,0)}this.dirVector.length()===0?this.quaternion.copy(this.cameraQuaternion):(this.tempMatrix.lookAt(this.tempVector.set(0,0,0),this.dirVector,this.alignVector),this.quaternion.setFromRotationMatrix(this.tempMatrix)),super.updateMatrixWorld()})}},XB=Object.defineProperty,ZB=(e,t,n)=>t in e?XB(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,QB=(e,t,n)=>(ZB(e,typeof t==`symbol`?t:t+``,n),n);const $B=new et(0,0,0,`YXZ`),eV=new P,tV={type:`change`},nV={type:`lock`},rV={type:`unlock`},iV=Math.PI/2;var aV=class extends ft{constructor(e,t){super(),QB(this,`camera`),QB(this,`domElement`),QB(this,`isLocked`),QB(this,`minPolarAngle`),QB(this,`maxPolarAngle`),QB(this,`pointerSpeed`),QB(this,`onMouseMove`,e=>{if(!this.domElement||this.isLocked===!1)return;let t=e.movementX||e.mozMovementX||e.webkitMovementX||0,n=e.movementY||e.mozMovementY||e.webkitMovementY||0;$B.setFromQuaternion(this.camera.quaternion),$B.y-=t*.002*this.pointerSpeed,$B.x-=n*.002*this.pointerSpeed,$B.x=Math.max(iV-this.maxPolarAngle,Math.min(iV-this.minPolarAngle,$B.x)),this.camera.quaternion.setFromEuler($B),this.dispatchEvent(tV)}),QB(this,`onPointerlockChange`,()=>{this.domElement&&(this.domElement.ownerDocument.pointerLockElement===this.domElement?(this.dispatchEvent(nV),this.isLocked=!0):(this.dispatchEvent(rV),this.isLocked=!1))}),QB(this,`onPointerlockError`,()=>{console.error(`THREE.PointerLockControls: Unable to use Pointer Lock API`)}),QB(this,`connect`,e=>{this.domElement=e||this.domElement,this.domElement&&(this.domElement.ownerDocument.addEventListener(`mousemove`,this.onMouseMove),this.domElement.ownerDocument.addEventListener(`pointerlockchange`,this.onPointerlockChange),this.domElement.ownerDocument.addEventListener(`pointerlockerror`,this.onPointerlockError))}),QB(this,`disconnect`,()=>{this.domElement&&(this.domElement.ownerDocument.removeEventListener(`mousemove`,this.onMouseMove),this.domElement.ownerDocument.removeEventListener(`pointerlockchange`,this.onPointerlockChange),this.domElement.ownerDocument.removeEventListener(`pointerlockerror`,this.onPointerlockError))}),QB(this,`dispose`,()=>{this.disconnect()}),QB(this,`getObject`,()=>this.camera),QB(this,`direction`,new P(0,0,-1)),QB(this,`getDirection`,e=>e.copy(this.direction).applyQuaternion(this.camera.quaternion)),QB(this,`moveForward`,e=>{eV.setFromMatrixColumn(this.camera.matrix,0),eV.crossVectors(this.camera.up,eV),this.camera.position.addScaledVector(eV,e)}),QB(this,`moveRight`,e=>{eV.setFromMatrixColumn(this.camera.matrix,0),this.camera.position.addScaledVector(eV,e)}),QB(this,`lock`,()=>{this.domElement&&this.domElement.requestPointerLock()}),QB(this,`unlock`,()=>{this.domElement&&this.domElement.ownerDocument.exitPointerLock()}),this.camera=e,this.domElement=t,this.isLocked=!1,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.pointerSpeed=1,t&&this.connect(t)}},oV=Object.defineProperty,sV=(e,t,n)=>t in e?oV(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,cV=(e,t,n)=>(sV(e,typeof t==`symbol`?t:t+``,n),n);const lV=new it,uV=new Kt,dV=Math.cos(70*(Math.PI/180)),fV=(e,t)=>(e%t+t)%t;var pV=class extends ft{constructor(e,t){super(),cV(this,`object`),cV(this,`domElement`),cV(this,`enabled`,!0),cV(this,`target`,new P),cV(this,`minDistance`,0),cV(this,`maxDistance`,1/0),cV(this,`minZoom`,0),cV(this,`maxZoom`,1/0),cV(this,`minPolarAngle`,0),cV(this,`maxPolarAngle`,Math.PI),cV(this,`minAzimuthAngle`,-1/0),cV(this,`maxAzimuthAngle`,1/0),cV(this,`enableDamping`,!1),cV(this,`dampingFactor`,.05),cV(this,`enableZoom`,!0),cV(this,`zoomSpeed`,1),cV(this,`enableRotate`,!0),cV(this,`rotateSpeed`,1),cV(this,`enablePan`,!0),cV(this,`panSpeed`,1),cV(this,`screenSpacePanning`,!0),cV(this,`keyPanSpeed`,7),cV(this,`zoomToCursor`,!1),cV(this,`autoRotate`,!1),cV(this,`autoRotateSpeed`,2),cV(this,`reverseOrbit`,!1),cV(this,`reverseHorizontalOrbit`,!1),cV(this,`reverseVerticalOrbit`,!1),cV(this,`keys`,{LEFT:`ArrowLeft`,UP:`ArrowUp`,RIGHT:`ArrowRight`,BOTTOM:`ArrowDown`}),cV(this,`mouseButtons`,{LEFT:Wt.ROTATE,MIDDLE:Wt.DOLLY,RIGHT:Wt.PAN}),cV(this,`touches`,{ONE:qt.ROTATE,TWO:qt.DOLLY_PAN}),cV(this,`target0`),cV(this,`position0`),cV(this,`zoom0`),cV(this,`_domElementKeyEvents`,null),cV(this,`getPolarAngle`),cV(this,`getAzimuthalAngle`),cV(this,`setPolarAngle`),cV(this,`setAzimuthalAngle`),cV(this,`getDistance`),cV(this,`getZoomScale`),cV(this,`listenToKeyEvents`),cV(this,`stopListenToKeyEvents`),cV(this,`saveState`),cV(this,`reset`),cV(this,`update`),cV(this,`connect`),cV(this,`dispose`),cV(this,`dollyIn`),cV(this,`dollyOut`),cV(this,`getScale`),cV(this,`setScale`),this.object=e,this.domElement=t,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=()=>l.phi,this.getAzimuthalAngle=()=>l.theta,this.setPolarAngle=e=>{let t=fV(e,2*Math.PI),r=l.phi;r<0&&(r+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-r);2*Math.PI-i{let t=fV(e,2*Math.PI),r=l.theta;r<0&&(r+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-r);2*Math.PI-in.object.position.distanceTo(n.target),this.listenToKeyEvents=e=>{e.addEventListener(`keydown`,Ae),this._domElementKeyEvents=e},this.stopListenToKeyEvents=()=>{this._domElementKeyEvents.removeEventListener(`keydown`,Ae),this._domElementKeyEvents=null},this.saveState=()=>{n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=()=>{n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent(r),n.update(),s=o.NONE},this.update=(()=>{let t=new P,i=new P(0,1,0),a=new Jt().setFromUnitVectors(e.up,i),p=a.clone().invert(),m=new P,h=new Jt,g=2*Math.PI;return function(){let _=n.object.position;a.setFromUnitVectors(e.up,i),p.copy(a).invert(),t.copy(_).sub(n.target),t.applyQuaternion(a),l.setFromVector3(t),n.autoRotate&&s===o.NONE&&ee(D()),n.enableDamping?(l.theta+=u.theta*n.dampingFactor,l.phi+=u.phi*n.dampingFactor):(l.theta+=u.theta,l.phi+=u.phi);let v=n.minAzimuthAngle,y=n.maxAzimuthAngle;isFinite(v)&&isFinite(y)&&(v<-Math.PI?v+=g:v>Math.PI&&(v-=g),y<-Math.PI?y+=g:y>Math.PI&&(y-=g),v<=y?l.theta=Math.max(v,Math.min(y,l.theta)):l.theta=l.theta>(v+y)/2?Math.max(v,l.theta):Math.min(y,l.theta)),l.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,l.phi)),l.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(f,n.dampingFactor):n.target.add(f),n.zoomToCursor&&w||n.object.isOrthographicCamera?l.radius=oe(l.radius):l.radius=oe(l.radius*d),t.setFromSpherical(l),t.applyQuaternion(p),_.copy(n.target).add(t),n.object.matrixAutoUpdate||n.object.updateMatrix(),n.object.lookAt(n.target),n.enableDamping===!0?(u.theta*=1-n.dampingFactor,u.phi*=1-n.dampingFactor,f.multiplyScalar(1-n.dampingFactor)):(u.set(0,0,0),f.set(0,0,0));let b=!1;if(n.zoomToCursor&&w){let r=null;if(n.object instanceof lt&&n.object.isPerspectiveCamera){let e=t.length();r=oe(e*d);let i=e-r;n.object.position.addScaledVector(S,i),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){let e=new P(C.x,C.y,0);e.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/d)),n.object.updateProjectionMatrix(),b=!0;let i=new P(C.x,C.y,0);i.unproject(n.object),n.object.position.sub(i).add(e),n.object.updateMatrixWorld(),r=t.length()}else console.warn(`WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled.`),n.zoomToCursor=!1;r!==null&&(n.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(r).add(n.object.position):(lV.origin.copy(n.object.position),lV.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(lV.direction))c||8*(1-h.dot(n.object.quaternion))>c?(n.dispatchEvent(r),m.copy(n.object.position),h.copy(n.object.quaternion),b=!1,!0):!1}})(),this.connect=e=>{n.domElement=e,n.domElement.style.touchAction=`none`,n.domElement.addEventListener(`contextmenu`,Ne),n.domElement.addEventListener(`pointerdown`,we),n.domElement.addEventListener(`pointercancel`,Ee),n.domElement.addEventListener(`wheel`,ke)},this.dispose=()=>{var e,t,r,i,a,o;n.domElement&&(n.domElement.style.touchAction=`auto`),(e=n.domElement)==null||e.removeEventListener(`contextmenu`,Ne),(t=n.domElement)==null||t.removeEventListener(`pointerdown`,we),(r=n.domElement)==null||r.removeEventListener(`pointercancel`,Ee),(i=n.domElement)==null||i.removeEventListener(`wheel`,ke),(a=n.domElement)==null||a.ownerDocument.removeEventListener(`pointermove`,Te),(o=n.domElement)==null||o.ownerDocument.removeEventListener(`pointerup`,Ee),n._domElementKeyEvents!==null&&n._domElementKeyEvents.removeEventListener(`keydown`,Ae)};let n=this,r={type:`change`},i={type:`start`},a={type:`end`},o={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},s=o.NONE,c=1e-6,l=new Ze,u=new Ze,d=1,f=new P,p=new Et,m=new Et,h=new Et,g=new Et,_=new Et,v=new Et,y=new Et,b=new Et,x=new Et,S=new P,C=new Et,w=!1,T=[],E={};function D(){return 2*Math.PI/60/60*n.autoRotateSpeed}function O(){return .95**n.zoomSpeed}function ee(e){n.reverseOrbit||n.reverseHorizontalOrbit?u.theta+=e:u.theta-=e}function te(e){n.reverseOrbit||n.reverseVerticalOrbit?u.phi+=e:u.phi-=e}let ne=(()=>{let e=new P;return function(t,n){e.setFromMatrixColumn(n,0),e.multiplyScalar(-t),f.add(e)}})(),k=(()=>{let e=new P;return function(t,r){n.screenSpacePanning===!0?e.setFromMatrixColumn(r,1):(e.setFromMatrixColumn(r,0),e.crossVectors(n.object.up,e)),e.multiplyScalar(t),f.add(e)}})(),A=(()=>{let e=new P;return function(t,r){let i=n.domElement;if(i&&n.object instanceof lt&&n.object.isPerspectiveCamera){let a=n.object.position;e.copy(a).sub(n.target);let o=e.length();o*=Math.tan(n.object.fov/2*Math.PI/180),ne(2*t*o/i.clientHeight,n.object.matrix),k(2*r*o/i.clientHeight,n.object.matrix)}else i&&n.object instanceof le&&n.object.isOrthographicCamera?(ne(t*(n.object.right-n.object.left)/n.object.zoom/i.clientWidth,n.object.matrix),k(r*(n.object.top-n.object.bottom)/n.object.zoom/i.clientHeight,n.object.matrix)):(console.warn(`WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.`),n.enablePan=!1)}})();function re(e){n.object instanceof lt&&n.object.isPerspectiveCamera||n.object instanceof le&&n.object.isOrthographicCamera?d=e:(console.warn(`WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.`),n.enableZoom=!1)}function j(e){re(d/e)}function ie(e){re(d*e)}function ae(e){if(!n.zoomToCursor||!n.domElement)return;w=!0;let t=n.domElement.getBoundingClientRect(),r=e.clientX-t.left,i=e.clientY-t.top,a=t.width,o=t.height;C.x=r/a*2-1,C.y=-(i/o)*2+1,S.set(C.x,C.y,1).unproject(n.object).sub(n.object.position).normalize()}function oe(e){return Math.max(n.minDistance,Math.min(n.maxDistance,e))}function se(e){p.set(e.clientX,e.clientY)}function M(e){ae(e),y.set(e.clientX,e.clientY)}function ce(e){g.set(e.clientX,e.clientY)}function N(e){m.set(e.clientX,e.clientY),h.subVectors(m,p).multiplyScalar(n.rotateSpeed);let t=n.domElement;t&&(ee(2*Math.PI*h.x/t.clientHeight),te(2*Math.PI*h.y/t.clientHeight)),p.copy(m),n.update()}function ue(e){b.set(e.clientX,e.clientY),x.subVectors(b,y),x.y>0?j(O()):x.y<0&&ie(O()),y.copy(b),n.update()}function de(e){_.set(e.clientX,e.clientY),v.subVectors(_,g).multiplyScalar(n.panSpeed),A(v.x,v.y),g.copy(_),n.update()}function fe(e){ae(e),e.deltaY<0?ie(O()):e.deltaY>0&&j(O()),n.update()}function pe(e){let t=!1;switch(e.code){case n.keys.UP:A(0,n.keyPanSpeed),t=!0;break;case n.keys.BOTTOM:A(0,-n.keyPanSpeed),t=!0;break;case n.keys.LEFT:A(n.keyPanSpeed,0),t=!0;break;case n.keys.RIGHT:A(-n.keyPanSpeed,0),t=!0;break}t&&(e.preventDefault(),n.update())}function me(){if(T.length==1)p.set(T[0].pageX,T[0].pageY);else{let e=.5*(T[0].pageX+T[1].pageX),t=.5*(T[0].pageY+T[1].pageY);p.set(e,t)}}function he(){if(T.length==1)g.set(T[0].pageX,T[0].pageY);else{let e=.5*(T[0].pageX+T[1].pageX),t=.5*(T[0].pageY+T[1].pageY);g.set(e,t)}}function ge(){let e=T[0].pageX-T[1].pageX,t=T[0].pageY-T[1].pageY,n=Math.sqrt(e*e+t*t);y.set(0,n)}function _e(){n.enableZoom&&ge(),n.enablePan&&he()}function ve(){n.enableZoom&&ge(),n.enableRotate&&me()}function ye(e){if(T.length==1)m.set(e.pageX,e.pageY);else{let t=Le(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);m.set(n,r)}h.subVectors(m,p).multiplyScalar(n.rotateSpeed);let t=n.domElement;t&&(ee(2*Math.PI*h.x/t.clientHeight),te(2*Math.PI*h.y/t.clientHeight)),p.copy(m)}function be(e){if(T.length==1)_.set(e.pageX,e.pageY);else{let t=Le(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);_.set(n,r)}v.subVectors(_,g).multiplyScalar(n.panSpeed),A(v.x,v.y),g.copy(_)}function xe(e){let t=Le(e),r=e.pageX-t.x,i=e.pageY-t.y,a=Math.sqrt(r*r+i*i);b.set(0,a),x.set(0,(b.y/y.y)**+n.zoomSpeed),j(x.y),y.copy(b)}function Se(e){n.enableZoom&&xe(e),n.enablePan&&be(e)}function Ce(e){n.enableZoom&&xe(e),n.enableRotate&&ye(e)}function we(e){var t,r;n.enabled!==!1&&(T.length===0&&((t=n.domElement)==null||t.ownerDocument.addEventListener(`pointermove`,Te),(r=n.domElement)==null||r.ownerDocument.addEventListener(`pointerup`,Ee)),Pe(e),e.pointerType===`touch`?je(e):De(e))}function Te(e){n.enabled!==!1&&(e.pointerType===`touch`?Me(e):Oe(e))}function Ee(e){var t,r,i;Fe(e),T.length===0&&((t=n.domElement)==null||t.releasePointerCapture(e.pointerId),(r=n.domElement)==null||r.ownerDocument.removeEventListener(`pointermove`,Te),(i=n.domElement)==null||i.ownerDocument.removeEventListener(`pointerup`,Ee)),n.dispatchEvent(a),s=o.NONE}function De(e){let t;switch(e.button){case 0:t=n.mouseButtons.LEFT;break;case 1:t=n.mouseButtons.MIDDLE;break;case 2:t=n.mouseButtons.RIGHT;break;default:t=-1}switch(t){case Wt.DOLLY:if(n.enableZoom===!1)return;M(e),s=o.DOLLY;break;case Wt.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(n.enablePan===!1)return;ce(e),s=o.PAN}else{if(n.enableRotate===!1)return;se(e),s=o.ROTATE}break;case Wt.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(n.enableRotate===!1)return;se(e),s=o.ROTATE}else{if(n.enablePan===!1)return;ce(e),s=o.PAN}break;default:s=o.NONE}s!==o.NONE&&n.dispatchEvent(i)}function Oe(e){if(n.enabled!==!1)switch(s){case o.ROTATE:if(n.enableRotate===!1)return;N(e);break;case o.DOLLY:if(n.enableZoom===!1)return;ue(e);break;case o.PAN:if(n.enablePan===!1)return;de(e);break}}function ke(e){n.enabled===!1||n.enableZoom===!1||s!==o.NONE&&s!==o.ROTATE||(e.preventDefault(),n.dispatchEvent(i),fe(e),n.dispatchEvent(a))}function Ae(e){n.enabled===!1||n.enablePan===!1||pe(e)}function je(e){switch(Ie(e),T.length){case 1:switch(n.touches.ONE){case qt.ROTATE:if(n.enableRotate===!1)return;me(),s=o.TOUCH_ROTATE;break;case qt.PAN:if(n.enablePan===!1)return;he(),s=o.TOUCH_PAN;break;default:s=o.NONE}break;case 2:switch(n.touches.TWO){case qt.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;_e(),s=o.TOUCH_DOLLY_PAN;break;case qt.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ve(),s=o.TOUCH_DOLLY_ROTATE;break;default:s=o.NONE}break;default:s=o.NONE}s!==o.NONE&&n.dispatchEvent(i)}function Me(e){switch(Ie(e),s){case o.TOUCH_ROTATE:if(n.enableRotate===!1)return;ye(e),n.update();break;case o.TOUCH_PAN:if(n.enablePan===!1)return;be(e),n.update();break;case o.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;Se(e),n.update();break;case o.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;Ce(e),n.update();break;default:s=o.NONE}}function Ne(e){n.enabled!==!1&&e.preventDefault()}function Pe(e){T.push(e)}function Fe(e){delete E[e.pointerId];for(let t=0;t{ie(e),n.update()},this.dollyOut=(e=O())=>{j(e),n.update()},this.getScale=()=>d,this.setScale=e=>{re(e),n.update()},this.getZoomScale=()=>O(),t!==void 0&&this.connect(t),this.update()}},mV=class extends pV{constructor(e,t){super(e,t),this.screenSpacePanning=!1,this.mouseButtons.LEFT=Wt.PAN,this.mouseButtons.RIGHT=Wt.ROTATE,this.touches.ONE=qt.PAN,this.touches.TWO=qt.DOLLY_ROTATE}};const hV=new Jt,gV={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},_V={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},vV={9728:De,9729:ht,9984:ke,9985:Bt,9986:Pe,9987:Yt},yV={33071:me,33648:be,10497:fe},bV={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},xV={POSITION:`position`,NORMAL:`normal`,TANGENT:`tangent`,...ez>=152?{TEXCOORD_0:`uv`,TEXCOORD_1:`uv1`,TEXCOORD_2:`uv2`,TEXCOORD_3:`uv3`}:{TEXCOORD_0:`uv`,TEXCOORD_1:`uv2`},COLOR_0:`color`,WEIGHTS_0:`skinWeight`,JOINTS_0:`skinIndex`},SV={scale:`scale`,translation:`position`,rotation:`quaternion`,weights:`morphTargetInfluences`},CV={CUBICSPLINE:void 0,LINEAR:rt,STEP:Je},wV={OPAQUE:`OPAQUE`,MASK:`MASK`,BLEND:`BLEND`},TV=new qe,EV=new P;function DV(e,t,n,r,i,a){let o=2*Math.PI*i/4,s=Math.max(a-2*i,0),c=Math.PI/4;EV.copy(t),EV[r]=0,EV.normalize();let l=.5*o/(o+s),u=1-EV.angleTo(e)/c;return Math.sign(EV[n])===1?u*l:s/(o+s)+l+l*(1-u)}var OV=class extends jt{constructor(e=1,t=1,n=1,r=2,i=.1){if(r=r*2+1,i=Math.min(e/2,t/2,n/2,i),super(1,1,1,r,r,r),r===1)return;let a=this.toNonIndexed();this.index=null,this.attributes.position=a.attributes.position,this.attributes.normal=a.attributes.normal,this.attributes.uv=a.attributes.uv;let o=new P,s=new P,c=new P(e,t,n).divideScalar(2).subScalar(i),l=this.attributes.position.array,u=this.attributes.normal.array,d=this.attributes.uv.array,f=l.length/6,p=new P,m=.5/r;for(let r=0,a=0;rt in e?PV(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,IV=(e,t,n)=>(FV(e,typeof t==`symbol`?t:t+``,n),n),LV=class extends en{constructor(e){super(e)}load(e,t,n,r){let i=new Te(this.manager);i.setPath(this.path),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(e,e=>{if(typeof e!=`string`)throw Error(`unsupported data type`);let n=JSON.parse(e),r=this.parse(n);t&&t(r)},n,r)}loadAsync(e,t){return super.loadAsync(e,t)}parse(e){return new RV(e)}},RV=class{constructor(e){IV(this,`data`),this.data=e}generateShapes(e,t=100,n){let r=[],i={letterSpacing:0,lineHeight:1,...n},a=zV(e,t,this.data,i);for(let e=0,t=a.length;e(a=c.indexOf(n))&&o=e.byteLength||!(l=r(e)))&&t(1,`no header found`),(u=l.match(n))||t(3,`bad initial token`),c.valid|=1,c.programtype=u[1],c.string+=l+` +`;l=r(e),l!==!1;){if(c.string+=l+` +`,l.charAt(0)===`#`){c.comments+=l+` +`;continue}if((u=l.match(i))&&(c.gamma=parseFloat(u[1])),(u=l.match(a))&&(c.exposure=parseFloat(u[1])),(u=l.match(o))&&(c.valid|=2,c.format=u[1]),(u=l.match(s))&&(c.valid|=4,c.height=parseInt(u[1],10),c.width=parseInt(u[2],10)),c.valid&2&&c.valid&4)break}return c.valid&2||t(3,`missing format specifier`),c.valid&4||t(3,`missing image size specifier`),c},a=function(e,n,r){let i=n;if(i<8||i>32767||e[0]!==2||e[1]!==2||e[2]&128)return new Uint8Array(e);i!==(e[2]<<8|e[3])&&t(3,`wrong scanline width`);let a=new Uint8Array(4*n*r);a.length||t(4,`unable to allocate buffer space`);let o=0,s=0,c=4*i,l=new Uint8Array(4),u=new Uint8Array(c),d=r;for(;d>0&&se.byteLength&&t(1),l[0]=e[s++],l[1]=e[s++],l[2]=e[s++],l[3]=e[s++],(l[0]!=2||l[1]!=2||(l[2]<<8|l[3])!=i)&&t(3,`bad rgbe scanline format`);let n=0,r;for(;n128;if(i&&(r-=128),(r===0||n+r>c)&&t(3,`bad scanline data`),i){let t=e[s++];for(let e=0;e0?ie.copy(ee[ee.length-1]):ie.identity())}function r(e){let t=new Qe,n=new Et,r=new Et,i=new Et,o=!0,s=!1,c=e.getAttribute(`d`);if(c===``||c===`none`)return null;let l=c.match(/[a-df-z][^a-df-z]*/gi);for(let e=0,c=l.length;e0&&(n.copy(i),t.currentPath.currentPoint.copy(n),o=!0);break;default:console.warn(c)}s=!1}return t}function i(e){if(!(!e.sheet||!e.sheet.cssRules||!e.sheet.cssRules.length))for(let t=0;te.trim());for(let e=0;ee!==``));O[r[e]]=Object.assign(O[r[e]]||{},t)}}}function a(e,t,n,r,i,a,s,c){if(t==0||n==0){e.lineTo(c.x,c.y);return}r=r*Math.PI/180,t=Math.abs(t),n=Math.abs(n);let l=(s.x-c.x)/2,u=(s.y-c.y)/2,d=Math.cos(r)*l+Math.sin(r)*u,f=-Math.sin(r)*l+Math.cos(r)*u,p=t*t,m=n*n,h=d*d,g=f*f,_=h/p+g/m;if(_>1){let e=Math.sqrt(_);t=e*t,n=e*n,p=t*t,m=n*n}let v=p*g+m*h,y=(p*m-v)/v,b=Math.sqrt(Math.max(0,y));i===a&&(b=-b);let x=b*t*f/n,S=-b*n*d/t,C=Math.cos(r)*x-Math.sin(r)*S+(s.x+c.x)/2,w=Math.sin(r)*x+Math.cos(r)*S+(s.y+c.y)/2,T=o(1,0,(d-x)/t,(f-S)/n),E=o((d-x)/t,(f-S)/n,(-d-x)/t,(-f-S)/n)%(Math.PI*2);e.currentPath.absellipse(C,w,t,n,T,T+E,a===0,r)}function o(e,t,n,r){let i=e*n+t*r,a=Math.sqrt(e*e+t*t)*Math.sqrt(n*n+r*r),o=Math.acos(Math.max(-1,Math.min(1,i/a)));return e*r-t*n<0&&(o=-o),o}function s(e){let t=v(e.getAttribute(`x`)||0),n=v(e.getAttribute(`y`)||0),r=v(e.getAttribute(`rx`)||e.getAttribute(`ry`)||0),i=v(e.getAttribute(`ry`)||e.getAttribute(`rx`)||0),a=v(e.getAttribute(`width`)),o=v(e.getAttribute(`height`)),s=.448084975506,c=new Qe;return c.moveTo(t+r,n),c.lineTo(t+a-r,n),(r!==0||i!==0)&&c.bezierCurveTo(t+a-r*s,n,t+a,n+i*s,t+a,n+i),c.lineTo(t+a,n+o-i),(r!==0||i!==0)&&c.bezierCurveTo(t+a,n+o-i*s,t+a-r*s,n+o,t+a-r,n+o),c.lineTo(t+r,n+o),(r!==0||i!==0)&&c.bezierCurveTo(t+r*s,n+o,t,n+o-i*s,t,n+o-i),c.lineTo(t,n+i),(r!==0||i!==0)&&c.bezierCurveTo(t,n+i*s,t+r*s,n,t+r,n),c}function c(e){function t(e,t,n){let a=v(t),o=v(n);i===0?r.moveTo(a,o):r.lineTo(a,o),i++}let n=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,r=new Qe,i=0;return e.getAttribute(`points`).replace(n,t),r.currentPath.autoClose=!0,r}function l(e){function t(e,t,n){let a=v(t),o=v(n);i===0?r.moveTo(a,o):r.lineTo(a,o),i++}let n=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,r=new Qe,i=0;return e.getAttribute(`points`).replace(n,t),r.currentPath.autoClose=!1,r}function u(e){let t=v(e.getAttribute(`cx`)||0),n=v(e.getAttribute(`cy`)||0),r=v(e.getAttribute(`r`)||0),i=new pe;i.absarc(t,n,r,0,Math.PI*2);let a=new Qe;return a.subPaths.push(i),a}function d(e){let t=v(e.getAttribute(`cx`)||0),n=v(e.getAttribute(`cy`)||0),r=v(e.getAttribute(`rx`)||0),i=v(e.getAttribute(`ry`)||0),a=new pe;a.absellipse(t,n,r,i,0,Math.PI*2);let o=new Qe;return o.subPaths.push(a),o}function f(e){let t=v(e.getAttribute(`x1`)||0),n=v(e.getAttribute(`y1`)||0),r=v(e.getAttribute(`x2`)||0),i=v(e.getAttribute(`y2`)||0),a=new Qe;return a.moveTo(t,n),a.lineTo(r,i),a.currentPath.autoClose=!1,a}function p(e,t){t=Object.assign({},t);let n={};if(e.hasAttribute(`class`)){let t=e.getAttribute(`class`).split(/\s/).filter(Boolean).map(e=>e.trim());for(let e=0;e0&&t.premultiply(ee[ee.length-1]),ie.copy(t),ee.push(t),t}function b(e){let t=new Fe,n=te;if(e.nodeName===`use`&&(e.hasAttribute(`x`)||e.hasAttribute(`y`))){let n=v(e.getAttribute(`x`)),r=v(e.getAttribute(`y`));t.translate(n,r)}if(e.hasAttribute(`transform`)){let r=e.getAttribute(`transform`).split(`)`);for(let e=r.length-1;e>=0;e--){let i=r[e].trim();if(i===``)continue;let a=i.indexOf(`(`),o=i.length;if(a>0&&a=1){let e=t[0],r=0;t.length>=2&&(r=t[1]),n.translate(e,r)}break;case`rotate`:if(t.length>=1){let e=0,r=0,i=0;e=t[0]*Math.PI/180,t.length>=3&&(r=t[1],i=t[2]),ne.makeTranslation(-r,-i),k.makeRotation(e),A.multiplyMatrices(k,ne),ne.makeTranslation(r,i),n.multiplyMatrices(ne,A)}break;case`scale`:if(t.length>=1){let e=t[0],r=e;t.length>=2&&(r=t[1]),n.scale(e,r)}break;case`skewX`:t.length===1&&n.set(1,Math.tan(t[0]*Math.PI/180),0,0,1,0,0,0,1);break;case`skewY`:t.length===1&&n.set(1,0,0,Math.tan(t[0]*Math.PI/180),1,0,0,0,1);break;case`matrix`:t.length===6&&n.set(t[0],t[2],t[4],t[1],t[3],t[5],0,0,1);break}}t.premultiply(n)}}return t}function x(e,t){function n(e){j.set(e.x,e.y,1).applyMatrix3(t),e.set(j.x,j.y)}function r(e){let n=e.xRadius,r=e.yRadius,i=Math.cos(e.aRotation),a=Math.sin(e.aRotation),o=new P(n*i,n*a,0),s=new P(-r*a,r*i,0),c=o.applyMatrix3(t),l=s.applyMatrix3(t),u=te.set(c.x,l.x,0,c.y,l.y,0,0,0,1),d=ne.copy(u).invert(),f=k.copy(d).transpose().multiply(d).elements,p=E(f[0],f[1],f[4]),m=Math.sqrt(p.rt1),h=Math.sqrt(p.rt2);if(e.xRadius=1/m,e.yRadius=1/h,e.aRotation=Math.atan2(p.sn,p.cs),!((e.aEndAngle-e.aStartAngle)%(2*Math.PI)<2**-52)){let n=ne.set(m,0,0,0,h,0,0,0,1),r=k.set(p.cs,p.sn,0,-p.sn,p.cs,0,0,0,1),i=n.multiply(r).multiply(u),a=e=>{let{x:t,y:n}=new P(Math.cos(e),Math.sin(e),0).applyMatrix3(i);return Math.atan2(n,t)};e.aStartAngle=a(e.aStartAngle),e.aEndAngle=a(e.aEndAngle),S(t)&&(e.aClockwise=!e.aClockwise)}}function i(e){let n=w(t),r=T(t);e.xRadius*=n,e.yRadius*=r;let i=n>2**-52?Math.atan2(t.elements[1],t.elements[0]):Math.atan2(-t.elements[3],t.elements[4]);e.aRotation+=i,S(t)&&(e.aStartAngle*=-1,e.aEndAngle*=-1,e.aClockwise=!e.aClockwise)}let a=e.subPaths;for(let e=0,o=a.length;e2**-52}function w(e){let t=e.elements;return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function T(e){let t=e.elements;return Math.sqrt(t[3]*t[3]+t[4]*t[4])}function E(e,t,n){let r,i,a,o,s,c=e+n,l=e-n,u=Math.sqrt(l*l+4*t*t);return c>0?(r=.5*(c+u),s=1/r,i=e*s*n-t*s*t):c<0?i=.5*(c-u):(r=.5*u,i=-.5*u),a=l>0?l+u:l-u,Math.abs(a)>2*Math.abs(t)?(s=-2*t/a,o=1/Math.sqrt(1+s*s),a=s*o):Math.abs(t)===0?(a=1,o=0):(s=-.5*a/t,a=1/Math.sqrt(1+s*s),o=s*a),l>0&&(s=a,a=-o,o=s),{rt1:r,rt2:i,cs:a,sn:o}}let D=[],O={},ee=[],te=new Fe,ne=new Fe,k=new Fe,A=new Fe,re=new Et,j=new P,ie=new Fe,ae=new DOMParser().parseFromString(e,`image/svg+xml`);return n(ae.documentElement,{fill:`#000`,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:`miter`,strokeLineCap:`butt`,strokeMiterLimit:4}),{paths:D,xml:ae.documentElement}}static createShapes(e){let t={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},n={loc:t.ORIGIN,t:0};function r(e,r,a,o){let s=e.x,c=r.x,l=a.x,u=o.x,d=e.y,f=r.y,p=a.y,m=o.y,h=(u-l)*(d-p)-(m-p)*(s-l),g=(c-s)*(d-p)-(f-d)*(s-l),_=(m-p)*(c-s)-(u-l)*(f-d),v=h/_,y=g/_;if(_===0&&h!==0||v<=0||v>=1||y<0||y>1)return null;if(h===0&&_===0){for(let l=0;l<2;l++)if(i(l===0?a:o,e,r),n.loc==t.ORIGIN){let e=l===0?a:o;return{x:e.x,y:e.y,t:n.t}}else if(n.loc==t.BETWEEN){let e=+(s+n.t*(c-s)).toPrecision(10),t=+(d+n.t*(f-d)).toPrecision(10);return{x:e,y:t,t:n.t}}return null}else{for(let s=0;s<2;s++)if(i(s===0?a:o,e,r),n.loc==t.ORIGIN){let e=s===0?a:o;return{x:e.x,y:e.y,t:n.t}}let l=+(s+v*(c-s)).toPrecision(10),u=+(d+v*(f-d)).toPrecision(10);return{x:l,y:u,t:v}}}function i(e,r,i){let a=i.x-r.x,o=i.y-r.y,s=e.x-r.x,c=e.y-r.y,l=a*c-s*o;if(e.x===r.x&&e.y===r.y){n.loc=t.ORIGIN,n.t=0;return}if(e.x===i.x&&e.y===i.y){n.loc=t.DESTINATION,n.t=1;return}if(l<-(2**-52)){n.loc=t.LEFT;return}if(l>2**-52){n.loc=t.RIGHT;return}if(a*s<0||o*c<0){n.loc=t.BEHIND;return}if(Math.sqrt(a*a+o*o)e.t<=l.t+2**-52&&e.t>=l.t-2**-52)===void 0&&(n.push(l),i.push(new Et(l.x,l.y)))}}return i}function o(e,t,n){let r=new Et;t.getCenter(r);let i=[];return n.forEach(t=>{t.boundingBox.containsPoint(r)&&a(e,t.points).forEach(e=>{i.push({identifier:t.identifier,isCW:t.isCW,point:e})})}),i.sort((e,t)=>e.point.x-t.point.x),i}function s(e,t,n,r,i){(i==null||i===``)&&(i=`nonzero`);let a=new Et;e.boundingBox.getCenter(a);let s=[new Et(n,a.y),new Et(r,a.y)],c=o(s,e.boundingBox,t);c.sort((e,t)=>e.point.x-t.point.x);let l=[],u=[];c.forEach(t=>{t.identifier===e.identifier?l.push(t):u.push(t)});let d=l[0].point.x,f=[],p=0;for(;p0&&f[f.length-1]===u[p].identifier?f.pop():f.push(u[p].identifier),p++;if(f.push(e.identifier),i===`evenodd`){let t=f.length%2==0,n=f[f.length-2];return{identifier:e.identifier,isHole:t,for:n}}else if(i===`nonzero`){let n=!0,r=null,i=null;for(let e=0;e{let t=e.getPoints(),n=-999999999,r=999999999,i=-999999999,a=999999999;for(let e=0;en&&(n=o.y),o.yi&&(i=o.x),o.x=a&&(c=a-1),{curves:e.curves,points:t,isCW:Ae.isClockWise(t),identifier:-1,boundingBox:new Ut(new Et(a,r),new Et(i,n))}});u=u.filter(e=>e.points.length>1);for(let e=0;es(t,u,c,l,e.userData?e.userData.style.fillRule:void 0)),f=[];return u.forEach(e=>{if(!d[e.identifier].isHole){let t=new rn;t.curves=e.curves,d.filter(t=>t.isHole&&t.for===e.identifier).forEach(e=>{let n=u[e.identifier],r=new pe;r.curves=n.curves,t.holes.push(r)}),f.push(t)}}),f}static getStrokeStyle(e,t,n,r,i){return e=e===void 0?1:e,t=t===void 0?`#000`:t,n=n===void 0?`miter`:n,r=r===void 0?`butt`:r,i=i===void 0?4:i,{strokeColor:t,strokeWidth:e,strokeLineJoin:n,strokeLineCap:r,strokeMiterLimit:i}}static pointsToStroke(t,n,r,i){let a=[],o=[],s=[];if(e.pointsToStrokeWithBuffers(t,n,r,i,a,o,s)===0)return null;let c=new yt;return c.setAttribute(`position`,new Oe(a,3)),c.setAttribute(`normal`,new Oe(o,3)),c.setAttribute(`uv`,new Oe(s,2)),c}static pointsToStrokeWithBuffers(e,t,n,r,i,a,o,s){let c=new Et,l=new Et,u=new Et,d=new Et,f=new Et,p=new Et,m=new Et,h=new Et,g=new Et,_=new Et,v=new Et,y=new Et,b=new Et,x=new Et,S=new Et,C=new Et,w=new Et;n=n===void 0?12:n,r=r===void 0?.001:r,s=s===void 0?0:s,e=me(e);let T=e.length;if(T<2)return 0;let E=e[0].equals(e[T-1]),D,O=e[0],ee,te=t.strokeWidth/2,ne=1/(T-1),k=0,A,re,j,ie,ae=!1,oe=0,se=s*3,M=s*2;ce(e[0],e[1],c).multiplyScalar(te),h.copy(e[0]).sub(c),g.copy(e[0]).add(c),_.copy(h),v.copy(g);for(let n=1;n2**-52){let n=te/e;u.multiplyScalar(-n),d.subVectors(D,O),f.copy(d).setLength(n).add(u),C.copy(f).negate();let r=f.length(),i=d.length();d.divideScalar(i),p.subVectors(ee,D);let a=p.length();switch(p.divideScalar(a),d.dot(C)=r&&n.push(e[t]);return n.push(e[e.length-1]),n}}};const WV=new _e,GV=new P;var KV=class extends Be{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type=`LineSegmentsGeometry`;let e=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],t=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],n=[0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5];this.setIndex(n),this.setAttribute(`position`,new Oe(e,3)),this.setAttribute(`uv`,new Oe(t,2))}applyMatrix4(e){let t=this.attributes.instanceStart,n=this.attributes.instanceEnd;return t!==void 0&&(t.applyMatrix4(e),n.applyMatrix4(e),t.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}setPositions(e){let t;e instanceof Float32Array?t=e:Array.isArray(e)&&(t=new Float32Array(e));let n=new At(t,6,1);return this.setAttribute(`instanceStart`,new kt(n,3,0)),this.setAttribute(`instanceEnd`,new kt(n,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e,t=3){let n;e instanceof Float32Array?n=e:Array.isArray(e)&&(n=new Float32Array(e));let r=new At(n,t*2,1);return this.setAttribute(`instanceColorStart`,new kt(r,t,0)),this.setAttribute(`instanceColorEnd`,new kt(r,t,t)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new ge(e.geometry)),this}fromLineSegments(e){let t=e.geometry;return this.setPositions(t.attributes.position.array),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new _e);let e=this.attributes.instanceStart,t=this.attributes.instanceEnd;e!==void 0&&t!==void 0&&(this.boundingBox.setFromBufferAttribute(e),WV.setFromBufferAttribute(t),this.boundingBox.union(WV))}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Vt),this.boundingBox===null&&this.computeBoundingBox();let e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(e!==void 0&&t!==void 0){let n=this.boundingSphere.center;this.boundingBox.getCenter(n);let r=0;for(let i=0,a=e.count;i + #include + #include + #include + + uniform float linewidth; + uniform vec2 resolution; + + attribute vec3 instanceStart; + attribute vec3 instanceEnd; + + #ifdef USE_COLOR + #ifdef USE_LINE_COLOR_ALPHA + varying vec4 vLineColor; + attribute vec4 instanceColorStart; + attribute vec4 instanceColorEnd; + #else + varying vec3 vLineColor; + attribute vec3 instanceColorStart; + attribute vec3 instanceColorEnd; + #endif + #endif + + #ifdef WORLD_UNITS + + varying vec4 worldPos; + varying vec3 worldStart; + varying vec3 worldEnd; + + #ifdef USE_DASH + + varying vec2 vUv; + + #endif + + #else + + varying vec2 vUv; + + #endif + + #ifdef USE_DASH + + uniform float dashScale; + attribute float instanceDistanceStart; + attribute float instanceDistanceEnd; + varying float vLineDistance; + + #endif + + void trimSegment( const in vec4 start, inout vec4 end ) { + + // trim end segment so it terminates between the camera plane and the near plane + + // conservative estimate of the near plane + float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column + float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column + float nearEstimate = - 0.5 * b / a; + + float alpha = ( nearEstimate - start.z ) / ( end.z - start.z ); + + end.xyz = mix( start.xyz, end.xyz, alpha ); + + } + + void main() { + + #ifdef USE_COLOR + + vLineColor = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd; + + #endif + + #ifdef USE_DASH + + vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd; + vUv = uv; + + #endif + + float aspect = resolution.x / resolution.y; + + // camera space + vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 ); + vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 ); + + #ifdef WORLD_UNITS + + worldStart = start.xyz; + worldEnd = end.xyz; + + #else + + vUv = uv; + + #endif + + // special case for perspective projection, and segments that terminate either in, or behind, the camera plane + // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space + // but we need to perform ndc-space calculations in the shader, so we must address this issue directly + // perhaps there is a more elegant solution -- WestLangley + + bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column + + if ( perspective ) { + + if ( start.z < 0.0 && end.z >= 0.0 ) { + + trimSegment( start, end ); + + } else if ( end.z < 0.0 && start.z >= 0.0 ) { + + trimSegment( end, start ); + + } + + } + + // clip space + vec4 clipStart = projectionMatrix * start; + vec4 clipEnd = projectionMatrix * end; + + // ndc space + vec3 ndcStart = clipStart.xyz / clipStart.w; + vec3 ndcEnd = clipEnd.xyz / clipEnd.w; + + // direction + vec2 dir = ndcEnd.xy - ndcStart.xy; + + // account for clip-space aspect ratio + dir.x *= aspect; + dir = normalize( dir ); + + #ifdef WORLD_UNITS + + // get the offset direction as perpendicular to the view vector + vec3 worldDir = normalize( end.xyz - start.xyz ); + vec3 offset; + if ( position.y < 0.5 ) { + + offset = normalize( cross( start.xyz, worldDir ) ); + + } else { + + offset = normalize( cross( end.xyz, worldDir ) ); + + } + + // sign flip + if ( position.x < 0.0 ) offset *= - 1.0; + + float forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) ); + + // don't extend the line if we're rendering dashes because we + // won't be rendering the endcaps + #ifndef USE_DASH + + // extend the line bounds to encompass endcaps + start.xyz += - worldDir * linewidth * 0.5; + end.xyz += worldDir * linewidth * 0.5; + + // shift the position of the quad so it hugs the forward edge of the line + offset.xy -= dir * forwardOffset; + offset.z += 0.5; + + #endif + + // endcaps + if ( position.y > 1.0 || position.y < 0.0 ) { + + offset.xy += dir * 2.0 * forwardOffset; + + } + + // adjust for linewidth + offset *= linewidth * 0.5; + + // set the world position + worldPos = ( position.y < 0.5 ) ? start : end; + worldPos.xyz += offset; + + // project the worldpos + vec4 clip = projectionMatrix * worldPos; + + // shift the depth of the projected points so the line + // segments overlap neatly + vec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd; + clip.z = clipPose.z * clip.w; + + #else + + vec2 offset = vec2( dir.y, - dir.x ); + // undo aspect ratio adjustment + dir.x /= aspect; + offset.x /= aspect; + + // sign flip + if ( position.x < 0.0 ) offset *= - 1.0; + + // endcaps + if ( position.y < 0.0 ) { + + offset += - dir; + + } else if ( position.y > 1.0 ) { + + offset += dir; + + } + + // adjust for linewidth + offset *= linewidth; + + // adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ... + offset /= resolution.y; + + // select end + vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd; + + // back to clip space + offset *= clip.w; + + clip.xy += offset; + + #endif + + gl_Position = clip; + + vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation + + #include + #include + #include + + } + `,fragmentShader:` + uniform vec3 diffuse; + uniform float opacity; + uniform float linewidth; + + #ifdef USE_DASH + + uniform float dashOffset; + uniform float dashSize; + uniform float gapSize; + + #endif + + varying float vLineDistance; + + #ifdef WORLD_UNITS + + varying vec4 worldPos; + varying vec3 worldStart; + varying vec3 worldEnd; + + #ifdef USE_DASH + + varying vec2 vUv; + + #endif + + #else + + varying vec2 vUv; + + #endif + + #include + #include + #include + #include + + #ifdef USE_COLOR + #ifdef USE_LINE_COLOR_ALPHA + varying vec4 vLineColor; + #else + varying vec3 vLineColor; + #endif + #endif + + vec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) { + + float mua; + float mub; + + vec3 p13 = p1 - p3; + vec3 p43 = p4 - p3; + + vec3 p21 = p2 - p1; + + float d1343 = dot( p13, p43 ); + float d4321 = dot( p43, p21 ); + float d1321 = dot( p13, p21 ); + float d4343 = dot( p43, p43 ); + float d2121 = dot( p21, p21 ); + + float denom = d2121 * d4343 - d4321 * d4321; + + float numer = d1343 * d4321 - d1321 * d4343; + + mua = numer / denom; + mua = clamp( mua, 0.0, 1.0 ); + mub = ( d1343 + d4321 * ( mua ) ) / d4343; + mub = clamp( mub, 0.0, 1.0 ); + + return vec2( mua, mub ); + + } + + void main() { + + #include + + #ifdef USE_DASH + + if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps + + if ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX + + #endif + + float alpha = opacity; + + #ifdef WORLD_UNITS + + // Find the closest points on the view ray and the line segment + vec3 rayEnd = normalize( worldPos.xyz ) * 1e5; + vec3 lineDir = worldEnd - worldStart; + vec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd ); + + vec3 p1 = worldStart + lineDir * params.x; + vec3 p2 = rayEnd * params.y; + vec3 delta = p1 - p2; + float len = length( delta ); + float norm = len / linewidth; + + #ifndef USE_DASH + + #ifdef USE_ALPHA_TO_COVERAGE + + float dnorm = fwidth( norm ); + alpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm ); + + #else + + if ( norm > 0.5 ) { + + discard; + + } + + #endif + + #endif + + #else + + #ifdef USE_ALPHA_TO_COVERAGE + + // artifacts appear on some hardware if a derivative is taken within a conditional + float a = vUv.x; + float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; + float len2 = a * a + b * b; + float dlen = fwidth( len2 ); + + if ( abs( vUv.y ) > 1.0 ) { + + alpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 ); + + } + + #else + + if ( abs( vUv.y ) > 1.0 ) { + + float a = vUv.x; + float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; + float len2 = a * a + b * b; + + if ( len2 > 1.0 ) discard; + + } + + #endif + + #endif + + vec4 diffuseColor = vec4( diffuse, alpha ); + #ifdef USE_COLOR + #ifdef USE_LINE_COLOR_ALPHA + diffuseColor *= vLineColor; + #else + diffuseColor.rgb *= vLineColor; + #endif + #endif + + #include + + gl_FragColor = diffuseColor; + + #include + #include <${parseInt(gt.replace(/\D+/g,``))>=154?`colorspace_fragment`:`encodings_fragment`}> + #include + #include + + } + `,clipping:!0}),this.isLineMaterial=!0,this.onBeforeCompile=function(){this.transparent?this.defines.USE_LINE_COLOR_ALPHA=`1`:delete this.defines.USE_LINE_COLOR_ALPHA},Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(e){this.uniforms.diffuse.value=e}},worldUnits:{enumerable:!0,get:function(){return`WORLD_UNITS`in this.defines},set:function(e){e===!0?this.defines.WORLD_UNITS=``:delete this.defines.WORLD_UNITS}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(e){this.uniforms.linewidth.value=e}},dashed:{enumerable:!0,get:function(){return`USE_DASH`in this.defines},set(e){!!e!=`USE_DASH`in this.defines&&(this.needsUpdate=!0),e===!0?this.defines.USE_DASH=``:delete this.defines.USE_DASH}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(e){this.uniforms.dashScale.value=e}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(e){this.uniforms.dashSize.value=e}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(e){this.uniforms.dashOffset.value=e}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(e){this.uniforms.gapSize.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}},alphaToCoverage:{enumerable:!0,get:function(){return`USE_ALPHA_TO_COVERAGE`in this.defines},set:function(e){!!e!=`USE_ALPHA_TO_COVERAGE`in this.defines&&(this.needsUpdate=!0),e===!0?(this.defines.USE_ALPHA_TO_COVERAGE=``,this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1)}}}),this.setValues(e)}};const YV=new sn,XV=new P,ZV=new P,QV=new sn,$V=new sn,eH=new sn,tH=new P,nH=new qe,rH=new St,iH=new P,aH=new _e,oH=new Vt,sH=new sn;let cH,lH;function uH(e,t,n){return sH.set(0,0,-t,1).applyMatrix4(e.projectionMatrix),sH.multiplyScalar(1/sH.w),sH.x=lH/n.width,sH.y=lH/n.height,sH.applyMatrix4(e.projectionMatrixInverse),sH.multiplyScalar(1/sH.w),Math.abs(Math.max(sH.x,sH.y))}function dH(e,t){let n=e.matrixWorld,r=e.geometry,i=r.attributes.instanceStart,a=r.attributes.instanceEnd,o=Math.min(r.instanceCount,i.count);for(let r=0,s=o;ru&&$V.z>u)continue;if(QV.z>u){let e=QV.z-$V.z,t=(QV.z-u)/e;QV.lerp($V,t)}else if($V.z>u){let e=$V.z-QV.z,t=($V.z-u)/e;$V.lerp(QV,t)}QV.applyMatrix4(r),$V.applyMatrix4(r),QV.multiplyScalar(1/QV.w),$V.multiplyScalar(1/$V.w),QV.x*=i.x/2,QV.y*=i.y/2,$V.x*=i.x/2,$V.y*=i.y/2,rH.start.copy(QV),rH.start.z=0,rH.end.copy($V),rH.end.z=0;let o=rH.closestPointToPointParameter(tH,!0);rH.at(o,iH);let l=bt.lerp(QV.z,$V.z,o),d=l>=-1&&l<=1,f=tH.distanceTo(iH)t)),o=Math.min(e.length,i);return a.slice(0,o).sort().map(t=>e[t])}shuffle(e){return e.map(e=>({value:e,sort:this._getNext()})).sort((e,t)=>e.sort-t.sort).map(({value:e})=>e)}getMulberry32(e=0){return e>0&&e<1&&(e=Math.floor(e*2**16)),()=>{e+=1831565813;let t=e;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}}};const UH=[gH,_H,vH,yH,bH],WH=bt.lerp,GH=(e=0,t=zH)=>{let n=new HH(e).choice(UH);return t.map((t,r)=>{let i=new HH(e*(r*7907+1)+(typeof t.seed==`number`?t.seed:0)),a=i.int(t.length[0],t.length[1]);return Array.from({length:a}).fill(0).map(()=>{let e=n(i.rand());return{texture:i.defaultChoice(t.texture,BH.texture),size:WH(t.size[0],t.size[1],n(1-e)),distance:WH(t.distance[0],t.distance[1],e),color:i.defaultChoice(t.color,BH.color)}})}).flat()},KH=(e,t,n=void 0,r=void 0,i=BH)=>{if(e!==void 0&&e.length>0&&(typeof n==`number`||typeof r<`u`)){let a=GH(n??0,r??zH),o=a.length,s=e.length;return o>=s?a.map((n,r)=>Object.assign(n,t,rObject.assign({},i,n0){let n=Object.assign({},i,t);return e.map(e=>Object.assign({},n,e))}let a=r===void 0||r.length===0?zH:r;return GH(n??0,a).map(e=>Object.assign({},e,t))};function qH(e){return JH(e,(e,t)=>t in BH&&e!==void 0)}function JH(e,t){let n={};return Object.keys(e).forEach(r=>{t(e[r],r)&&(n[r]=e[r])}),n}const YH=B({__name:`component`,props:{scale:{default:1},elements:{default:void 0},seed:{default:void 0},seedProps:{default:void 0},color:{default:void 0},distance:{default:void 0},size:{default:void 0},texture:{default:void 0}},setup(e,{expose:t}){let n=e,r=L(),i=L([]),a=L(qH(n));t({instance:r});let o=new k,s=new NB,c=[],l=()=>{for(var e,t,n;c.length;)c.pop();(e=r.value)==null||e.children.forEach(e=>{`dispose`in e&&e.dispose()}),(t=r.value)==null||t.remove(...r.value.children),(n=r.value)==null||n.dispose()},u=e=>{if(typeof e.texture==`string`){let t=e.texture;e.texture=o.load(t),e.texture.name=t}return e.color=oe(e.color),e},d=()=>{for(let e=i.value.length-1;e{c[t].size=e.size*n.scale})},f=()=>{for(;i.value.length>c.length;){let e={...u(i.value[c.length])};c.push(e),s.addElement(e)}i.value.forEach((e,t)=>{let n=c[t],{texture:r,size:i,distance:a,color:s}=e;if(typeof r==`string`){if(n.texture.name!==r){n.texture.dispose();let e=r;n.texture=o.load(e),n.texture.name=e}}else n.texture!==r&&(n.texture.dispose(),n.texture=r);n.size=i,n.distance=a,n.color=oe(s)}),d()};return In(()=>{l()}),jn(()=>{var e;(e=r.value)==null||e.add(s),i.value=KH(n.elements,a.value,n.seed,n.seedProps)}),R(()=>[n.color,n.distance,n.size,n.texture],()=>{a.value={color:n.color,distance:n.distance,size:n.size,texture:n.texture}}),R(()=>[a.value,n.elements,n.seed,n.seedProps],()=>{i.value=KH(n.elements,a.value,n.seed,n.seedProps)}),R(()=>n.scale,()=>{d()}),R(()=>i.value,()=>{f()}),(e,t)=>(z(),V(`TresGroup`,{ref_key:`lensflareRef`,ref:r},null,512))}}),XH=B({__name:`Levioso`,props:{speed:{default:1},rotationFactor:{default:1},floatFactor:{default:1},range:{default:()=>[-.1,.1]}},setup(e,{expose:t}){let n=e,r=L();t({instance:r});{let e=Math.random()*1e4,{onBeforeRender:t}=ie(),i=e;t(({delta:e,invalidate:t})=>{if(!r.value)return;i+=e*n.speed;let a=i*.25,o=r.value;o.rotation.x=Math.cos(a)*.125*n.rotationFactor,o.rotation.y=Math.sin(a)*.125*n.rotationFactor,o.rotation.z=Math.sin(a)*.05*n.rotationFactor,o.position.y=bt.mapLinear(Math.sin(a),-1,1,n.range[0],n.range[1])*n.floatFactor,t()})}return(e,t)=>(z(),V(`TresGroup`,On(e.$attrs,{ref_key:`groupRef`,ref:r}),[fn(e.$slots,`default`)],16))}}),ZH=[`render-order`],QH=B({__name:`component`,props:{id:{default:1},colorWrite:{type:Boolean,default:!0},depthWrite:{type:Boolean,default:!1}},setup(e,{expose:t}){let n=e,r=L();function i(){var e,t;let i=Array.isArray((e=r.value)?.material)?r.value.material[0]:(t=r.value)?.material;i&&(i.colorWrite=n.colorWrite,i.depthWrite=n.depthWrite,i.stencilWrite=!0,i.stencilRef=n.id,i.stencilFunc=pt,i.stencilFail=We,i.stencilZFail=We,i.stencilZPass=We)}return st(i),t({instance:r}),(e,t)=>(z(),V(`TresMesh`,{ref_key:`meshRef`,ref:r,"render-order":-n.id},[fn(e.$slots,`default`)],8,ZH))}}),$H=B({__name:`MouseParallax`,props:{disabled:{type:Boolean,default:!1},factor:{default:2.5},ease:{default:.1},local:{type:Boolean,default:!1}},setup(e){let t=e,{camera:n,renderer:r}=Ie(),{disabled:i,factor:a,ease:o,local:s}=bn(t),c={};s.value&&(c.target=r.value.domElement,c.type=`client`);let{x:l,y:u}=RR(c),{width:d,height:f}=s.value?MR(r.value.domElement):BR(),p=L(),m=U(),h=U();R([a,o],()=>{m.value=Array.isArray(a.value)?a.value:[a.value,a.value],h.value=Array.isArray(o.value)?o.value:[o.value,o.value]},{immediate:!0});let g=gn(()=>(l.value/d.value-.5)*m.value[0]),_=gn(()=>-(u.value/f.value-.5)*m.value[1]),{onBeforeRender:v}=ie();return v(({delta:e,invalidate:t})=>{i.value||!p.value||Number.isNaN(g.value)||Number.isNaN(_.value)||(p.value.position.x+=(g.value-p.value.position.x)*h.value[0]*e,p.value.position.y+=(_.value-p.value.position.y)*h.value[1]*e,t())}),R(()=>p.value,e=>e?.add(n.value)),(e,t)=>(z(),V(`TresGroup`,{ref_key:`cameraGroupRef`,ref:p},null,512))}}),eU=JR({screenspace:!1,color:new je(`black`),opacity:1,thickness:.05,size:new Et(1,1)},`#include + #include + #include + uniform float thickness; + uniform bool screenspace; + uniform vec2 size; + void main() { + #if defined (USE_SKINNING) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + vec4 tNormal = vec4(normal, 0.0); + vec4 tPosition = vec4(transformed, 1.0); + #ifdef USE_INSTANCING + tNormal = instanceMatrix * tNormal; + tPosition = instanceMatrix * tPosition; + #endif + if (screenspace) { + vec3 newPosition = tPosition.xyz + tNormal.xyz * thickness; + gl_Position = projectionMatrix * modelViewMatrix * vec4(newPosition, 1.0); + } else { + vec4 clipPosition = projectionMatrix * modelViewMatrix * tPosition; + vec4 clipNormal = projectionMatrix * modelViewMatrix * tNormal; + vec2 offset = normalize(clipNormal.xy) * thickness / size * clipPosition.w * 2.0; + clipPosition.xy += offset; + gl_Position = clipPosition; + } + }`,`uniform vec3 color; + uniform float opacity; + void main(){ + gl_FragColor = vec4(color, opacity); + #include + #include + }`),tU=B({__name:`component`,props:{color:{default:`black`},screenspace:{type:Boolean,default:!1},opacity:{default:1},transparent:{type:Boolean,default:!1},thickness:{default:.05},angle:{default:Math.PI},toneMapped:{type:Boolean,default:!0},polygonOffset:{type:Boolean,default:!1},polygonOffsetFactor:{default:0},renderOrder:{default:0}},setup(e,{expose:t}){let n=e,r=L();t({instance:r});let i=new eU({...n}),a=new Et(1,1),o=0,s=null;function c(e){var t;let r=e.parent;if(!(!r||!r.geometry)&&(o!==n.angle||s!==r.geometry)){o=n.angle,s=r.geometry;let a=(t=e.children)?.[0];a&&(n.angle&&a.geometry.dispose(),e.remove(a)),r.skeleton?(a=new _t,a.material=i,a.bind(r.skeleton,r.bindMatrix),e.add(a)):r.isInstancedMesh?(a=new nn(r.geometry,i,r.count),a.instanceMatrix=r.instanceMatrix,e.add(a)):(a=new F,a.material=i,e.add(a)),a.geometry=n.angle?nz(r.geometry,n.angle):r.geometry}}function l(){i.side=Xe,i.transparent=n.transparent,i.thickness=n.thickness,i.color=oe(n.color),i.opacity=n.opacity,i.size=a,i.screenspace=n.screenspace,i.toneMapped=n.toneMapped,i.polygonOffset=n.polygonOffset,i.polygonOffsetFactor=n.polygonOffsetFactor}let u=j().sizes;return R(()=>[u.width.value,u.height.value],([e,t])=>{a.set(e,t)}),R(()=>[n.angle],()=>{r.value&&c(r.value)}),R(()=>[n.transparent,n.thickness,n.color,n.opacity,a,n.screenspace,n.toneMapped,n.polygonOffset,n.polygonOffsetFactor],()=>l(),{immediate:!0}),jn(()=>c(r.value)),In(()=>{var e;let t=(e=r.value)?.children[0];t&&(t.geometry.dispose(),i.dispose(),t.removeFromParent())}),(e,t)=>(z(),V(`TresGroup`,{ref_key:`groupRef`,ref:r},null,512))}}),nU=[`args`],rU=B({__name:`PositionalAudio`,props:{ready:{type:Boolean,default:!1},url:{},distance:{default:2},helper:{type:Boolean,default:!1},loop:{type:Boolean,default:!1},autoplay:{type:Boolean,default:!1},innerAngle:{default:360},outerAngle:{default:360},outerGain:{default:0}},emits:[`isPlaying`],async setup(e,{expose:t,emit:n}){let r,i,a=e,o=n,{ready:s,url:c,distance:l,helper:u,loop:d,autoplay:f,innerAngle:p,outerAngle:m,outerGain:h}=bn(a),{camera:g}=Ie(),_=L(null),v=L(null),y=L(null),b=Vn(new we),x=()=>{var e,t,n;(e=_?.value)!=null&&e.isPlaying||((t=_?.value)==null||t.play(),o(`isPlaying`,(n=_?.value)?.isPlaying))},S=()=>{var e,t;(e=_?.value)!=null&&e.isPlaying&&(_.value.pause(),o(`isPlaying`,(t=_?.value)?.isPlaying))},C=()=>{var e;_.value&&(_.value.stop(),o(`isPlaying`,(e=_?.value)?.isPlaying))},w=()=>{if(!(_!=null&&_.value))return;C();let e=_.value;e.source&&e.disconnect()},T=()=>{var e,t;!(_!=null&&_.value)||!(v!=null&&v.value)||((e=v?.value)==null||e.dispose(),(t=_?.value)==null||t.remove(v?.value))},E=()=>{var e;if(_.value&&(_.value.setBuffer(y.value),_.value.setRefDistance(l.value),_.value.setLoop(d.value),_.value.setDirectionalCone(p.value,m.value,h.value),(e=v?.value)==null||e.update(),v!=null&&v.value)){let e=v.value.material[0];!e.visible&&m.value!==p.value&&(e.visible=!0)}},D=()=>{var e,t;E();let n=(e=_.value)?.parent,r=new _e().setFromObject(n),i=(r.max.z-r.min.z)*2;v.value=new hH(_.value,i,32,16),(t=_?.value)==null||t.add(v.value),v.value.update()},O=()=>{var e;(e=g?.value)==null||e.remove(b),w(),T()};return t({instance:_,play:x,stop:C,pause:S,dispose:O}),y.value=([r,i]=mn(()=>N(Ct,c.value)),r=await r,i(),r),R(_,()=>{_!=null&&_.value&&(u.value&&D(),s.value&&f&&x())}),R(u,()=>{u.value?D():T()}),R(s,()=>{s.value&&E(),f.value&&s.value&&x(),!f.value&&s.value&&C()}),R([l,d,y,p,m,h,f],()=>{E()}),jn(()=>{var e;(e=g?.value)==null||e.add(b)}),Fn(()=>{O()}),(e,t)=>(z(),V(`TresPositionalAudio`,On({ref_key:`positionalAudioRef`,ref:_,args:[H(b)]},e.$attrs),null,16,nU))}}),iU=[`args`,`material-uniforms-color-value`],aU=B({__name:`Reflector`,props:{color:{default:`#333`},textureWidth:{default:512},textureHeight:{default:512},clipBias:{default:0},multisample:{default:4},shader:{default:TB.ReflectorShader}},setup(e,{expose:t}){let n=e,{extend:r,invalidate:i}=Ie(),a=L();r({Reflector:TB});let{color:o,textureWidth:s,textureHeight:c,clipBias:l,multisample:u,shader:d}=bn(n);return R(n,()=>i()),t({instance:a}),(e,t)=>(z(),V(`TresReflector`,{ref_key:`reflectorRef`,ref:a,args:[void 0,{textureWidth:H(s),textureHeight:H(c),clipBias:H(l),multisample:H(u),shader:H(d)}],"material-uniforms-color-value":H(o)},[fn(e.$slots,`default`,{},()=>[t[0]||=I(`TresPlaneGeometry`,{args:[5,5]},null,-1)])],8,iU))}}),oU=[`position-z`],sU=B({__name:`ScreenSpace`,props:{depth:{default:-1}},setup(e,{expose:t}){let n=L();return ie().onBeforeRender(({camera:e})=>{n.value&&(n.value.quaternion.copy(e.quaternion),n.value.position.copy(e.position))}),t({instance:n}),(e,t)=>(z(),V(`TresGroup`,{ref_key:`outerRef`,ref:n},[I(`TresGroup`,{"position-z":-e.depth},[fn(e.$slots,`default`)],8,oU)],512))}}),cU=[`args`,`center`],lU=B({__name:`Text3D`,props:{font:{},text:{},size:{default:.5},height:{default:.2},curveSegments:{default:5},bevelEnabled:{type:Boolean,default:!0},bevelThickness:{default:.05},bevelSize:{default:.02},bevelOffset:{default:0},bevelSegments:{default:4},center:{type:Boolean,default:!1},needUpdates:{type:Boolean,default:!1}},async setup(e,{expose:t}){let n,r,i=e,{center:a,font:o,text:s,needUpdates:c,size:l,height:u,curveSegments:d,bevelEnabled:f,bevelThickness:p,bevelSize:m,bevelOffset:h,bevelSegments:g}=bn(i),{extend:_,invalidate:v}=Ie();R(i,()=>v()),_({TextGeometry:kV});let y=new LV,b=vn(),x=gn(()=>{var e;return s!=null&&s.value?s.value:b.default?(e=b.default()[0].children)?.trim():c.value?``:`TresJS`}),S=L();t({instance:S});let C=([n,r]=mn(()=>new Promise((e,t)=>{try{typeof o.value==`string`?y.load(o.value,t=>{e(t)}):e(o.value)}catch(e){t(console.error(`cientos`,e))}})),n=await n,r(),n),w=gn(()=>({font:C,size:Hn(l),height:Hn(u),curveSegments:Hn(d),bevelEnabled:Hn(f),bevelThickness:Hn(p),bevelSize:Hn(m),bevelOffset:Hn(h),bevelSegments:Hn(g)}));return st(()=>{S.value&&c.value&&(S.value.geometry.dispose(),S.value.geometry=new kV(x.value,w.value),a.value&&S.value.geometry.center())}),(e,t)=>H(o)?(z(),V(`TresMesh`,{key:0,ref_key:`text3DRef`,ref:S},[x.value?(z(),V(`TresTextGeometry`,{key:0,args:[x.value,w.value],center:H(a)},null,8,cU)):Nn(``,!0),fn(e.$slots,`default`)],512)):Nn(``,!0)}});function uU(e){let t=U(null),{height:n,width:r,settings:i,depth:a,autoRender:o=U(!0)}=yn(e)?bn(e):bn(zn(e)),{onBeforeRender:s}=ie(),{camera:c,renderer:l,scene:u,sizes:d,invalidate:f}=Ie();return R(()=>[r?.value,d.width.value,n?.value,d.height.value],()=>{var e;(e=t.value)==null||e.dispose(),t.value=new ve(r?.value||d.width.value,n?.value||d.height.value,{minFilter:ht,magFilter:ht,type:Ge,...i?.value}),a!=null&&a.value&&(t.value.depthTexture=new tn(r?.value||d.width.value,n?.value||d.height.value,Ve)),f()},{immediate:!0}),s(()=>{o.value&&(l.value.setRenderTarget(t.value),l.value.clear(),l.value.render(u.value,c.value),l.value.setRenderTarget(null))},1/0),Fn(()=>{var e;(e=t.value)==null||e.dispose()}),t}const dU=B({__name:`component`,props:{width:{},height:{},depth:{type:Boolean,default:!1},settings:{default:void 0},autoRender:{type:Boolean,default:!0}},setup(e,{expose:t}){let n=uU(e);return t({instance:n}),()=>{}}}),fU=(e,t=16,n,r,i)=>{let a=new Float32Array(t*16),o=U(new Ye(a,16));return(()=>{if(!e)return;let a=new WB(e);r&&a.setWeightAttribute(r),a.build();let s=new P,c=new P,l=new je,u=new Me;e.updateMatrixWorld(!0);for(let r=0;ro()),st(()=>{var e,t;i.value=n.instanceMesh??(e=r.value)?.children.find(e=>Object.prototype.hasOwnProperty.call(e,`instanceMatrix`)),a.value=n.mesh??(t=r.value)?.children.find(e=>e.type===`Mesh`),fU(a.value,n.count,i.value,n.weight,n.transform)}),t({samplerRef:r}),(e,t)=>(z(),V(`TresGroup`,{ref_key:`samplerRef`,ref:r},[fn(e.$slots,`default`)],512))}}),mU=new P,hU=new P,gU=new P,_U=(e,t,n)=>{let r=n.width/2,i=n.height/2;t.updateMatrixWorld(!1);let a=e.project(t);return a.x=a.x*r+r,a.y=-(a.y*i)+i,a},vU=(e,t,n,r=1)=>{let i=mU.set(e.x/n.width*2-1,-(e.y/n.height)*2+1,r);return i.unproject(t),i},yU=(e,t,n,r)=>{let i=_U(gU.copy(e),n,r),a=0;for(let o=0;o<2;++o){let s=hU.copy(i).setComponent(o,i.getComponent(o)+t),c=vU(s,n,r,s.z);a=Math.max(a,e.distanceTo(c))}return a},bU=B({__name:`ScreenSizer`,setup(e,{expose:t}){let n=new P,r=L(),i=L(),a=j().sizes,o=gn(()=>({width:a.width.value,height:a.height.value}));return ie().onBeforeRender(({camera:e})=>{let t=i.value;if(!t)return;let r=yU(t.getWorldPosition(n),1,e,o.value);t.scale.setScalar(r)}),t({instance:r}),(e,t)=>(z(),V(`TresObject3D`,{ref_key:`outerRef`,ref:r},[I(`TresObject3D`,{ref_key:`innerRef`,ref:i},[fn(e.$slots,`default`)],512)],512))}}),xU=[`color`],SU=B({__name:`Edges`,props:{color:{default:`#ff0000`},threshold:{default:15}},setup(e,{expose:t}){let n=e,{color:r,threshold:i}=bn(n),a=L(),o=U(null),s=U(1);return t({instance:a}),R(()=>[a.value,i.value],()=>{if(a.value){let e=a.value.parent;if(e&&`geometry`in e&&e.geometry instanceof yt){let t=e.geometry;(t!==o.value||i.value!==s.value)&&(o.value=t,s.value=i.value,a.value.geometry=new on(t,i.value))}}}),(e,t)=>(z(),V(`TresLineSegments`,On({ref_key:`lineSegmentsRef`,ref:a},e.$attrs),[fn(e.$slots,`default`,{},()=>[I(`TresLineBasicMaterial`,{color:H(r)},null,8,xU)])],16))}}),CU={sunset:`venice/venice_sunset_1k.hdr`,studio:`studio/poly_haven_studio_1k.hdr`,city:`city/canary_wharf_1k.hdr`,umbrellas:`outdoor/outdoor_umbrellas_1k.hdr`,night:`outdoor/satara_night_1k.hdr`,forest:`outood/mossy_forest_1k.hdr`,snow:`outdoor/snowy_forest_path_01_1k.hdr`,dawn:`kiara/kiara_1_dawn_1k.hdr`,hangar:`indoor/small_hangar_01_1k.hdr`,urban:`indoor/abandoned_games_room_02_1k.hdr`,modern:`city/modern_buildings_2_1k.hdr`,shangai:`city/shanghai_bund_1k.hdr`},wU=`https://raw.githubusercontent.com/Tresjs/assets/main/textures/hdr/`;function TU(e){return e instanceof et?e:Array.isArray(e)?new et(e[0],e[1],e[2]):typeof e==`number`?new et(e,e,e):e instanceof P||typeof e==`object`&&`x`in e&&`y`in e&&`z`in e?new et(e.x,e.y,e.z):null}function EU(e){e.traverse(e=>{e instanceof F&&e.material&&(e.material.needsUpdate=!0)})}async function DU(e,t){let{scene:n,invalidate:r}=Ie(),{preset:i,blur:a,files:o=U([]),path:s=U(``),background:c,backgroundIntensity:l=U(1),environmentIntensity:u=U(1),backgroundRotation:d=U([0,0,0]),environmentRotation:f=U([0,0,0]),syncMaterials:p=U(!1)}=bn(e);R(e,()=>{r()});let m=U(null),h=gn(()=>Array.isArray(o.value)),g=gn(()=>h.value?ct:VV);return R([o,s],async([e,t])=>{if(e&&e.length>0&&!(i!=null&&i.value)){try{let n=await N(g.value,h.value?[...H(e)]:H(e),e=>{t&&e.setPath(H(t))});m.value=Array.isArray(n)?n[0]:n}catch(e){throw Error(`Failed to load environment map: ${e}`)}m.value&&(m.value.mapping=h.value?Ke:ot)}},{immediate:!0}),R(m,e=>{n.value&&e&&(n.value.environment=e)},{immediate:!0}),R([c,m],([e,r])=>{if(n.value){let i=t!=null&&t.value?t.value.texture:r;i&&(n.value.background=e?i:null)}},{immediate:!0}),R(()=>a?.value,e=>{n.value&&e&&(n.value.backgroundBlurriness=e)},{immediate:!0}),R(()=>l?.value,e=>{n.value&&(n.value.backgroundIntensity=e??1)},{immediate:!0}),R(()=>u?.value,e=>{n.value&&(n.value.environmentIntensity=e??1)},{immediate:!0}),R(()=>d?.value,e=>{if(n.value){let t=TU(e);t&&(n.value.backgroundRotation=t)}},{immediate:!0}),R(()=>f?.value,e=>{if(n.value&&!(p!=null&&p.value)){let t=TU(e);t&&(n.value.environmentRotation=t,EU(n.value))}},{immediate:!0}),R(()=>i?.value,async e=>{if(e&&e in CU){let t=wU,n=CU[e];try{let e=await N(VV,n,e=>{e.setPath(t)});m.value=Array.isArray(e)?e[0]:e}catch(e){throw Error(`Failed to load environment map: ${e}`)}m.value&&(m.value.mapping=ot),r()}else if(e&&!(e in CU))throw Error(`Preset must be one of: ${Object.keys(CU).join(`, `)}`)},{immediate:!0}),R([p,d],([e,t])=>{if(e&&n.value){let e=TU(t);e&&(n.value.environmentRotation=e,EU(n.value))}},{immediate:!0}),m} +/*! +* camera-controls +* https://github.com/yomotsu/camera-controls +* (c) 2017 @yomotsu +* Released under the MIT License. +*/ +const OU={LEFT:1,RIGHT:2,MIDDLE:4},$=Object.freeze({NONE:0,ROTATE:1,TRUCK:2,OFFSET:4,DOLLY:8,ZOOM:16,TOUCH_ROTATE:32,TOUCH_TRUCK:64,TOUCH_OFFSET:128,TOUCH_DOLLY:256,TOUCH_ZOOM:512,TOUCH_DOLLY_TRUCK:1024,TOUCH_DOLLY_OFFSET:2048,TOUCH_DOLLY_ROTATE:4096,TOUCH_ZOOM_TRUCK:8192,TOUCH_ZOOM_OFFSET:16384,TOUCH_ZOOM_ROTATE:32768}),kU={NONE:0,IN:1,OUT:-1};function AU(e){return e.isPerspectiveCamera}function jU(e){return e.isOrthographicCamera}const MU=Math.PI*2,NU=Math.PI/2,PU=1e-5,FU=Math.PI/180;function IU(e,t,n){return Math.max(t,Math.min(n,e))}function LU(e,t=PU){return Math.abs(e)0==p>u&&(p=u,n.value=(p-u)/a),p}function UU(e,t,n,r,i=1/0,a,o){r=Math.max(1e-4,r);let s=2/r,c=s*a,l=1/(1+c+.48*c*c+.235*c*c*c),u=t.x,d=t.y,f=t.z,p=e.x-u,m=e.y-d,h=e.z-f,g=u,_=d,v=f,y=i*r,b=y*y,x=p*p+m*m+h*h;if(x>b){let e=Math.sqrt(x);p=p/e*y,m=m/e*y,h=h/e*y}u=e.x-p,d=e.y-m,f=e.z-h;let S=(n.x+s*p)*a,C=(n.y+s*m)*a,w=(n.z+s*h)*a;n.x=(n.x-s*S)*l,n.y=(n.y-s*C)*l,n.z=(n.z-s*w)*l,o.x=u+(p+S)*l,o.y=d+(m+C)*l,o.z=f+(h+w)*l;let T=g-e.x,E=_-e.y,D=v-e.z,O=o.x-g,ee=o.y-_,te=o.z-v;return T*O+E*ee+D*te>0&&(o.x=g,o.y=_,o.z=v,n.x=(o.x-g)/a,n.y=(o.y-_)/a,n.z=(o.z-v)/a),o}function WU(e,t){t.set(0,0),e.forEach(e=>{t.x+=e.clientX,t.y+=e.clientY}),t.x/=e.length,t.y/=e.length}function GU(e,t){return jU(e)?(console.warn(`${t} is not supported in OrthographicCamera`),!0):!1}var KU=class{constructor(){this._listeners={}}addEventListener(e,t){let n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){let n=this._listeners;return n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){let n=this._listeners[e];if(n!==void 0){let e=n.indexOf(t);e!==-1&&n.splice(e,1)}}removeAllEventListeners(e){if(!e){this._listeners={};return}Array.isArray(this._listeners[e])&&(this._listeners[e].length=0)}dispatchEvent(e){let t=this._listeners[e.type];if(t!==void 0){e.target=this;let n=t.slice(0);for(let t=0,r=n.length;t{},this._enabled=!0,this._state=$.NONE,this._viewport=null,this._changedDolly=0,this._changedZoom=0,this._hasRested=!0,this._boundaryEnclosesCamera=!1,this._needsUpdate=!0,this._updatedLastTime=!1,this._elementRect=new DOMRect,this._isDragging=!1,this._dragNeedsUpdate=!0,this._activePointers=[],this._lockedPointer=null,this._interactiveArea=new DOMRect(0,0,1,1),this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._isUserControllingOffset=!1,this._isUserControllingZoom=!1,this._lastDollyDirection=kU.NONE,this._thetaVelocity={value:0},this._phiVelocity={value:0},this._radiusVelocity={value:0},this._targetVelocity=new ZU.Vector3,this._focalOffsetVelocity=new ZU.Vector3,this._zoomVelocity={value:0},this._truckInternal=(e,t,n)=>{let r,i;if(AU(this._camera)){let n=nW.copy(this._camera.position).sub(this._target),a=this._camera.getEffectiveFOV()*FU,o=n.length()*Math.tan(a*.5);r=this.truckSpeed*e*o/this._elementRect.height,i=this.truckSpeed*t*o/this._elementRect.height}else if(jU(this._camera)){let n=this._camera;r=e*(n.right-n.left)/n.zoom/this._elementRect.width,i=t*(n.top-n.bottom)/n.zoom/this._elementRect.height}else return;this.verticalDragToForward?(n?this.setFocalOffset(this._focalOffsetEnd.x+r,this._focalOffsetEnd.y,this._focalOffsetEnd.z,!0):this.truck(r,0,!0),this.forward(-i,!0)):n?this.setFocalOffset(this._focalOffsetEnd.x+r,this._focalOffsetEnd.y+i,this._focalOffsetEnd.z,!0):this.truck(r,i,!0)},this._rotateInternal=(e,t)=>{let n=MU*this.azimuthRotateSpeed*e/this._elementRect.height,r=MU*this.polarRotateSpeed*t/this._elementRect.height;this.rotate(n,r,!0)},this._dollyInternal=(e,t,n)=>{let r=.95**(-e*this.dollySpeed),i=this._sphericalEnd.radius,a=this._sphericalEnd.radius*r,o=IU(a,this.minDistance,this.maxDistance),s=o-a;this.infinityDolly&&this.dollyToCursor?this._dollyToNoClamp(a,!0):(this.infinityDolly&&!this.dollyToCursor&&this.dollyInFixed(s,!0),this._dollyToNoClamp(o,!0)),this.dollyToCursor&&(this._changedDolly+=(this.infinityDolly?a:o)-i,this._dollyControlCoord.set(t,n)),this._lastDollyDirection=Math.sign(-e)},this._zoomInternal=(e,t,n)=>{let r=.95**(e*this.dollySpeed),i=this._zoom,a=this._zoom*r;this.zoomTo(a,!0),this.dollyToCursor&&(this._changedZoom+=a-i,this._dollyControlCoord.set(t,n))},typeof ZU>`u`&&console.error("camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information."),this._camera=t,this._yAxisUpSpace=new ZU.Quaternion().setFromUnitVectors(this._camera.up,$U),this._yAxisUpSpaceInverse=this._yAxisUpSpace.clone().invert(),this._state=$.NONE,this._target=new ZU.Vector3,this._targetEnd=this._target.clone(),this._focalOffset=new ZU.Vector3,this._focalOffsetEnd=this._focalOffset.clone(),this._spherical=new ZU.Spherical().setFromVector3(nW.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace)),this._sphericalEnd=this._spherical.clone(),this._lastDistance=this._spherical.radius,this._zoom=this._camera.zoom,this._zoomEnd=this._zoom,this._lastZoom=this._zoom,this._nearPlaneCorners=[new ZU.Vector3,new ZU.Vector3,new ZU.Vector3,new ZU.Vector3],this._updateNearPlaneCorners(),this._boundary=new ZU.Box3(new ZU.Vector3(-1/0,-1/0,-1/0),new ZU.Vector3(1/0,1/0,1/0)),this._cameraUp0=this._camera.up.clone(),this._target0=this._target.clone(),this._position0=this._camera.position.clone(),this._zoom0=this._zoom,this._focalOffset0=this._focalOffset.clone(),this._dollyControlCoord=new ZU.Vector2,this.mouseButtons={left:$.ROTATE,middle:$.DOLLY,right:$.TRUCK,wheel:AU(this._camera)?$.DOLLY:jU(this._camera)?$.ZOOM:$.NONE},this.touches={one:$.TOUCH_ROTATE,two:AU(this._camera)?$.TOUCH_DOLLY_TRUCK:jU(this._camera)?$.TOUCH_ZOOM_TRUCK:$.NONE,three:$.TOUCH_TRUCK};let r=new ZU.Vector2,i=new ZU.Vector2,a=new ZU.Vector2,o=e=>{if(!this._enabled||!this._domElement)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){let t=this._domElement.getBoundingClientRect(),n=e.clientX/t.width,r=e.clientY/t.height;if(nthis._interactiveArea.right||rthis._interactiveArea.bottom)return}let t=e.pointerType===`mouse`?(e.buttons&OU.LEFT)===OU.LEFT?OU.LEFT:(e.buttons&OU.MIDDLE)===OU.MIDDLE?OU.MIDDLE:(e.buttons&OU.RIGHT)===OU.RIGHT?OU.RIGHT:null:null;if(t!==null){let e=this._findPointerByMouseButton(t);e&&this._disposePointer(e)}if((e.buttons&OU.LEFT)===OU.LEFT&&this._lockedPointer)return;let n={pointerId:e.pointerId,clientX:e.clientX,clientY:e.clientY,deltaX:0,deltaY:0,mouseButton:t};this._activePointers.push(n),this._domElement.ownerDocument.removeEventListener(`pointermove`,s,{passive:!1}),this._domElement.ownerDocument.removeEventListener(`pointerup`,c),this._domElement.ownerDocument.addEventListener(`pointermove`,s,{passive:!1}),this._domElement.ownerDocument.addEventListener(`pointerup`,c),this._isDragging=!0,f(e)},s=e=>{e.cancelable&&e.preventDefault();let t=e.pointerId,n=this._lockedPointer||this._findPointerById(t);if(n){if(n.clientX=e.clientX,n.clientY=e.clientY,n.deltaX=e.movementX,n.deltaY=e.movementY,this._state=0,e.pointerType===`touch`)switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else (!this._isDragging&&this._lockedPointer||this._isDragging&&(e.buttons&OU.LEFT)===OU.LEFT)&&(this._state|=this.mouseButtons.left),this._isDragging&&(e.buttons&OU.MIDDLE)===OU.MIDDLE&&(this._state|=this.mouseButtons.middle),this._isDragging&&(e.buttons&OU.RIGHT)===OU.RIGHT&&(this._state|=this.mouseButtons.right);p()}},c=e=>{let t=this._findPointerById(e.pointerId);if(!(t&&t===this._lockedPointer)){if(t&&this._disposePointer(t),e.pointerType===`touch`)switch(this._activePointers.length){case 0:this._state=$.NONE;break;case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else this._state=$.NONE;m()}},l=-1,u=e=>{if(!this._domElement||!this._enabled||this.mouseButtons.wheel===$.NONE)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){let t=this._domElement.getBoundingClientRect(),n=e.clientX/t.width,r=e.clientY/t.height;if(nthis._interactiveArea.right||rthis._interactiveArea.bottom)return}if(e.preventDefault(),this.dollyToCursor||this.mouseButtons.wheel===$.ROTATE||this.mouseButtons.wheel===$.TRUCK){let e=performance.now();l-e<1e3&&this._getClientRect(this._elementRect),l=e}let t=XU?-1:-3,n=e.deltaMode===1?e.deltaY/t:e.deltaY/(t*10),r=this.dollyToCursor?(e.clientX-this._elementRect.x)/this._elementRect.width*2-1:0,i=this.dollyToCursor?(e.clientY-this._elementRect.y)/this._elementRect.height*-2+1:0;switch(this.mouseButtons.wheel){case $.ROTATE:this._rotateInternal(e.deltaX,e.deltaY),this._isUserControllingRotate=!0;break;case $.TRUCK:this._truckInternal(e.deltaX,e.deltaY,!1),this._isUserControllingTruck=!0;break;case $.OFFSET:this._truckInternal(e.deltaX,e.deltaY,!0),this._isUserControllingOffset=!0;break;case $.DOLLY:this._dollyInternal(-n,r,i),this._isUserControllingDolly=!0;break;case $.ZOOM:this._zoomInternal(-n,r,i),this._isUserControllingZoom=!0;break}this.dispatchEvent({type:`control`})},d=t=>{if(!(!this._domElement||!this._enabled)){if(this.mouseButtons.right===e.ACTION.NONE){let e=t instanceof PointerEvent?t.pointerId:0,n=this._findPointerById(e);n&&this._disposePointer(n),this._domElement.ownerDocument.removeEventListener(`pointermove`,s,{passive:!1}),this._domElement.ownerDocument.removeEventListener(`pointerup`,c);return}t.preventDefault()}},f=e=>{if(this._enabled){if(WU(this._activePointers,tW),this._getClientRect(this._elementRect),r.copy(tW),i.copy(tW),this._activePointers.length>=2){let e=tW.x-this._activePointers[1].clientX,t=tW.y-this._activePointers[1].clientY,n=Math.sqrt(e*e+t*t);a.set(0,n);let r=(this._activePointers[0].clientX+this._activePointers[1].clientX)*.5,o=(this._activePointers[0].clientY+this._activePointers[1].clientY)*.5;i.set(r,o)}if(this._state=0,!e)this._lockedPointer&&(this._state|=this.mouseButtons.left);else if(`pointerType`in e&&e.pointerType===`touch`)switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else !this._lockedPointer&&(e.buttons&OU.LEFT)===OU.LEFT&&(this._state|=this.mouseButtons.left),(e.buttons&OU.MIDDLE)===OU.MIDDLE&&(this._state|=this.mouseButtons.middle),(e.buttons&OU.RIGHT)===OU.RIGHT&&(this._state|=this.mouseButtons.right);((this._state&$.ROTATE)===$.ROTATE||(this._state&$.TOUCH_ROTATE)===$.TOUCH_ROTATE||(this._state&$.TOUCH_DOLLY_ROTATE)===$.TOUCH_DOLLY_ROTATE||(this._state&$.TOUCH_ZOOM_ROTATE)===$.TOUCH_ZOOM_ROTATE)&&(this._sphericalEnd.theta=this._spherical.theta,this._sphericalEnd.phi=this._spherical.phi,this._thetaVelocity.value=0,this._phiVelocity.value=0),((this._state&$.TRUCK)===$.TRUCK||(this._state&$.TOUCH_TRUCK)===$.TOUCH_TRUCK||(this._state&$.TOUCH_DOLLY_TRUCK)===$.TOUCH_DOLLY_TRUCK||(this._state&$.TOUCH_ZOOM_TRUCK)===$.TOUCH_ZOOM_TRUCK)&&(this._targetEnd.copy(this._target),this._targetVelocity.set(0,0,0)),((this._state&$.DOLLY)===$.DOLLY||(this._state&$.TOUCH_DOLLY)===$.TOUCH_DOLLY||(this._state&$.TOUCH_DOLLY_TRUCK)===$.TOUCH_DOLLY_TRUCK||(this._state&$.TOUCH_DOLLY_OFFSET)===$.TOUCH_DOLLY_OFFSET||(this._state&$.TOUCH_DOLLY_ROTATE)===$.TOUCH_DOLLY_ROTATE)&&(this._sphericalEnd.radius=this._spherical.radius,this._radiusVelocity.value=0),((this._state&$.ZOOM)===$.ZOOM||(this._state&$.TOUCH_ZOOM)===$.TOUCH_ZOOM||(this._state&$.TOUCH_ZOOM_TRUCK)===$.TOUCH_ZOOM_TRUCK||(this._state&$.TOUCH_ZOOM_OFFSET)===$.TOUCH_ZOOM_OFFSET||(this._state&$.TOUCH_ZOOM_ROTATE)===$.TOUCH_ZOOM_ROTATE)&&(this._zoomEnd=this._zoom,this._zoomVelocity.value=0),((this._state&$.OFFSET)===$.OFFSET||(this._state&$.TOUCH_OFFSET)===$.TOUCH_OFFSET||(this._state&$.TOUCH_DOLLY_OFFSET)===$.TOUCH_DOLLY_OFFSET||(this._state&$.TOUCH_ZOOM_OFFSET)===$.TOUCH_ZOOM_OFFSET)&&(this._focalOffsetEnd.copy(this._focalOffset),this._focalOffsetVelocity.set(0,0,0)),this.dispatchEvent({type:`controlstart`})}},p=()=>{if(!this._enabled||!this._dragNeedsUpdate)return;this._dragNeedsUpdate=!1,WU(this._activePointers,tW);let e=this._domElement&&this._domElement.ownerDocument.pointerLockElement===this._domElement?this._lockedPointer||this._activePointers[0]:null,t=e?-e.deltaX:i.x-tW.x,n=e?-e.deltaY:i.y-tW.y;if(i.copy(tW),((this._state&$.ROTATE)===$.ROTATE||(this._state&$.TOUCH_ROTATE)===$.TOUCH_ROTATE||(this._state&$.TOUCH_DOLLY_ROTATE)===$.TOUCH_DOLLY_ROTATE||(this._state&$.TOUCH_ZOOM_ROTATE)===$.TOUCH_ZOOM_ROTATE)&&(this._rotateInternal(t,n),this._isUserControllingRotate=!0),(this._state&$.DOLLY)===$.DOLLY||(this._state&$.ZOOM)===$.ZOOM){let e=this.dollyToCursor?(r.x-this._elementRect.x)/this._elementRect.width*2-1:0,t=this.dollyToCursor?(r.y-this._elementRect.y)/this._elementRect.height*-2+1:0,i=this.dollyDragInverted?-1:1;(this._state&$.DOLLY)===$.DOLLY?(this._dollyInternal(i*n*YU,e,t),this._isUserControllingDolly=!0):(this._zoomInternal(i*n*YU,e,t),this._isUserControllingZoom=!0)}if((this._state&$.TOUCH_DOLLY)===$.TOUCH_DOLLY||(this._state&$.TOUCH_ZOOM)===$.TOUCH_ZOOM||(this._state&$.TOUCH_DOLLY_TRUCK)===$.TOUCH_DOLLY_TRUCK||(this._state&$.TOUCH_ZOOM_TRUCK)===$.TOUCH_ZOOM_TRUCK||(this._state&$.TOUCH_DOLLY_OFFSET)===$.TOUCH_DOLLY_OFFSET||(this._state&$.TOUCH_ZOOM_OFFSET)===$.TOUCH_ZOOM_OFFSET||(this._state&$.TOUCH_DOLLY_ROTATE)===$.TOUCH_DOLLY_ROTATE||(this._state&$.TOUCH_ZOOM_ROTATE)===$.TOUCH_ZOOM_ROTATE){let e=tW.x-this._activePointers[1].clientX,t=tW.y-this._activePointers[1].clientY,n=Math.sqrt(e*e+t*t),r=a.y-n;a.set(0,n);let o=this.dollyToCursor?(i.x-this._elementRect.x)/this._elementRect.width*2-1:0,s=this.dollyToCursor?(i.y-this._elementRect.y)/this._elementRect.height*-2+1:0;(this._state&$.TOUCH_DOLLY)===$.TOUCH_DOLLY||(this._state&$.TOUCH_DOLLY_ROTATE)===$.TOUCH_DOLLY_ROTATE||(this._state&$.TOUCH_DOLLY_TRUCK)===$.TOUCH_DOLLY_TRUCK||(this._state&$.TOUCH_DOLLY_OFFSET)===$.TOUCH_DOLLY_OFFSET?(this._dollyInternal(r*YU,o,s),this._isUserControllingDolly=!0):(this._zoomInternal(r*YU,o,s),this._isUserControllingZoom=!0)}((this._state&$.TRUCK)===$.TRUCK||(this._state&$.TOUCH_TRUCK)===$.TOUCH_TRUCK||(this._state&$.TOUCH_DOLLY_TRUCK)===$.TOUCH_DOLLY_TRUCK||(this._state&$.TOUCH_ZOOM_TRUCK)===$.TOUCH_ZOOM_TRUCK)&&(this._truckInternal(t,n,!1),this._isUserControllingTruck=!0),((this._state&$.OFFSET)===$.OFFSET||(this._state&$.TOUCH_OFFSET)===$.TOUCH_OFFSET||(this._state&$.TOUCH_DOLLY_OFFSET)===$.TOUCH_DOLLY_OFFSET||(this._state&$.TOUCH_ZOOM_OFFSET)===$.TOUCH_ZOOM_OFFSET)&&(this._truckInternal(t,n,!0),this._isUserControllingOffset=!0),this.dispatchEvent({type:`control`})},m=()=>{WU(this._activePointers,tW),i.copy(tW),this._dragNeedsUpdate=!1,(this._activePointers.length===0||this._activePointers.length===1&&this._activePointers[0]===this._lockedPointer)&&(this._isDragging=!1),this._activePointers.length===0&&this._domElement&&(this._domElement.ownerDocument.removeEventListener(`pointermove`,s,{passive:!1}),this._domElement.ownerDocument.removeEventListener(`pointerup`,c),this.dispatchEvent({type:`controlend`}))};this.lockPointer=()=>{!this._enabled||!this._domElement||(this.cancel(),this._lockedPointer={pointerId:-1,clientX:0,clientY:0,deltaX:0,deltaY:0,mouseButton:null},this._activePointers.push(this._lockedPointer),this._domElement.ownerDocument.removeEventListener(`pointermove`,s,{passive:!1}),this._domElement.ownerDocument.removeEventListener(`pointerup`,c),this._domElement.requestPointerLock(),this._domElement.ownerDocument.addEventListener(`pointerlockchange`,h),this._domElement.ownerDocument.addEventListener(`pointerlockerror`,g),this._domElement.ownerDocument.addEventListener(`pointermove`,s,{passive:!1}),this._domElement.ownerDocument.addEventListener(`pointerup`,c),f())},this.unlockPointer=()=>{var e,t,n;this._lockedPointer!==null&&(this._disposePointer(this._lockedPointer),this._lockedPointer=null),(e=this._domElement)==null||e.ownerDocument.exitPointerLock(),(t=this._domElement)==null||t.ownerDocument.removeEventListener(`pointerlockchange`,h),(n=this._domElement)==null||n.ownerDocument.removeEventListener(`pointerlockerror`,g),this.cancel()};let h=()=>{this._domElement&&this._domElement.ownerDocument.pointerLockElement===this._domElement||this.unlockPointer()},g=()=>{this.unlockPointer()};this._addAllEventListeners=e=>{this._domElement=e,this._domElement.style.touchAction=`none`,this._domElement.style.userSelect=`none`,this._domElement.style.webkitUserSelect=`none`,this._domElement.addEventListener(`pointerdown`,o),this._domElement.addEventListener(`pointercancel`,c),this._domElement.addEventListener(`wheel`,u,{passive:!1}),this._domElement.addEventListener(`contextmenu`,d)},this._removeAllEventListeners=()=>{this._domElement&&(this._domElement.style.touchAction=``,this._domElement.style.userSelect=``,this._domElement.style.webkitUserSelect=``,this._domElement.removeEventListener(`pointerdown`,o),this._domElement.removeEventListener(`pointercancel`,c),this._domElement.removeEventListener(`wheel`,u,{passive:!1}),this._domElement.removeEventListener(`contextmenu`,d),this._domElement.ownerDocument.removeEventListener(`pointermove`,s,{passive:!1}),this._domElement.ownerDocument.removeEventListener(`pointerup`,c),this._domElement.ownerDocument.removeEventListener(`pointerlockchange`,h),this._domElement.ownerDocument.removeEventListener(`pointerlockerror`,g))},this.cancel=()=>{this._state!==$.NONE&&(this._state=$.NONE,this._activePointers.length=0,m())},n&&this.connect(n),this.update(0)}get camera(){return this._camera}set camera(e){this._camera=e,this.updateCameraUp(),this._camera.updateProjectionMatrix(),this._updateNearPlaneCorners(),this._needsUpdate=!0}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this._domElement&&(e?(this._domElement.style.touchAction=`none`,this._domElement.style.userSelect=`none`,this._domElement.style.webkitUserSelect=`none`):(this.cancel(),this._domElement.style.touchAction=``,this._domElement.style.userSelect=``,this._domElement.style.webkitUserSelect=``))}get active(){return!this._hasRested}get currentAction(){return this._state}get distance(){return this._spherical.radius}set distance(e){this._spherical.radius===e&&this._sphericalEnd.radius===e||(this._spherical.radius=e,this._sphericalEnd.radius=e,this._needsUpdate=!0)}get azimuthAngle(){return this._spherical.theta}set azimuthAngle(e){this._spherical.theta===e&&this._sphericalEnd.theta===e||(this._spherical.theta=e,this._sphericalEnd.theta=e,this._needsUpdate=!0)}get polarAngle(){return this._spherical.phi}set polarAngle(e){this._spherical.phi===e&&this._sphericalEnd.phi===e||(this._spherical.phi=e,this._sphericalEnd.phi=e,this._needsUpdate=!0)}get boundaryEnclosesCamera(){return this._boundaryEnclosesCamera}set boundaryEnclosesCamera(e){this._boundaryEnclosesCamera=e,this._needsUpdate=!0}set interactiveArea(e){this._interactiveArea.width=IU(e.width,0,1),this._interactiveArea.height=IU(e.height,0,1),this._interactiveArea.x=IU(e.x,0,1-this._interactiveArea.width),this._interactiveArea.y=IU(e.y,0,1-this._interactiveArea.height)}addEventListener(e,t){super.addEventListener(e,t)}removeEventListener(e,t){super.removeEventListener(e,t)}rotate(e,t,n=!1){return this.rotateTo(this._sphericalEnd.theta+e,this._sphericalEnd.phi+t,n)}rotateAzimuthTo(e,t=!1){return this.rotateTo(e,this._sphericalEnd.phi,t)}rotatePolarTo(e,t=!1){return this.rotateTo(this._sphericalEnd.theta,e,t)}rotateTo(e,t,n=!1){this._isUserControllingRotate=!1;let r=IU(e,this.minAzimuthAngle,this.maxAzimuthAngle),i=IU(t,this.minPolarAngle,this.maxPolarAngle);this._sphericalEnd.theta=r,this._sphericalEnd.phi=i,this._sphericalEnd.makeSafe(),this._needsUpdate=!0,n||(this._spherical.theta=this._sphericalEnd.theta,this._spherical.phi=this._sphericalEnd.phi);let a=!n||RU(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&RU(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold);return this._createOnRestPromise(a)}dolly(e,t=!1){return this.dollyTo(this._sphericalEnd.radius-e,t)}dollyTo(e,t=!1){return this._isUserControllingDolly=!1,this._lastDollyDirection=kU.NONE,this._changedDolly=0,this._dollyToNoClamp(IU(e,this.minDistance,this.maxDistance),t)}_dollyToNoClamp(e,t=!1){let n=this._sphericalEnd.radius;if(this.colliderMeshes.length>=1){let t=this._collisionTest(),r=RU(t,this._spherical.radius);if(!(n>e)&&r)return Promise.resolve();this._sphericalEnd.radius=Math.min(e,t)}else this._sphericalEnd.radius=e;this._needsUpdate=!0,t||(this._spherical.radius=this._sphericalEnd.radius);let r=!t||RU(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(r)}dollyInFixed(e,t=!1){this._targetEnd.add(this._getCameraDirection(aW).multiplyScalar(e)),t||this._target.copy(this._targetEnd);let n=!t||RU(this._target.x,this._targetEnd.x,this.restThreshold)&&RU(this._target.y,this._targetEnd.y,this.restThreshold)&&RU(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(n)}zoom(e,t=!1){return this.zoomTo(this._zoomEnd+e,t)}zoomTo(e,t=!1){this._isUserControllingZoom=!1,this._zoomEnd=IU(e,this.minZoom,this.maxZoom),this._needsUpdate=!0,t||(this._zoom=this._zoomEnd);let n=!t||RU(this._zoom,this._zoomEnd,this.restThreshold);return this._changedZoom=0,this._createOnRestPromise(n)}pan(e,t,n=!1){return console.warn("`pan` has been renamed to `truck`"),this.truck(e,t,n)}truck(e,t,n=!1){this._camera.updateMatrix(),oW.setFromMatrixColumn(this._camera.matrix,0),sW.setFromMatrixColumn(this._camera.matrix,1),oW.multiplyScalar(e),sW.multiplyScalar(-t);let r=nW.copy(oW).add(sW),i=rW.copy(this._targetEnd).add(r);return this.moveTo(i.x,i.y,i.z,n)}forward(e,t=!1){nW.setFromMatrixColumn(this._camera.matrix,0),nW.crossVectors(this._camera.up,nW),nW.multiplyScalar(e);let n=rW.copy(this._targetEnd).add(nW);return this.moveTo(n.x,n.y,n.z,t)}elevate(e,t=!1){return nW.copy(this._camera.up).multiplyScalar(e),this.moveTo(this._targetEnd.x+nW.x,this._targetEnd.y+nW.y,this._targetEnd.z+nW.z,t)}moveTo(e,t,n,r=!1){this._isUserControllingTruck=!1;let i=nW.set(e,t,n).sub(this._targetEnd);this._encloseToBoundary(this._targetEnd,i,this.boundaryFriction),this._needsUpdate=!0,r||this._target.copy(this._targetEnd);let a=!r||RU(this._target.x,this._targetEnd.x,this.restThreshold)&&RU(this._target.y,this._targetEnd.y,this.restThreshold)&&RU(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(a)}lookInDirectionOf(e,t,n,r=!1){let i=nW.set(e,t,n).sub(this._targetEnd).normalize().multiplyScalar(-this._sphericalEnd.radius).add(this._targetEnd);return this.setPosition(i.x,i.y,i.z,r)}fitToBox(e,t,{cover:n=!1,paddingLeft:r=0,paddingRight:i=0,paddingBottom:a=0,paddingTop:o=0}={}){let s=[],c=e.isBox3?pW.copy(e):pW.setFromObject(e);c.isEmpty()&&(console.warn(`camera-controls: fitTo() cannot be used with an empty box. Aborting`),Promise.resolve());let l=zU(this._sphericalEnd.theta,NU),u=zU(this._sphericalEnd.phi,NU);s.push(this.rotateTo(l,u,t));let d=nW.setFromSpherical(this._sphericalEnd).normalize(),f=gW.setFromUnitVectors(d,eW),p=RU(Math.abs(d.y),1);p&&f.multiply(_W.setFromAxisAngle($U,l)),f.multiply(this._yAxisUpSpaceInverse);let m=mW.makeEmpty();rW.copy(c.min).applyQuaternion(f),m.expandByPoint(rW),rW.copy(c.min).setX(c.max.x).applyQuaternion(f),m.expandByPoint(rW),rW.copy(c.min).setY(c.max.y).applyQuaternion(f),m.expandByPoint(rW),rW.copy(c.max).setZ(c.min.z).applyQuaternion(f),m.expandByPoint(rW),rW.copy(c.min).setZ(c.max.z).applyQuaternion(f),m.expandByPoint(rW),rW.copy(c.max).setY(c.min.y).applyQuaternion(f),m.expandByPoint(rW),rW.copy(c.max).setX(c.min.x).applyQuaternion(f),m.expandByPoint(rW),rW.copy(c.max).applyQuaternion(f),m.expandByPoint(rW),m.min.x-=r,m.min.y-=a,m.max.x+=i,m.max.y+=o,f.setFromUnitVectors(eW,d),p&&f.premultiply(_W.invert()),f.premultiply(this._yAxisUpSpace);let h=m.getSize(nW),g=m.getCenter(rW).applyQuaternion(f);if(AU(this._camera)){let e=this.getDistanceToFitBox(h.x,h.y,h.z,n);s.push(this.moveTo(g.x,g.y,g.z,t)),s.push(this.dollyTo(e,t)),s.push(this.setFocalOffset(0,0,0,t))}else if(jU(this._camera)){let e=this._camera,r=e.right-e.left,i=e.top-e.bottom,a=n?Math.max(r/h.x,i/h.y):Math.min(r/h.x,i/h.y);s.push(this.moveTo(g.x,g.y,g.z,t)),s.push(this.zoomTo(a,t)),s.push(this.setFocalOffset(0,0,0,t))}return Promise.all(s)}fitToSphere(t,n){let r=[],i=`isObject3D`in t?e.createBoundingSphere(t,hW):hW.copy(t);if(r.push(this.moveTo(i.center.x,i.center.y,i.center.z,n)),AU(this._camera)){let e=this.getDistanceToFitSphere(i.radius);r.push(this.dollyTo(e,n))}else if(jU(this._camera)){let e=this._camera.right-this._camera.left,t=this._camera.top-this._camera.bottom,a=2*i.radius,o=Math.min(e/a,t/a);r.push(this.zoomTo(o,n))}return r.push(this.setFocalOffset(0,0,0,n)),Promise.all(r)}setLookAt(e,t,n,r,i,a,o=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._lastDollyDirection=kU.NONE,this._changedDolly=0;let s=rW.set(r,i,a),c=nW.set(e,t,n);this._targetEnd.copy(s),this._sphericalEnd.setFromVector3(c.sub(s).applyQuaternion(this._yAxisUpSpace)),this.normalizeRotations(),this._needsUpdate=!0,o||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));let l=!o||RU(this._target.x,this._targetEnd.x,this.restThreshold)&&RU(this._target.y,this._targetEnd.y,this.restThreshold)&&RU(this._target.z,this._targetEnd.z,this.restThreshold)&&RU(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&RU(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&RU(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(l)}lerpLookAt(e,t,n,r,i,a,o,s,c,l,u,d,f,p=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._lastDollyDirection=kU.NONE,this._changedDolly=0;let m=nW.set(r,i,a),h=rW.set(e,t,n);dW.setFromVector3(h.sub(m).applyQuaternion(this._yAxisUpSpace));let g=iW.set(l,u,d),_=rW.set(o,s,c);fW.setFromVector3(_.sub(g).applyQuaternion(this._yAxisUpSpace)),this._targetEnd.copy(m.lerp(g,f));let v=fW.theta-dW.theta,y=fW.phi-dW.phi,b=fW.radius-dW.radius;this._sphericalEnd.set(dW.radius+b*f,dW.phi+y*f,dW.theta+v*f),this.normalizeRotations(),this._needsUpdate=!0,p||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));let x=!p||RU(this._target.x,this._targetEnd.x,this.restThreshold)&&RU(this._target.y,this._targetEnd.y,this.restThreshold)&&RU(this._target.z,this._targetEnd.z,this.restThreshold)&&RU(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&RU(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&RU(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(x)}setPosition(e,t,n,r=!1){return this.setLookAt(e,t,n,this._targetEnd.x,this._targetEnd.y,this._targetEnd.z,r)}setTarget(e,t,n,r=!1){let i=this.getPosition(nW),a=this.setLookAt(i.x,i.y,i.z,e,t,n,r);return this._sphericalEnd.phi=IU(this._sphericalEnd.phi,this.minPolarAngle,this.maxPolarAngle),a}setFocalOffset(e,t,n,r=!1){this._isUserControllingOffset=!1,this._focalOffsetEnd.set(e,t,n),this._needsUpdate=!0,r||this._focalOffset.copy(this._focalOffsetEnd);let i=!r||RU(this._focalOffset.x,this._focalOffsetEnd.x,this.restThreshold)&&RU(this._focalOffset.y,this._focalOffsetEnd.y,this.restThreshold)&&RU(this._focalOffset.z,this._focalOffsetEnd.z,this.restThreshold);return this._createOnRestPromise(i)}setOrbitPoint(e,t,n){this._camera.updateMatrixWorld(),oW.setFromMatrixColumn(this._camera.matrixWorldInverse,0),sW.setFromMatrixColumn(this._camera.matrixWorldInverse,1),cW.setFromMatrixColumn(this._camera.matrixWorldInverse,2);let r=nW.set(e,t,n),i=r.distanceTo(this._camera.position),a=r.sub(this._camera.position);oW.multiplyScalar(a.x),sW.multiplyScalar(a.y),cW.multiplyScalar(a.z),nW.copy(oW).add(sW).add(cW),nW.z+=i,this.dollyTo(i,!1),this.setFocalOffset(-nW.x,nW.y,-nW.z,!1),this.moveTo(e,t,n,!1)}setBoundary(e){if(!e){this._boundary.min.set(-1/0,-1/0,-1/0),this._boundary.max.set(1/0,1/0,1/0),this._needsUpdate=!0;return}this._boundary.copy(e),this._boundary.clampPoint(this._targetEnd,this._targetEnd),this._needsUpdate=!0}setViewport(e,t,n,r){if(e===null){this._viewport=null;return}this._viewport=this._viewport||new ZU.Vector4,typeof e==`number`?this._viewport.set(e,t,n,r):this._viewport.copy(e)}getDistanceToFitBox(e,t,n,r=!1){if(GU(this._camera,`getDistanceToFitBox`))return this._spherical.radius;let i=e/t,a=this._camera.getEffectiveFOV()*FU,o=this._camera.aspect;return((r?i>o:it.pointerId===e)}_findPointerByMouseButton(e){return this._activePointers.find(t=>t.mouseButton===e)}_disposePointer(e){this._activePointers.splice(this._activePointers.indexOf(e),1)}_encloseToBoundary(e,t,n){let r=t.lengthSq();if(r===0)return e;let i=rW.copy(t).add(e),a=this._boundary.clampPoint(i,iW).sub(i),o=a.lengthSq();if(o===0)return e.add(t);if(o===r)return e;if(n===0)return e.add(t).add(a);{let r=1+n*o/t.dot(a);return e.add(rW.copy(t).multiplyScalar(r)).add(a.multiplyScalar(1-n))}}_updateNearPlaneCorners(){if(AU(this._camera)){let e=this._camera,t=e.near,n=e.getEffectiveFOV()*FU,r=Math.tan(n*.5)*t,i=r*e.aspect;this._nearPlaneCorners[0].set(-i,-r,0),this._nearPlaneCorners[1].set(i,-r,0),this._nearPlaneCorners[2].set(i,r,0),this._nearPlaneCorners[3].set(-i,r,0)}else if(jU(this._camera)){let e=this._camera,t=1/e.zoom,n=e.left*t,r=e.right*t,i=e.top*t,a=e.bottom*t;this._nearPlaneCorners[0].set(n,i,0),this._nearPlaneCorners[1].set(r,i,0),this._nearPlaneCorners[2].set(r,a,0),this._nearPlaneCorners[3].set(n,a,0)}}_collisionTest(){let e=1/0;if(!(this.colliderMeshes.length>=1)||GU(this._camera,`_collisionTest`))return e;let t=this._getTargetDirection(aW);vW.lookAt(QU,t,this._camera.up);for(let n=0;n<4;n++){let r=rW.copy(this._nearPlaneCorners[n]);r.applyMatrix4(vW);let i=iW.addVectors(this._target,r);yW.set(i,t),yW.far=this._spherical.radius+1;let a=yW.intersectObjects(this.colliderMeshes);a.length!==0&&a[0].distance{let t=()=>{this.removeEventListener(`rest`,t),e()};this.addEventListener(`rest`,t)}))}_addAllEventListeners(e){}_removeAllEventListeners(){}get dampingFactor(){return console.warn(`.dampingFactor has been deprecated. use smoothTime (in seconds) instead.`),0}set dampingFactor(e){console.warn(`.dampingFactor has been deprecated. use smoothTime (in seconds) instead.`)}get draggingDampingFactor(){return console.warn(`.draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.`),0}set draggingDampingFactor(e){console.warn(`.draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.`)}static createBoundingSphere(e,t=new ZU.Sphere){let n=t,r=n.center;pW.makeEmpty(),e.traverseVisible(e=>{e.isMesh&&pW.expandByObject(e)}),pW.getCenter(r);let i=0;return e.traverseVisible(e=>{if(!e.isMesh)return;let t=e,n=t.geometry.clone();n.applyMatrix4(t.matrixWorld);let a=n.attributes.position;for(let e=0,t=a.count;e!!(e&&e.isPerspectiveCamera),SW=e=>!!(e&&e.isOrthographicCamera),CW=`min-polar-angle.max-polar-angle.min-azimuth-angle.max-azimuth-angle.distance.min-distance.max-distance.infinity-dolly.min-zoom.max-zoom.smooth-time.dragging-smooth-time.max-speed.azimuth-rotate-speed.polar-rotate-speed.dolly-speed.dolly-drag-inverted.truck-speed.dolly-to-cursor.drag-to-offset.vertical-drag-to-forward.boundary-friction.rest-threshold.collider-meshes.args.mouse-buttons.touches`.split(`.`),wW=(e,t)=>({left:bW.ACTION.ROTATE,middle:bW.ACTION.DOLLY,right:bW.ACTION.TRUCK,wheel:xW(e)?bW.ACTION.DOLLY:SW(e)?bW.ACTION.ZOOM:bW.ACTION.NONE,...t}),TW=(e,t)=>({one:bW.ACTION.TOUCH_ROTATE,two:xW(e)?bW.ACTION.TOUCH_DOLLY_TRUCK:SW(e)?bW.ACTION.TOUCH_ZOOM_TRUCK:bW.ACTION.NONE,three:bW.ACTION.TOUCH_TRUCK,...t}),EW=B({__name:`CameraControls`,props:{makeDefault:{type:Boolean,default:!1},camera:{},domElement:{},minPolarAngle:{default:0},maxPolarAngle:{default:Math.PI},minAzimuthAngle:{default:-1/0},maxAzimuthAngle:{default:1/0},distance:{default:()=>Ie().camera.value.position.z},minDistance:{default:2**-52},maxDistance:{default:1/0},infinityDolly:{type:Boolean,default:!1},minZoom:{default:.01},maxZoom:{default:1/0},smoothTime:{default:.25},draggingSmoothTime:{default:.125},maxSpeed:{default:1/0},azimuthRotateSpeed:{default:1},polarRotateSpeed:{default:1},dollySpeed:{default:1},dollyDragInverted:{type:Boolean,default:!1},truckSpeed:{default:2},dollyToCursor:{type:Boolean,default:!1},dragToOffset:{type:Boolean,default:!1},verticalDragToForward:{type:Boolean,default:!1},boundaryFriction:{default:0},restThreshold:{default:.01},colliderMeshes:{default:()=>[]},mouseButtons:{default:()=>wW(Ie().camera.value)},touches:{default:()=>TW(Ie().camera.value)}},emits:[`change`,`start`,`end`],setup(e,{expose:t,emit:n}){let r=e,i=n,{makeDefault:a,minPolarAngle:o,maxPolarAngle:s,minAzimuthAngle:c,maxAzimuthAngle:l,distance:u,minDistance:d,maxDistance:f,infinityDolly:p,minZoom:m,maxZoom:h,smoothTime:g,draggingSmoothTime:_,maxSpeed:v,azimuthRotateSpeed:y,polarRotateSpeed:b,dollySpeed:x,dollyDragInverted:S,truckSpeed:C,dollyToCursor:w,dragToOffset:T,verticalDragToForward:E,boundaryFriction:D,restThreshold:O,colliderMeshes:ee}=bn(r),te={Box3:_e,MathUtils:{clamp:bt.clamp},Matrix4:qe,Quaternion:Jt,Raycaster:xt,Sphere:Vt,Spherical:Ze,Vector2:Et,Vector3:P,Vector4:sn};bW.install({THREE:te});let{camera:ne,renderer:k,extend:A,controls:re,invalidate:j}=Ie();R(r,()=>{j()});let ae=gn(()=>wW(r.camera||ne.value,r.mouseButtons)),oe=gn(()=>TW(r.camera||ne.value,r.touches)),se=L(null);A({CameraControls:bW}),st(()=>{M(),se.value&&a.value?re.value=se.value:re.value=null});function M(){DR(se.value,`update`,()=>{i(`change`,se.value),j()}),DR(se.value,`controlend`,()=>i(`end`,se.value)),DR(se.value,`controlstart`,()=>i(`start`,se.value))}let{onBeforeRender:ce}=ie();return ce(({delta:e,invalidate:t})=>{var n,r;(n=se.value)!=null&&n.enabled&&((r=se.value)==null||r.update(e),t())}),In(()=>{se.value&&se.value.disconnect()}),t({instance:se}),(e,t)=>(e.camera||H(ne))&&(e.domElement||H(k))?(z(),V(`TresCameraControls`,{key:0,ref_key:`controlsRef`,ref:se,"min-polar-angle":H(o),"max-polar-angle":H(s),"min-azimuth-angle":H(c),"max-azimuth-angle":H(l),distance:H(u),"min-distance":H(d),"max-distance":H(f),"infinity-dolly":H(p),"min-zoom":H(m),"max-zoom":H(h),"smooth-time":H(g),"dragging-smooth-time":H(_),"max-speed":H(v),"azimuth-rotate-speed":H(y),"polar-rotate-speed":H(b),"dolly-speed":H(x),"dolly-drag-inverted":H(S),"truck-speed":H(C),"dolly-to-cursor":H(w),"drag-to-offset":H(T),"vertical-drag-to-forward":H(E),"boundary-friction":H(D),"rest-threshold":H(O),"collider-meshes":H(ee),args:[e.camera||H(ne),e.domElement||H(k).domElement],"mouse-buttons":ae.value,touches:oe.value},null,8,CW)):Nn(``,!0)}}),DW=B({__name:`KeyboardControls`,props:{makeDefault:{type:Boolean,default:!0},camera:{},domElement:{},moveSpeed:{default:.2},selector:{}},emits:[`isLock`,`change`],setup(e,{expose:t,emit:n}){let r=e,i=n,{moveSpeed:a}=bn(r),{camera:o,controls:s,renderer:c,invalidate:l}=Ie();R(r,()=>{l()});let u=U(0),d=U(0),{KeyW:f,KeyA:p,KeyS:m,KeyD:h,Up:g,Down:_,Left:v,Right:y}=IR();st(()=>{p.value||v.value?u.value=-a.value:h.value||y.value?u.value=a.value:u.value=0,f.value||g.value?d.value=a.value:m.value||_.value?d.value=-a.value:d.value=0}),t({instance:s});let b=e=>i(`isLock`,e),x=e=>i(`change`,e),S=new P,C=new P,w=new Jt,T=(e,t)=>{var n;if(!((n=o.value)!=null&&n.position)&&!S)return;let r=o.value,a=e*.001;r?.translateZ(-t),w.set(C.x*a,C.y*a,C.z*a,1).normalize(),r?.quaternion.multiply(w),(u.value||d.value)&&i(`change`,s.value)},{onBeforeRender:E}=ie();return E(({delta:e,invalidate:t})=>{var n;s.value instanceof aV&&(n=s.value)!=null&&n.isLocked&&(T(e,d.value),s.value.moveRight(u.value),t())}),(e,t)=>(z(),dn(H(NW),{selector:e.selector,"make-default":e.makeDefault,camera:e.camera||H(o),"dom-element":e.domElement||H(c).domElement,onIsLock:b,onChange:x},null,8,[`selector`,`make-default`,`camera`,`dom-element`]))}}),OW=[`args`,`auto-rotate`,`auto-rotate-speed`,`enable-damping`,`damping-factor`,`enable-pan`,`key-pan-speed`,`keys`,`max-azimuth-angle`,`min-azimuth-angle`,`max-polar-angle`,`min-polar-angle`,`min-distance`,`max-distance`,`min-zoom`,`max-zoom`,`enable-zoom`,`zoom-speed`,`enable-rotate`,`rotate-speed`],kW=B({__name:`MapControls`,props:{makeDefault:{type:Boolean,default:!1},camera:{},domElement:{},target:{},enableDamping:{type:Boolean,default:!0},dampingFactor:{default:.05},autoRotate:{type:Boolean,default:!1},autoRotateSpeed:{default:2},enablePan:{type:Boolean,default:!0},keyPanSpeed:{default:7},keys:{},maxAzimuthAngle:{default:1/0},minAzimuthAngle:{default:-1/0},maxPolarAngle:{default:Math.PI},minPolarAngle:{default:0},minDistance:{default:0},maxDistance:{default:1/0},minZoom:{default:0},maxZoom:{default:1/0},touches:{},enableZoom:{type:Boolean,default:!0},zoomSpeed:{default:1},enableRotate:{type:Boolean,default:!0},rotateSpeed:{default:1}},emits:[`change`,`start`,`end`],setup(e,{expose:t,emit:n}){let r=e,{autoRotate:i,autoRotateSpeed:a,enableDamping:o,dampingFactor:s,enablePan:c,keyPanSpeed:l,maxAzimuthAngle:u,minAzimuthAngle:d,maxPolarAngle:f,minPolarAngle:p,minDistance:m,maxDistance:h,minZoom:g,maxZoom:_,enableZoom:v,zoomSpeed:y,enableRotate:b,rotateSpeed:x}=bn(r),{camera:S,renderer:C,extend:w,controls:T,invalidate:E}=Ie();R(r,()=>{E()});let D=L(null);w({MapControls:mV}),R(T,e=>{e&&r.makeDefault?T.value=e:T.value=null});let{onBeforeRender:O}=ie();return O(({invalidate:e})=>{D.value&&(o.value||i.value)&&(D.value.update(),e())}),In(()=>{D.value&&D.value.dispose()}),t({instance:D}),(e,t)=>(e.camera||H(S))&&(e.domElement||H(C))?(z(),V(`TresMapControls`,{key:0,ref_key:`controlsRef`,ref:D,args:[e.camera||H(S),e.domElement||H(C).domElement],"auto-rotate":H(i),"auto-rotate-speed":H(a),"enable-damping":H(o),"damping-factor":H(s),"enable-pan":H(c),"key-pan-speed":H(l),keys:e.keys,"max-azimuth-angle":H(u),"min-azimuth-angle":H(d),"max-polar-angle":H(f),"min-polar-angle":H(p),"min-distance":H(m),"max-distance":H(h),"min-zoom":H(g),"max-zoom":H(_),"enable-zoom":H(v),"zoom-speed":H(y),"enable-rotate":H(b),"rotate-speed":H(x)},null,8,OW)):Nn(``,!0)}}),AW=[`target`,`auto-rotate`,`auto-rotate-speed`,`enable-damping`,`damping-factor`,`enable-pan`,`key-pan-speed`,`keys`,`max-azimuth-angle`,`min-azimuth-angle`,`max-polar-angle`,`min-polar-angle`,`min-distance`,`max-distance`,`min-zoom`,`max-zoom`,`touches`,`enable-zoom`,`zoom-speed`,`enable-rotate`,`rotate-speed`,`mouse-buttons`,`args`],jW=B({__name:`OrbitControls`,props:{makeDefault:{type:Boolean,default:!1},camera:{},domElement:{},target:{default:()=>[0,0,0]},enableDamping:{type:Boolean,default:!0},dampingFactor:{default:.05},autoRotate:{type:Boolean,default:!1},autoRotateSpeed:{default:2},enablePan:{type:Boolean,default:!0},keyPanSpeed:{default:7},keys:{},maxAzimuthAngle:{default:1/0},minAzimuthAngle:{default:-1/0},maxPolarAngle:{default:Math.PI},minPolarAngle:{default:0},minDistance:{default:0},maxDistance:{default:1/0},minZoom:{default:0},maxZoom:{default:1/0},touches:{default:()=>({ONE:qt.ROTATE,TWO:qt.DOLLY_PAN})},enableZoom:{type:Boolean,default:!0},zoomSpeed:{default:1},enableRotate:{type:Boolean,default:!0},rotateSpeed:{default:1},mouseButtons:{default:()=>({LEFT:Wt.ROTATE,MIDDLE:Wt.DOLLY,RIGHT:Wt.PAN})}},emits:[`change`,`start`,`end`],setup(e,{expose:t,emit:n}){let r=e,i=n,{makeDefault:a,autoRotate:o,autoRotateSpeed:s,enableDamping:c,dampingFactor:l,enablePan:u,keyPanSpeed:d,maxAzimuthAngle:f,minAzimuthAngle:p,maxPolarAngle:m,minPolarAngle:h,minDistance:g,maxDistance:_,minZoom:v,maxZoom:y,enableZoom:b,zoomSpeed:x,enableRotate:S,touches:C,rotateSpeed:w,target:T,mouseButtons:E}=bn(r),{camera:D,renderer:O,extend:ee,controls:te,invalidate:ne}=Ie(),k=L(null);ee({OrbitControls:pV}),R(k,e=>{A(),e&&a.value?te.value=e:te.value=null});function A(){DR(k.value,`change`,()=>{i(`change`,k.value),ne()}),DR(k.value,`start`,()=>i(`start`,k.value)),DR(k.value,`end`,()=>i(`end`,k.value))}let{onBeforeRender:re}=ie();return re(({invalidate:e})=>{k.value&&(c.value||o.value)&&(k.value.update(),o.value&&e())}),In(()=>{k.value&&k.value.dispose()}),t({instance:k}),(e,t)=>(e.camera||H(D))&&(e.domElement||H(O))?(z(),V(`TresOrbitControls`,{key:0,ref_key:`controlsRef`,ref:k,target:H(T),"auto-rotate":H(o),"auto-rotate-speed":H(s),"enable-damping":H(c),"damping-factor":H(l),"enable-pan":H(u),"key-pan-speed":H(d),keys:e.keys,"max-azimuth-angle":H(f),"min-azimuth-angle":H(p),"max-polar-angle":H(m),"min-polar-angle":H(h),"min-distance":H(g),"max-distance":H(_),"min-zoom":H(v),"max-zoom":H(y),touches:H(C),"enable-zoom":H(b),"zoom-speed":H(x),"enable-rotate":H(S),"rotate-speed":H(w),"mouse-buttons":H(E),args:[e.camera||H(D),e.domElement||H(O).domElement]},null,8,AW)):Nn(``,!0)}}),MW=[`args`],NW=B({__name:`PointerLockControls`,props:{makeDefault:{type:Boolean,default:!1},camera:{},domElement:{},selector:{}},emits:[`isLock`,`change`],setup(e,{expose:t,emit:n}){let r=e,i=n,{camera:a,renderer:o,extend:s,controls:c,invalidate:l}=Ie();R(r,()=>{l()});let u=L(null),d;s({PointerLockControls:aV});let f=e=>{i(`isLock`,e)};return R(u,e=>{e&&r.makeDefault?c.value=e:c.value=null,d=document.getElementById(r.selector||``)||o.value.domElement,DR(d,`click`,()=>{u.value&&(u.value.lock(),u.value.addEventListener(`lock`,()=>f(!0)),u.value.addEventListener(`unlock`,()=>f(!1)),l())})}),In(()=>{let e=u.value;e&&(e.removeEventListener(`lock`,()=>f(!0)),e.removeEventListener(`unlock`,()=>f(!1)),e.dispose())}),t({instance:c}),(e,t)=>(e.camera||H(a))&&(e.domElement||H(o))?(z(),V(`TresPointerLockControls`,{key:0,ref_key:`controlsRef`,ref:u,args:[e.camera||H(a),e.domElement||H(o).domElement]},null,8,MW)):Nn(``,!0)}}),PW=B({__name:`ScrollControls`,props:{pages:{default:4},distance:{default:4},smoothScroll:{default:.1},horizontal:{type:Boolean,default:!1},htmlScroll:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(e,{expose:t,emit:n}){let r=e,i=n,{logWarning:a}=se();r.smoothScroll<0&&a(`SmoothControl must be greater than zero`),r.pages<0&&a(`Pages must be greater than zero`);let{camera:o,controls:s,renderer:c,invalidate:l}=Ie();R(r,()=>{l()});let u=L(),d=document.createElement(`div`),{y:f}=zR(),{x:p,y:m,isScrolling:h}=PR(d),{height:g,width:_}=BR(),v=0,y=U(!1),b=U(0),x=U(0),S=U(0),C=r.horizontal?`x`:`y`,w=R(o,e=>{if(y.value){w();return}v=r.horizontal?e?.position.x||0:e?.position.y||0,y.value=!0},{immediate:!0});R(h,e=>{s.value&&(s.value.enabled=!e)},{immediate:!0}),R(f,e=>{!h.value&&!r.htmlScroll||(x.value=e/g.value/(S.value/g.value-1),b.value=-1*x.value,i(`update:modelValue`,x.value))}),R(m,e=>{x.value=e/g.value/(S.value/g.value),b.value=-1*x.value,i(`update:modelValue`,x.value)}),R(p,e=>{x.value=e/_.value/(S.value/_.value-1),b.value=+x.value,i(`update:modelValue`,x.value)}),R(c,e=>{var t,n;let i=e?.domElement;if(r.htmlScroll&&e!=null&&e.domElement)i!=null&&i.style.width&&i!=null&&i.style.position&&i!=null&&i.style.top&&i!=null&&i.style.left&&(i.style.width=`100%`,i.style.position=`fixed`,i.style.zIndex=` -99999`,i.style.top=`0`,i.style.left=`0`),S.value=document.body.scrollHeight;else{let a=document.createElement(`div`),o=document.createElement(`div`);d.style[r.horizontal?`overflowX`:`overflowY`]=`auto`,d.style[r.horizontal?`overflowY`:`overflowX`]=`hidden`,d.style.position=`absolute`,d.style.width=`100%`,d.style.height=` 100%`,d.style.top=`0`,d.style.left=`0`,d.classList.add(`scrollContainer`),a.style.position=`sticky`,a.style.top=`0px`,a.style.left=`0px`,a.style.width=`100%`,a.style.height=`100%`,a.style.overflow=`hidden`,d.appendChild(a),o.style.height=r.horizontal?`100%`:`${g.value*r.pages}px`,o.style.width=r.horizontal?`${_.value*r.pages}px`:`100vw`,o.style.pointerEvents=`none`,i.style.position=`fixed`,i.style.zIndex=`0`,i!=null&&i.style.width&&(i.style.width=`100%`),d.appendChild(o),e!=null&&e.domElement.parentNode&&(e.domElement.parentNode.style.position=`relative`),(n=(t=e?.domElement)?.parentNode)==null||n.appendChild(d),S.value=r.horizontal?_.value*r.pages:g.value*r.pages}},{immediate:!0});let{onBeforeRender:T}=ie();return T(({invalidate:e})=>{var t;if((t=o.value)!=null&&t.position){let t=(b.value*r.distance-o.value.position[C]+v)*r.smoothScroll;o.value.position[C]+=t,u.value.children.length>0&&(u.value.position[C]+=t),e()}}),t({instance:u}),(e,t)=>(z(),V(`TresGroup`,{ref_key:`wrapperRef`,ref:u},[fn(e.$slots,`default`)],512))}}),FW=[`object`,`args`,`mode`,`enabled`,`axis`,`translation-snap`,`rotation-snap`,`scale-snap`,`space`,`size`,`show-x`,`show-y`,`show-z`],IW=B({__name:`TransformControls`,props:{object:{},camera:{},mode:{default:`translate`},enabled:{type:Boolean,default:!0},axis:{default:`XYZ`},translationSnap:{},rotationSnap:{},scaleSnap:{},space:{default:`world`},size:{default:1},showX:{type:Boolean,default:!0},showY:{type:Boolean,default:!0},showZ:{type:Boolean,default:!0}},emits:[`dragging`,`change`,`mouseDown`,`mouseUp`,`objectChange`],setup(e,{expose:t,emit:n}){let r=e,i=n,{object:a,mode:o,enabled:s,axis:c,translationSnap:l,rotationSnap:u,scaleSnap:d,space:f,size:p,showX:m,showY:h,showZ:g}=bn(r),_=L(null),{controls:v,camera:y,renderer:b,extend:x,invalidate:S}=Ie();R([a,o,s,c,l,u,d,f,p,m,h,g],()=>{S()}),x({TransformControls:qB});let C=()=>{S(),i(`change`)},w=e=>{v.value&&(v.value.enabled=!e.value),S(),i(`dragging`,e.value)},T=()=>{S(),i(`mouseDown`)},E=()=>{S(),i(`mouseDown`)},D=()=>{S(),i(`objectChange`)};function O(){DR(_.value,`change`,C),DR(_.value,`dragging-changed`,w),DR(_.value,`mouseDown`,T),DR(_.value,`mouseUp`,E),DR(_.value,`objectChange`,D)}return R(_,e=>{e&&O()}),In(()=>{_.value&&_.value.dispose()}),t({instance:_}),(e,t)=>{var n;return(e.camera||H(y))&&H(b)?(z(),V(`TresTransformControls`,{ref_key:`controlsRef`,ref:_,key:(n=e.camera||H(y))?.uuid,object:H(a),args:[e.camera||H(y),H(b).domElement],mode:H(o),enabled:H(s),axis:H(c),"translation-snap":H(l),"rotation-snap":H(u),"scale-snap":H(d),space:H(f),size:H(p),"show-x":H(m),"show-y":H(h),"show-z":H(g),visible:!0},null,8,FW)):Nn(``,!0)}}}),LW=[`geometry`,`render-order`],RW=B({__name:`component`,props:{src:{},skipStrokes:{type:Boolean,default:!1},skipFills:{type:Boolean,default:!1},fillMaterial:{},strokeMaterial:{},fillMeshProps:{},strokeMeshProps:{},depth:{default:`renderOrder`}},setup(e,{expose:t}){let n=e;class r extends UV{load(e,t,n,r){let i=Array.isArray(e)?e[0]:e;super.load(i,t,n,r)}}let{src:i,skipStrokes:a,skipFills:o,fillMaterial:s,strokeMaterial:c,fillMeshProps:l,strokeMeshProps:u,depth:d}=bn(n),f=L(),p=L([]),m=L([]);t({instance:f}),st(async()=>h(i.value).then(e=>m.value=e.paths)),R([o,a,s,c,m],_);async function h(e){let t=e.startsWith(`e.geometry.dispose())}function _(){var e,t,r;g();let i=[],[s,c]=(()=>{let e={flat:!1,renderOrder:!1,offsetZ:!0},t={flat:0,renderOrder:0,offsetZ:.025},n=d.value;return typeof n==`number`?[!0,n]:[e[n],t[n]]})(),l=0;for(let u of m.value){let d=(e=u.userData)?.style??{},f=Object.assign({color:d.fill,opacity:d.fillOpacity,transparent:!0,side:tt,depthWrite:s},n.fillMaterial);if(!o.value&&d.fill!==void 0&&d.fill!==`none`)for(let e of UV.createShapes(u)){let t=new ln(e);t.scale(1,-1,1),c&&t.translate(0,0,l++*c),i.push({geometry:t,material:f,isStroke:!1})}if(!a.value&&d.stroke!==void 0&&d.stroke!==`none`){let e=Object.assign({color:(t=u.userData)?.style.stroke,opacity:(r=u.userData)?.style.strokeOpacity,transparent:!0,side:tt,depthWrite:s},n.strokeMaterial);for(let t of u.subPaths){let n=t.getPoints().map(e=>new Et(e.x,-e.y)),r=UV.pointsToStroke(n,d||`none`);c&&r.translate(0,0,l++*c),i.push({geometry:r,material:e,isStroke:!0})}}}p.value=i}return(e,t)=>(z(),V(`TresGroup`,{ref_key:`svgRef`,ref:f},[(z(!0),V(hn,null,Lt(p.value,({geometry:e,material:t,isStroke:n},r)=>(z(),V(`TresMesh`,On({key:`${r}`,ref_for:!0},H(n?u:l),{geometry:e,"render-order":H(d)===`renderOrder`?r:0}),[I(`TresMeshBasicMaterial`,On({ref_for:!0},t),null,16)],16,LW))),128))],512))}});function zW(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}function BW(e){throw Error(`Could not dynamically require "`+e+`". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.`)}var VW={exports:{}},HW;function UW(){return HW||(HW=1,function(e,t){(function(t){e.exports=t()})(function(){return function e(t,n,r){function i(o,s){if(!n[o]){if(!t[o]){var c=typeof BW==`function`&&BW;if(!s&&c)return c(o,!0);if(a)return a(o,!0);throw Error(`Cannot find module '`+o+`'`)}s=n[o]={exports:{}},t[o][0].call(s.exports,function(e){var n=t[o][1][e];return i(n||e)},s,s.exports,e,t,n,r)}return n[o].exports}for(var a=typeof BW==`function`&&BW,o=0;o>16),c((65280&r)>>8),c(255&r);return i==2?c(255&(r=l(e.charAt(n))<<2|l(e.charAt(n+1))>>4)):i==1&&(c((r=l(e.charAt(n))<<10|l(e.charAt(n+1))<<4|l(e.charAt(n+2))>>2)>>8&255),c(255&r)),a},e.fromByteArray=function(e){var t,n,r,i,a=e.length%3,o=``;function s(e){return`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`.charAt(e)}for(t=0,r=e.length-a;t>18&63)+s(i>>12&63)+s(i>>6&63)+s(63&i);switch(a){case 1:o=(o+=s((n=e[e.length-1])>>2))+s(n<<4&63)+`==`;break;case 2:o=(o=(o+=s((n=(e[e.length-2]<<8)+e[e.length-1])>>10))+s(n>>4&63))+s(n<<2&63)+`=`}return o}})(n===void 0?this.base64js={}:n)}).call(this,e(`lYpoI2`),typeof self<`u`?self:typeof window<`u`?window:{},e(`buffer`).Buffer,arguments[3],arguments[4],arguments[5],arguments[6],`/node_modules/gulp-browserify/node_modules/base64-js/lib/b64.js`,`/node_modules/gulp-browserify/node_modules/base64-js/lib`)},{buffer:3,lYpoI2:11}],3:[function(e,t,n){(function(t,r,i,a,o,s,c,l,u){var d=e(`base64-js`),f=e(`ieee754`);function i(e,t,n){if(!(this instanceof i))return new i(e,t,n);var r,a,o,s,c=typeof e;if(t===`base64`&&c==`string`)for(e=(s=e).trim?s.trim():s.replace(/^\s+|\s+$/g,``);e.length%4!=0;)e+=`=`;if(c==`number`)r=te(e);else if(c==`string`)r=i.byteLength(e,t);else{if(c!=`object`)throw Error(`First argument needs to be a number, array or string.`);r=te(e.length)}if(i._useTypedArrays?a=i._augment(new Uint8Array(r)):((a=this).length=r,a._isBuffer=!0),i._useTypedArrays&&typeof e.byteLength==`number`)a._set(e);else if(ne(s=e)||i.isBuffer(s)||s&&typeof s==`object`&&typeof s.length==`number`)for(o=0;o>8,n%=256,r.push(n),r.push(t);return r}(t),e,n,r)}function h(e,t,n){var r=``;n=Math.min(e.length,n);for(var i=t;i>>0)):(t+1>>0),i}function v(e,t,n,r){if(r||(M(typeof n==`boolean`,`missing or invalid endian`),M(t!=null,`missing offset`),M(t+1>>8*(r?a:1-a)}function C(e,t,n,r,i){if(i||(M(t!=null,`missing value`),M(typeof r==`boolean`,`missing or invalid endian`),M(n!=null,`missing offset`),M(n+3>>8*(r?a:3-a)&255}function w(e,t,n,r,i){i||(M(t!=null,`missing value`),M(typeof r==`boolean`,`missing or invalid endian`),M(n!=null,`missing offset`),M(n+1this.length&&(r=this.length);var a=(r=e.length-t=this.length))return this[e]},i.prototype.readUInt16LE=function(e,t){return g(this,e,!0,t)},i.prototype.readUInt16BE=function(e,t){return g(this,e,!1,t)},i.prototype.readUInt32LE=function(e,t){return _(this,e,!0,t)},i.prototype.readUInt32BE=function(e,t){return _(this,e,!1,t)},i.prototype.readInt8=function(e,t){if(t||(M(e!=null,`missing offset`),M(e=this.length))return 128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){return v(this,e,!0,t)},i.prototype.readInt16BE=function(e,t){return v(this,e,!1,t)},i.prototype.readInt32LE=function(e,t){return y(this,e,!0,t)},i.prototype.readInt32BE=function(e,t){return y(this,e,!1,t)},i.prototype.readFloatLE=function(e,t){return b(this,e,!0,t)},i.prototype.readFloatBE=function(e,t){return b(this,e,!1,t)},i.prototype.readDoubleLE=function(e,t){return x(this,e,!0,t)},i.prototype.readDoubleBE=function(e,t){return x(this,e,!1,t)},i.prototype.writeUInt8=function(e,t,n){n||(M(e!=null,`missing value`),M(t!=null,`missing offset`),M(t=this.length||(this[t]=e)},i.prototype.writeUInt16LE=function(e,t,n){S(this,e,t,!0,n)},i.prototype.writeUInt16BE=function(e,t,n){S(this,e,t,!1,n)},i.prototype.writeUInt32LE=function(e,t,n){C(this,e,t,!0,n)},i.prototype.writeUInt32BE=function(e,t,n){C(this,e,t,!1,n)},i.prototype.writeInt8=function(e,t,n){n||(M(e!=null,`missing value`),M(t!=null,`missing offset`),M(t=this.length||(0<=e?this.writeUInt8(e,t,n):this.writeUInt8(255+e+1,t,n))},i.prototype.writeInt16LE=function(e,t,n){w(this,e,t,!0,n)},i.prototype.writeInt16BE=function(e,t,n){w(this,e,t,!1,n)},i.prototype.writeInt32LE=function(e,t,n){T(this,e,t,!0,n)},i.prototype.writeInt32BE=function(e,t,n){T(this,e,t,!1,n)},i.prototype.writeFloatLE=function(e,t,n){E(this,e,t,!0,n)},i.prototype.writeFloatBE=function(e,t,n){E(this,e,t,!1,n)},i.prototype.writeDoubleLE=function(e,t,n){D(this,e,t,!0,n)},i.prototype.writeDoubleBE=function(e,t,n){D(this,e,t,!1,n)},i.prototype.fill=function(e,t,n){if(t||=0,n||=this.length,M(typeof(e=typeof(e||=0)==`string`?e.charCodeAt(0):e)==`number`&&!isNaN(e),`value is not a number`),M(t<=n,`end < start`),n!==t&&this.length!==0){M(0<=t&&t`},i.prototype.toArrayBuffer=function(){if(typeof Uint8Array>`u`)throw Error(`Buffer.toArrayBuffer not supported in this browser`);if(i._useTypedArrays)return new i(this).buffer;for(var e=new Uint8Array(this.length),t=0,n=e.length;t=t.length||i>=e.length);i++)t[i+n]=e[i];return i}function ie(e){try{return decodeURIComponent(e)}catch{return`�`}}function ae(e,t){M(typeof e==`number`,`cannot write a non-number as a number`),M(0<=e,`specified a negative value for writing an unsigned value`),M(e<=t,`value is larger than maximum value for type`),M(Math.floor(e)===e,`value has a fractional component`)}function oe(e,t,n){M(typeof e==`number`,`cannot write a non-number as a number`),M(e<=t,`value larger than maximum allowed value`),M(n<=e,`value smaller than minimum allowed value`),M(Math.floor(e)===e,`value has a fractional component`)}function se(e,t,n){M(typeof e==`number`,`cannot write a non-number as a number`),M(e<=t,`value larger than maximum allowed value`),M(n<=e,`value smaller than minimum allowed value`)}function M(e,t){if(!e)throw Error(t||`Failed assertion`)}i._augment=function(e){return e._isBuffer=!0,e._get=e.get,e._set=e.set,e.get=O.get,e.set=O.set,e.write=O.write,e.toString=O.toString,e.toLocaleString=O.toString,e.toJSON=O.toJSON,e.copy=O.copy,e.slice=O.slice,e.readUInt8=O.readUInt8,e.readUInt16LE=O.readUInt16LE,e.readUInt16BE=O.readUInt16BE,e.readUInt32LE=O.readUInt32LE,e.readUInt32BE=O.readUInt32BE,e.readInt8=O.readInt8,e.readInt16LE=O.readInt16LE,e.readInt16BE=O.readInt16BE,e.readInt32LE=O.readInt32LE,e.readInt32BE=O.readInt32BE,e.readFloatLE=O.readFloatLE,e.readFloatBE=O.readFloatBE,e.readDoubleLE=O.readDoubleLE,e.readDoubleBE=O.readDoubleBE,e.writeUInt8=O.writeUInt8,e.writeUInt16LE=O.writeUInt16LE,e.writeUInt16BE=O.writeUInt16BE,e.writeUInt32LE=O.writeUInt32LE,e.writeUInt32BE=O.writeUInt32BE,e.writeInt8=O.writeInt8,e.writeInt16LE=O.writeInt16LE,e.writeInt16BE=O.writeInt16BE,e.writeInt32LE=O.writeInt32LE,e.writeInt32BE=O.writeInt32BE,e.writeFloatLE=O.writeFloatLE,e.writeFloatBE=O.writeFloatBE,e.writeDoubleLE=O.writeDoubleLE,e.writeDoubleBE=O.writeDoubleBE,e.fill=O.fill,e.inspect=O.inspect,e.toArrayBuffer=O.toArrayBuffer,e}}).call(this,e(`lYpoI2`),typeof self<`u`?self:typeof window<`u`?window:{},e(`buffer`).Buffer,arguments[3],arguments[4],arguments[5],arguments[6],`/node_modules/gulp-browserify/node_modules/buffer/index.js`,`/node_modules/gulp-browserify/node_modules/buffer`)},{"base64-js":2,buffer:3,ieee754:10,lYpoI2:11}],4:[function(e,t,n){(function(n,r,i,a,o,s,c,l,u){var i=e(`buffer`).Buffer,d=4,f=new i(d);f.fill(0),t.exports={hash:function(e,t,n,r){for(var a=t(function(e,t){e.length%d!=0&&(n=e.length+(d-e.length%d),e=i.concat([e,f],n));for(var n,r=[],a=t?e.readInt32BE:e.readInt32LE,o=0;oh?t=e(t):t.length>5]|=128<>>9<<4)]=t;for(var n=1732584193,r=-271733879,i=-1732584194,a=271733878,o=0;o>>32-i,n)}function m(e,t,n,r,i,a,o){return p(t&n|~t&r,e,t,i,a,o)}function h(e,t,n,r,i,a,o){return p(t&r|n&~r,e,t,i,a,o)}function g(e,t,n,r,i,a,o){return p(t^n^r,e,t,i,a,o)}function _(e,t,n,r,i,a,o){return p(n^(t|~r),e,t,i,a,o)}function v(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}t.exports=function(e){return d.hash(e,f,16)}}).call(this,e(`lYpoI2`),typeof self<`u`?self:typeof window<`u`?window:{},e(`buffer`).Buffer,arguments[3],arguments[4],arguments[5],arguments[6],`/node_modules/gulp-browserify/node_modules/crypto-browserify/md5.js`,`/node_modules/gulp-browserify/node_modules/crypto-browserify`)},{"./helpers":4,buffer:3,lYpoI2:11}],7:[function(e,t,n){(function(e,n,r,i,a,o,s,c,l){t.exports=function(e){for(var t,n=Array(e),r=0;r>>((3&r)<<3)&255;return n}}).call(this,e(`lYpoI2`),typeof self<`u`?self:typeof window<`u`?window:{},e(`buffer`).Buffer,arguments[3],arguments[4],arguments[5],arguments[6],`/node_modules/gulp-browserify/node_modules/crypto-browserify/rng.js`,`/node_modules/gulp-browserify/node_modules/crypto-browserify`)},{buffer:3,lYpoI2:11}],8:[function(e,t,n){(function(n,r,i,a,o,s,c,l,u){var d=e(`./helpers`);function f(e,t){e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var n,r,i,a=Array(80),o=1732584193,s=-271733879,c=-1732584194,l=271733878,u=-1009589776,d=0;d>16)+(t>>16)+(n>>16)<<16|65535&n}function m(e,t){return e<>>32-t}t.exports=function(e){return d.hash(e,f,20,!0)}}).call(this,e(`lYpoI2`),typeof self<`u`?self:typeof window<`u`?window:{},e(`buffer`).Buffer,arguments[3],arguments[4],arguments[5],arguments[6],`/node_modules/gulp-browserify/node_modules/crypto-browserify/sha.js`,`/node_modules/gulp-browserify/node_modules/crypto-browserify`)},{"./helpers":4,buffer:3,lYpoI2:11}],9:[function(e,t,n){(function(n,r,i,a,o,s,c,l,u){function d(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function f(e,t){var n,r=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],i=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],a=Array(64);e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var o,s,c=0;c>>t|e<<32-t},h=function(e,t){return e>>>t};t.exports=function(e){return p.hash(e,f,32,!0)}}).call(this,e(`lYpoI2`),typeof self<`u`?self:typeof window<`u`?window:{},e(`buffer`).Buffer,arguments[3],arguments[4],arguments[5],arguments[6],`/node_modules/gulp-browserify/node_modules/crypto-browserify/sha256.js`,`/node_modules/gulp-browserify/node_modules/crypto-browserify`)},{"./helpers":4,buffer:3,lYpoI2:11}],10:[function(e,t,n){(function(e,t,r,i,a,o,s,c,l){n.read=function(e,t,n,r,i){var a,o,s=8*i-r-1,c=(1<>1,u=-7,d=n?i-1:0,f=n?-1:1,i=e[t+d];for(d+=f,a=i&(1<<-u)-1,i>>=-u,u+=s;0>=-u,u+=r;0>1,d=i===23?2**-24-2**-77:0,f=r?0:a-1,p=r?1:-1,a=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(r=2**-o)<1&&(o--,r*=2),2<=(t+=1<=o+u?d/r:d*2**(1-u))*r&&(o++,r/=2),l<=o+u?(s=0,o=l):1<=o+u?(s=(t*r-1)*2**i,o+=u):(s=t*2**(u-1)*2**i,o=0));8<=i;e[n+f]=255&s,f+=p,s/=256,i-=8);for(o=o<>= ++ -- << >> <= >= == != && || += -= *= /= %= &= ^^ ^= |= ( ) [ ] . ! ~ * / % + - < > & ^ | ? : = , ; { }`.split(` `)),YW}var QW,$W;function eG(){return $W||($W=1,QW=`abs.acos.all.any.asin.atan.ceil.clamp.cos.cross.dFdx.dFdy.degrees.distance.dot.equal.exp.exp2.faceforward.floor.fract.gl_BackColor.gl_BackLightModelProduct.gl_BackLightProduct.gl_BackMaterial.gl_BackSecondaryColor.gl_ClipPlane.gl_ClipVertex.gl_Color.gl_DepthRange.gl_DepthRangeParameters.gl_EyePlaneQ.gl_EyePlaneR.gl_EyePlaneS.gl_EyePlaneT.gl_Fog.gl_FogCoord.gl_FogFragCoord.gl_FogParameters.gl_FragColor.gl_FragCoord.gl_FragData.gl_FragDepth.gl_FragDepthEXT.gl_FrontColor.gl_FrontFacing.gl_FrontLightModelProduct.gl_FrontLightProduct.gl_FrontMaterial.gl_FrontSecondaryColor.gl_LightModel.gl_LightModelParameters.gl_LightModelProducts.gl_LightProducts.gl_LightSource.gl_LightSourceParameters.gl_MaterialParameters.gl_MaxClipPlanes.gl_MaxCombinedTextureImageUnits.gl_MaxDrawBuffers.gl_MaxFragmentUniformComponents.gl_MaxLights.gl_MaxTextureCoords.gl_MaxTextureImageUnits.gl_MaxTextureUnits.gl_MaxVaryingFloats.gl_MaxVertexAttribs.gl_MaxVertexTextureImageUnits.gl_MaxVertexUniformComponents.gl_ModelViewMatrix.gl_ModelViewMatrixInverse.gl_ModelViewMatrixInverseTranspose.gl_ModelViewMatrixTranspose.gl_ModelViewProjectionMatrix.gl_ModelViewProjectionMatrixInverse.gl_ModelViewProjectionMatrixInverseTranspose.gl_ModelViewProjectionMatrixTranspose.gl_MultiTexCoord0.gl_MultiTexCoord1.gl_MultiTexCoord2.gl_MultiTexCoord3.gl_MultiTexCoord4.gl_MultiTexCoord5.gl_MultiTexCoord6.gl_MultiTexCoord7.gl_Normal.gl_NormalMatrix.gl_NormalScale.gl_ObjectPlaneQ.gl_ObjectPlaneR.gl_ObjectPlaneS.gl_ObjectPlaneT.gl_Point.gl_PointCoord.gl_PointParameters.gl_PointSize.gl_Position.gl_ProjectionMatrix.gl_ProjectionMatrixInverse.gl_ProjectionMatrixInverseTranspose.gl_ProjectionMatrixTranspose.gl_SecondaryColor.gl_TexCoord.gl_TextureEnvColor.gl_TextureMatrix.gl_TextureMatrixInverse.gl_TextureMatrixInverseTranspose.gl_TextureMatrixTranspose.gl_Vertex.greaterThan.greaterThanEqual.inversesqrt.length.lessThan.lessThanEqual.log.log2.matrixCompMult.max.min.mix.mod.normalize.not.notEqual.pow.radians.reflect.refract.sign.sin.smoothstep.sqrt.step.tan.texture2D.texture2DLod.texture2DProj.texture2DProjLod.textureCube.textureCubeLod.texture2DLodEXT.texture2DProjLodEXT.textureCubeLodEXT.texture2DGradEXT.texture2DProjGradEXT.textureCubeGradEXT`.split(`.`)),QW}var tG,nG;function rG(){if(nG)return tG;nG=1;var e=JW();return tG=e.slice().concat(`layout.centroid.smooth.case.mat2x2.mat2x3.mat2x4.mat3x2.mat3x3.mat3x4.mat4x2.mat4x3.mat4x4.uvec2.uvec3.uvec4.samplerCubeShadow.sampler2DArray.sampler2DArrayShadow.isampler2D.isampler3D.isamplerCube.isampler2DArray.usampler2D.usampler3D.usamplerCube.usampler2DArray.coherent.restrict.readonly.writeonly.resource.atomic_uint.noperspective.patch.sample.subroutine.common.partition.active.filter.image1D.image2D.image3D.imageCube.iimage1D.iimage2D.iimage3D.iimageCube.uimage1D.uimage2D.uimage3D.uimageCube.image1DArray.image2DArray.iimage1DArray.iimage2DArray.uimage1DArray.uimage2DArray.image1DShadow.image2DShadow.image1DArrayShadow.image2DArrayShadow.imageBuffer.iimageBuffer.uimageBuffer.sampler1DArray.sampler1DArrayShadow.isampler1D.isampler1DArray.usampler1D.usampler1DArray.isampler2DRect.usampler2DRect.samplerBuffer.isamplerBuffer.usamplerBuffer.sampler2DMS.isampler2DMS.usampler2DMS.sampler2DMSArray.isampler2DMSArray.usampler2DMSArray`.split(`.`)),tG}var iG,aG;function oG(){if(aG)return iG;aG=1;var e=eG();return e=e.slice().filter(function(e){return!/^(gl\_|texture)/.test(e)}),iG=e.concat(`gl_VertexID.gl_InstanceID.gl_Position.gl_PointSize.gl_FragCoord.gl_FrontFacing.gl_FragDepth.gl_PointCoord.gl_MaxVertexAttribs.gl_MaxVertexUniformVectors.gl_MaxVertexOutputVectors.gl_MaxFragmentInputVectors.gl_MaxVertexTextureImageUnits.gl_MaxCombinedTextureImageUnits.gl_MaxTextureImageUnits.gl_MaxFragmentUniformVectors.gl_MaxDrawBuffers.gl_MinProgramTexelOffset.gl_MaxProgramTexelOffset.gl_DepthRangeParameters.gl_DepthRange.trunc.round.roundEven.isnan.isinf.floatBitsToInt.floatBitsToUint.intBitsToFloat.uintBitsToFloat.packSnorm2x16.unpackSnorm2x16.packUnorm2x16.unpackUnorm2x16.packHalf2x16.unpackHalf2x16.outerProduct.transpose.determinant.inverse.texture.textureSize.textureProj.textureLod.textureOffset.texelFetch.texelFetchOffset.textureProjOffset.textureLodOffset.textureProjLod.textureProjLodOffset.textureGrad.textureGradOffset.textureProjGrad.textureProjGradOffset`.split(`.`)),iG}var sG,cG;function lG(){if(cG)return sG;cG=1,sG=b;var e=JW(),t=ZW(),n=eG(),r=rG(),i=oG(),a=999,o=9999,s=0,c=1,l=2,u=3,d=4,f=5,p=6,m=7,h=8,g=9,_=10,v=11,y=[`block-comment`,`line-comment`,`preprocessor`,`operator`,`integer`,`float`,`ident`,`builtin`,`keyword`,`whitespace`,`eof`,`integer`];function b(b){var x=0,S=0,C=a,w,T,E=[],D=[],O=1,ee=0,te=0,ne=!1,k=!1,A=``,re;b||={};var j=n,ie=e;b.version===`300 es`&&(j=i,ie=r);for(var ae={},oe={},x=0;x0)continue;i=e.slice(0,1).join(``)}return se(i),te+=i.length,E=E.slice(i.length),E.length}while(!0)}function he(){return/[^a-fA-F0-9]/.test(w)?(se(E.join(``)),C=a,x):(E.push(w),T=w,x+1)}function ge(){return w===`.`||/[eE]/.test(w)?(E.push(w),C=f,T=w,x+1):w===`x`&&E.length===1&&E[0]===`0`?(C=v,E.push(w),T=w,x+1):/[^\d]/.test(w)?(se(E.join(``)),C=a,x):(E.push(w),T=w,x+1)}function _e(){return w===`f`&&(E.push(w),T=w,x+=1),/[eE]/.test(w)||(w===`-`||w===`+`)&&/[eE]/.test(T)?(E.push(w),T=w,x+1):/[^\d]/.test(w)?(se(E.join(``)),C=a,x):(E.push(w),T=w,x+1)}function ve(){if(/[^\d\w_]/.test(w)){var e=E.join(``);return C=oe[e]?h:ae[e]?m:p,se(E.join(``)),C=a,x}return E.push(w),T=w,x+1}}return sG}var uG,dG;function fG(){if(dG)return uG;dG=1;var e=lG();uG=t;function t(t,n){var r=e(n),i=[];return i=i.concat(r(t)),i=i.concat(r(null)),i}return uG}var pG=fG();const mG=zW(pG);var hG,gG;function _G(){if(gG)return hG;gG=1,hG=e;function e(e){for(var t=[],n=0;n=0;i--){if(n(e[i]))return i;if(r&&r(e[i]))return-1}return-1}}function t(e){return function(t){return t.type===`operator`&&(!e||t.data===e)}}function n(e){return e.type!==`whitespace`}return bG}var CG=SG();const wG=zW(CG);function TG(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return String(e)}function EG(e){var t=TG(e,`string`);return typeof t==`symbol`?t:String(t)}function DG(e,t,n){return t=EG(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function OG(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function kG(e){for(var t=1;t=0)&&(n[i]=e[i]);return n}function jG(e,t){if(e==null)return{};var n=AG(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function MG(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function NG(e,t){for(var n=0;n`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function BG(e,t){if(t&&(typeof t==`object`||typeof t==`function`))return t;if(t!==void 0)throw TypeError(`Derived constructors may only return object or undefined`);return FG(e)}function VG(e){var t=zG();return function(){var n=RG(e),r;if(t){var i=RG(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return BG(this,r)}}var HG={position:`csm_Position`,positionRaw:`csm_PositionRaw`,pointSize:`csm_PointSize`,fragColor:`csm_FragColor`,diffuseColor:`csm_DiffuseColor`,normal:`csm_Normal`,roughness:`csm_Roughness`,metalness:`csm_Metalness`,emissive:`csm_Emissive`,ao:`csm_AO`,bump:`csm_Bump`,depthAlpha:`csm_DepthAlpha`},UG,WG,GG=(UG={},DG(UG,`${HG.normal}`,{"#include ":` + vec3 objectNormal = ${HG.normal}; + #ifdef USE_TANGENT + vec3 objectTangent = vec3( tangent.xyz ); + #endif + `}),DG(UG,`${HG.position}`,{"#include ":` + vec3 transformed = ${HG.position}; + `}),DG(UG,`${HG.positionRaw}`,{"#include ":` + vec4 csm_internal_positionUnprojected = ${HG.positionRaw}; + mat4x4 csm_internal_unprojectMatrix = projectionMatrix * modelViewMatrix; + #ifdef USE_INSTANCING + csm_internal_unprojectMatrix = csm_internal_unprojectMatrix * instanceMatrix; + #endif + csm_internal_positionUnprojected = inverse(csm_internal_unprojectMatrix) * csm_internal_positionUnprojected; + vec3 transformed = csm_internal_positionUnprojected.xyz; + `}),DG(UG,`${HG.pointSize}`,{"gl_PointSize = size;":` + gl_PointSize = ${HG.pointSize}; + `}),DG(UG,`${HG.diffuseColor}`,{"#include ":` + #include + diffuseColor = ${HG.diffuseColor}; + `}),DG(UG,`${HG.fragColor}`,{"#include ":` + #include + gl_FragColor = ${HG.fragColor}; + `}),DG(UG,`${HG.emissive}`,{"vec3 totalEmissiveRadiance = emissive;":` + vec3 totalEmissiveRadiance = ${HG.emissive}; + `}),DG(UG,`${HG.roughness}`,{"#include ":` + #include + roughnessFactor = ${HG.roughness}; + `}),DG(UG,`${HG.metalness}`,{"#include ":` + #include + metalnessFactor = ${HG.metalness}; + `}),DG(UG,`${HG.ao}`,{"#include ":` + #include + reflectedLight.indirectDiffuse *= 1. - ${HG.ao}; + `}),DG(UG,`${HG.bump}`,{"#include ":` + #include + + vec3 csm_internal_orthogonal = ${HG.bump} - (dot(${HG.bump}, normal) * normal); + vec3 csm_internal_projectedbump = mat3(csm_internal_vModelViewMatrix) * csm_internal_orthogonal; + normal = normalize(normal - csm_internal_projectedbump); + `}),DG(UG,`${HG.depthAlpha}`,{"gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );":` + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity * ${HG.depthAlpha} ); + `,"gl_FragColor = packDepthToRGBA( fragCoordZ );":` + gl_FragColor = packDepthToRGBA( fragCoordZ ); + gl_FragColor.a *= ${HG.depthAlpha}; + `}),UG),KG=(WG={},DG(WG,`${HG.position}`,{"gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );":` + gl_Position = projectionMatrix * modelViewMatrix * vec4( ${HG.position}, 1.0 ); + `}),DG(WG,`${HG.positionRaw}`,{"gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );":` + gl_Position = ${HG.position}; + `}),DG(WG,`${HG.diffuseColor}`,{"gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );":` + gl_FragColor = ${HG.diffuseColor}; + `}),DG(WG,`${HG.fragColor}`,{"gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );":` + gl_FragColor = ${HG.fragColor}; + `}),WG),qG=` + +#ifdef IS_VERTEX + // csm_Position & csm_PositionRaw + #ifdef IS_UNKNOWN + vec3 csm_Position = vec3(0.0); + vec4 csm_PositionRaw = vec4(0.0); + vec3 csm_Normal = vec3(0.0); + #else + vec3 csm_Position = position; + vec4 csm_PositionRaw = projectionMatrix * modelViewMatrix * vec4(position, 1.); + vec3 csm_Normal = normal; + #endif + + // csm_PointSize + #ifdef IS_POINTSMATERIAL + float csm_PointSize = size; + #endif +#else + // csm_DiffuseColor & csm_FragColor + #if defined IS_UNKNOWN || defined IS_SHADERMATERIAL || defined IS_MESHDEPTHMATERIAL || defined IS_MESHNORMALMATERIAL || defined IS_SHADOWMATERIAL + vec4 csm_DiffuseColor = vec4(1.0, 0.0, 1.0, 1.0); + vec4 csm_FragColor = vec4(1.0, 0.0, 1.0, 1.0); + #else + #ifdef USE_MAP + vec4 _csm_sampledDiffuseColor = texture2D(map, vMapUv); + + #ifdef DECODE_VIDEO_TEXTURE + // inline sRGB decode (TODO: Remove this code when https://crbug.com/1256340 is solved) + _csm_sampledDiffuseColor = vec4(mix(pow(_csm_sampledDiffuseColor.rgb * 0.9478672986 + vec3(0.0521327014), vec3(2.4)), _csm_sampledDiffuseColor.rgb * 0.0773993808, vec3(lessThanEqual(_csm_sampledDiffuseColor.rgb, vec3(0.04045)))), _csm_sampledDiffuseColor.w); + #endif + + vec4 csm_DiffuseColor = vec4(diffuse, opacity) * _csm_sampledDiffuseColor; + vec4 csm_FragColor = vec4(diffuse, opacity) * _csm_sampledDiffuseColor; + #else + vec4 csm_DiffuseColor = vec4(diffuse, opacity); + vec4 csm_FragColor = vec4(diffuse, opacity); + #endif + #endif + + // csm_Emissive, csm_Roughness, csm_Metalness + #if defined IS_MESHSTANDARDMATERIAL || defined IS_MESHPHYSICALMATERIAL + vec3 csm_Emissive = emissive; + float csm_Roughness = roughness; + float csm_Metalness = metalness; + #endif + + // csm_AO + #if defined IS_MESHSTANDARDMATERIAL || defined IS_MESHPHYSICALMATERIAL || defined IS_MESHBASICMATERIAL || defined IS_MESHLAMBERTMATERIAL || defined IS_MESHPHONGMATERIAL || defined IS_MESHTOONMATERIAL + float csm_AO = 0.0; + #endif + + // csm_Bump + #if defined IS_MESHLAMBERTMATERIAL || defined IS_MESHMATCAPMATERIAL || defined IS_MESHNORMALMATERIAL || defined IS_MESHPHONGMATERIAL || defined IS_MESHPHYSICALMATERIAL || defined IS_MESHSTANDARDMATERIAL || defined IS_MESHTOONMATERIAL || defined IS_SHADOWMATERIAL + vec3 csm_Bump = vec3(0.0); + #endif + + float csm_DepthAlpha = 1.0; +#endif +`,JG=` + varying mat4 csm_internal_vModelViewMatrix; +`,YG=` + csm_internal_vModelViewMatrix = modelViewMatrix; +`,XG=` + varying mat4 csm_internal_vModelViewMatrix; +`,ZG=` + +`,QG,$G=(QG={},DG(QG,`${HG.position}`,`*`),DG(QG,`${HG.positionRaw}`,`*`),DG(QG,`${HG.normal}`,`*`),DG(QG,`${HG.pointSize}`,[`PointsMaterial`]),DG(QG,`${HG.diffuseColor}`,`*`),DG(QG,`${HG.fragColor}`,`*`),DG(QG,`${HG.emissive}`,[`MeshStandardMaterial`,`MeshPhysicalMaterial`]),DG(QG,`${HG.roughness}`,[`MeshStandardMaterial`,`MeshPhysicalMaterial`]),DG(QG,`${HG.metalness}`,[`MeshStandardMaterial`,`MeshPhysicalMaterial`]),DG(QG,`${HG.ao}`,[`MeshStandardMaterial`,`MeshPhysicalMaterial`,`MeshBasicMaterial`,`MeshLambertMaterial`,`MeshPhongMaterial`,`MeshToonMaterial`]),DG(QG,`${HG.bump}`,[`MeshLambertMaterial`,`MeshMatcapMaterial`,`MeshNormalMaterial`,`MeshPhongMaterial`,`MeshPhysicalMaterial`,`MeshStandardMaterial`,`MeshToonMaterial`,`ShadowMaterial`]),DG(QG,`${HG.depthAlpha}`,`*`),QG),eK=[`baseMaterial`,`fragmentShader`,`vertexShader`,`uniforms`,`patchMap`,`cacheKey`,`silent`],tK=function(e,t,n){return e.split(t).join(n)},nK=function(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,`\\$&`)},rK=function(e,t){return RegExp(`\\b${nK(t)}\\b`).test(e)};function iK(e){try{new e}catch(e){if(e.message.indexOf(`is not a constructor`)>=0)return!1}return!0}function aK(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;Object.assign(e,t);var r=Object.getPrototypeOf(t);Object.entries(Object.getOwnPropertyDescriptors(r)).filter(function(e){var t=typeof e[1].get==`function`,n=typeof e[1].set==`function`,r=typeof e[1].value==`function`,i=e[0]===`constructor`;return(t||n||r)&&!i}).forEach(function(t){if(typeof e[t[0]]==`function`){n||console.warn(`Function ${t[0]} already exists on CSM, renaming to base_${t[0]}`);var r=`base_${t[0]}`;e[r]=t[1].value.bind(e);return}Object.defineProperty(e,t[0],t[1])})}function oK(e){var t=e.toString().trim(),n=t.substring(t.indexOf(`{`)+1,t.lastIndexOf(`}`));return n.trim().length===0}function sK(e){return e.replace(/\s/g,``)}function cK(e,t,n){var r=e.lastIndexOf(t);return r===-1?e:e.substring(0,r)+n+e.substring(r+t.length)}var lK=function(e){LG(n,e);var t=VG(n);function n(e){var r,i=e.baseMaterial,a=e.fragmentShader,o=e.vertexShader,s=e.uniforms,c=e.patchMap,l=e.cacheKey,u=e.silent,d=jG(e,eK);MG(this,n);var f;if(iK(i)?f=new i(d):(f=i,Object.assign(f,d)),f.type===`RawShaderMaterial`)throw Error(`CustomShaderMaterial does not support RawShaderMaterial`);r=t.call(this),aK(FG(r),f,u),r.__csm={patchMap:c||{},fragmentShader:a||``,vertexShader:o||``,cacheKey:l,baseMaterial:i,instanceID:bt.generateUUID(),type:f.type,isAlreadyExtended:!oK(f.onBeforeCompile),cacheHash:``,silent:u},r.uniforms=kG(kG({},r.uniforms||{}),s||{});var p=r.__csm,m=p.fragmentShader,h=p.vertexShader,g=r.uniforms;return r.__csm.cacheHash=r.getCacheHash(),r.generateMaterial(m,h,g),r}return PG(n,[{key:`update`,value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.uniforms=e.uniforms||this.uniforms,Object.assign(this.__csm,e);var t=this.__csm,n=t.fragmentShader,r=t.vertexShader,i=this.uniforms,a=this.getCacheHash();this.__csm.cacheHash=a,this.generateMaterial(n,r,i)}},{key:`clone`,value:function(){var e={baseMaterial:this.__csm.baseMaterial,fragmentShader:this.__csm.fragmentShader,vertexShader:this.__csm.vertexShader,uniforms:this.uniforms,silent:this.__csm.silent,patchMap:this.__csm.patchMap,cacheKey:this.__csm.cacheKey},t=new this.constructor(e);return Object.assign(this,t),t}},{key:`getCacheHash`,value:function(){var e=this.__csm,t=e.fragmentShader,n=e.vertexShader,r=this.uniforms,i=Object.values(r).reduce(function(e,t){var n=t.value;return e+JSON.stringify(n)},``),a=sK(t)+sK(n)+i;return a.trim().length>0?GW(a):this.customProgramCacheKey()}},{key:`generateMaterial`,value:function(e,t,n){var r=this,i=this.parseShader(e),a=this.parseShader(t);this.uniforms=n||{},this.customProgramCacheKey=function(){return r.__csm.cacheHash};var o=function(e){try{if(i){var t=r.patchShader(i,e.fragmentShader,!0);e.fragmentShader=r.getMaterialDefine()+t}if(a){var n=r.patchShader(a,e.vertexShader);e.vertexShader=`#define IS_VERTEX; +`+n,e.vertexShader=r.getMaterialDefine()+e.vertexShader}e.uniforms=kG(kG({},e.uniforms),r.uniforms),r.uniforms=e.uniforms}catch(e){console.error(e)}};if(this.__csm.isAlreadyExtended){var s=this.onBeforeCompile;this.onBeforeCompile=function(e,t){s(e,t),o(e)}}else this.onBeforeCompile=o;this.needsUpdate=!0}},{key:`patchShader`,value:function(e,t,n){var r=this,i=t,a=kG(kG({},this.getPatchMapForMaterial()),this.__csm.patchMap);Object.keys(a).forEach(function(t){Object.keys(a[t]).forEach(function(n){var o=$G[t],s=r.__csm.type;if(t===`*`||rK(e.main,t))if(!o||Array.isArray(o)&&o.includes(s)||o===`*`)i=tK(i,n,a[t][n]);else throw Error(`CSM: ${t} is not available in ${s}. Shader cannot compile.`)})}),i=i.replace(`void main() {`,` + #ifndef CSM_IS_HEAD_DEFAULTS_DEFINED + ${n?XG:JG} + #define CSM_IS_HEAD_DEFAULTS_DEFINED 1 + #endif + + ${e.header} + + void main() { + #ifndef CSM_IS_DEFAULTS_DEFINED + ${qG} + #define CSM_IS_DEFAULTS_DEFINED 1 + #endif + + #ifndef CSM_IS_MAIN_DEFAULTS_DEFINED + ${n?ZG:YG} + #define CSM_IS_MAIN_DEFAULTS_DEFINED 1 + #endif + + // CSM_START + `);var o=this.__csm.isAlreadyExtended,s=i.includes(`// CSM_END`);return i=o&&s?cK(i,`// CSM_END`,` + // CSM_END + ${e.main} + // CSM_END + `):i.replace(`// CSM_START`,` + // CSM_START + ${e.main} + // CSM_END + `),i=e.defines+i,i}},{key:`parseShader`,value:function(e){if(e){var t=e.replace(/\/\*\*(.*?)\*\/|\/\/(.*?)\n/gm,``),n=mG(t),r=wG(n),i=r.map(function(e){return e.name}).indexOf(`main`),a=yG(n.slice(0,i>=0?r[i].outer[0]:void 0)),o=i>=0?this.getShaderFromIndex(n,r[i].body):``;return{defines:``,header:a,main:o}}}},{key:`getMaterialDefine`,value:function(){var e=this.__csm.type;return e?`#define IS_${e.toUpperCase()}; +`:`#define IS_UNKNOWN; +`}},{key:`getPatchMapForMaterial`,value:function(){switch(this.__csm.type){case`ShaderMaterial`:return KG;default:return GG}}},{key:`getShaderFromIndex`,value:function(e,t){return yG(e.slice(t[0],t[1]))}}]),n}($e),uK=class extends vt{constructor(e={}){super(e),dR(this,`_time`),dR(this,`_factor`),this.setValues(e),this._time={value:0},this._factor={value:1}}onBeforeCompile(e){e.uniforms||={},e.uniforms.time=this._time,e.uniforms.factor=this._factor,e.vertexShader=` + uniform float time; + uniform float factor; + ${e.vertexShader} + `,e.vertexShader=e.vertexShader.replace(`#include `,`float theta = sin( time + position.y ) / 2.0 * factor; + float c = cos( theta ); + float s = sin( theta ); + mat3 m = mat3( c, 0, s, 0, 1, 0, -s, 0, c ); + vec3 transformed = vec3( position ) * m; + vNormal = vNormal * m;`)}get time(){return this._time.value}set time(e){this._time.value=e}get factor(){return this._factor.value}set factor(e){this._factor.value=e}};const dK=[`factor`],fK=B({__name:`index`,props:{speed:{default:1},factor:{default:1}},setup(e,{expose:t}){let n=e,r=L(),{extend:i,invalidate:a}=Ie();i({MeshWobbleMaterial:uK}),R(n,()=>a());let{onBeforeRender:o}=ie();return o(({elapsed:e,invalidate:t})=>{r.value&&(r.value.time=e*n?.speed,t())}),t({instance:r}),(e,t)=>(z(),V(`TresMeshWobbleMaterial`,On({ref_key:`materialRef`,ref:r,factor:e.factor},e.$attrs),null,16,dK))}}),pK=B({name:`BakeShadows`,setup(){let{renderer:e}=Ie();st(()=>{e.value.shadowMap.autoUpdate=!1,e.value.shadowMap.needsUpdate=!0})}});var mK=`void main() { + gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); +}`,hK=`#include + +void main() { + vec2 center = vec2(0., 1.); + float rotation = 0.0; + + + + float size = 0.03; + + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size; + 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; +}`;const gK=new P(0,0,0),_K=new P(0,0,0),vK=new P(0,0,0);function yK(e,t,n){let r=gK.setFromMatrixPosition(e.matrixWorld);r.project(t);let i=n.width/2,a=n.height/2;return[(Number.isNaN(r.x)?0:r.x)*i+i,-(r.y*a)+a,r.z]}function bK(e,t){let n=gK.setFromMatrixPosition(e.matrixWorld),r=_K.setFromMatrixPosition(t.matrixWorld),i=n.sub(r),a=t.getWorldDirection(vK);return i.angleTo(a)>Math.PI/2}function xK(e,t,n,r){let i=gK.setFromMatrixPosition(e.matrixWorld),a=i.clone();a.project(t),n.setFromCamera(new Et(a.x,a.y),t);let o=n.intersectObjects(r,!0);if(o.length>0){let e=o[0].distance;return i.distanceTo(n.ray.origin)Math.abs(e)<1e-10?0:e;function TK(e,t,n=``){let r=`matrix3d(`;for(let n=0;n!==16;n++)r+=wK(t[n]*e.elements[n])+(n===15?`)`:`,`);return n+r}const EK=(e=>t=>TK(t,e))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),DK=(e=>(t,n)=>TK(t,e(n),`translate(-50%,-50%)`))(e=>[1/e,1/e,1/e,1,-1/e,-1/e,-1/e,-1,1/e,1/e,1/e,1,1,1,1,1]),OK=[`geometry`,`material`],kK=B({__name:`HTML`,props:{geometry:{default:new dt},material:{},as:{default:`div`},transform:{type:Boolean,default:!1},portal:{},wrapperClass:{},eps:{default:1e-4},distanceFactor:{},fullscreen:{type:Boolean},center:{type:Boolean},pointerEvents:{default:`auto`},sprite:{type:Boolean,default:!1},zIndexRange:{default:()=>[16777271,0]},occlude:{type:[Object,null,Array,Boolean,String]}},emits:[`onOcclude`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=vn(),o=An(),s=U(),c=U(),{geometry:l,material:u,as:d,transform:f,portal:p,wrapperClass:m,eps:h,distanceFactor:g,fullscreen:_,center:v,pointerEvents:y,sprite:b,occlude:x,zIndexRange:S}=bn(r),{renderer:C,scene:w,camera:T,raycaster:E,sizes:D}=Ie(),O=gn(()=>document.createElement(d.value)),ee=U([0,0,0]),te=U(0),ne=U(),k=gn(()=>f.value?{position:`absolute`,top:0,left:0,width:`${D.width.value}px`,height:`${D.height.value}px`,transformStyle:`preserve-3d`,pointerEvents:`none`,zIndex:2}:{position:`absolute`,transform:v.value?`translate3d(-50%,-50%,0)`:`none`,..._.value&&{top:-D.height.value/2,left:-D.width.value/2,width:`${D.width.value}px`,height:`${D.height.value}px`},zIndex:2,...Object.assign({},o.style)}),A=gn(()=>({position:`absolute`,pointerEvents:y.value})),re=U(null),j=U(!1),ae=gn(()=>x?.value&&x?.value!==`blending`||Array.isArray(x?.value)&&x?.value.length&&Un(x.value[0]));R(()=>x,({value:e})=>{e===`blending`?(O.value.style.zIndex=`${Math.floor(S.value[0]/2)}`,O.value.style.position=`absolute`,O.value.style.pointerEvents=`none`):(O.value.style.zIndex=null,O.value.style.position=null,O.value.style.pointerEvents=null)}),R(()=>{var e;return[s.value,C.value,D.width.value,D.height.value,(e=a.default)?.call(a)]},([e,t])=>{var n,r,i,s,l,u;if(e&&t){let d=p?.value||t.domElement;if((n=w.value)==null||n.updateMatrixWorld(),f.value)O.value.style.cssText=`position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;`;else{let t=yK(e,T.value,{width:D.width.value,height:D.height.value});O.value.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${t[0]}px,${t[1]}px,0);transform-origin:0 0;`}d&&!O.value.parentNode&&((r=d.parentNode)==null||r.appendChild(O.value)),f.value?ne.value=kn(`div`,{id:`outer`,style:k.value},[kn(`div`,{id:`inner`,style:A.value},[kn(`div`,{key:(i=c.value)?.uuid,id:w?.value.uuid,class:o.class,style:o.style},(s=a.default)?.call(a))])]):ne.value=kn(`div`,{key:(l=c.value)?.uuid,id:w?.value.uuid,style:k.value},(u=a.default)?.call(a)),It(ne.value,O.value)}}),st(()=>{m!=null&&m.value&&(O.value.className=m.value)});let oe=U(!0),{onBeforeRender:se}=ie();se(({invalidate:e})=>{var t,n,r,a,u,d,p;if(e(),s.value&&T.value&&C.value){(t=T.value)==null||t.updateMatrixWorld(),s.value.updateWorldMatrix(!0,!1);let e=f.value?ee.value:yK(s.value,T.value,{width:D.width.value||0,height:D.height.value||0});if(f.value||Math.abs(te.value-T.value.zoom)>h.value||Math.abs(ee.value[0]-e[0])>h.value||Math.abs(ee.value[1]-e[1])>h.value||Math.abs(ee.value[2]-e[2])>h.value){let t=bK(s.value,T.value),a=!1;ae.value&&(Array.isArray(x?.value)?a=x?.value:x?.value!==`blending`&&(a=[w.value]));let o=oe.value;if(a){let e=xK(s.value,T.value,E.value,a);oe.value=e&&!t}else oe.value=!t;o!==oe.value&&(i(`onOcclude`,!oe.value),O.value.style.display=oe.value?`block`:`none`);let c=Math.floor(S.value[0]/2),l=x!=null&&x.value?ae.value?[S.value[0],c]:[c-1,0]:S.value;if(O.value.style.zIndex=`${CK(s.value,T.value,l)}`,f.value){let[e,t]=[D.width.value/2,D.height.value/2],i=T.value.projectionMatrix.elements[5]*t,{isOrthographicCamera:a,top:o,left:c,bottom:l,right:u}=T.value,d=EK(T.value.matrixWorldInverse),f=a?`scale(${i})translate(${wK(-(u+c)/2)}px,${wK((o+l)/2)}px)`:`translateZ(${i}px)`,p=s.value.matrixWorld;if(b.value&&(p=T.value.matrixWorldInverse.clone().transpose().copyPosition(p).scale(s.value.scale),p.elements[3]=p.elements[7]=p.elements[11]=0,p.elements[15]=1),O.value.style.width=`${D.width.value}px`,O.value.style.height=`${D.height.value}px`,O.value.style.perspective=a?``:`${i}px`,(n=ne.value)!=null&&n.el&&(r=ne.value)!=null&&r.children&&Array.isArray(ne.value.children)){ne.value.el.style.transform=`${f}${d}translate(${e}px,${t}px)`;let n=ne.value.children[0];n&&n.el&&(n.el.style.transform=DK(p,1/((g?.value||10)/400)))}}else{let t=g?.value===void 0?1:SK(s.value,T.value)*g?.value;O.value.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}}ee.value=e,te.value=T.value.zoom}if(!ae.value&&c.value&&!j.value)if(f.value){if((a=ne.value)!=null&&a.el&&(u=ne.value)!=null&&u.children){let e=((d=ne.value)?.children)[0];if(e!=null&&e.clientWidth&&e!=null&&e.clientHeight){let{isOrthographicCamera:t}=T.value;if(t||l)o.scale&&(Array.isArray(o.scale)?o.scale instanceof P?c.value.scale.copy(o.scale.clone().divideScalar(1)):c.value.scale.set(1/o.scale[0],1/o.scale[1],1/o.scale[2]):c.value.scale.setScalar(1/o.scale));else{let t=(g?.value||10)/400,n=e.clientWidth*t,r=e.clientHeight*t;c.value.scale.set(n,r,1)}j.value=!0}}}else{let e=O.value.children[0];if(e!=null&&e.clientWidth&&e!=null&&e.clientHeight){let t=e.clientWidth*1,n=e.clientHeight*1;c.value.scale.set(t,n,1),j.value=!0}re.value.lookAt((p=T.value)?.position)}});let M=gn(()=>({vertexShader:f.value?void 0:hK,fragmentShader:mK})),ce=gn(()=>{let e=M.value;return u.value||new Zt({vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,side:tt})});return In(()=>{ce.value&&ce.value.dispose(),O.value.remove()}),t({instance:s}),(e,t)=>(z(),V(`TresGroup`,{ref_key:`groupRef`,ref:s},[H(x)&&!ae.value?(z(),V(`TresMesh`,{key:0,ref_key:`meshRef`,ref:c,geometry:H(l),material:ce.value},null,8,OK)):Nn(``,!0)],512))}});var AK={exports:{}},jK=AK.exports,MK;function NK(){return MK||(MK=1,function(e,t){(function(t,n){e.exports=n()})(jK,function(){var e=function(){function t(e){return i.appendChild(e.dom),e}function n(e){for(var t=0;to+1e3&&(c.update(1e3*s/(e-o),100),o=e,s=0,u)){var t=performance.memory;u.update(t.usedJSHeapSize/1048576,t.jsHeapSizeLimit/1048576)}return e},update:function(){a=this.end()},domElement:i,setMode:n}};return e.Panel=function(e,t,n){var r=1/0,i=0,a=Math.round,o=a(window.devicePixelRatio||1),s=80*o,c=48*o,l=3*o,u=2*o,d=3*o,f=15*o,p=74*o,m=30*o,h=document.createElement(`canvas`);h.width=s,h.height=c,h.style.cssText=`width:80px;height:48px`;var g=h.getContext(`2d`);return g.font=`bold `+9*o+`px Helvetica,Arial,sans-serif`,g.textBaseline=`top`,g.fillStyle=n,g.fillRect(0,0,s,c),g.fillStyle=t,g.fillText(e,l,u),g.fillRect(d,f,p,m),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(d,f,p,m),{dom:h,update:function(c,_){r=Math.min(r,c),i=Math.max(i,c),g.fillStyle=n,g.globalAlpha=1,g.fillRect(0,0,s,f),g.fillStyle=t,g.fillText(a(c)+` `+e+` (`+a(r)+`-`+a(i)+`)`,l,u),g.drawImage(h,d+o,f,p-o,m,d,f,p-o,m),g.fillRect(d+p-o,f,o,m),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(d+p-o,f,o,a((1-c/_)*m))}}},e})}(AK)),AK.exports}var PK=NK();const FK=zW(PK),IK=B({name:`Stats`,props:{showPanel:{type:Number,default:0}},setup(e,{expose:t}){let n=new FK;t({instance:n});let r=document.body;n.showPanel(e.showPanel||0),r?.appendChild(n.dom);let{onBeforeRender:i,onAfterRender:a}=ie();i(()=>n.begin(),-1/0),a(()=>n.end(),1/0),In(()=>{r?.removeChild(n.dom)})}});var LK=class{constructor(e,t,n){this.name=e,this.fg=t,this.bg=n,this.gradient=null,this.PR=Math.round(window.devicePixelRatio||1),this.WIDTH=90*this.PR,this.HEIGHT=48*this.PR,this.TEXT_X=3*this.PR,this.TEXT_Y=2*this.PR,this.GRAPH_X=3*this.PR,this.GRAPH_Y=15*this.PR,this.GRAPH_WIDTH=84*this.PR,this.GRAPH_HEIGHT=30*this.PR,this.canvas=document.createElement(`canvas`),this.canvas.width=this.WIDTH,this.canvas.height=this.HEIGHT,this.canvas.style.width=`90px`,this.canvas.style.height=`48px`,this.canvas.style.position=`absolute`,this.canvas.style.cssText=`width:90px;height:48px`,this.context=this.canvas.getContext(`2d`),this.initializeCanvas()}createGradient(){if(!this.context)throw Error(`No context`);let e=this.context.createLinearGradient(0,this.GRAPH_Y,0,this.GRAPH_Y+this.GRAPH_HEIGHT),t,n=this.fg;switch(this.fg.toLowerCase()){case`#0ff`:t=`#006666`;break;case`#0f0`:t=`#006600`;break;case`#ff0`:t=`#666600`;break;case`#e1e1e1`:t=`#666666`;break;default:t=this.bg;break}return e.addColorStop(0,t),e.addColorStop(1,n),e}initializeCanvas(){this.context&&(this.context.font=`bold `+9*this.PR+`px Helvetica,Arial,sans-serif`,this.context.textBaseline=`top`,this.gradient=this.createGradient(),this.context.fillStyle=this.bg,this.context.fillRect(0,0,this.WIDTH,this.HEIGHT),this.context.fillStyle=this.fg,this.context.fillText(this.name,this.TEXT_X,this.TEXT_Y),this.context.fillStyle=this.fg,this.context.fillRect(this.GRAPH_X,this.GRAPH_Y,this.GRAPH_WIDTH,this.GRAPH_HEIGHT),this.context.fillStyle=this.bg,this.context.globalAlpha=.9,this.context.fillRect(this.GRAPH_X,this.GRAPH_Y,this.GRAPH_WIDTH,this.GRAPH_HEIGHT))}update(e,t,n,r,i=0){if(!this.context||!this.gradient)return;let a=Math.min(1/0,e),o=Math.max(n,e);r=Math.max(r,t),this.context.globalAlpha=1,this.context.fillStyle=this.bg,this.context.fillRect(0,0,this.WIDTH,this.GRAPH_Y),this.context.fillStyle=this.fg,this.context.fillText(`${e.toFixed(i)} ${this.name} (${a.toFixed(i)}-${parseFloat(o.toFixed(i))})`,this.TEXT_X,this.TEXT_Y),this.context.drawImage(this.canvas,this.GRAPH_X+this.PR,this.GRAPH_Y,this.GRAPH_WIDTH-this.PR,this.GRAPH_HEIGHT,this.GRAPH_X,this.GRAPH_Y,this.GRAPH_WIDTH-this.PR,this.GRAPH_HEIGHT);let s=this.GRAPH_HEIGHT-(1-t/r)*this.GRAPH_HEIGHT;s>0&&(this.context.globalAlpha=1,this.context.fillStyle=this.gradient,this.context.fillRect(this.GRAPH_X+this.GRAPH_WIDTH-this.PR,this.GRAPH_Y+this.GRAPH_HEIGHT-s,this.PR,s))}};const RK=class e{constructor({trackGPU:t=!1,logsPerSecond:n=30,samplesLog:r=60,samplesGraph:i=10,precision:a=2,minimal:o=!1,horizontal:s=!0,mode:c=0}={}){this.gl=null,this.ext=null,this.activeQuery=null,this.gpuQueries=[],this.threeRendererPatched=!1,this.frames=0,this.renderCount=0,this.isRunningCPUProfiling=!1,this.totalCpuDuration=0,this.totalGpuDuration=0,this.totalGpuDurationCompute=0,this.totalFps=0,this.gpuPanel=null,this.gpuPanelCompute=null,this.averageFps={logs:[],graph:[]},this.averageCpu={logs:[],graph:[]},this.averageGpu={logs:[],graph:[]},this.averageGpuCompute={logs:[],graph:[]},this.handleClick=e=>{e.preventDefault(),this.showPanel(++this.mode%this.dom.children.length)},this.handleResize=()=>{this.resizePanel(this.fpsPanel,0),this.resizePanel(this.msPanel,1),this.gpuPanel&&this.resizePanel(this.gpuPanel,2),this.gpuPanelCompute&&this.resizePanel(this.gpuPanelCompute,3)},this.mode=c,this.horizontal=s,this.minimal=o,this.trackGPU=t,this.samplesLog=r,this.samplesGraph=i,this.precision=a,this.logsPerSecond=n,this.dom=document.createElement(`div`),this.initializeDOM(),this.beginTime=performance.now(),this.prevTime=this.beginTime,this.prevCpuTime=this.beginTime,this.fpsPanel=this.addPanel(new e.Panel(`FPS`,`#0ff`,`#002`),0),this.msPanel=this.addPanel(new e.Panel(`CPU`,`#0f0`,`#020`),1),this.setupEventListeners()}initializeDOM(){this.dom.style.cssText=` + position: fixed; + top: 0; + left: 0; + opacity: 0.9; + z-index: 10000; + ${this.minimal?`cursor: pointer;`:``} + `}setupEventListeners(){this.minimal?(this.dom.addEventListener(`click`,this.handleClick),this.showPanel(this.mode)):window.addEventListener(`resize`,this.handleResize)}async init(e){if(!e){console.error(`Stats: The "canvas" parameter is undefined.`);return}this.handleThreeRenderer(e)||await this.handleWebGPURenderer(e)||this.initializeWebGL(e)}handleThreeRenderer(e){return e.isWebGLRenderer&&!this.threeRendererPatched?(this.patchThreeRenderer(e),this.gl=e.getContext(),this.trackGPU&&this.initializeGPUTracking(),!0):!1}async handleWebGPURenderer(e){return e.isWebGPURenderer?(this.trackGPU&&(e.backend.trackTimestamp=!0,await e.hasFeatureAsync(`timestamp-query`)&&this.initializeWebGPUPanels()),this.info=e.info,!0):!1}initializeWebGPUPanels(){this.gpuPanel=this.addPanel(new e.Panel(`GPU`,`#ff0`,`#220`),2),this.gpuPanelCompute=this.addPanel(new e.Panel(`CPT`,`#e1e1e1`,`#212121`),3)}initializeWebGL(e){if(e instanceof WebGL2RenderingContext)this.gl=e;else if(e instanceof HTMLCanvasElement||e instanceof OffscreenCanvas){if(this.gl=e.getContext(`webgl2`),!this.gl)return console.error(`Stats: Unable to obtain WebGL2 context.`),!1}else return console.error(`Stats: Invalid input type. Expected WebGL2RenderingContext, HTMLCanvasElement, or OffscreenCanvas.`),!1;return!0}initializeGPUTracking(){this.gl&&(this.ext=this.gl.getExtension(`EXT_disjoint_timer_query_webgl2`),this.ext&&(this.gpuPanel=this.addPanel(new e.Panel(`GPU`,`#ff0`,`#220`),2)))}begin(){this.isRunningCPUProfiling||this.beginProfiling(`cpu-started`),!(!this.gl||!this.ext)&&(this.activeQuery&&this.gl.endQuery(this.ext.TIME_ELAPSED_EXT),this.activeQuery=this.gl.createQuery(),this.activeQuery&&this.gl.beginQuery(this.ext.TIME_ELAPSED_EXT,this.activeQuery))}end(){this.renderCount++,this.gl&&this.ext&&this.activeQuery&&(this.gl.endQuery(this.ext.TIME_ELAPSED_EXT),this.gpuQueries.push({query:this.activeQuery}),this.activeQuery=null)}update(){this.info?this.processWebGPUTimestamps():this.processGpuQueries(),this.endProfiling(`cpu-started`,`cpu-finished`,`cpu-duration`),this.updateAverages(),this.resetCounters()}processWebGPUTimestamps(){this.totalGpuDuration=this.info.render.timestamp,this.totalGpuDurationCompute=this.info.compute.timestamp,this.addToAverage(this.totalGpuDurationCompute,this.averageGpuCompute)}updateAverages(){this.addToAverage(this.totalCpuDuration,this.averageCpu),this.addToAverage(this.totalGpuDuration,this.averageGpu)}resetCounters(){this.renderCount=0,this.totalCpuDuration===0&&this.beginProfiling(`cpu-started`),this.totalCpuDuration=0,this.totalFps=0,this.beginTime=this.endInternal()}resizePanel(e,t){e.canvas.style.position=`absolute`,this.minimal?e.canvas.style.display=`none`:(e.canvas.style.display=`block`,this.horizontal?(e.canvas.style.top=`0px`,e.canvas.style.left=t*e.WIDTH/e.PR+`px`):(e.canvas.style.left=`0px`,e.canvas.style.top=t*e.HEIGHT/e.PR+`px`))}addPanel(e,t){return e.canvas&&(this.dom.appendChild(e.canvas),this.resizePanel(e,t)),e}showPanel(e){for(let t=0;t{if(this.gl){let n=this.gl.getQueryParameter(e.query,this.gl.QUERY_RESULT_AVAILABLE),r=this.gl.getParameter(this.ext.GPU_DISJOINT_EXT);if(n&&!r){let n=this.gl.getQueryParameter(e.query,this.gl.QUERY_RESULT)*1e-6;this.totalGpuDuration+=n,this.gl.deleteQuery(e.query),this.gpuQueries.splice(t,1)}}}))}endInternal(){this.frames++;let e=(performance||Date).now(),t=e-this.prevTime;if(e>=this.prevCpuTime+1e3/this.logsPerSecond){let n=Math.round(this.frames*1e3/t);this.addToAverage(n,this.averageFps),this.updatePanel(this.fpsPanel,this.averageFps,0),this.updatePanel(this.msPanel,this.averageCpu,this.precision),this.updatePanel(this.gpuPanel,this.averageGpu,this.precision),this.gpuPanelCompute&&this.updatePanel(this.gpuPanelCompute,this.averageGpuCompute),this.frames=0,this.prevCpuTime=e,this.prevTime=e}return e}addToAverage(e,t){t.logs.push(e),t.logs.length>this.samplesLog&&t.logs.shift(),t.graph.push(e),t.graph.length>this.samplesGraph&&t.graph.shift()}beginProfiling(e){window.performance&&(window.performance.mark(e),this.isRunningCPUProfiling=!0)}endProfiling(e,t,n){if(window.performance&&t&&this.isRunningCPUProfiling){window.performance.mark(t);let r=performance.measure(n,e,t);this.totalCpuDuration+=r.duration,this.isRunningCPUProfiling=!1}}updatePanel(e,t,n=2){if(t.logs.length>0){let r=0,i=.01;for(let e=0;ei&&(i=t.logs[e]);let a=0,o=.01;for(let e=0;eo&&(o=t.graph[e]);e&&e.update(r/Math.min(t.logs.length,this.samplesLog),a/Math.min(t.graph.length,this.samplesGraph),i,o,n)}}get domElement(){return this.dom}patchThreeRenderer(e){let t=e.render,n=this;e.render=function(e,r){n.begin(),t.call(this,e,r),n.end()},this.threeRendererPatched=!0}};RK.Panel=LK;let zK=RK;const BK=B({name:`StatsGl`,props:[`logsPerSecond`,`samplesLog`,`samplesGraph`,`precision`,`horizontal`,`minimal`,`mode`],setup(e,{expose:t}){let n=new zK({logsPerSecond:e.logsPerSecond,samplesLog:e.samplesLog,samplesGraph:e.samplesGraph,precision:e.precision,horizontal:e.horizontal,minimal:e.minimal,mode:e.mode});t({instance:n});let r=document.body,i=n.dom||n.container;r?.appendChild(i);let{renderer:a}=Ie(),{onAfterRender:o}=ie();n.init(a.value),o(()=>n.update(),1/0),In(()=>{r?.removeChild(i)})}}),{logError:VK}=se(),HK=[`args`],UK=[`color`],WK=B({__name:`Box`,props:{args:{default:()=>[1,1,1]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{invalidate:r}=Ie(),{args:i,color:a}=bn(n);R(i,()=>r());let o=L();return t({instance:o}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`boxRef`,ref:o},e.$attrs),[I(`TresBoxGeometry`,{args:H(i)},null,8,HK),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(a)},null,8,UK)])],16))}}),GK=[`object`],KK=B({__name:`Line2`,props:{points:{},vertexColors:{default:null},color:{default:`white`},lineWidth:{default:1},worldUnits:{type:Boolean,default:!1},alphaToCoverage:{type:Boolean,default:!1},dashed:{type:Boolean,default:!1},dashSize:{default:1},gapSize:{default:1},dashScale:{default:1},dashOffset:{default:0}},setup(e,{expose:t}){let n=e;function r(e,t){if(!e||e.length===0)return Array.from({length:t}).fill(oe(n.color));if(e.length===1)return Array.from({length:t}).fill(oe(e[0]));if(e.length===t)return e.map(oe);let r=t-1,i=e.map(oe);closed&&i.push(i[0].clone());let a=[i[0]],o=r/(i.length-1);for(let e=1;eArray.isArray(n.vertexColors));function u(e,t){e.color=oe(t.color),e.linewidth=t.lineWidth,e.alphaToCoverage=t.alphaToCoverage,e.worldUnits=t.worldUnits,e.vertexColors=Array.isArray(t.vertexColors),e.dashed=t.dashed,e.dashScale=t.dashScale,e.dashSize=t.dashSize,e.dashOffset=t.dashOffset,e.gapSize=t.gapSize,e.needsUpdate=!0}function d(e,t,n){let i=t.map(e=>e instanceof P?[e.x,e.y,e.z]:e instanceof Et?[e.x,e.y,0]:Array.isArray(e)&&e.length===2?[e[0],e[1],0]:e).flat();e.setPositions(i.flat());let a=r(n,t.length).map(e=>e.toArray()).flat();e.setColors(a),o.computeLineDistances()}u(i,n),d(a,n.points,n.vertexColors),o.computeLineDistances(),R(()=>[n.color,n.lineWidth,n.alphaToCoverage,n.worldUnits,l,n.dashed,n.dashScale,n.dashSize,n.dashOffset],()=>{u(i,n),c()}),R(()=>[n.points,n.vertexColors],()=>{d(a,n.points,n.vertexColors),c()}),R(()=>[s.height,s.width],()=>{i.resolution=new Et(s.width.value,s.height.value),c()}),In(()=>{a.dispose(),i.dispose()});let f=L();return t({instance:f}),(e,t)=>(z(),V(`primitive`,{ref:f.value,object:H(o)},null,8,GK))}}),qK=B({__name:`CatmullRomCurve3`,props:{segments:{default:20},closed:{type:Boolean,default:!1},curveType:{default:`centripetal`},tension:{default:.5},points:{},vertexColors:{},color:{},lineWidth:{},alphaToCoverage:{type:Boolean},dashed:{type:Boolean},dashSize:{},dashScale:{},dashOffset:{},gapSize:{},worldUnits:{type:Boolean}},setup(e,{expose:t}){let n=e;function r(e,t,n,r){let i=e.map(e=>e instanceof P?e:new P(...e));return new Pt(i,t,n,r)}function i(e,t){return e.getPoints(t)}let a=gn(()=>r(n.points,n.closed,n.curveType,n.tension)),o=gn(()=>i(a.value,n.segments)),s=L();return t({instance:s}),(e,t)=>(z(),dn(KK,{ref:s.value,points:o.value,"vertex-colors":n.vertexColors,color:n.color,"line-width":n.lineWidth,"alpha-to-coverage":n.alphaToCoverage,dashed:n.dashed,"dash-size":n.dashSize,"dash-scale":n.dashScale,"dash-offset":n.dashOffset,"gap-size":n.gapSize,"world-units":n.worldUnits},null,8,[`points`,`vertex-colors`,`color`,`line-width`,`alpha-to-coverage`,`dashed`,`dash-size`,`dash-scale`,`dash-offset`,`gap-size`,`world-units`]))}}),JK=[`args`],YK=[`color`],XK=B({__name:`Circle`,props:{args:{default:()=>[1,32,0,Math.PI*2]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{args:r,color:i}=bn(n),{invalidate:a}=Ie();R(r,()=>a());let o=L();return t({instance:o}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`circleRef`,ref:o},e.$attrs),[I(`TresCircleGeometry`,{args:H(r)},null,8,JK),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(i)},null,8,YK)])],16))}}),ZK=[`args`],QK=[`color`],$K=B({__name:`Cone`,props:{args:{default:()=>[1,1,12,12,!1,0,Math.PI*2]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{args:r,color:i}=bn(n),{invalidate:a}=Ie();R(r,()=>a());let o=L();return t({instance:o}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`coneRef`,ref:o},e.$attrs),[I(`TresConeGeometry`,{args:H(r)},null,8,ZK),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(i)},null,8,QK)])],16))}}),eq=[`args`],tq=[`color`],nq=B({__name:`Cylinder`,props:{args:{default:()=>[1,1,1,32,1,!1,0,Math.PI*2]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{args:r,color:i}=bn(n),{invalidate:a}=Ie();R(r,()=>a());let o=L();return t({instance:o}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`cylinderRef`,ref:o},e.$attrs),[I(`TresCylinderGeometry`,{args:H(r)},null,8,eq),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(i)},null,8,tq)])],16))}}),rq=[`args`],iq=[`color`],aq=B({__name:`Dodecahedron`,props:{args:{default:()=>[1,0]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{args:r,color:i}=bn(n),a=L(),{invalidate:o}=Ie();return R(r,()=>o()),t({instance:a}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`dodecahedronRef`,ref:a},e.$attrs),[I(`TresDodecahedronGeometry`,{args:H(r)},null,8,rq),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(i)},null,8,iq)])],16))}}),oq=[`args`],sq=[`color`],cq=B({__name:`Icosahedron`,props:{args:{default:()=>[1,0]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{args:r,color:i}=bn(n),{invalidate:a}=Ie();R(r,()=>a());let o=L();return t({instance:o}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`icosahedronRef`,ref:o},e.$attrs),[I(`TresIcosahedronGeometry`,{args:H(r)},null,8,oq),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(i)},null,8,sq)])],16))}}),lq=[`args`],uq=[`color`],dq=B({__name:`Octahedron`,props:{args:{default:()=>[1,0]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{args:r,color:i}=bn(n),{invalidate:a}=Ie();R(r,()=>a());let o=L();return t({instance:o}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`octahedronRef`,ref:o},e.$attrs),[I(`TresOctahedronGeometry`,{args:H(r)},null,8,lq),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(i)},null,8,uq)])],16))}}),fq=[`rotation`],pq=[`args`],mq=[`color`],hq=B({__name:`Plane`,props:{args:{default:()=>[1,1]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{args:r,color:i}=bn(n),{invalidate:a}=Ie();R(r,()=>a());let o=L();return t({instance:o}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`planeRef`,ref:o,rotation:[-Math.PI/2,0,0]},e.$attrs),[I(`TresPlaneGeometry`,{args:H(r)},null,8,pq),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(i)},null,8,mq)])],16,fq))}}),gq=[`args`],_q=[`color`],vq=B({__name:`Ring`,props:{args:{default:()=>[.5,1,32]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{args:r,color:i}=bn(n),{invalidate:a}=Ie();R(r,()=>a());let o=L();return t({instance:o}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`ringRef`,ref:o},e.$attrs),[I(`TresRingGeometry`,{args:H(r)},null,8,gq),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(i)},null,8,_q)])],16))}}),yq=[`args`],bq=[`color`],xq=B({__name:`RoundedBox`,props:{args:{default:()=>[1,1,1,2,.1]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{args:r,color:i}=bn(n),{invalidate:a,extend:o}=Ie();o({RoundedBoxGeometry:OV}),R(r,()=>a());let s=L();return t({instance:s}),(e,t)=>(z(),V(`TresMesh`,{ref_key:`roundedBoxRef`,ref:s},[I(`TresRoundedBoxGeometry`,{args:H(r)},null,8,yq),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(i)},null,8,bq)])],512))}}),Sq=[`args`],Cq=[`color`],wq=B({__name:`Sphere`,props:{args:{default:()=>[2,32,16]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{args:r,color:i}=bn(n),{invalidate:a}=Ie();R(r,()=>a());let o=L();return t({instance:o}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`sphereRef`,ref:o},e.$attrs),[I(`TresSphereGeometry`,{args:H(r)},null,8,Sq),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(i)},null,8,Cq)])],16))}}),Tq=[`geometry`],Eq=[`color`],Dq=B({__name:`Superformula`,props:{widthSegments:{default:32},heightSegments:{default:32},numArmsA:{default:4},expA:{default:()=>[40,1.3,.9]},numArmsB:{default:4},expB:{default:()=>[40,1.3,.9]},color:{default:`white`}},setup(e,{expose:t}){let n=e,{invalidate:r}=Ie(),{cos:i,sin:a,abs:o}=Math,s=L(),c=L(n.color);function l(e,t){let n=new yt,r=e*t,i=new Float32Array(Array.from({length:3*r}).fill(0)),a=new Float32Array(Array.from({length:3*r}).fill(0)),o=[];for(let n=0;nn.color,()=>c.value=n.color),R(()=>[n.widthSegments,n.heightSegments],()=>{s.value&&s.value.dispose(),s.value=l(n.widthSegments,n.heightSegments),r()},{immediate:!0}),R(()=>[n.numArmsA,n.expA[0],n.expA[1],n.expA[2],n.numArmsB,n.expB[0],n.expB[1],n.expB[2]],()=>{d(s.value,n.numArmsA,n.expA[0],n.expA[1],n.expA[2],n.numArmsB,n.expB[0],n.expB[1],n.expB[2],n.widthSegments,n.heightSegments),r()},{immediate:!0}),In(()=>{s.value&&s.value.dispose()});let f=L();return t({instance:f}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`superformulaRef`,ref:f},e.$attrs,{geometry:s.value}),[fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:c.value},null,8,Eq)])],16,Tq))}}),Oq=[`rotation`],kq=[`args`],Aq=[`color`],jq=B({__name:`Tetrahedron`,props:{args:{default:()=>[1,0]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{args:r,color:i}=bn(n),a=L();return t({instance:a}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`tetrahedronRef`,ref:a,rotation:[-Math.PI/2,0,0]},e.$attrs),[I(`TresTetrahedronGeometry`,{args:H(r)},null,8,kq),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(i)},null,8,Aq)])],16,Oq))}}),Mq=[`args`],Nq=[`color`],Pq=B({__name:`Torus`,props:{args:{default:()=>[1,1,16,80]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{args:r,color:i}=bn(n),{invalidate:a}=Ie();R(r,()=>a());let o=L();return t({instance:o}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`torusRef`,ref:o},e.$attrs),[I(`TresTorusGeometry`,{args:H(r)},null,8,Mq),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(i)},null,8,Nq)])],16))}}),Fq=[`args`],Iq=[`color`],Lq=B({__name:`TorusKnot`,props:{args:{default:()=>[1,.4,64,8]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{args:r,color:i}=bn(n),{invalidate:a}=Ie();R(r,()=>a());let o=L();return t({instance:o}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`torusKnotRef`,ref:o},e.$attrs),[I(`TresTorusKnotGeometry`,{args:H(r)},null,8,Fq),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(i)},null,8,Iq)])],16))}}),Rq=[`args`],zq=[`color`],Bq=B({__name:`Tube`,props:{args:{default:()=>[new Nt(new P(-1,0,0),new P(0,1,0),new P(1,0,0)),20,.2,8,!1]},color:{default:`#ffffff`}},setup(e,{expose:t}){let n=e,{args:r,color:i}=bn(n),{invalidate:a}=Ie();R(r,()=>a());let o=L();return t({instance:o}),(e,t)=>(z(),V(`TresMesh`,On({ref_key:`tubeRef`,ref:o},e.$attrs),[I(`TresTubeGeometry`,{args:H(r)},null,8,Rq),fn(e.$slots,`default`,{},()=>[I(`TresMeshBasicMaterial`,{color:H(i)},null,8,zq)])],16))}}),Vq=B({__name:`Align`,props:{top:{type:Boolean},right:{type:Boolean},bottom:{type:Boolean},left:{type:Boolean},front:{type:Boolean},back:{type:Boolean},disable:{type:Boolean},disableX:{type:Boolean},disableY:{type:Boolean},disableZ:{type:Boolean},precise:{type:Boolean,default:!0},onAlign:{},cacheKey:{default:void 0}},setup(e,{expose:t}){let n=e,r=L(),i=L(),a=L(),o=new _e,s=new P,c=new Vt;function l(){if(!i.value||!a.value||!r.value)return;i.value.matrixWorld.identity(),o.setFromObject(a.value,n.precise);let e=o.max.x-o.min.x,t=o.max.y-o.min.y,l=o.max.z-o.min.z;o.getCenter(s),o.getBoundingSphere(c);let u=n.top?t/2:n.bottom?-t/2:0,d=n.left?-e/2:n.right?e/2:0,f=n.front?l/2:n.back?-l/2:0;i.value.position.set(n.disable||n.disableX?0:-s.x+d,n.disable||n.disableY?0:-s.y+u,n.disable||n.disableZ?0:-s.z+f),typeof n.onAlign<`u`&&n.onAlign({parent:r.value.parent,container:r.value,width:e,height:t,depth:l,boundingBox:o,boundingSphere:c,center:s,verticalAlignment:u,horizontalAlignment:d,depthAlignment:f})}let u=null,d=null,f=ie();return st(()=>{u?.(),u=null;let e=Hn(n.cacheKey);e===d&&d!=null||(d=e,n.cacheKey===null||n.cacheKey===void 0?u=f.onBeforeRender(()=>{l()}).off:l())}),t({instance:r,update:l}),(e,t)=>(z(),V(`TresGroup`,{ref_key:`ref`,ref:r},[I(`TresGroup`,{ref_key:`outer`,ref:i},[I(`TresGroup`,{ref_key:`inner`,ref:a},[fn(e.$slots,`default`)],512)],512)],512))}}),Hq=[`receive-shadow`,`rotation`],Uq=[`args`],Wq=B({__name:`Backdrop`,props:{floor:{default:.25},segments:{default:20},receiveShadow:{type:Boolean,default:!1}},setup(e,{expose:t}){let n=e,r=e=>e===0?0:2**(10*e-10),{floor:i,segments:a,receiveShadow:o}=bn(n),s=U(null);R([a,i,s],([e,t,n])=>{if(!n||e===null)return;let i=0,a=e/e/2,o=n.attributes.position;for(let n=0;n(z(),V(`TresGroup`,On({ref_key:`backdropRef`,ref:c},e.$attrs),[I(`TresMesh`,{"receive-shadow":H(o),rotation:[-Math.PI/2,0,Math.PI/2]},[I(`TresPlaneGeometry`,{ref_key:`planeRef`,ref:s,args:[1,1,H(a),H(a)]},null,8,Uq),fn(e.$slots,`default`,{},()=>[t[0]||=I(`TresMeshStandardMaterial`,{color:8421504,side:2},null,-1)])],8,Hq)],16))}}),Gq=[`object`],Kq=B({__name:`ContactShadows`,props:{opacity:{default:1},blur:{default:1},color:{default:`#000000`},tint:{default:void 0},scale:{default:10},width:{default:1},height:{default:1},far:{default:10},smooth:{type:Boolean,default:!0},resolution:{default:512},frames:{default:1/0},depthWrite:{type:Boolean,default:!1}},setup(e,{expose:t}){let n=e;function r(e,t,n){n.blurPlane.visible=!0,n.blurPlane.material=n.horizontalBlurMaterial,n.horizontalBlurMaterial.uniforms.tDiffuse.value=n.renderTarget.texture,n.horizontalBlurMaterial.uniforms.h.value=e/256,t.setRenderTarget(n.renderTargetBlur),t.render(n.blurPlane,n.shadowCamera),n.blurPlane.material=n.verticalBlurMaterial,n.verticalBlurMaterial.uniforms.tDiffuse.value=n.renderTargetBlur.texture,n.verticalBlurMaterial.uniforms.v.value=e/256,t.setRenderTarget(n.renderTarget),t.render(n.blurPlane,n.shadowCamera),n.blurPlane.visible=!1}function i(e,t,n,i){let{renderTarget:a,shadowCamera:o,depthMaterial:s}=i,c=t.background;t.background=null,t.overrideMaterial=s;let l=n.getClearAlpha();n.setClearAlpha(0),n.setRenderTarget(a),n.render(t,o),t.overrideMaterial=null,r(e.blur,n,i),e.smooth&&r(e.blur*.4,n,i),n.setRenderTarget(null),n.setClearAlpha(l),t.background=c}function a(e){let t=new Ne,n=new ve(e.resolution,e.resolution);n.texture.generateMipmaps=!1;let r=new ve(e.resolution,e.resolution);r.texture.generateMipmaps=!1;let i=new dt(e.width,e.height).rotateX(Math.PI/2),a=new Mt({map:n.texture,opacity:e.opacity,transparent:!0,depthWrite:e.depthWrite,color:new je(e.color??`black`)}),o=new F(i,a);t.add(o),o.scale.y=-1;let s=new F(i);s.visible=!1,t.add(s);let c=new le(-e.width/2,e.width/2,e.height/2,-e.height/2,0,.3);c.rotation.x=Math.PI/2,t.add(c);let l=new un,u=new Zt(AV);u.depthTest=!1;let d=new Zt(jV);return d.depthTest=!1,{renderTarget:n,renderTargetBlur:r,shadowCamera:c,depthMaterial:l,horizontalBlurMaterial:u,verticalBlurMaterial:d,shadowGroup:t,plane:o,blurPlane:s}}function o(e,t){let n=t.shadowCamera;n.left=-e.width/2,n.right=e.width/2,n.top=e.height/2,n.bottom=-e.height/2,n.far=e.far;let r=e.width*(Array.isArray(e.scale)?e.scale[0]:e.scale||1),i=e.height*(Array.isArray(e.scale)?e.scale[1]:e.scale||1);t.shadowGroup.scale.set(r,e.far,i)}function s(e,t){t.renderTarget.dispose(),t.renderTargetBlur.dispose(),t.renderTarget=new ve(e,e),t.renderTarget.texture.generateMipmaps=!1,t.renderTargetBlur=new ve(e,e),t.renderTargetBlur.texture.generateMipmaps=!1,t.plane.material.map=t.renderTarget.texture}function c(e,t){t.plane.material.color=new je(e.color??`black`),t.depthMaterial.dispose(),t.depthMaterial=new un,t.depthMaterial.onBeforeCompile=function(t){let n=e.tint?new je(e.tint):new je(`white`),{r,g:i,b:a}=n,o=t.fragmentShader.replace(`gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );`,`gl_FragColor = vec4( ${r}, ${i}, ${a}, ( 1.0 - fragCoordZ ) * opacity);`);t.fragmentShader=o}}let{onBeforeRender:l}=ie(),u=a(n),d=0,f=()=>d=d>=n.frames?n.frames-1:d;return l(({renderer:e,scene:t,invalidate:r})=>{d[n.opacity,n.depthWrite,n.blur,n.smooth],()=>{u.plane.material.opacity=n.opacity??1,u.plane.material.depthWrite=n.depthWrite??!1,f()},{immediate:!0}),R(()=>[n.color,n.tint],()=>{c(n,u),f()},{immediate:!0}),R(()=>[n.resolution],()=>{s(n.resolution,u),f()}),R(()=>[n.width,n.height,n.scale,n.far],()=>{o(n,u),f()},{immediate:!0}),In(()=>{for(let e of Object.values(u))e&&`dispose`in e&&typeof e.dispose==`function`&&e.dispose()}),t({instance:u.shadowGroup}),(e,t)=>(z(),V(`primitive`,{object:H(u).shadowGroup},null,8,Gq))}}),qq=B({__name:`Fit`,props:{into:{default:()=>new _e(new P(-.5,-.5,-.5),new P(.5,.5,.5))},precise:{type:Boolean,default:!1}},setup(e,{expose:t}){let n=e,{invalidate:r}=Ie(),i=L(new Ne),a=L(new Ne);function o(e,t){if(i.value.position.set(0,0,0),i.value.updateMatrixWorld(),a.value.scale.set(1,1,1),a.value.updateMatrixWorld(),!a.value.children.length||e===null)return;let{box3:n,use:o}=s(e,t),c=new _e;a.value.children.forEach(e=>c.expandByObject(e,t));let l=c.getSize(new P),u=n.getSize(new P),d=Math.min(u.x/l.x,u.y/l.y,u.z/l.z);a.value.scale.setScalar(d===1/0?1:d),a.value.updateMatrixWorld();let f=i.value.worldToLocal(c.getCenter(new P));if(o.position){let e=i.value.worldToLocal(n.getCenter(new P));i.value.position.copy(e.sub(f.multiplyScalar(d)))}else i.value.position.copy(f.sub(f.multiplyScalar(d)));r()}function s(e,t){return typeof e==`number`?e=new P(e,e,e):Array.isArray(e)&&(e=new P(...e)),e&&`isVector3`in e&&e.isVector3?{box3:new _e(new P(0,0,0),e),use:{position:!1}}:e&&`isBox3`in e&&e.isBox3?{box3:e,use:{position:!0}}:e&&`isObject3D`in e&&e.isObject3D?{box3:new _e().setFromObject(e,t??!1),use:{position:!0}}:{box3:new _e(new P(-.5,-.5,-.5),new P(.5,.5,.5)),use:{position:!0}}}R(()=>[n.into,n.precise],()=>o(n.into,n.precise)),jn(()=>{o(n.into,n.precise),Mn().then(()=>{o(n.into,n.precise)})});let c=L();return t({instance:c,fit:(e=new _e(new P(-.5,-.5,-.5),new P(.5,.5,.5)),t=!1)=>{o(e,t)},update:()=>o(n.into,n.precise)}),(e,t)=>(z(),V(`TresGroup`,{ref_key:`outer`,ref:c},[I(`TresGroup`,{ref_key:`middle`,ref:i},[I(`TresGroup`,{ref_key:`inner`,ref:a},[fn(e.$slots,`default`)],512)],512)],512))}}),Jq=[`side`,`cell-size`,`section-size`,`cell-color`,`section-color`,`cell-thickness`,`section-thickness`,`fade-distance`,`fade-strength`,`fade-from`,`infinite-grid`,`follow-camera`],Yq=[`args`],Xq=B({__name:`Grid`,props:{cellSize:{default:.5},cellThickness:{default:.5},cellColor:{default:`#000000`},sectionSize:{default:1},sectionThickness:{default:1},sectionColor:{default:`#0000ff`},followCamera:{type:Boolean,default:!1},infiniteGrid:{type:Boolean,default:!1},fadeDistance:{default:100},fadeStrength:{default:1},fadeFrom:{default:1},side:{default:Xe},args:{}},setup(e){let t=e,n=JR({cellSize:.5,sectionSize:1,fadeDistance:100,fadeStrength:1,fadeFrom:1,cellThickness:.5,sectionThickness:1,cellColor:new je,sectionColor:new je,infiniteGrid:!1,followCamera:!1,worldCamProjPosition:new P,worldPlanePosition:new P},` + varying vec3 localPosition; + varying vec4 worldPosition; + + uniform vec3 worldCamProjPosition; + uniform vec3 worldPlanePosition; + uniform float fadeDistance; + uniform bool infiniteGrid; + uniform bool followCamera; + + void main() { + localPosition = position.xzy; + if (infiniteGrid) localPosition *= 1.0 + fadeDistance; + + worldPosition = modelMatrix * vec4(localPosition, 1.0); + if (followCamera) { + worldPosition.xyz += (worldCamProjPosition - worldPlanePosition); + localPosition = (inverse(modelMatrix) * worldPosition).xyz; + } + + gl_Position = projectionMatrix * viewMatrix * worldPosition; + } + `,` + varying vec3 localPosition; + varying vec4 worldPosition; + + uniform vec3 worldCamProjPosition; + uniform float cellSize; + uniform float sectionSize; + uniform vec3 cellColor; + uniform vec3 sectionColor; + uniform float fadeDistance; + uniform float fadeStrength; + uniform float fadeFrom; + uniform float cellThickness; + uniform float sectionThickness; + + float getGrid(float size, float thickness) { + vec2 r = localPosition.xz / size; + vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r); + float line = min(grid.x, grid.y) + 1.0 - thickness; + return 1.0 - min(line, 1.0); + } + + void main() { + float g1 = getGrid(cellSize, cellThickness); + float g2 = getGrid(sectionSize, sectionThickness); + + vec3 from = worldCamProjPosition*vec3(fadeFrom); + float dist = distance(from, worldPosition.xyz); + float d = 1.0 - min(dist / fadeDistance, 1.0); + vec3 color = mix(cellColor, sectionColor, min(1.0, sectionThickness * g2)); + + gl_FragColor = vec4(color, (g1 + g2) * pow(d, fadeStrength)); + gl_FragColor.a = mix(0.75 * gl_FragColor.a, gl_FragColor.a, g2); + if (gl_FragColor.a <= 0.0) discard; + + #include + #include + } + `);ce({GridMaterial:n});let r=L(new F),i=new Kt,a=new P(0,1,0),o=new P(0,0,0);return ie().onBeforeRender(e=>{i.setFromNormalAndCoplanarPoint(a,o).applyMatrix4(r.value.matrixWorld);let t=r.value.material,n=t.uniforms.worldCamProjPosition,s=t.uniforms.worldPlanePosition;i.projectPoint(e.camera.position,n.value),s.value.set(0,0,0).applyMatrix4(r.value.matrixWorld)}),(e,n)=>(z(),V(`TresMesh`,{ref_key:`ref`,ref:r,"frustum-culled":!1},[I(`TresGridMaterial`,{transparent:!0,"extensions-derivatives":!0,side:t.side,"cell-size":t.cellSize,"section-size":t.sectionSize,"cell-color":t.cellColor,"section-color":t.sectionColor,"cell-thickness":t.cellThickness,"section-thickness":t.sectionThickness,"fade-distance":t.fadeDistance,"fade-strength":t.fadeStrength,"fade-from":t.fadeFrom,"infinite-grid":t.infiniteGrid,"follow-camera":t.followCamera},null,8,Jq),I(`TresPlaneGeometry`,{args:t.args},null,8,Yq)],512))}}),Zq=[`rotation-x`,`args`],Qq=B({__name:`Ocean`,props:{textureWidth:{default:512},textureHeight:{default:512},waterNormals:{default:`https://raw.githubusercontent.com/Tresjs/assets/main/textures/water-normals/Water_1_M_Normal.jpg`},sunDirection:{default:()=>new P},sunColor:{default:16777215},waterColor:{default:7695},distortionScale:{default:3.7},size:{default:1},clipBias:{default:0},alpha:{default:1},side:{default:Ue}},async setup(e,{expose:t}){let n,r,i=e,{textureWidth:a,textureHeight:o,waterNormals:s,sunDirection:c,sunColor:l,waterColor:u,distortionScale:d,size:f,clipBias:p,alpha:m,side:h}=bn(i),{extend:g,scene:_}=Ie();g({Water:FB});let v=L(),y=L(),b=_.value.fog!==void 0;t({instance:v}),_.value.traverse(e=>{Object.prototype.hasOwnProperty.call(e,`isSky`)&&(y.value=e)}),jn(async()=>{if(await Mn(),y.value){let e=y.value.material.uniforms.sunPosition.value;v.value.material.uniforms.sunDirection.value.copy(e)}});let{normalMap:x}=([n,r]=mn(()=>ae({normalMap:s.value})),n=await n,r(),n);x.wrapS=x.wrapT=fe;let{onBeforeRender:S}=ie();return S(({delta:e,invalidate:t})=>{v.value.material.uniforms.time.value+=e,t()}),(e,t)=>(z(),V(`TresWater`,{ref_key:`waterRef`,ref:v,"rotation-x":-Math.PI/2,args:[void 0,{textureWidth:H(a),textureHeight:H(o),waterNormals:H(x),sunDirection:H(c),sunColor:H(l),waterColor:H(u),distortionScale:H(d),fog:b,size:H(f),clipBias:H(p),alpha:H(m),side:H(h)}]},[fn(e.$slots,`default`,{},()=>[t[0]||=I(`TresPlaneGeometry`,{args:[1e4,1e4]},null,-1)])],8,Zq))}}),$q=[`size`,`color`,`alpha-map`,`map`,`opacity`,`alpha-test`,`depth-write`,`transparent`,`size-attenuation`],eJ=[`position`,`velocity`],tJ=B({__name:`Precipitation`,props:{size:{default:.1},area:{default:()=>[10,10,20]},color:{default:16777215},map:{},alphaMap:{},alphaTest:{default:.01},opacity:{default:.8},count:{default:5e3},speed:{default:.1},randomness:{default:.5},depthWrite:{type:Boolean,default:!1},transparent:{type:Boolean,default:!0},sizeAttenuation:{type:Boolean,default:!0}},setup(e,{expose:t}){let n=e,{size:r,area:i,color:a,alphaMap:o,map:s,opacity:c,alphaTest:l,depthWrite:u,transparent:d,sizeAttenuation:f,count:p,speed:m,randomness:h}=bn(n),g=L(),_=[],v=[],y=()=>{_=new Float32Array(p.value*3);for(let e=0;e{v=new Float32Array(p.value*2);for(let e=0;e{b(),y()});let x=L(null),S=L(null);st(async()=>{st(async()=>{if(typeof o.value==`string`){let e=await ae({alphaMap:o.value});x.value=e.alphaMap}else x.value=o.value??null;if(typeof s.value==`string`){let e=await ae({map:s.value});S.value=e.map}else S.value=s.value??null})});let{onBeforeRender:C}=ie();C(({invalidate:e})=>{var t,n;if((t=g.value)!=null&&t.attributes.position.array&&(n=g.value)!=null&&n.attributes.position.count){let t=g.value.attributes.position.array;for(let e=0;e=i.value[0]/2)&&(t[e*3]=t[e*3]*-1),(t[e*3+1]<=-i.value[1]/2||t[e*3+1]>=i.value[1]/2)&&(t[e*3+1]=t[e*3+1]*-1)}g.value.attributes.position.needsUpdate=!0,e()}});let w=L();return t({instance:w}),(e,t)=>(z(),V(`TresPoints`,{ref_key:`pointsRef`,ref:w},[I(`TresPointsMaterial`,{size:H(r),color:H(a),"alpha-map":x.value,map:S.value,opacity:H(c),"alpha-test":H(l),"depth-write":H(u),transparent:H(d),"size-attenuation":H(f)},null,8,$q),I(`TresBufferGeometry`,{ref_key:`geometryRef`,ref:g,position:[H(_),3],velocity:[H(v)]},null,8,eJ)],512))}}),nJ=[`object`,`material-uniforms-turbidity-value`,`material-uniforms-rayleigh-value`,`material-uniforms-mieCoefficient-value`,`material-uniforms-mieDirectionalG-value`,`material-uniforms-sunPosition-value`,`scale`],rJ=B({__name:`Sky`,props:{turbidity:{default:3.4},rayleigh:{default:3},mieCoefficient:{default:.005},mieDirectionalG:{default:.7},elevation:{default:.6},azimuth:{default:180},distance:{default:45e4}},setup(e,{expose:t}){let n=e,{invalidate:r}=Ie();R(n,()=>r());let i=L(),a=new VB,o=gn(()=>s(n.azimuth,n.elevation));function s(e,t){let n=bt.degToRad(90-t),r=bt.degToRad(e);return new P().setFromSphericalCoords(1,n,r)}return t({instance:i,sunPosition:o.value}),(e,t)=>(z(),V(`primitive`,{ref_key:`skyRef`,ref:i,object:H(a),"material-uniforms-turbidity-value":n.turbidity,"material-uniforms-rayleigh-value":n.rayleigh,"material-uniforms-mieCoefficient-value":n.mieCoefficient,"material-uniforms-mieDirectionalG-value":n.mieDirectionalG,"material-uniforms-sunPosition-value":o.value,scale:n.distance},null,8,nJ))}}),iJ=[`position`],aJ=[`position`],oJ=[`scale`],sJ=[`map`,`depth-test`,`color-space`,`color`,`opacity`],cJ=B({__name:`Smoke`,props:{color:{default:`#ffffff`},opacity:{default:.5},speed:{default:.4},width:{default:10},depth:{default:1.5},segments:{default:20},texture:{default:`https://raw.githubusercontent.com/Tresjs/assets/main/textures/clouds/defaultCloud.png`},depthTest:{type:Boolean,default:!0}},async setup(e,{expose:t}){let n,r,i=e,{width:a,depth:o,segments:s,texture:c,color:l,depthTest:u,opacity:d,speed:f}=bn(i),p=L(),m=L();t({instance:p});let h=[s].map((e,t)=>({x:a.value/2-Math.random()*a.value,y:a.value/2-Math.random()*a.value,scale:.4+Math.sin((t+1)/s.value*Math.PI)*((.2+Math.random())*10),density:Math.max(.2,Math.random()),rotation:Math.max(.002,.005*Math.random())*f.value})),g=(e,t)=>e/6*t*d.value,{map:_}=([n,r]=mn(()=>ae({map:c.value})),n=await n,r(),n),{renderer:v,camera:y}=Ie(),b=gn(()=>{var e;return(e=v.value)?.outputColorSpace}),{onBeforeRender:x}=ie();return x(({invalidate:e})=>{var t,n;p.value&&y.value&&m.value&&((t=m.value)==null||t.children.forEach((e,t)=>{e.rotation.z+=h[t].rotation}),p.value.lookAt((n=y.value)?.position),e())}),(e,t)=>(z(),V(`TresGroup`,On({ref_key:`smokeRef`,ref:p},e.$attrs),[I(`TresGroup`,{ref_key:`groupRef`,ref:m,position:[0,0,H(s)/2*H(o)]},[(z(!0),V(hn,null,Lt(H(h),({scale:e,x:t,y:n,density:r},i)=>(z(),V(`TresMesh`,{key:`${i}`,position:[t,n,-i*H(o)]},[I(`TresPlaneGeometry`,{scale:[e,e,e],rotation:[0,0,0]},null,8,oJ),I(`TresMeshStandardMaterial`,{map:H(_),"depth-test":H(u),"color-space":b.value,color:H(l),"depth-write":!1,transparent:``,opacity:g(e,r)},null,8,sJ)],8,aJ))),128))],8,iJ)],16))}}),lJ=` +return PCSS( shadowMap, shadowCoord ); +`,uJ=B({__name:`SoftShadows`,props:{size:{default:25},samples:{default:10},focus:{default:0}},setup(e){let t=e,n=({focus:e=0,size:t=25,samples:n=10}={})=>` +#define PENUMBRA_FILTER_SIZE float(${t}) +#define RGB_NOISE_FUNCTION(uv) (randRGB(uv)) +vec3 randRGB(vec2 uv) { + return vec3( + fract(sin(dot(uv, vec2(12.75613, 38.12123))) * 13234.76575), + fract(sin(dot(uv, vec2(19.45531, 58.46547))) * 43678.23431), + fract(sin(dot(uv, vec2(23.67817, 78.23121))) * 93567.23423) + ); +} + +vec3 lowPassRandRGB(vec2 uv) { + // 3x3 convolution (average) + // can be implemented as separable with an extra buffer for a total of 6 samples instead of 9 + vec3 result = vec3(0); + result += RGB_NOISE_FUNCTION(uv + vec2(-1.0, -1.0)); + result += RGB_NOISE_FUNCTION(uv + vec2(-1.0, 0.0)); + result += RGB_NOISE_FUNCTION(uv + vec2(-1.0, +1.0)); + result += RGB_NOISE_FUNCTION(uv + vec2( 0.0, -1.0)); + result += RGB_NOISE_FUNCTION(uv + vec2( 0.0, 0.0)); + result += RGB_NOISE_FUNCTION(uv + vec2( 0.0, +1.0)); + result += RGB_NOISE_FUNCTION(uv + vec2(+1.0, -1.0)); + result += RGB_NOISE_FUNCTION(uv + vec2(+1.0, 0.0)); + result += RGB_NOISE_FUNCTION(uv + vec2(+1.0, +1.0)); + result *= 0.111111111; // 1.0 / 9.0 + return result; +} +vec3 highPassRandRGB(vec2 uv) { + // by subtracting the low-pass signal from the original signal, we're being left with the high-pass signal + // hp(x) = x - lp(x) + return RGB_NOISE_FUNCTION(uv) - lowPassRandRGB(uv) + 0.5; +} + + +vec2 vogelDiskSample(int sampleIndex, int sampleCount, float angle) { + const float goldenAngle = 2.399963f; // radians + float r = sqrt(float(sampleIndex) + 0.5f) / sqrt(float(sampleCount)); + float theta = float(sampleIndex) * goldenAngle + angle; + float sine = sin(theta); + float cosine = cos(theta); + return vec2(cosine, sine) * r; +} +float penumbraSize( const in float zReceiver, const in float zBlocker ) { // Parallel plane estimation + return (zReceiver - zBlocker) / zBlocker; +} +float findBlocker(sampler2D shadowMap, vec2 uv, float compare, float angle) { + float texelSize = 1.0 / float(textureSize(shadowMap, 0).x); + float blockerDepthSum = float(${e}); + float blockers = 0.0; + + int j = 0; + vec2 offset = vec2(0.); + float depth = 0.; + + #pragma unroll_loop_start + for(int i = 0; i < ${n}; i ++) { + offset = (vogelDiskSample(j, ${n}, angle) * texelSize) * 2.0 * PENUMBRA_FILTER_SIZE; + depth = unpackRGBAToDepth( texture2D( shadowMap, uv + offset)); + if (depth < compare) { + blockerDepthSum += depth; + blockers++; + } + j++; + } + #pragma unroll_loop_end + + if (blockers > 0.0) { + return blockerDepthSum / blockers; + } + return -1.0; +} + + +float vogelFilter(sampler2D shadowMap, vec2 uv, float zReceiver, float filterRadius, float angle) { + float texelSize = 1.0 / float(textureSize(shadowMap, 0).x); + float shadow = 0.0f; + int j = 0; + vec2 vogelSample = vec2(0.0); + vec2 offset = vec2(0.0); + #pragma unroll_loop_start + for (int i = 0; i < ${n}; i++) { + vogelSample = vogelDiskSample(j, ${n}, angle) * texelSize; + offset = vogelSample * (1.0 + filterRadius * float(${t})); + shadow += step( zReceiver, unpackRGBAToDepth( texture2D( shadowMap, uv + offset ) ) ); + j++; + } + #pragma unroll_loop_end + return shadow * 1.0 / ${n}.0; +} + +float PCSS (sampler2D shadowMap, vec4 coords) { + vec2 uv = coords.xy; + float zReceiver = coords.z; // Assumed to be eye-space z in this code + float angle = highPassRandRGB(gl_FragCoord.xy).r * PI2; + float avgBlockerDepth = findBlocker(shadowMap, uv, zReceiver, angle); + if (avgBlockerDepth == -1.0) { + return 1.0; + } + float penumbraRatio = penumbraSize(zReceiver, avgBlockerDepth); + return vogelFilter(shadowMap, uv, zReceiver, 1.25 * penumbraRatio, angle); +}`,r=Le.shadowmap_pars_fragment,{renderer:i,scene:a,camera:o}=j();function s(e,t){let i=r;i=i.replace(`#ifdef USE_SHADOWMAP`,`#ifdef USE_SHADOWMAP + ${n(t)}`),i=i.replace(`#if defined( SHADOWMAP_TYPE_PCF )`,`${lJ} + #if defined( SHADOWMAP_TYPE_PCF )`),Le.shadowmap_pars_fragment=i,e.shadowMap.enabled=!0}function c(e,t,n){t.traverse(t=>{var n,r;`material`in t&&t.material&&(e.properties.remove(t.material),typeof t.material==`object`&&`dispose`in t.material&&typeof t.material.dispose==`function`&&((r=(n=t.material).dispose)==null||r.call(n)))}),e.info.programs&&(e.info.programs.length=0),e.compile(t,n)}return In(()=>{o.value&&(Le.shadowmap_pars_fragment=r,c(i.value,a.value,o.value))}),R(t,()=>{o.value&&(s(i.value,t),c(i.value,a.value,o.value))},{immediate:!0}),(e,t)=>(z(),V(`TresGroup`))}});var dJ=class extends Me{constructor(){super(),dR(this,`virtualScene`,null),this.virtualScene=new Dt}add(...e){return this.virtualScene.add(...e),this}dispose(){this.virtualScene.traverse(e=>{e instanceof F&&(e.geometry.dispose(),e.material.dispose(),e.material.map&&e.material.map.dispose(),this.virtualScene.remove(e))}),this.virtualScene=null}};const fJ=B({__name:`component`,props:{background:{type:[Boolean,String],default:!1},blur:{default:0},files:{default:()=>[]},path:{default:``},preset:{default:void 0},resolution:{default:256},near:{default:1},far:{default:1e3},frames:{default:1/0},backgroundIntensity:{default:1},backgroundRotation:{},environmentIntensity:{default:1},environmentRotation:{},syncMaterials:{type:Boolean}},async setup(e,{expose:t}){let n,r,i=e,a=U(null);t({texture:a});let{extend:o,renderer:s,scene:c}=Ie();o({EnvironmentScene:dJ});let l=null,u=U(null),d=null,f=U(null),p=([n,r]=mn(()=>DU(i,u)),n=await n,r(),n),{onBeforeRender:m}=ie(),h=1;m(()=>{if(d&&f.value&&u.value&&(i.frames===1/0||h{if(e&&t!=null&&t.virtualScene){let n=Rn(t).virtualScene,r=n.children.find(e=>e instanceof F&&e.userData.isEnvironment);r||(r=new F(new jt(1,1,1),new Mt({side:Xe})),r.userData.isEnvironment=!0,n.add(r)),n.background=e,n.backgroundBlurriness=i.blur}},{immediate:!0});let g=e=>{e&&l!=null&&l.length?(c.value.environment=e.texture,i.background&&(c.value.background=e.texture)):p.value&&(c.value.environment=p.value,i.background&&(c.value.background=p.value))};return R(p,()=>{u.value&&g(u.value)},{immediate:!0,deep:!0}),R(()=>vn().default,e=>{var t;if(e&&(l=e(),Array.isArray(l)&&l.length>0)){o({EnvironmentScene:dJ}),u.value=new Qt(i.resolution),u.value.texture.type=Ge,d=new Tt(i.near,i.far,u.value),g(u.value);return}(t=u.value)==null||t.dispose(),u.value=null,g()},{immediate:!0,deep:!0}),a.value=p.value,In(()=>{var e,t;(e=f.value)==null||e.dispose(),(t=u.value)==null||t.dispose()}),(e,t)=>u.value?(z(),V(`TresEnvironmentScene`,{key:0,ref_key:`environmentScene`,ref:f},[fn(e.$slots,`default`)],512)):Nn(``,!0)}}),pJ={key:0,args:[0,1,64]},mJ={key:1,args:[.5,1,64]},hJ={key:2},gJ=[`tone-mapped`,`map`,`side`,`color`],_J=B({__name:`index`,props:{args:{default:null},form:{default:`rect`},toneMapped:{type:Boolean,default:!1},map:{default:null},intensity:{default:1},color:{default:new je(16777215)}},setup(e,{expose:t}){let n=e,r=U(),i=U();return st(()=>{r.value&&(r.value.color.copy(new je(n.color)),r.value.color.multiplyScalar(n.intensity),r.value.needsUpdate=!0)}),t({mesh:i}),(e,t)=>(z(),V(`TresMesh`,{ref_key:`mesh`,ref:i},[e.form===`circle`?(z(),V(`TresRingGeometry`,pJ)):e.form===`ring`?(z(),V(`TresRingGeometry`,mJ)):e.form===`rect`?(z(),V(`TresPlaneGeometry`,hJ)):(z(),dn(n.form,{key:3,args:e.args},null,8,[`args`])),I(`TresMeshBasicMaterial`,{ref_key:`material`,ref:r,"tone-mapped":e.toneMapped,map:e.map,side:H(tt),color:e.color},null,8,gJ)],512))}});var vJ=B({__name:`Model`,props:{model:{},idleAnimation:{},loadAnimations:{},position:{},paused:{type:Boolean}},emits:[`loadModelProgress`,`error`],setup(s,{expose:c,emit:l}){let u=s,d=l,f,p=U(),m=U(),{scene:h}=Ie(),{onBeforeRender:g}=ie(),_=r(),v=i(),y=U();R(()=>u.position,([e,t,n])=>{p.value&&p.value.scene.position.set(e,t,n)}),jn(async()=>{if(h.value)try{let r=await t(u.model,{scene:h.value,lookAt:!0,position:u.position,onProgress:e=>d(`loadModelProgress`,Number.parseFloat((100*(e.loaded/e.total)).toFixed(2)))});if(!r){console.warn(`No VRM model loaded`);return}let i=await a(u.idleAnimation),o=await n(r,i);if(!o){console.warn(`No VRM animation loaded`);return}m.value=new wt(r.scene),m.value.clipAction(o).play(),y.value=e(r),p.value=r,f=g(({delta:e})=>{m.value?.update(e),p.value?.update(e),_.update(p.value,e),v.update(p.value,e),y.value?.update(e)}).off}catch(e){d(`error`,e)}}),In(()=>{f?.(),p.value&&(p.value.scene.removeFromParent(),o.deepDispose(p.value.scene))}),c({setExpression(e){y.value?.setEmotionWithResetAfter(e,1e3)}});let{pause:b,resume:x}=ie();return R(()=>u.paused,e=>{e?b():x()}),(e,t)=>fn(e.$slots,`default`)}}),yJ=vJ;const bJ=[`position`],xJ={absolute:``,bottom:`3`,right:`3`},SJ={flex:`~ row`,"cursor-pointer":``},CJ=[`checked`,`aria-checked`],wJ={key:0,"min-w":`50vw`,z:`{f.value?.setExpression(e)}}),(e,t)=>(z(),dn(T,{relative:``},{default:Pn(({height:e,width:n})=>[kn(H(M),{alpha:!0,antialias:!0,width:n,height:e},{default:Pn(()=>[kn(H(jW)),I(`TresPerspectiveCamera`,{position:[o.value,s.value,c.value]},null,8,bJ),t[14]||=I(`TresDirectionalLight`,{color:16777215,intensity:1.2,position:[1,1,1]},null,-1),t[15]||=I(`TresAmbientLight`,{color:16777215,intensity:1.5},null,-1),kn(yJ,{ref_key:`modelRef`,ref:f,model:r.model,"idle-animation":r.idleAnimation,position:[l.value,u.value,d.value],paused:r.paused,onLoadModelProgress:t[0]||=e=>i(`loadModelProgress`,e),onError:t[1]||=e=>i(`error`,e)},null,8,[`model`,`idle-animation`,`position`,`paused`])]),_:2,__:[14,15]},1032,[`width`,`height`]),I(`div`,xJ,[I(`div`,SJ,[I(`label`,{class:Cn([a.value?`bg-neutral-300 dark:bg-neutral-200`:`bg-neutral-100 dark:bg-neutral-700`]),transition:`all ease-in-out duration-500`,text:`lg neutral-500 dark:neutral-400`,"m-1":``,"h-fit":``,"w-fit":``,"cursor-pointer":``,"appearance-none":``,"gap-1":``,"rounded-lg":``,"rounded-md":``,"border-none":``,"p-2":``,"outline-none":``},[pn(I(`input`,{"onUpdate:modelValue":t[2]||=e=>a.value=e,checked:a.value,"aria-checked":a.value,name:`showLive2DViewerInspector`,type:`checkbox`,"appearance-none":``,"outline-none":``,hidden:``},null,8,CJ),[[Ft,a.value]]),t[16]||=I(`div`,{"select-none":``},[I(`div`,{"i-solar:bug-bold-duotone":``})],-1)],2)]),kn(H(D),null,{default:Pn(()=>[a.value?(z(),V(`div`,wJ,[I(`div`,TJ,[I(`div`,EJ,[I(`span`,null,Sn(H(p)(`stage.viewers.debug-menu.vrm.model.title`)),1)]),kn(E,{"h-fit":``,"w-full":``,flex:`~ col`,border:`~ gray/25 rounded-lg`,divide:`y dashed gray/25`,"of-clip":``,"shadow-sm":``},{label:Pn(()=>[I(`span`,DJ,Sn(H(p)(`stage.viewers.debug-menu.vrm.camera`)),1)]),default:Pn(()=>[I(`div`,OJ,[t[17]||=I(`div`,{text:`neutral-400 dark:neutral-500`},[I(`span`,null,`X`)],-1),I(`label`,kJ,[kn(er,{modelValue:o.value,"onUpdate:modelValue":t[3]||=e=>o.value=e,min:-10,max:10,step:.01},null,8,[`modelValue`])]),I(`div`,AJ,[I(`span`,null,Sn(o.value),1)]),t[18]||=I(`div`,{text:`neutral-400 dark:neutral-500`},[I(`span`,null,`Y`)],-1),I(`label`,jJ,[kn(er,{modelValue:s.value,"onUpdate:modelValue":t[4]||=e=>s.value=e,min:-10,max:10,step:.01},null,8,[`modelValue`])]),I(`div`,MJ,[I(`span`,null,Sn(s.value),1)]),t[19]||=I(`div`,{text:`neutral-400 dark:neutral-500`},[I(`span`,null,`Z`)],-1),I(`label`,NJ,[kn(er,{modelValue:c.value,"onUpdate:modelValue":t[5]||=e=>c.value=e,min:-10,max:10,step:.01},null,8,[`modelValue`])]),I(`div`,PJ,[I(`span`,null,Sn(c.value),1)])])]),_:1}),kn(E,{"h-fit":``,"w-full":``,flex:`~ col`,border:`~ gray/25 rounded-lg`,divide:`y dashed gray/25`,"of-clip":``,"shadow-sm":``},{label:Pn(()=>[I(`span`,FJ,Sn(H(p)(`stage.viewers.debug-menu.vrm.model.title`)),1)]),default:Pn(()=>[I(`div`,IJ,[t[20]||=I(`div`,{text:`neutral-400 dark:neutral-500`},[I(`span`,null,`X`)],-1),I(`label`,LJ,[kn(er,{modelValue:l.value,"onUpdate:modelValue":t[6]||=e=>l.value=e,min:-10,max:10,step:.01},null,8,[`modelValue`])]),I(`div`,RJ,[I(`span`,null,Sn(l.value),1)]),t[21]||=I(`div`,{text:`neutral-400 dark:neutral-500`},[I(`span`,null,`Y`)],-1),I(`label`,zJ,[kn(er,{modelValue:u.value,"onUpdate:modelValue":t[7]||=e=>u.value=e,min:-10,max:10,step:.01},null,8,[`modelValue`])]),I(`div`,BJ,[I(`span`,null,Sn(u.value),1)]),t[22]||=I(`div`,{text:`neutral-400 dark:neutral-500`},[I(`span`,null,`Z`)],-1),I(`label`,VJ,[kn(er,{modelValue:d.value,"onUpdate:modelValue":t[8]||=e=>d.value=e,min:-10,max:10,step:.01},null,8,[`modelValue`])]),I(`div`,HJ,[I(`span`,null,Sn(d.value),1)])])]),_:1}),I(`div`,UJ,[I(`span`,null,Sn(H(p)(`stage.viewers.debug-menu.emotions`)),1)]),I(`div`,WJ,[I(`button`,{"rounded-lg":``,bg:`neutral-100/70 dark:neutral-800/50`,"px-2":``,"py-1":``,"backdrop-blur-sm":``,onClick:t[9]||=e=>f.value?.setExpression(`neutral`)},Sn(H(p)(`stage.viewers.debug-menu.emotions-btn.neutral`)),1),I(`button`,{"rounded-lg":``,bg:`neutral-100/70 dark:neutral-800/50`,"px-2":``,"py-1":``,"backdrop-blur-sm":``,onClick:t[10]||=e=>f.value?.setExpression(`surprised`)},Sn(H(p)(`stage.viewers.debug-menu.emotions-btn.surprised`)),1),I(`button`,{"rounded-lg":``,bg:`neutral-100/70 dark:neutral-800/50`,"px-2":``,"py-1":``,"backdrop-blur-sm":``,onClick:t[11]||=e=>f.value?.setExpression(`sad`)},Sn(H(p)(`stage.viewers.debug-menu.emotions-btn.sad`)),1),I(`button`,{"rounded-lg":``,bg:`neutral-100/70 dark:neutral-800/50`,"px-2":``,"py-1":``,"backdrop-blur-sm":``,onClick:t[12]||=e=>f.value?.setExpression(`angry`)},Sn(H(p)(`stage.viewers.debug-menu.emotions-btn.angry`)),1),I(`button`,{"rounded-lg":``,bg:`neutral-100/70 dark:neutral-800/50`,"px-2":``,"py-1":``,"backdrop-blur-sm":``,onClick:t[13]||=e=>f.value?.setExpression(`happy`)},Sn(H(p)(`stage.viewers.debug-menu.emotions-btn.happy`)),1)])])])):Nn(``,!0)]),_:1})])]),_:1}))}}),KJ=GJ;const qJ={relative:``},JJ={"h-full":``,"w-full":``};var YJ=B({__name:`Stage`,props:{paused:{type:Boolean,default:!1},focusAt:{},xOffset:{},yOffset:{},scale:{default:1}},setup(e){let t=U(),n=U(),{stageView:r}=x(qn()),{mouthOpenSize:i}=x(h()),{audioContext:a,calculateVolume:o}=m(),{onBeforeMessageComposed:s,onBeforeSend:c,onTokenLiteral:l,onTokenSpecial:_,onStreamEnd:v,onAssistantResponseEnd:y}=Yn(),b=Zn(),S=U(),C=U(!1),w=U(!1),T=p({handlers:[e=>new Promise(t=>{let n=a.createBufferSource();n.buffer=e.data.audioBuffer,n.connect(a.destination),n.connect(S.value),C.value=!0,n.start(0),n.onended=()=>{C.value=!1,t()}})]}),E=Xn(),{ssmlEnabled:D,activeSpeechProvider:k,activeSpeechModel:A,activeSpeechVoice:re,pitch:j}=x(E);async function ie(e){try{if(!k.value){console.warn(`No active speech provider configured`);return}if(!re.value){console.warn(`No active speech voice configured`);return}let t=b.getProviderInstance(k.value);if(!t){console.error(`Failed to initialize speech provider`);return}let n=b.getProviderConfig(k.value),r=D.value?E.generateSSML(e.data,re.value,{...n,pitch:j.value}):e.data,i=await g({...t.speech(A.value,n),input:r,voice:re.value.id}),o=await a.decodeAudioData(i);await T.add({audioBuffer:o,text:e.data})}catch(e){console.error(`Speech generation failed:`,e)}}let ae=p({handlers:[ie]});ae.on(`add`,e=>{console.debug(`ttsQueue added`,e)});let oe=d(ae),{currentMotion:se}=x(Jn()),M=p({handlers:[async e=>{if(r.value===`3d`){let t=ne[e.data];if(!t)return;await n.value.setExpression(t)}else r.value===`2d`&&(se.value={group:te[e.data]})}]}),ce=f(M);ce.onHandlerEvent(`emotion`,e=>{console.debug(`emotion detected`,e)});let N=u();N.onHandlerEvent(`delay`,e=>{console.debug(`delay detected`,e)});function le(){requestAnimationFrame(le),C.value&&(i.value=o(S.value,`linear`))}function ue(){w.value||(le(),a.resume(),w.value=!0)}function de(){S.value||=a.createAnalyser()}return s(async()=>{de(),ue()}),c(async()=>{se.value={group:ee}}),l(async e=>{await oe.add(e)}),_(async e=>{await N.add(e),await ce.add(e)}),v(async()=>{await N.add(O)}),y(async e=>{}),In(()=>{w.value=!1}),jn(async()=>{t.value=cR({connection:{bundles:Qn()}}),await t.value.execute(`CREATE TABLE memory_test (vec FLOAT[768]);`)}),(e,t)=>(z(),V(`div`,qJ,[I(`div`,JJ,[H(r)===`2d`?(z(),dn(Ph,{key:0,"focus-at":e.focusAt,"mouth-open-size":H(i),"min-w":`50%