shopar-plugin 1.0.0-alpha.6 → 1.0.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -9,4 +9,4 @@ fflate - fast JavaScript compression/decompression
|
|
|
9
9
|
<https://101arrowz.github.io/fflate>
|
|
10
10
|
Licensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE
|
|
11
11
|
version 0.8.2
|
|
12
|
-
*/var rh=Uint8Array,ah=Uint16Array,sh=Int32Array,oh=new rh([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]),lh=new rh([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]),ch=new rh([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),hh=function(e,t){for(var n=new ah(31),i=0;i<31;++i)n[i]=t+=1<<e[i-1];var r=new sh(n[30]);for(i=1;i<30;++i)for(var a=n[i];a<n[i+1];++a)r[a]=a-n[i]<<5|i;return{b:n,r:r}},Ah=hh(oh,2),uh=Ah.b,dh=Ah.r;uh[28]=258,dh[258]=28;for(var ph=hh(lh,0).b,fh=new ah(32768),gh=0;gh<32768;++gh){var mh=(43690&gh)>>1|(21845&gh)<<1;mh=(61680&(mh=(52428&mh)>>2|(13107&mh)<<2))>>4|(3855&mh)<<4,fh[gh]=((65280&mh)>>8|(255&mh)<<8)>>1}var vh=function(e,t,n){for(var i=e.length,r=0,a=new ah(t);r<i;++r)e[r]&&++a[e[r]-1];var s,o=new ah(t);for(r=1;r<t;++r)o[r]=o[r-1]+a[r-1]<<1;s=new ah(1<<t);var l=15-t;for(r=0;r<i;++r)if(e[r])for(var c=r<<4|e[r],h=t-e[r],A=o[e[r]-1]++<<h,u=A|(1<<h)-1;A<=u;++A)s[fh[A]>>l]=c;return s},Eh=new rh(288);for(gh=0;gh<144;++gh)Eh[gh]=8;for(gh=144;gh<256;++gh)Eh[gh]=9;for(gh=256;gh<280;++gh)Eh[gh]=7;for(gh=280;gh<288;++gh)Eh[gh]=8;var bh=new rh(32);for(gh=0;gh<32;++gh)bh[gh]=5;var Ch=vh(Eh,9),_h=vh(bh,5),Ih=function(e){for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},xh=function(e,t,n){var i=t/8|0;return(e[i]|e[i+1]<<8)>>(7&t)&n},yh=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},wh=function(e){return(e+7)/8|0},Mh=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Sh=function(e,t,n){var i=new Error(t||Mh[e]);if(i.code=e,Error.captureStackTrace&&Error.captureStackTrace(i,Sh),!n)throw i;return i},Bh=new rh(0);function Th(e,t){return function(e,t,n,i){var r=e.length;if(!r||t.f&&!t.l)return n||new rh(0);var a=!n,s=a||2!=t.i,o=t.i;a&&(n=new rh(3*r));var l=function(e){var t=n.length;if(e>t){var i=new rh(Math.max(2*t,e));i.set(n),n=i}},c=t.f||0,h=t.p||0,A=t.b||0,u=t.l,d=t.d,p=t.m,f=t.n,g=8*r;do{if(!u){c=xh(e,h,1);var m=xh(e,h+1,3);if(h+=3,!m){var v=e[(B=wh(h)+4)-4]|e[B-3]<<8,E=B+v;if(E>r){o&&Sh(0);break}s&&l(A+v),n.set(e.subarray(B,E),A),t.b=A+=v,t.p=h=8*E,t.f=c;continue}if(1==m)u=Ch,d=_h,p=9,f=5;else if(2==m){var b=xh(e,h,31)+257,C=xh(e,h+10,15)+4,_=b+xh(e,h+5,31)+1;h+=14;for(var I=new rh(_),x=new rh(19),y=0;y<C;++y)x[ch[y]]=xh(e,h+3*y,7);h+=3*C;var w=Ih(x),M=(1<<w)-1,S=vh(x,w);for(y=0;y<_;){var B,T=S[xh(e,h,M)];if(h+=15&T,(B=T>>4)<16)I[y++]=B;else{var R=0,D=0;for(16==B?(D=3+xh(e,h,3),h+=2,R=I[y-1]):17==B?(D=3+xh(e,h,7),h+=3):18==B&&(D=11+xh(e,h,127),h+=7);D--;)I[y++]=R}}var Q=I.subarray(0,b),U=I.subarray(b);p=Ih(Q),f=Ih(U),u=vh(Q,p),d=vh(U,f)}else Sh(1);if(h>g){o&&Sh(0);break}}s&&l(A+131072);for(var L=(1<<p)-1,P=(1<<f)-1,N=h;;N=h){var F=(R=u[yh(e,h)&L])>>4;if((h+=15&R)>g){o&&Sh(0);break}if(R||Sh(2),F<256)n[A++]=F;else{if(256==F){N=h,u=null;break}var O=F-254;if(F>264){var k=oh[y=F-257];O=xh(e,h,(1<<k)-1)+uh[y],h+=k}var G=d[yh(e,h)&P],H=G>>4;if(G||Sh(3),h+=15&G,U=ph[H],H>3&&(k=lh[H],U+=yh(e,h)&(1<<k)-1,h+=k),h>g){o&&Sh(0);break}s&&l(A+131072);var z=A+O;if(A<U){var V=0-U,W=Math.min(U,z);for(V+A<0&&Sh(3);A<W;++A)n[A]=i[V+A]}for(;A<z;++A)n[A]=n[A-U]}}t.l=u,t.p=N,t.b=A,t.f=c,u&&(c=1,t.m=p,t.d=d,t.n=f)}while(!c);return A!=n.length&&a?function(e,t,n){return(null==n||n>e.length)&&(n=e.length),new rh(e.subarray(0,n))}(n,0,A):n.subarray(0,A)}(e.subarray((i=t,(8!=(15&(n=e)[0])||n[0]>>4>7||(n[0]<<8|n[1])%31)&&Sh(6,"invalid zlib data"),(n[1]>>5&1)==+!i&&Sh(6,"invalid zlib data: "+(32&n[1]?"need":"unexpected")+" dictionary"),2+(n[1]>>3&4)),-4),{i:2},t,t);var n,i}var Rh="undefined"!=typeof TextDecoder&&new TextDecoder;try{Rh.decode(Bh,{stream:!0})}catch(Sd){}class Dh extends Yl{constructor(e){super(e),this.type=Be}parse(e){const t=65536,n=14,i=65537,r=Math.pow(2.7182818,2.2),a={l:0,c:0,lc:0};function s(e,t,n,i,r){for(;n<e;)t=t<<8|k(i,r),n+=8;n-=e,a.l=t>>n&(1<<e)-1,a.c=t,a.lc=n}const o=new Array(59);function l(e,t,n,r,l,c){const h=t;let A=0,u=0;for(;r<=l;r++){if(h.value-t.value>n)return!1;s(6,A,u,e,h);const i=a.l;if(A=a.c,u=a.lc,c[r]=i,63==i){if(h.value-t.value>n)throw new Error("Something wrong with hufUnpackEncTable");s(8,A,u,e,h);let i=a.l+6;if(A=a.c,u=a.lc,r+i>l+1)throw new Error("Something wrong with hufUnpackEncTable");for(;i--;)c[r++]=0;r--}else if(i>=59){let e=i-59+2;if(r+e>l+1)throw new Error("Something wrong with hufUnpackEncTable");for(;e--;)c[r++]=0;r--}}!function(e){for(let e=0;e<=58;++e)o[e]=0;for(let t=0;t<i;++t)o[e[t]]+=1;let t=0;for(let e=58;e>0;--e){const n=t+o[e]>>1;o[e]=t,t=n}for(let t=0;t<i;++t){const n=e[t];n>0&&(e[t]=n|o[n]++<<6)}}(c)}function c(e){return 63&e}function h(e){return e>>6}const A={c:0,lc:0};function u(e,t,n,i){e=e<<8|k(n,i),t+=8,A.c=e,A.lc=t}const d={c:0,lc:0};function p(e,t,n,i,r,a,s,o,l){if(e==t){i<8&&(u(n,i,r,a),n=A.c,i=A.lc);let e=n>>(i-=8);if(e=new Uint8Array([e])[0],o.value+e>l)return!1;const t=s[o.value-1];for(;e-- >0;)s[o.value++]=t}else{if(!(o.value<l))return!1;s[o.value++]=e}d.c=n,d.lc=i}function f(e){return 65535&e}function g(e){const t=f(e);return t>32767?t-65536:t}const m={a:0,b:0};function v(e,t){const n=g(e),i=g(t),r=n+(1&i)+(i>>1),a=r,s=r-i;m.a=a,m.b=s}function E(e,t){const n=f(e),i=f(t),r=n-(i>>1)&65535,a=i+r-32768&65535;m.a=a,m.b=r}function b(e,t,n,i,r,a,s){const o=s<16384,l=n>r?r:n;let c,h,A=1;for(;A<=l;)A<<=1;for(A>>=1,c=A,A>>=1;A>=1;){h=0;const s=h+a*(r-c),l=a*A,u=a*c,d=i*A,p=i*c;let f,g,b,C;for(;h<=s;h+=u){let r=h;const a=h+i*(n-c);for(;r<=a;r+=p){const n=r+d,i=r+l,a=i+d;o?(v(e[r+t],e[i+t]),f=m.a,b=m.b,v(e[n+t],e[a+t]),g=m.a,C=m.b,v(f,g),e[r+t]=m.a,e[n+t]=m.b,v(b,C),e[i+t]=m.a,e[a+t]=m.b):(E(e[r+t],e[i+t]),f=m.a,b=m.b,E(e[n+t],e[a+t]),g=m.a,C=m.b,E(f,g),e[r+t]=m.a,e[n+t]=m.b,E(b,C),e[i+t]=m.a,e[a+t]=m.b)}if(n&A){const n=r+l;o?v(e[r+t],e[n+t]):E(e[r+t],e[n+t]),f=m.a,e[n+t]=m.b,e[r+t]=f}}if(r&A){let r=h;const a=h+i*(n-c);for(;r<=a;r+=p){const n=r+d;o?v(e[r+t],e[n+t]):E(e[r+t],e[n+t]),f=m.a,e[n+t]=m.b,e[r+t]=f}}c=A,A>>=1}return h}function C(e,t,r,a,s,o){const f=r.value,g=O(t,r),m=O(t,r);r.value+=4;const v=O(t,r);if(r.value+=4,g<0||g>=i||m<0||m>=i)throw new Error("Something wrong with HUF_ENCSIZE");const E=new Array(i),b=new Array(16384);if(function(e){for(let t=0;t<16384;t++)e[t]={},e[t].len=0,e[t].lit=0,e[t].p=null}(b),l(e,r,a-(r.value-f),g,m,E),v>8*(a-(r.value-f)))throw new Error("Something wrong with hufUncompress");!function(e,t,i,r){for(;t<=i;t++){const i=h(e[t]),a=c(e[t]);if(i>>a)throw new Error("Invalid table entry");if(a>n){const e=r[i>>a-n];if(e.len)throw new Error("Invalid table entry");if(e.lit++,e.p){const t=e.p;e.p=new Array(e.lit);for(let n=0;n<e.lit-1;++n)e.p[n]=t[n]}else e.p=new Array(1);e.p[e.lit-1]=t}else if(a){let e=0;for(let s=1<<n-a;s>0;s--){const s=r[(i<<n-a)+e];if(s.len||s.p)throw new Error("Invalid table entry");s.len=a,s.lit=t,e++}}}}(E,g,m,b),function(e,t,i,r,a,s,o,l,f){let g=0,m=0;const v=o,E=Math.trunc(r.value+(a+7)/8);for(;r.value<E;)for(u(g,m,i,r),g=A.c,m=A.lc;m>=n;){const a=t[g>>m-n&16383];if(a.len)m-=a.len,p(a.lit,s,g,m,i,r,l,f,v),g=d.c,m=d.lc;else{if(!a.p)throw new Error("hufDecode issues");let t;for(t=0;t<a.lit;t++){const n=c(e[a.p[t]]);for(;m<n&&r.value<E;)u(g,m,i,r),g=A.c,m=A.lc;if(m>=n&&h(e[a.p[t]])==(g>>m-n&(1<<n)-1)){m-=n,p(a.p[t],s,g,m,i,r,l,f,v),g=d.c,m=d.lc;break}}if(t==a.lit)throw new Error("hufDecode issues")}}const b=8-a&7;for(g>>=b,m-=b;m>0;){const e=t[g<<n-m&16383];if(!e.len)throw new Error("hufDecode issues");m-=e.len,p(e.lit,s,g,m,i,r,l,f,v),g=d.c,m=d.lc}}(E,b,e,r,v,m,o,s,{value:0})}function _(e){for(let t=1;t<e.length;t++){const n=e[t-1]+e[t]-128;e[t]=n}}function I(e,t){let n=0,i=Math.floor((e.length+1)/2),r=0;const a=e.length-1;for(;!(r>a||(t[r++]=e[n++],r>a));)t[r++]=e[i++]}function x(e){let t=e.byteLength;const n=new Array;let i=0;const r=new DataView(e);for(;t>0;){const e=r.getInt8(i++);if(e<0){const a=-e;t-=a+1;for(let e=0;e<a;e++)n.push(r.getUint8(i++))}else{const a=e;t-=2;const s=r.getUint8(i++);for(let e=0;e<a+1;e++)n.push(s)}}return n}function y(e,t,n){let i,r=1;for(;r<64;)i=t[e.value],65280==i?r=64:i>>8==255?r+=255&i:(n[r]=i,r++),e.value++}function w(e,t){t[0]=W(e[0]),t[1]=W(e[1]),t[2]=W(e[5]),t[3]=W(e[6]),t[4]=W(e[14]),t[5]=W(e[15]),t[6]=W(e[27]),t[7]=W(e[28]),t[8]=W(e[2]),t[9]=W(e[4]),t[10]=W(e[7]),t[11]=W(e[13]),t[12]=W(e[16]),t[13]=W(e[26]),t[14]=W(e[29]),t[15]=W(e[42]),t[16]=W(e[3]),t[17]=W(e[8]),t[18]=W(e[12]),t[19]=W(e[17]),t[20]=W(e[25]),t[21]=W(e[30]),t[22]=W(e[41]),t[23]=W(e[43]),t[24]=W(e[9]),t[25]=W(e[11]),t[26]=W(e[18]),t[27]=W(e[24]),t[28]=W(e[31]),t[29]=W(e[40]),t[30]=W(e[44]),t[31]=W(e[53]),t[32]=W(e[10]),t[33]=W(e[19]),t[34]=W(e[23]),t[35]=W(e[32]),t[36]=W(e[39]),t[37]=W(e[45]),t[38]=W(e[52]),t[39]=W(e[54]),t[40]=W(e[20]),t[41]=W(e[22]),t[42]=W(e[33]),t[43]=W(e[38]),t[44]=W(e[46]),t[45]=W(e[51]),t[46]=W(e[55]),t[47]=W(e[60]),t[48]=W(e[21]),t[49]=W(e[34]),t[50]=W(e[37]),t[51]=W(e[47]),t[52]=W(e[50]),t[53]=W(e[56]),t[54]=W(e[59]),t[55]=W(e[61]),t[56]=W(e[35]),t[57]=W(e[36]),t[58]=W(e[48]),t[59]=W(e[49]),t[60]=W(e[57]),t[61]=W(e[58]),t[62]=W(e[62]),t[63]=W(e[63])}function M(e){const t=.5*Math.cos(.7853975),n=.5*Math.cos(3.14159/16),i=.5*Math.cos(3.14159/8),r=.5*Math.cos(3*3.14159/16),a=.5*Math.cos(.981746875),s=.5*Math.cos(3*3.14159/8),o=.5*Math.cos(1.374445625),l=new Array(4),c=new Array(4),h=new Array(4),A=new Array(4);for(let u=0;u<8;++u){const d=8*u;l[0]=i*e[d+2],l[1]=s*e[d+2],l[2]=i*e[d+6],l[3]=s*e[d+6],c[0]=n*e[d+1]+r*e[d+3]+a*e[d+5]+o*e[d+7],c[1]=r*e[d+1]-o*e[d+3]-n*e[d+5]-a*e[d+7],c[2]=a*e[d+1]-n*e[d+3]+o*e[d+5]+r*e[d+7],c[3]=o*e[d+1]-a*e[d+3]+r*e[d+5]-n*e[d+7],h[0]=t*(e[d+0]+e[d+4]),h[3]=t*(e[d+0]-e[d+4]),h[1]=l[0]+l[3],h[2]=l[1]-l[2],A[0]=h[0]+h[1],A[1]=h[3]+h[2],A[2]=h[3]-h[2],A[3]=h[0]-h[1],e[d+0]=A[0]+c[0],e[d+1]=A[1]+c[1],e[d+2]=A[2]+c[2],e[d+3]=A[3]+c[3],e[d+4]=A[3]-c[3],e[d+5]=A[2]-c[2],e[d+6]=A[1]-c[1],e[d+7]=A[0]-c[0]}for(let u=0;u<8;++u)l[0]=i*e[16+u],l[1]=s*e[16+u],l[2]=i*e[48+u],l[3]=s*e[48+u],c[0]=n*e[8+u]+r*e[24+u]+a*e[40+u]+o*e[56+u],c[1]=r*e[8+u]-o*e[24+u]-n*e[40+u]-a*e[56+u],c[2]=a*e[8+u]-n*e[24+u]+o*e[40+u]+r*e[56+u],c[3]=o*e[8+u]-a*e[24+u]+r*e[40+u]-n*e[56+u],h[0]=t*(e[u]+e[32+u]),h[3]=t*(e[u]-e[32+u]),h[1]=l[0]+l[3],h[2]=l[1]-l[2],A[0]=h[0]+h[1],A[1]=h[3]+h[2],A[2]=h[3]-h[2],A[3]=h[0]-h[1],e[0+u]=A[0]+c[0],e[8+u]=A[1]+c[1],e[16+u]=A[2]+c[2],e[24+u]=A[3]+c[3],e[32+u]=A[3]-c[3],e[40+u]=A[2]-c[2],e[48+u]=A[1]-c[1],e[56+u]=A[0]-c[0]}function S(e){for(let t=0;t<64;++t){const n=e[0][t],i=e[1][t],r=e[2][t];e[0][t]=n+1.5747*r,e[1][t]=n-.1873*i-.4682*r,e[2][t]=n+1.8556*i}}function B(e,t,n){for(let i=0;i<64;++i)t[n+i]=Di(T(e[i]))}function T(e){return e<=1?Math.sign(e)*Math.pow(Math.abs(e),2.2):Math.sign(e)*Math.pow(r,Math.abs(e)-1)}function R(e){return new DataView(e.array.buffer,e.offset.value,e.size)}function D(e){const t=e.viewer.buffer.slice(e.offset.value,e.offset.value+e.size),n=new Uint8Array(x(t)),i=new Uint8Array(n.length);return _(n),I(n,i),new DataView(i.buffer)}function Q(e){const t=Th(e.array.slice(e.offset.value,e.offset.value+e.size)),n=new Uint8Array(t.length);return _(t),I(t,n),new DataView(n.buffer)}function U(e){const n=e.viewer,i={value:e.offset.value},r=new Uint16Array(e.columns*e.lines*(e.inputChannels.length*e.type)),a=new Uint8Array(8192);let s=0;const o=new Array(e.inputChannels.length);for(let t=0,n=e.inputChannels.length;t<n;t++)o[t]={},o[t].start=s,o[t].end=o[t].start,o[t].nx=e.columns,o[t].ny=e.lines,o[t].size=e.type,s+=o[t].nx*o[t].ny*o[t].size;const l=q(n,i),c=q(n,i);if(c>=8192)throw new Error("Something is wrong with PIZ_COMPRESSION BITMAP_SIZE");if(l<=c)for(let e=0;e<c-l+1;e++)a[e+l]=G(n,i);const h=new Uint16Array(t),A=function(e,n){let i=0;for(let r=0;r<t;++r)(0==r||e[r>>3]&1<<(7&r))&&(n[i++]=r);const r=i-1;for(;i<t;)n[i++]=0;return r}(a,h),u=O(n,i);C(e.array,n,i,u,r,s);for(let t=0;t<e.inputChannels.length;++t){const e=o[t];for(let n=0;n<o[t].size;++n)b(r,e.start+n,e.nx,e.size,e.ny,e.nx*e.size,A)}!function(e,t,n){for(let i=0;i<n;++i)t[i]=e[t[i]]}(h,r,s);let d=0;const p=new Uint8Array(r.buffer.byteLength);for(let t=0;t<e.lines;t++)for(let t=0;t<e.inputChannels.length;t++){const e=o[t],n=e.nx*e.size,i=new Uint8Array(r.buffer,2*e.end,2*n);p.set(i,d),d+=2*n,e.end+=n}return new DataView(p.buffer)}function L(e){const t=Th(e.array.slice(e.offset.value,e.offset.value+e.size)),n=e.inputChannels.length*e.lines*e.columns*e.totalBytes,i=new ArrayBuffer(n),r=new DataView(i);let a=0,s=0;const o=new Array(4);for(let n=0;n<e.lines;n++)for(let n=0;n<e.inputChannels.length;n++){let i=0;switch(e.inputChannels[n].pixelType){case 1:o[0]=a,o[1]=o[0]+e.columns,a=o[1]+e.columns;for(let n=0;n<e.columns;++n)i+=t[o[0]++]<<8|t[o[1]++],r.setUint16(s,i,!0),s+=2;break;case 2:o[0]=a,o[1]=o[0]+e.columns,o[2]=o[1]+e.columns,a=o[2]+e.columns;for(let n=0;n<e.columns;++n)i+=t[o[0]++]<<24|t[o[1]++]<<16|t[o[2]++]<<8,r.setUint32(s,i,!0),s+=4}}return r}function P(e){const t=e.viewer,n={value:e.offset.value},i=new Uint8Array(e.columns*e.lines*(e.inputChannels.length*e.type*2)),r={version:H(t,n),unknownUncompressedSize:H(t,n),unknownCompressedSize:H(t,n),acCompressedSize:H(t,n),dcCompressedSize:H(t,n),rleCompressedSize:H(t,n),rleUncompressedSize:H(t,n),rleRawSize:H(t,n),totalAcUncompressedCount:H(t,n),totalDcUncompressedCount:H(t,n),acCompression:H(t,n)};if(r.version<2)throw new Error("EXRLoader.parse: "+te.compression+" version "+r.version+" is unsupported");const a=new Array;let s=q(t,n)-2;for(;s>0;){const e=N(t.buffer,n),i=G(t,n),r=i>>2&3,o=new Int8Array([(i>>4)-1])[0],l=G(t,n);a.push({name:e,index:o,type:l,compression:r}),s-=e.length+3}const o=te.channels,l=new Array(e.inputChannels.length);for(let t=0;t<e.inputChannels.length;++t){const n=l[t]={},i=o[t];n.name=i.name,n.compression=0,n.decoded=!1,n.type=i.pixelType,n.pLinear=i.pLinear,n.width=e.columns,n.height=e.lines}const c={idx:new Array(3)};for(let t=0;t<e.inputChannels.length;++t){const e=l[t];for(let n=0;n<a.length;++n){const i=a[n];e.name==i.name&&(e.compression=i.compression,i.index>=0&&(c.idx[i.index]=t),e.offset=t)}}let h,A,u;if(r.acCompressedSize>0)switch(r.acCompression){case 0:h=new Uint16Array(r.totalAcUncompressedCount),C(e.array,t,n,r.acCompressedSize,h,r.totalAcUncompressedCount);break;case 1:const i=Th(e.array.slice(n.value,n.value+r.totalAcUncompressedCount));h=new Uint16Array(i.buffer),n.value+=r.totalAcUncompressedCount}if(r.dcCompressedSize>0){const t={array:e.array,offset:n,size:r.dcCompressedSize};A=new Uint16Array(Q(t).buffer),n.value+=r.dcCompressedSize}r.rleRawSize>0&&(u=x(Th(e.array.slice(n.value,n.value+r.rleCompressedSize)).buffer),n.value+=r.rleCompressedSize);let d=0;const p=new Array(l.length);for(let e=0;e<p.length;++e)p[e]=new Array;for(let t=0;t<e.lines;++t)for(let t=0;t<l.length;++t)p[t].push(d),d+=l[t].width*e.type*2;!function(e,t,n,i,r,a){let s=new DataView(a.buffer);const o=n[e.idx[0]].width,l=n[e.idx[0]].height,c=Math.floor(o/8),h=Math.ceil(o/8),A=Math.ceil(l/8),u=o-8*(h-1),d=l-8*(A-1),p={value:0},f=new Array(3),g=new Array(3),m=new Array(3),v=new Array(3),E=new Array(3);for(let n=0;n<3;++n)E[n]=t[e.idx[n]],f[n]=n<1?0:f[n-1]+h*A,g[n]=new Float32Array(64),m[n]=new Uint16Array(64),v[n]=new Uint16Array(64*h);for(let t=0;t<A;++t){let a=8;t==A-1&&(a=d);let o=8;for(let e=0;e<h;++e){e==h-1&&(o=u);for(let e=0;e<3;++e)m[e].fill(0),m[e][0]=r[f[e]++],y(p,i,m[e]),w(m[e],g[e]),M(g[e]);S(g);for(let t=0;t<3;++t)B(g[t],v[t],64*e)}let l=0;for(let i=0;i<3;++i){const r=n[e.idx[i]].type;for(let e=8*t;e<8*t+a;++e){l=E[i][e];for(let t=0;t<c;++t){const n=64*t+8*(7&e);s.setUint16(l+0*r,v[i][n+0],!0),s.setUint16(l+2*r,v[i][n+1],!0),s.setUint16(l+4*r,v[i][n+2],!0),s.setUint16(l+6*r,v[i][n+3],!0),s.setUint16(l+8*r,v[i][n+4],!0),s.setUint16(l+10*r,v[i][n+5],!0),s.setUint16(l+12*r,v[i][n+6],!0),s.setUint16(l+14*r,v[i][n+7],!0),l+=16*r}}if(c!=h)for(let e=8*t;e<8*t+a;++e){const t=E[i][e]+8*c*2*r,n=64*c+8*(7&e);for(let e=0;e<o;++e)s.setUint16(t+2*e*r,v[i][n+e],!0)}}}const b=new Uint16Array(o);s=new DataView(a.buffer);for(let t=0;t<3;++t){n[e.idx[t]].decoded=!0;const i=n[e.idx[t]].type;if(2==n[t].type)for(let e=0;e<l;++e){const n=E[t][e];for(let e=0;e<o;++e)b[e]=s.getUint16(n+2*e*i,!0);for(let e=0;e<o;++e)s.setFloat32(n+2*e*i,W(b[e]),!0)}}}(c,p,l,h,A,i);for(let t=0;t<l.length;++t){const n=l[t];if(!n.decoded){if(2!==n.compression)throw new Error("EXRLoader.parse: unsupported channel compression");{let r=0,a=0;for(let s=0;s<e.lines;++s){let e=p[t][r];for(let t=0;t<n.width;++t){for(let t=0;t<2*n.type;++t)i[e++]=u[a+t*n.width*n.height];a++}r++}}}}return new DataView(i.buffer)}function N(e,t){const n=new Uint8Array(e);let i=0;for(;0!=n[t.value+i];)i+=1;const r=(new TextDecoder).decode(n.slice(t.value,t.value+i));return t.value=t.value+i+1,r}function F(e,t){const n=e.getInt32(t.value,!0);return t.value=t.value+4,n}function O(e,t){const n=e.getUint32(t.value,!0);return t.value=t.value+4,n}function k(e,t){const n=e[t.value];return t.value=t.value+1,n}function G(e,t){const n=e.getUint8(t.value);return t.value=t.value+1,n}const H=function(e,t){let n;return n="getBigInt64"in DataView.prototype?Number(e.getBigInt64(t.value,!0)):e.getUint32(t.value+4,!0)+Number(e.getUint32(t.value,!0)<<32),t.value+=8,n};function z(e,t){const n=e.getFloat32(t.value,!0);return t.value+=4,n}function V(e,t){return Di(z(e,t))}function W(e){const t=(31744&e)>>10,n=1023&e;return(e>>15?-1:1)*(t?31===t?n?NaN:1/0:Math.pow(2,t-15)*(1+n/1024):n/1024*6103515625e-14)}function q(e,t){const n=e.getUint16(t.value,!0);return t.value+=2,n}function j(e,t){return W(q(e,t))}function Y(e,t,n,i,r){return"string"===i||"stringvector"===i||"iccProfile"===i?function(e,t,n){const i=(new TextDecoder).decode(new Uint8Array(e).slice(t.value,t.value+n));return t.value=t.value+n,i}(t,n,r):"chlist"===i?function(e,t,n,i){const r=n.value,a=[];for(;n.value<r+i-1;){const i=N(t,n),r=F(e,n),s=G(e,n);n.value+=3;const o=F(e,n),l=F(e,n);a.push({name:i,pixelType:r,pLinear:s,xSampling:o,ySampling:l})}return n.value+=1,a}(e,t,n,r):"chromaticities"===i?function(e,t){return{redX:z(e,t),redY:z(e,t),greenX:z(e,t),greenY:z(e,t),blueX:z(e,t),blueY:z(e,t),whiteX:z(e,t),whiteY:z(e,t)}}(e,n):"compression"===i?function(e,t){return["NO_COMPRESSION","RLE_COMPRESSION","ZIPS_COMPRESSION","ZIP_COMPRESSION","PIZ_COMPRESSION","PXR24_COMPRESSION","B44_COMPRESSION","B44A_COMPRESSION","DWAA_COMPRESSION","DWAB_COMPRESSION"][G(e,t)]}(e,n):"box2i"===i?function(e,t){return{xMin:F(e,t),yMin:F(e,t),xMax:F(e,t),yMax:F(e,t)}}(e,n):"envmap"===i?function(e,t){return["ENVMAP_LATLONG","ENVMAP_CUBE"][G(e,t)]}(e,n):"tiledesc"===i?function(e,t){const n=O(e,t),i=O(e,t),r=G(e,t);return{xSize:n,ySize:i,levelMode:["ONE_LEVEL","MIPMAP_LEVELS","RIPMAP_LEVELS"][15&r],roundingMode:["ROUND_DOWN","ROUND_UP"][r>>4]}}(e,n):"lineOrder"===i?function(e,t){return["INCREASING_Y","DECREASING_Y","RANDOM_Y"][G(e,t)]}(e,n):"float"===i?z(e,n):"v2f"===i?function(e,t){return[z(e,t),z(e,t)]}(e,n):"v3f"===i?function(e,t){return[z(e,t),z(e,t),z(e,t)]}(e,n):"int"===i?F(e,n):"rational"===i?function(e,t){return[F(e,t),O(e,t)]}(e,n):"timecode"===i?function(e,t){return[O(e,t),O(e,t)]}(e,n):"preview"===i?(n.value+=r,"skipped"):void(n.value+=r)}function X(e,t,n,i){const r=new Array(e);for(let a=0;a<e;a++){const e=1<<a;let s=t/e|0;"ROUND_UP"==i&&s*e<t&&(s+=1);const o=Math.max(s,1);r[a]=(o+n-1)/n|0}return r}function K(){const e=this,t=e.offset,n={value:0};for(let i=0;i<e.tileCount;i++){const i=F(e.viewer,t),r=F(e.viewer,t);t.value+=8,e.size=O(e.viewer,t);const a=i*e.blockWidth,s=r*e.blockHeight;e.columns=a+e.blockWidth>e.width?e.width-a:e.blockWidth,e.lines=s+e.blockHeight>e.height?e.height-s:e.blockHeight;const o=e.columns*e.totalBytes,l=e.size<e.lines*o?e.uncompress(e):R(e);t.value+=e.size;for(let t=0;t<e.lines;t++){const i=t*e.columns*e.totalBytes;for(let r=0;r<e.inputChannels.length;r++){const o=te.channels[r].name,c=e.channelByteOffsets[o]*e.columns,h=e.decodeChannels[o];if(void 0===h)continue;n.value=i+c;const A=(e.height-(1+s+t))*e.outLineWidth;for(let t=0;t<e.columns;t++){const i=A+(t+a)*e.outputChannels+h;e.byteArray[i]=e.getter(l,n)}}}}}function J(){const e=this,t=e.offset,n={value:0};for(let i=0;i<e.height/e.blockHeight;i++){const r=F(e.viewer,t)-te.dataWindow.yMin;e.size=O(e.viewer,t),e.lines=r+e.blockHeight>e.height?e.height-r:e.blockHeight;const a=e.columns*e.totalBytes,s=e.size<e.lines*a?e.uncompress(e):R(e);t.value+=e.size;for(let t=0;t<e.blockHeight;t++){const r=i*e.blockHeight,o=t+e.scanOrder(r);if(o>=e.height)continue;const l=t*a,c=(e.height-1-o)*e.outLineWidth;for(let t=0;t<e.inputChannels.length;t++){const i=te.channels[t].name,r=e.channelByteOffsets[i]*e.columns,a=e.decodeChannels[i];if(void 0!==a){n.value=l+r;for(let t=0;t<e.columns;t++){const i=c+t*e.outputChannels+a;e.byteArray[i]=e.getter(s,n)}}}}}}const Z={value:0},$=new DataView(e),ee=new Uint8Array(e),te=function(e,t,n){const i={};if(20000630!=e.getUint32(0,!0))throw new Error("THREE.EXRLoader: Provided file doesn't appear to be in OpenEXR format.");i.version=e.getUint8(4);const r=e.getUint8(5);i.spec={singleTile:!!(2&r),longName:!!(4&r),deepFormat:!!(8&r),multiPart:!!(16&r)},n.value=8;let a=!0;for(;a;){const r=N(t,n);if(0==r)a=!1;else{const a=N(t,n),s=Y(e,t,n,a,O(e,n));void 0===s?console.warn(`THREE.EXRLoader: Skipped unknown header attribute type '${a}'.`):i[r]=s}}if(-7&r)throw console.error("THREE.EXRHeader:",i),new Error("THREE.EXRLoader: Provided file is currently unsupported.");return i}($,e,Z),ne=function(e,t,n,i,r){const a={size:0,viewer:t,array:n,offset:i,width:e.dataWindow.xMax-e.dataWindow.xMin+1,height:e.dataWindow.yMax-e.dataWindow.yMin+1,inputChannels:e.channels,channelByteOffsets:{},scanOrder:null,totalBytes:null,columns:null,lines:null,type:null,uncompress:null,getter:null,format:null,colorSpace:$e};switch(e.compression){case"NO_COMPRESSION":a.blockHeight=1,a.uncompress=R;break;case"RLE_COMPRESSION":a.blockHeight=1,a.uncompress=D;break;case"ZIPS_COMPRESSION":a.blockHeight=1,a.uncompress=Q;break;case"ZIP_COMPRESSION":a.blockHeight=16,a.uncompress=Q;break;case"PIZ_COMPRESSION":a.blockHeight=32,a.uncompress=U;break;case"PXR24_COMPRESSION":a.blockHeight=16,a.uncompress=L;break;case"DWAA_COMPRESSION":a.blockHeight=32,a.uncompress=P;break;case"DWAB_COMPRESSION":a.blockHeight=256,a.uncompress=P;break;default:throw new Error("EXRLoader.parse: "+e.compression+" is unsupported")}const s={};for(const t of e.channels)switch(t.name){case"Y":case"R":case"G":case"B":case"A":s[t.name]=!0,a.type=t.pixelType}let o=!1;if(s.R&&s.G&&s.B)o=!s.A,a.outputChannels=4,a.decodeChannels={R:0,G:1,B:2,A:3};else{if(!s.Y)throw new Error("EXRLoader.parse: file contains unsupported data channels.");a.outputChannels=1,a.decodeChannels={Y:0}}if(1==a.type)switch(r){case Se:a.getter=j;break;case Be:a.getter=q}else{if(2!=a.type)throw new Error("EXRLoader.parse: unsupported pixelType "+a.type+" for "+e.compression+".");switch(r){case Se:a.getter=z;break;case Be:a.getter=V}}a.columns=a.width;const l=a.width*a.height*a.outputChannels;switch(r){case Se:a.byteArray=new Float32Array(l),o&&a.byteArray.fill(1,0,l);break;case Be:a.byteArray=new Uint16Array(l),o&&a.byteArray.fill(15360,0,l);break;default:console.error("THREE.EXRLoader: unsupported type: ",r)}let c=0;for(const t of e.channels)void 0!==a.decodeChannels[t.name]&&(a.channelByteOffsets[t.name]=c),c+=2*t.pixelType;if(a.totalBytes=c,a.outLineWidth=a.width*a.outputChannels,"INCREASING_Y"===e.lineOrder?a.scanOrder=e=>e:a.scanOrder=e=>a.height-1-e,4==a.outputChannels?(a.format=Re,a.colorSpace=$e):(a.format=Ue,a.colorSpace=Je),e.spec.singleTile){a.blockHeight=e.tiles.ySize,a.blockWidth=e.tiles.xSize;const n=function(e,t,n){let i=0;switch(e.levelMode){case"ONE_LEVEL":i=1;break;case"MIPMAP_LEVELS":i=function(e,t){const n=Math.log2(e);return"ROUND_DOWN"==t?Math.floor(n):Math.ceil(n)}(Math.max(t,n),e.roundingMode)+1;break;case"RIPMAP_LEVELS":throw new Error("THREE.EXRLoader: RIPMAP_LEVELS tiles currently unsupported.")}return i}(e.tiles,a.width,a.height),r=X(n,a.width,e.tiles.xSize,e.tiles.roundingMode),s=X(n,a.height,e.tiles.ySize,e.tiles.roundingMode);a.tileCount=r[0]*s[0];for(let e=0;e<n;e++)for(let n=0;n<s[e];n++)for(let n=0;n<r[e];n++)H(t,i);a.decode=K.bind(a)}else{a.blockWidth=a.width;const e=Math.ceil(a.height/a.blockHeight);for(let n=0;n<e;n++)H(t,i);a.decode=J.bind(a)}return a}(te,$,ee,Z,this.type);return ne.decode(),{header:te,width:ne.width,height:ne.height,data:ne.byteArray,format:ne.format,colorSpace:ne.colorSpace,type:this.type}}setDataType(e){return this.type=e,this}load(e,t,n,i){return super.load(e,function(e,n){e.colorSpace=n.colorSpace,e.minFilter=_e,e.magFilter=_e,e.generateMipmaps=!1,e.flipY=!1,t&&t(e,n)},n,i)}}let Qh,Uh=!1;function Lh(e){Uh||(Qh=new ih,new Dh,Uh=!0);const t=function(e){const t=new Ho(e.data,e.width,e.height,void 0,e.type,void 0,me,me,_e,_e,1,$e);return t.flipY=!0,t.generateMipmaps=!1,t.needsUpdate=!0,t}(Qh.parse(e));return t.mapping=pe,t.colorSpace=$e,t}var Ph=function(){var e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if("object"!=typeof WebAssembly)return{supported:!1};var n,i=WebAssembly.validate(e)?"b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb":"b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",r=WebAssembly.instantiate(a(i),{}).then(function(e){(n=e.instance).exports.__wasm_call_ctors()});function a(e){for(var n=new Uint8Array(e.length),i=0;i<e.length;++i){var r=e.charCodeAt(i);n[i]=r>96?r-97:r>64?r-39:r+4}var a=0;for(i=0;i<e.length;++i)n[a++]=n[i]<60?t[n[i]]:64*(n[i]-60)+n[++i];return n.buffer.slice(0,a)}function s(e,t,i,r,a,s){var o=n.exports.sbrk,l=i+3&-4,c=o(l*r),h=o(a.length),A=new Uint8Array(n.exports.memory.buffer);A.set(a,h);var u=e(c,i,r,h,a.length);if(0==u&&s&&s(c,l,r),t.set(A.subarray(c,c+i*r)),o(c-o(0)),0!=u)throw new Error("Malformed buffer data: "+u)}var o={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},l={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},c=[],h=0;function A(e){var t={object:new Worker(e),pending:0,requests:{}};return t.object.onmessage=function(e){var n=e.data;t.pending-=n.count,t.requests[n.id][n.action](n.value),delete t.requests[n.id]},t}function u(e){r.then(function(){var t=e.data;try{var i=new Uint8Array(t.count*t.size);s(n.exports[t.mode],i,t.count,t.size,t.source,n.exports[t.filter]),self.postMessage({id:t.id,count:t.count,action:"resolve",value:i},[i.buffer])}catch(e){self.postMessage({id:t.id,count:t.count,action:"reject",value:e})}})}return{ready:r,supported:!0,useWorkers:function(e){!function(e){for(var t="var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(a(i))+"]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;"+s.toString()+u.toString(),n=new Blob([t],{type:"text/javascript"}),r=URL.createObjectURL(n),o=0;o<e;++o)c[o]=A(r);URL.revokeObjectURL(r)}(e)},decodeVertexBuffer:function(e,t,i,r,a){s(n.exports.meshopt_decodeVertexBuffer,e,t,i,r,n.exports[o[a]])},decodeIndexBuffer:function(e,t,i,r){s(n.exports.meshopt_decodeIndexBuffer,e,t,i,r)},decodeIndexSequence:function(e,t,i,r){s(n.exports.meshopt_decodeIndexSequence,e,t,i,r)},decodeGltfBuffer:function(e,t,i,r,a,c){s(n.exports[l[a]],e,t,i,r,n.exports[o[c]])},decodeGltfBufferAsync:function(e,t,i,a,A){return c.length>0?function(e,t,n,i,r){for(var a=c[0],s=1;s<c.length;++s)c[s].pending<a.pending&&(a=c[s]);return new Promise(function(s,o){var l=new Uint8Array(n),c=h++;a.pending+=e,a.requests[c]={resolve:s,reject:o},a.object.postMessage({id:c,count:e,size:t,source:l,mode:i,filter:r},[l.buffer])})}(e,t,i,l[a],o[A]):r.then(function(){var r=new Uint8Array(e*t);return s(n.exports[l[a]],r,e,t,i,n.exports[o[A]]),r})}}}();const Nh=new WeakMap;class Fh extends zl{constructor(e){super(e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(e){return this.decoderPath=e,this}setDecoderConfig(e){return this.decoderConfig=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,t,n,i){const r=new ql(this.manager);r.setPath(this.path),r.setResponseType("arraybuffer"),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials),r.load(e,e=>{this.parse(e,t,i)},n,i)}parse(e,t,n=()=>{}){this.decodeDracoFile(e,t,null,null,Ze,n).catch(n)}decodeDracoFile(e,t,n,i,r=$e,a=()=>{}){const s={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:i||this.defaultAttributeTypes,useUniqueIDs:!!n,vertexColorSpace:r};return this.decodeGeometry(e,s).then(t).catch(a)}decodeGeometry(e,t){const n=JSON.stringify(t);if(Nh.has(e)){const t=Nh.get(e);if(t.key===n)return t.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let i;const r=this.workerNextTaskID++,a=e.byteLength,s=this._getWorker(r,a).then(n=>(i=n,new Promise((n,a)=>{i._callbacks[r]={resolve:n,reject:a},i.postMessage({type:"decode",id:r,taskConfig:t,buffer:e},[e])}))).then(e=>this._createGeometry(e.geometry));return s.catch(()=>!0).then(()=>{i&&r&&this._releaseTask(i,r)}),Nh.set(e,{key:n,promise:s}),s}_createGeometry(e){const t=new qi;e.index&&t.setIndex(new Li(e.index.array,1));for(let n=0;n<e.attributes.length;n++){const i=e.attributes[n],r=i.name,a=i.array,s=i.itemSize,o=new Li(a,s);"color"===r&&(this._assignVertexColorSpace(o,i.vertexColorSpace),o.normalized=a instanceof Float32Array==0),t.setAttribute(r,o)}return t}_assignVertexColorSpace(e,t){if(t!==Ze)return;const n=new wi;for(let t=0,i=e.count;t<i;t++)n.fromBufferAttribute(e,t).convertSRGBToLinear(),e.setXYZ(t,n.r,n.g,n.b)}_loadLibrary(e,t){const n=new ql(this.manager);return n.setPath(this.decoderPath),n.setResponseType(t),n.setWithCredentials(this.withCredentials),new Promise((t,i)=>{n.load(e,t,void 0,i)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then(t=>{const n=t[0];e||(this.decoderConfig.wasmBinary=t[1]);const i=Oh.toString(),r=["/* draco decoder */",n,"","/* worker */",i.substring(i.indexOf("{")+1,i.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([r]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const e=new Worker(this.workerSourceURL);e._callbacks={},e._taskCosts={},e._taskLoad=0,e.postMessage({type:"init",decoderConfig:this.decoderConfig}),e.onmessage=function(t){const n=t.data;switch(n.type){case"decode":e._callbacks[n.id].resolve(n);break;case"error":e._callbacks[n.id].reject(n);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+n.type+'"')}},this.workerPool.push(e)}else this.workerPool.sort(function(e,t){return e._taskLoad>t._taskLoad?-1:1});const n=this.workerPool[this.workerPool.length-1];return n._taskCosts[e]=t,n._taskLoad+=t,n})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e<this.workerPool.length;++e)this.workerPool[e].terminate();return this.workerPool.length=0,""!==this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),this}}function Oh(){let e,t;function n(e,t,n,i,r,a){const s=a.num_components(),o=n.num_points()*s,l=o*r.BYTES_PER_ELEMENT,c=function(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}(e,r),h=e._malloc(l);t.GetAttributeDataArrayForAllPoints(n,a,c,l,h);const A=new r(e.HEAPF32.buffer,h,o).slice();return e._free(h),{name:i,array:A,itemSize:s}}onmessage=function(i){const r=i.data;switch(r.type){case"init":e=r.decoderConfig,t=new Promise(function(t){e.onModuleLoaded=function(e){t({draco:e})},DracoDecoderModule(e)});break;case"decode":const i=r.buffer,a=r.taskConfig;t.then(e=>{const t=e.draco,s=new t.Decoder;try{const e=function(e,t,i,r){const a=r.attributeIDs,s=r.attributeTypes;let o,l;const c=t.GetEncodedGeometryType(i);if(c===e.TRIANGULAR_MESH)o=new e.Mesh,l=t.DecodeArrayToMesh(i,i.byteLength,o);else{if(c!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");o=new e.PointCloud,l=t.DecodeArrayToPointCloud(i,i.byteLength,o)}if(!l.ok()||0===o.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+l.error_msg());const h={index:null,attributes:[]};for(const i in a){const l=self[s[i]];let c,A;if(r.useUniqueIDs)A=a[i],c=t.GetAttributeByUniqueId(o,A);else{if(A=t.GetAttributeId(o,e[a[i]]),-1===A)continue;c=t.GetAttribute(o,A)}const u=n(e,t,o,i,l,c);"color"===i&&(u.vertexColorSpace=r.vertexColorSpace),h.attributes.push(u)}return c===e.TRIANGULAR_MESH&&(h.index=function(e,t,n){const i=3*n.num_faces(),r=4*i,a=e._malloc(r);t.GetTrianglesUInt32Array(n,r,a);const s=new Uint32Array(e.HEAPF32.buffer,a,i).slice();return e._free(a),{array:s,itemSize:1}}(e,t,o)),e.destroy(o),h}(t,s,new Int8Array(i),a),o=e.attributes.map(e=>e.array.buffer);e.index&&o.push(e.index.array.buffer),self.postMessage({type:"decode",id:r.id,geometry:e},o)}catch(e){console.error(e),self.postMessage({type:"error",id:r.id,error:e.message})}finally{t.destroy(s)}})}}}function kh(e,t){if(0===t)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(2===t||1===t){let n=e.getIndex();if(null===n){const t=[],i=e.getAttribute("position");if(void 0===i)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e<i.count;e++)t.push(e);e.setIndex(t),n=e.getIndex()}const i=n.count-2,r=[];if(2===t)for(let e=1;e<=i;e++)r.push(n.getX(0)),r.push(n.getX(e)),r.push(n.getX(e+1));else for(let e=0;e<i;e++)e%2==0?(r.push(n.getX(e)),r.push(n.getX(e+1)),r.push(n.getX(e+2))):(r.push(n.getX(e+2)),r.push(n.getX(e+1)),r.push(n.getX(e)));r.length/3!==i&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const a=e.clone();return a.setIndex(r),a.clearGroups(),a}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",t),e}class Gh extends zl{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new Kh(e)}),this.register(function(e){return new jh(e)}),this.register(function(e){return new Yh(e)}),this.register(function(e){return new rA(e)}),this.register(function(e){return new aA(e)}),this.register(function(e){return new sA(e)}),this.register(function(e){return new Jh(e)}),this.register(function(e){return new Zh(e)}),this.register(function(e){return new $h(e)}),this.register(function(e){return new eA(e)}),this.register(function(e){return new qh(e)}),this.register(function(e){return new tA(e)}),this.register(function(e){return new Xh(e)}),this.register(function(e){return new iA(e)}),this.register(function(e){return new nA(e)}),this.register(function(e){return new Vh(e)}),this.register(function(e){return new oA(e)}),this.register(function(e){return new lA(e)})}load(e,t,n,i){const r=this;let a;if(""!==this.resourcePath)a=this.resourcePath;else if(""!==this.path){const t=hc.extractUrlBase(e);a=hc.resolveURL(t,this.path)}else a=hc.extractUrlBase(e);this.manager.itemStart(e);const s=function(t){i?i(t):console.error(t),r.manager.itemError(e),r.manager.itemEnd(e)},o=new ql(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(n){try{r.parse(n,a,function(n){t(n),r.manager.itemEnd(e)},s)}catch(e){s(e)}},n,s)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,n,i){let r;const a={},s={},o=new TextDecoder;if("string"==typeof e)r=JSON.parse(e);else if(e instanceof ArrayBuffer)if(o.decode(new Uint8Array(e,0,4))===cA){try{a[zh.KHR_BINARY_GLTF]=new hA(e)}catch(e){return void(i&&i(e))}r=JSON.parse(a[zh.KHR_BINARY_GLTF].content)}else r=JSON.parse(o.decode(e));else r=e;if(void 0===r.asset||r.asset.version[0]<2)return void(i&&i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const l=new QA(r,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});l.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e<this.pluginCallbacks.length;e++){const t=this.pluginCallbacks[e](l);t.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),s[t.name]=t,a[t.name]=!0}if(r.extensionsUsed)for(let e=0;e<r.extensionsUsed.length;++e){const t=r.extensionsUsed[e],n=r.extensionsRequired||[];switch(t){case zh.KHR_MATERIALS_UNLIT:a[t]=new Wh;break;case zh.KHR_DRACO_MESH_COMPRESSION:a[t]=new AA(r,this.dracoLoader);break;case zh.KHR_TEXTURE_TRANSFORM:a[t]=new uA;break;case zh.KHR_MESH_QUANTIZATION:a[t]=new dA;break;default:n.indexOf(t)>=0&&void 0===s[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}l.setExtensions(a),l.setPlugins(s),l.parse(n,i)}parseAsync(e,t){const n=this;return new Promise(function(i,r){n.parse(e,t,i,r)})}}function Hh(){let e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const zh={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing",DEEPAR_MATERIALS_DIAMOND:"DEEPAR_materials_diamond"};class Vh{constructor(e){this.parser=e,this.name=zh.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let n=0,i=t.length;n<i;n++){const i=t[n];i.extensions&&i.extensions[this.name]&&void 0!==i.extensions[this.name].light&&e._addNodeRef(this.cache,i.extensions[this.name].light)}}_loadLight(e){const t=this.parser,n="light:"+e;let i=t.cache.get(n);if(i)return i;const r=t.json,a=((r.extensions&&r.extensions[this.name]||{}).lights||[])[e];let s;const o=new wi(16777215);void 0!==a.color&&o.setRGB(a.color[0],a.color[1],a.color[2],$e);const l=void 0!==a.range?a.range:0;switch(a.type){case"directional":s=new cc(o),s.target.position.set(0,0,-1),s.add(s.target);break;case"point":s=new oc(o),s.distance=l;break;case"spot":s=new nc(o),s.distance=l,a.spot=a.spot||{},a.spot.innerConeAngle=void 0!==a.spot.innerConeAngle?a.spot.innerConeAngle:0,a.spot.outerConeAngle=void 0!==a.spot.outerConeAngle?a.spot.outerConeAngle:Math.PI/4,s.angle=a.spot.outerConeAngle,s.penumbra=1-a.spot.innerConeAngle/a.spot.outerConeAngle,s.target.position.set(0,0,-1),s.add(s.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+a.type)}return s.position.set(0,0,0),s.decay=2,MA(s,a),void 0!==a.intensity&&(s.intensity=a.intensity),s.name=t.createUniqueName(a.name||"light_"+e),i=Promise.resolve(s),t.cache.add(n,i),i}getDependency(e,t){if("light"===e)return this._loadLight(t)}createNodeAttachment(e){const t=this,n=this.parser,i=n.json.nodes[e],r=(i.extensions&&i.extensions[this.name]||{}).light;return void 0===r?null:this._loadLight(r).then(function(e){return n._getNodeRef(t.cache,r,e)})}}class Wh{constructor(){this.name=zh.KHR_MATERIALS_UNLIT}getMaterialType(){return Ti}extendParams(e,t,n){const i=[];e.color=new wi(1,1,1),e.opacity=1;const r=t.pbrMetallicRoughness;if(r){if(Array.isArray(r.baseColorFactor)){const t=r.baseColorFactor;e.color.setRGB(t[0],t[1],t[2],$e),e.opacity=t[3]}void 0!==r.baseColorTexture&&i.push(n.assignTexture(e,"map",r.baseColorTexture,Ze))}return Promise.all(i)}}class qh{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name].emissiveStrength;return void 0!==i&&(t.emissiveIntensity=i),Promise.resolve()}}class jh{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];if(void 0!==a.clearcoatFactor&&(t.clearcoat=a.clearcoatFactor),void 0!==a.clearcoatTexture&&r.push(n.assignTexture(t,"clearcoatMap",a.clearcoatTexture)),void 0!==a.clearcoatRoughnessFactor&&(t.clearcoatRoughness=a.clearcoatRoughnessFactor),void 0!==a.clearcoatRoughnessTexture&&r.push(n.assignTexture(t,"clearcoatRoughnessMap",a.clearcoatRoughnessTexture)),void 0!==a.clearcoatNormalTexture&&(r.push(n.assignTexture(t,"clearcoatNormalMap",a.clearcoatNormalTexture)),void 0!==a.clearcoatNormalTexture.scale)){const e=a.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new Dt(e,e)}return Promise.all(r)}}class Yh{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_DISPERSION}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name];return t.dispersion=void 0!==i.dispersion?i.dispersion:0,Promise.resolve()}}class Xh{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return void 0!==a.iridescenceFactor&&(t.iridescence=a.iridescenceFactor),void 0!==a.iridescenceTexture&&r.push(n.assignTexture(t,"iridescenceMap",a.iridescenceTexture)),void 0!==a.iridescenceIor&&(t.iridescenceIOR=a.iridescenceIor),void 0===t.iridescenceThicknessRange&&(t.iridescenceThicknessRange=[100,400]),void 0!==a.iridescenceThicknessMinimum&&(t.iridescenceThicknessRange[0]=a.iridescenceThicknessMinimum),void 0!==a.iridescenceThicknessMaximum&&(t.iridescenceThicknessRange[1]=a.iridescenceThicknessMaximum),void 0!==a.iridescenceThicknessTexture&&r.push(n.assignTexture(t,"iridescenceThicknessMap",a.iridescenceThicknessTexture)),Promise.all(r)}}class Kh{constructor(e){this.parser=e,this.name=zh.DEEPAR_MATERIALS_DIAMOND}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?xo:null}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();t.envMapIntensity=1,t.envMapRotation=0,t.rIndexDelta=.012,t.squashFactor=.98,t.geometryFactor=.5,t.gammaFactor=1,t.absorptionFactor=1,t.reflectivity=.5,t.diamondOrientedEnvMap=0,t.boostFactors=new on(1,1,1),t.fixedEnvMapDirection=!1,t.rayBounces=5,t.defines={RAY_BOUNCES:5};const i=n.extensions[this.name];if(void 0!==i.envMapIntensity&&(t.envMapIntensity=i.envMapIntensity),void 0!==i.envMapRotationOffset&&(t.envMapRotation=i.envMapRotationOffset),void 0!==i.dispersion&&(t.rIndexDelta=i.dispersion),void 0!==i.squashFactor&&(t.squashFactor=i.squashFactor),void 0!==i.geometryFactor&&(t.geometryFactor=i.geometryFactor),void 0!==i.gammaFactor&&(t.gammaFactor=i.gammaFactor),void 0!==i.absorptionFactor&&(t.absorptionFactor=i.absorptionFactor),void 0!==i.reflectivity&&(t.reflectivity=i.reflectivity),void 0!==i.diamondOrientedEnvMap&&(t.diamondOrientedEnvMap=i.diamondOrientedEnvMap),void 0!==i.boostFactors){const e=i.boostFactors;t.boostFactors.set(e[0],e[1],e[2])}return void 0!==i.fixedEnvMapDirection&&(t.fixedEnvMapDirection=i.fixedEnvMapDirection),void 0!==i.rayBounces&&(t.rayBounces=i.rayBounces,t.defines={RAY_BOUNCES:i.rayBounces}),Promise.resolve()}}class Jh{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_SHEEN}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[];t.sheenColor=new wi(0,0,0),t.sheenRoughness=0,t.sheen=1;const a=i.extensions[this.name];if(void 0!==a.sheenColorFactor){const e=a.sheenColorFactor;t.sheenColor.setRGB(e[0],e[1],e[2],$e)}return void 0!==a.sheenRoughnessFactor&&(t.sheenRoughness=a.sheenRoughnessFactor),void 0!==a.sheenColorTexture&&r.push(n.assignTexture(t,"sheenColorMap",a.sheenColorTexture,Ze)),void 0!==a.sheenRoughnessTexture&&r.push(n.assignTexture(t,"sheenRoughnessMap",a.sheenRoughnessTexture)),Promise.all(r)}}class Zh{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return void 0!==a.transmissionFactor&&(t.transmission=a.transmissionFactor),void 0!==a.transmissionTexture&&r.push(n.assignTexture(t,"transmissionMap",a.transmissionTexture)),Promise.all(r)}}class $h{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_VOLUME}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];t.thickness=void 0!==a.thicknessFactor?a.thicknessFactor:0,void 0!==a.thicknessTexture&&r.push(n.assignTexture(t,"thicknessMap",a.thicknessTexture)),t.attenuationDistance=a.attenuationDistance||1/0;const s=a.attenuationColor||[1,1,1];return t.attenuationColor=(new wi).setRGB(s[0],s[1],s[2],$e),Promise.all(r)}}class eA{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_IOR}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name];return t.ior=void 0!==i.ior?i.ior:1.5,Promise.resolve()}}class tA{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_SPECULAR}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];t.specularIntensity=void 0!==a.specularFactor?a.specularFactor:1,void 0!==a.specularTexture&&r.push(n.assignTexture(t,"specularIntensityMap",a.specularTexture));const s=a.specularColorFactor||[1,1,1];return t.specularColor=(new wi).setRGB(s[0],s[1],s[2],$e),void 0!==a.specularColorTexture&&r.push(n.assignTexture(t,"specularColorMap",a.specularColorTexture,Ze)),Promise.all(r)}}class nA{constructor(e){this.parser=e,this.name=zh.EXT_MATERIALS_BUMP}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return t.bumpScale=void 0!==a.bumpFactor?a.bumpFactor:1,void 0!==a.bumpTexture&&r.push(n.assignTexture(t,"bumpMap",a.bumpTexture)),Promise.all(r)}}class iA{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return void 0!==a.anisotropyStrength&&(t.anisotropy=a.anisotropyStrength),void 0!==a.anisotropyRotation&&(t.anisotropyRotation=a.anisotropyRotation),void 0!==a.anisotropyTexture&&r.push(n.assignTexture(t,"anisotropyMap",a.anisotropyTexture)),Promise.all(r)}}class rA{constructor(e){this.parser=e,this.name=zh.KHR_TEXTURE_BASISU}loadTexture(e){const t=this.parser,n=t.json,i=n.textures[e];if(!i.extensions||!i.extensions[this.name])return null;const r=i.extensions[this.name],a=t.options.ktx2Loader;if(!a){if(n.extensionsRequired&&n.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,r.source,a)}}class aA{constructor(e){this.parser=e,this.name=zh.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,n=this.parser,i=n.json,r=i.textures[e];if(!r.extensions||!r.extensions[t])return null;const a=r.extensions[t],s=i.images[a.source];let o=n.textureLoader;if(s.uri){const e=n.options.manager.getHandler(s.uri);null!==e&&(o=e)}return this.detectSupport().then(function(r){if(r)return n.loadTextureImage(e,a.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return n.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class sA{constructor(e){this.parser=e,this.name=zh.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const t=this.name,n=this.parser,i=n.json,r=i.textures[e];if(!r.extensions||!r.extensions[t])return null;const a=r.extensions[t],s=i.images[a.source];let o=n.textureLoader;if(s.uri){const e=n.options.manager.getHandler(s.uri);null!==e&&(o=e)}return this.detectSupport().then(function(r){if(r)return n.loadTextureImage(e,a.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return n.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class oA{constructor(e){this.name=zh.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){const e=n.extensions[this.name],i=this.parser.getDependency("buffer",e.buffer),r=this.parser.options.meshoptDecoder;if(!r||!r.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return i.then(function(t){const n=e.byteOffset||0,i=e.byteLength||0,a=e.count,s=e.byteStride,o=new Uint8Array(t,n,i);return r.decodeGltfBufferAsync?r.decodeGltfBufferAsync(a,s,o,e.mode,e.filter).then(function(e){return e.buffer}):r.ready.then(function(){const t=new ArrayBuffer(a*s);return r.decodeGltfBuffer(new Uint8Array(t),a,s,o,e.mode,e.filter),t})})}return null}}class lA{constructor(e){this.name=zh.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,n=t.nodes[e];if(!n.extensions||!n.extensions[this.name]||void 0===n.mesh)return null;const i=t.meshes[n.mesh];for(const e of i.primitives)if(e.mode!==mA.TRIANGLES&&e.mode!==mA.TRIANGLE_STRIP&&e.mode!==mA.TRIANGLE_FAN&&void 0!==e.mode)return null;const r=n.extensions[this.name].attributes,a=[],s={};for(const e in r)a.push(this.parser.getDependency("accessor",r[e]).then(t=>(s[e]=t,s[e])));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then(e=>{const t=e.pop(),n=t.isGroup?t.children:[t],i=e[0].count,r=[];for(const e of n){const t=new Nn,n=new on,a=new sn,o=new on(1,1,1),l=new el(e.geometry,e.material,i);for(let e=0;e<i;e++)s.TRANSLATION&&n.fromBufferAttribute(s.TRANSLATION,e),s.ROTATION&&a.fromBufferAttribute(s.ROTATION,e),s.SCALE&&o.fromBufferAttribute(s.SCALE,e),l.setMatrixAt(e,t.compose(n,a,o));for(const t in s)if("_COLOR_0"===t){const e=s[t];l.instanceColor=new qo(e.array,e.itemSize,e.normalized)}else"TRANSLATION"!==t&&"ROTATION"!==t&&"SCALE"!==t&&e.geometry.setAttribute(t,s[t]);hi.prototype.copy.call(l,e),this.parser.assignFinalMaterial(l),r.push(l)}return t.isGroup?(t.clear(),t.add(...r),t):r[0]}))}}const cA="glTF";class hA{constructor(e){this.name=zh.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12),n=new TextDecoder;if(this.header={magic:n.decode(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==cA)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const i=this.header.length-12,r=new DataView(e,12);let a=0;for(;a<i;){const t=r.getUint32(a,!0);a+=4;const i=r.getUint32(a,!0);if(a+=4,1313821514===i){const i=new Uint8Array(e,12+a,t);this.content=n.decode(i)}else if(5130562===i){const n=12+a;this.body=e.slice(n,n+t)}a+=t}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class AA{constructor(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=zh.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){const n=this.json,i=this.dracoLoader,r=e.extensions[this.name].bufferView,a=e.extensions[this.name].attributes,s={},o={},l={};for(const e in a){const t=_A[e]||e.toLowerCase();s[t]=a[e]}for(const t in e.attributes){const i=_A[t]||t.toLowerCase();if(void 0!==a[t]){const r=n.accessors[e.attributes[t]],a=vA[r.componentType];l[i]=a.name,o[i]=!0===r.normalized}}return t.getDependency("bufferView",r).then(function(e){return new Promise(function(t,n){i.decodeDracoFile(e,function(e){for(const t in e.attributes){const n=e.attributes[t],i=o[t];void 0!==i&&(n.normalized=i)}t(e)},s,l,$e,n)})})}}class uA{constructor(){this.name=zh.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return void 0!==t.texCoord&&t.texCoord!==e.channel||void 0!==t.offset||void 0!==t.rotation||void 0!==t.scale?(e=e.clone(),void 0!==t.texCoord&&(e.channel=t.texCoord),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),e.needsUpdate=!0,e):e}}class dA{constructor(){this.name=zh.KHR_MESH_QUANTIZATION}}class pA extends Ml{constructor(e,t,n,i){super(e,t,n,i)}copySampleValue_(e){const t=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=e*i*3+i;for(let e=0;e!==i;e++)t[e]=n[r+e];return t}interpolate_(e,t,n,i){const r=this.resultBuffer,a=this.sampleValues,s=this.valueSize,o=2*s,l=3*s,c=i-t,h=(n-t)/c,A=h*h,u=A*h,d=e*l,p=d-l,f=-2*u+3*A,g=u-A,m=1-f,v=g-A+h;for(let e=0;e!==s;e++){const t=a[p+e+s],n=a[p+e+o]*c,i=a[d+e+s],l=a[d+e]*c;r[e]=m*t+v*n+f*i+g*l}return r}}const fA=new sn;class gA extends pA{interpolate_(e,t,n,i){const r=super.interpolate_(e,t,n,i);return fA.fromArray(r).normalize().toArray(r),r}}const mA={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},vA={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},EA={9728:Ee,9729:_e,9984:1004,9985:Ie,9986:Ce,9987:xe},bA={33071:me,33648:ve,10497:ge},CA={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},_A={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},IA={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},xA={CUBICSPLINE:void 0,LINEAR:Xe,STEP:Ye};function yA(e){return void 0===e.DefaultMaterial&&(e.DefaultMaterial=new Co({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:0})),e.DefaultMaterial}function wA(e,t,n){for(const i in n.extensions)void 0===e[i]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[i]=n.extensions[i])}function MA(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function SA(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let n=0,i=t.weights.length;n<i;n++)e.morphTargetInfluences[n]=t.weights[n];if(t.extras&&Array.isArray(t.extras.targetNames)){const n=t.extras.targetNames;if(e.morphTargetInfluences.length===n.length){e.morphTargetDictionary={};for(let t=0,i=n.length;t<i;t++)e.morphTargetDictionary[n[t]]=t}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function BA(e){let t;const n=e.extensions&&e.extensions[zh.KHR_DRACO_MESH_COMPRESSION];if(t=n?"draco:"+n.bufferView+":"+n.indices+":"+TA(n.attributes):e.indices+":"+TA(e.attributes)+":"+e.mode,void 0!==e.targets)for(let n=0,i=e.targets.length;n<i;n++)t+=":"+TA(e.targets[n]);return t}function TA(e){let t="";const n=Object.keys(e).sort();for(let i=0,r=n.length;i<r;i++)t+=n[i]+":"+e[n[i]]+";";return t}function RA(e){switch(e){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}const DA=new Nn;class QA{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new Hh,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let n=!1,i=!1,r=-1;"undefined"!=typeof navigator&&(n=!0===/^((?!chrome|android).)*safari/i.test(navigator.userAgent),i=navigator.userAgent.indexOf("Firefox")>-1,r=i?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"undefined"==typeof createImageBitmap||n||i&&r<98?this.textureLoader=new Xl(this.options.manager):this.textureLoader=new Ac(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new ql(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const n=this,i=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(e){return e._markDefs&&e._markDefs()}),Promise.all(this._invokeAll(function(e){return e.beforeRoot&&e.beforeRoot()})).then(function(){return Promise.all([n.getDependencies("scene"),n.getDependencies("animation"),n.getDependencies("camera")])}).then(function(t){const a={scene:t[0][i.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:i.asset,parser:n,userData:{}};return wA(r,a,i),MA(a,i),Promise.all(n._invokeAll(function(e){return e.afterRoot&&e.afterRoot(a)})).then(function(){for(const e of a.scenes)e.updateMatrixWorld();e(a)})}).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[];for(let n=0,i=t.length;n<i;n++){const i=t[n].joints;for(let t=0,n=i.length;t<n;t++)e[i[t]].isBone=!0}for(let t=0,i=e.length;t<i;t++){const i=e[t];void 0!==i.mesh&&(this._addNodeRef(this.meshCache,i.mesh),void 0!==i.skin&&(n[i.mesh].isSkinnedMesh=!0)),void 0!==i.camera&&this._addNodeRef(this.cameraCache,i.camera)}}_addNodeRef(e,t){void 0!==t&&(void 0===e.refs[t]&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,n){if(e.refs[t]<=1)return n;const i=n.clone(),r=(e,t)=>{const n=this.associations.get(e);null!=n&&this.associations.set(t,n);for(const[n,i]of e.children.entries())r(i,t.children[n])};return r(n,i),i.name+="_instance_"+e.uses[t]++,i}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let n=0;n<t.length;n++){const i=e(t[n]);if(i)return i}return null}_invokeAll(e){const t=Object.values(this.plugins);t.unshift(this);const n=[];for(let i=0;i<t.length;i++){const r=e(t[i]);r&&n.push(r)}return n}getDependency(e,t){const n=e+":"+t;let i=this.cache.get(n);if(!i){switch(e){case"scene":i=this.loadScene(t);break;case"node":i=this._invokeOne(function(e){return e.loadNode&&e.loadNode(t)});break;case"mesh":i=this._invokeOne(function(e){return e.loadMesh&&e.loadMesh(t)});break;case"accessor":i=this.loadAccessor(t);break;case"bufferView":i=this._invokeOne(function(e){return e.loadBufferView&&e.loadBufferView(t)});break;case"buffer":i=this.loadBuffer(t);break;case"material":i=this._invokeOne(function(e){return e.loadMaterial&&e.loadMaterial(t)});break;case"texture":i=this._invokeOne(function(e){return e.loadTexture&&e.loadTexture(t)});break;case"skin":i=this.loadSkin(t);break;case"animation":i=this._invokeOne(function(e){return e.loadAnimation&&e.loadAnimation(t)});break;case"camera":i=this.loadCamera(t);break;default:if(i=this._invokeOne(function(n){return n!=this&&n.getDependency&&n.getDependency(e,t)}),!i)throw new Error("Unknown type: "+e)}this.cache.add(n,i)}return i}getDependencies(e){let t=this.cache.get(e);if(!t){const n=this,i=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(i.map(function(t,i){return n.getDependency(e,i)})),this.cache.add(e,t)}return t}loadBuffer(e){const t=this.json.buffers[e],n=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[zh.KHR_BINARY_GLTF].body);const i=this.options;return new Promise(function(e,r){n.load(hc.resolveURL(t.uri,i.path),e,void 0,function(){r(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))})})}loadBufferView(e){const t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(e){const n=t.byteLength||0,i=t.byteOffset||0;return e.slice(i,i+n)})}loadAccessor(e){const t=this,n=this.json,i=this.json.accessors[e];if(void 0===i.bufferView&&void 0===i.sparse){const e=CA[i.type],t=vA[i.componentType],n=!0===i.normalized,r=new t(i.count*e);return Promise.resolve(new Li(r,e,n))}const r=[];return void 0!==i.bufferView?r.push(this.getDependency("bufferView",i.bufferView)):r.push(null),void 0!==i.sparse&&(r.push(this.getDependency("bufferView",i.sparse.indices.bufferView)),r.push(this.getDependency("bufferView",i.sparse.values.bufferView))),Promise.all(r).then(function(e){const r=e[0],a=CA[i.type],s=vA[i.componentType],o=s.BYTES_PER_ELEMENT,l=o*a,c=i.byteOffset||0,h=void 0!==i.bufferView?n.bufferViews[i.bufferView].byteStride:void 0,A=!0===i.normalized;let u,d;if(h&&h!==l){const e=Math.floor(c/h),n="InterleavedBuffer:"+i.bufferView+":"+i.componentType+":"+e+":"+i.count;let l=t.cache.get(n);l||(u=new s(r,e*h,i.count*h/o),l=new So(u,h/o),t.cache.add(n,l)),d=new To(l,a,c%h/o,A)}else u=null===r?new s(i.count*a):new s(r,c,i.count*a),d=new Li(u,a,A);if(void 0!==i.sparse){const t=CA.SCALAR,n=vA[i.sparse.indices.componentType],o=i.sparse.indices.byteOffset||0,l=i.sparse.values.byteOffset||0,c=new n(e[1],o,i.sparse.count*t),h=new s(e[2],l,i.sparse.count*a);null!==r&&(d=new Li(d.array.slice(),d.itemSize,d.normalized));for(let e=0,t=c.length;e<t;e++){const t=c[e];if(d.setX(t,h[e*a]),a>=2&&d.setY(t,h[e*a+1]),a>=3&&d.setZ(t,h[e*a+2]),a>=4&&d.setW(t,h[e*a+3]),a>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return d})}loadTexture(e){const t=this.json,n=this.options,i=t.textures[e].source,r=t.images[i];let a=this.textureLoader;if(r.uri){const e=n.manager.getHandler(r.uri);null!==e&&(a=e)}return this.loadTextureImage(e,i,a)}loadTextureImage(e,t,n){const i=this,r=this.json,a=r.textures[e],s=r.images[t],o=(s.uri||s.bufferView)+":"+a.sampler;if(this.textureCache[o])return this.textureCache[o];const l=this.loadImageSource(t,n).then(function(t){t.flipY=!1,t.name=a.name||s.name||"",""===t.name&&"string"==typeof s.uri&&!1===s.uri.startsWith("data:image/")&&(t.name=s.uri);const n=(r.samplers||{})[a.sampler]||{};return t.magFilter=EA[n.magFilter]||_e,t.minFilter=EA[n.minFilter]||xe,t.wrapS=bA[n.wrapS]||ge,t.wrapT=bA[n.wrapT]||ge,i.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[o]=l,l}loadImageSource(e,t){const n=this.json,i=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then(e=>e.clone());const r=n.images[e],a=self.URL||self.webkitURL;let s=r.uri||"",o=!1;if(void 0!==r.bufferView)s=this.getDependency("bufferView",r.bufferView).then(function(e){o=!0;const t=new Blob([e],{type:r.mimeType});return s=a.createObjectURL(t),s});else if(void 0===r.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const l=Promise.resolve(s).then(function(e){return new Promise(function(n,r){let a=n;!0===t.isImageBitmapLoader&&(a=function(e){const t=new $t(e);t.needsUpdate=!0,n(t)}),t.load(hc.resolveURL(e,i.path),a,void 0,r)})}).then(function(e){var t;return!0===o&&a.revokeObjectURL(s),MA(e,r),e.userData.mimeType=r.mimeType||((t=r.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e}).catch(function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",s),e});return this.sourceCache[e]=l,l}assignTexture(e,t,n,i){const r=this;return this.getDependency("texture",n.index).then(function(a){if(!a)return null;if(void 0!==n.texCoord&&n.texCoord>0&&((a=a.clone()).channel=n.texCoord),r.extensions[zh.KHR_TEXTURE_TRANSFORM]){const e=void 0!==n.extensions?n.extensions[zh.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=r.associations.get(a);a=r.extensions[zh.KHR_TEXTURE_TRANSFORM].extendTexture(a,e),r.associations.set(a,t)}}return void 0!==i&&(a.colorSpace=i),e[t]=a,a})}assignFinalMaterial(e){const t=e.geometry;let n=e.material;const i=void 0===t.attributes.tangent,r=void 0!==t.attributes.color,a=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+n.uuid;let t=this.cache.get(e);t||(t=new bo,Bi.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,t.sizeAttenuation=!1,this.cache.add(e,t)),n=t}else if(e.isLine){const e="LineBasicMaterial:"+n.uuid;let t=this.cache.get(e);t||(t=new Io,Bi.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,this.cache.add(e,t)),n=t}if(i||r||a){let e="ClonedMaterial:"+n.uuid+":";i&&(e+="derivative-tangents:"),r&&(e+="vertex-colors:"),a&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=n.clone(),r&&(t.vertexColors=!0),a&&(t.flatShading=!0),i&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(n))),n=t}e.material=n}getMaterialType(){return Co}loadMaterial(e){const t=this,n=this.json,i=this.extensions,r=n.materials[e];let a;const s={},o=[];if((r.extensions||{})[zh.KHR_MATERIALS_UNLIT]){const e=i[zh.KHR_MATERIALS_UNLIT];a=e.getMaterialType(),o.push(e.extendParams(s,r,t))}else{const n=r.pbrMetallicRoughness||{};if(s.color=new wi(1,1,1),s.opacity=1,Array.isArray(n.baseColorFactor)){const e=n.baseColorFactor;s.color.setRGB(e[0],e[1],e[2],$e),s.opacity=e[3]}void 0!==n.baseColorTexture&&o.push(t.assignTexture(s,"map",n.baseColorTexture,Ze)),s.metalness=void 0!==n.metallicFactor?n.metallicFactor:1,s.roughness=void 0!==n.roughnessFactor?n.roughnessFactor:1,void 0!==n.metallicRoughnessTexture&&(o.push(t.assignTexture(s,"metalnessMap",n.metallicRoughnessTexture)),o.push(t.assignTexture(s,"roughnessMap",n.metallicRoughnessTexture))),a=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),o.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,s)})))}!0===r.doubleSided&&(s.side=2);const l=r.alphaMode||"OPAQUE";if("BLEND"===l?(s.transparent=!0,s.depthWrite=!1):(s.transparent=!1,"MASK"===l&&(s.alphaTest=void 0!==r.alphaCutoff?r.alphaCutoff:.5)),void 0!==r.normalTexture&&a!==Ti&&(o.push(t.assignTexture(s,"normalMap",r.normalTexture)),s.normalScale=new Dt(1,1),void 0!==r.normalTexture.scale)){const e=r.normalTexture.scale;s.normalScale.set(e,e)}if(void 0!==r.occlusionTexture&&a!==Ti&&(o.push(t.assignTexture(s,"aoMap",r.occlusionTexture)),void 0!==r.occlusionTexture.strength&&(s.aoMapIntensity=r.occlusionTexture.strength)),void 0!==r.emissiveFactor&&a!==Ti){const e=r.emissiveFactor;s.emissive=(new wi).setRGB(e[0],e[1],e[2],$e)}return void 0!==r.emissiveTexture&&a!==Ti&&o.push(t.assignTexture(s,"emissiveMap",r.emissiveTexture,Ze)),Promise.all(o).then(function(){const n=new a(s);return r.name&&(n.name=r.name),MA(n,r),t.associations.set(n,{materials:e}),r.extensions&&wA(i,n,r),n})}createUniqueName(e){const t=bc.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,n=this.extensions,i=this.primitiveCache;function r(e){return n[zh.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then(function(n){return UA(n,e,t)})}const a=[];for(let n=0,s=e.length;n<s;n++){const s=e[n],o=BA(s),l=i[o];if(l)a.push(l.promise);else{let e;e=s.extensions&&s.extensions[zh.KHR_DRACO_MESH_COMPRESSION]?r(s):UA(new qi,s,t),i[o]={primitive:s,promise:e},a.push(e)}}return Promise.all(a)}loadMesh(e){const t=this,n=this.json,i=this.extensions,r=n.meshes[e],a=r.primitives,s=[];for(let e=0,t=a.length;e<t;e++){const t=void 0===a[e].material?yA(this.cache):this.getDependency("material",a[e].material);s.push(t)}return s.push(t.loadGeometries(a)),Promise.all(s).then(function(n){const s=n.slice(0,n.length-1),o=n[n.length-1],l=[];for(let n=0,c=o.length;n<c;n++){const c=o[n],h=a[n];let A;const u=s[n];if(h.mode===mA.TRIANGLES||h.mode===mA.TRIANGLE_STRIP||h.mode===mA.TRIANGLE_FAN||void 0===h.mode)A=!0===r.isSkinnedMesh?new ko(c,u):new hr(c,u),!0===A.isSkinnedMesh&&A.normalizeSkinWeights(),h.mode===mA.TRIANGLE_STRIP?A.geometry=kh(A.geometry,1):h.mode===mA.TRIANGLE_FAN&&(A.geometry=kh(A.geometry,2));else if(h.mode===mA.LINES)A=new ul(c,u);else if(h.mode===mA.LINE_STRIP)A=new ll(c,u);else if(h.mode===mA.LINE_LOOP)A=new dl(c,u);else{if(h.mode!==mA.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+h.mode);A=new vl(c,u)}Object.keys(A.geometry.morphAttributes).length>0&&SA(A,r),A.name=t.createUniqueName(r.name||"mesh_"+e),MA(A,r),h.extensions&&wA(i,A,h),t.assignFinalMaterial(A),A.computeOffsets(),l.push(A)}for(let n=0,i=l.length;n<i;n++)t.associations.set(l[n],{meshes:e,primitives:n});if(1===l.length)return r.extensions&&wA(i,l[0],r),l[0];const c=new co;r.extensions&&wA(i,c,r),t.associations.set(c,{meshes:e});for(let e=0,t=l.length;e<t;e++)c.add(l[e]);return c})}loadCamera(e){let t;const n=this.json.cameras[e],i=n[n.type];if(i)return"perspective"===n.type?t=new _r(Rt(i.yfov),i.aspectRatio||1,i.znear||1,i.zfar||2e6):"orthographic"===n.type&&(t=new Xr(-i.xmag,i.xmag,i.ymag,-i.ymag,i.znear,i.zfar)),n.name&&(t.name=this.createUniqueName(n.name)),MA(t,n),Promise.resolve(t);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(e){const t=this.json.skins[e],n=[];for(let e=0,i=t.joints.length;e<i;e++)n.push(this._loadNodeShallow(t.joints[e]));return void 0!==t.inverseBindMatrices?n.push(this.getDependency("accessor",t.inverseBindMatrices)):n.push(null),Promise.all(n).then(function(e){const n=e.pop(),i=e,r=[],a=[];for(let e=0,s=i.length;e<s;e++){const s=i[e];if(s){r.push(s);const t=new Nn;null!==n&&t.fromArray(n.array,16*e),a.push(t)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[e])}return new Wo(r,a)})}loadAnimation(e){const t=this.json,n=this,i=t.animations[e],r=i.name?i.name:"animation_"+e,a=[],s=[],o=[],l=[],c=[];for(let e=0,t=i.channels.length;e<t;e++){const t=i.channels[e],n=i.samplers[t.sampler],r=t.target,h=r.node,A=void 0!==i.parameters?i.parameters[n.input]:n.input,u=void 0!==i.parameters?i.parameters[n.output]:n.output;void 0!==r.node&&(a.push(this.getDependency("node",h)),s.push(this.getDependency("accessor",A)),o.push(this.getDependency("accessor",u)),l.push(n),c.push(r))}return Promise.all([Promise.all(a),Promise.all(s),Promise.all(o),Promise.all(l),Promise.all(c)]).then(function(e){const t=e[0],i=e[1],a=e[2],s=e[3],o=e[4],l=[];for(let e=0,r=t.length;e<r;e++){const r=t[e],c=i[e],h=a[e],A=s[e],u=o[e];if(void 0===r)continue;r.updateMatrix&&r.updateMatrix();const d=n._createAnimationTracks(r,c,h,A,u);if(d)for(let e=0;e<d.length;e++)l.push(d[e])}return new Ol(r,void 0,l)})}createNodeMesh(e){const t=this.json,n=this,i=t.nodes[e];return void 0===i.mesh?null:n.getDependency("mesh",i.mesh).then(function(e){const t=n._getNodeRef(n.meshCache,i.mesh,e);return void 0!==i.weights&&t.traverse(function(e){if(e.isMesh)for(let t=0,n=i.weights.length;t<n;t++)e.morphTargetInfluences[t]=i.weights[t]}),t})}loadNode(e){const t=this,n=this.json.nodes[e],i=t._loadNodeShallow(e),r=[],a=n.children||[];for(let e=0,n=a.length;e<n;e++)r.push(t.getDependency("node",a[e]));const s=void 0===n.skin?Promise.resolve(null):t.getDependency("skin",n.skin);return Promise.all([i,Promise.all(r),s]).then(function(e){const t=e[0],n=e[1],i=e[2];null!==i&&t.traverse(function(e){e.isSkinnedMesh&&e.bind(i,DA)});for(let e=0,i=n.length;e<i;e++)t.add(n[e]);return t})}_loadNodeShallow(e){const t=this.json,n=this.extensions,i=this;if(void 0!==this.nodeCache[e])return this.nodeCache[e];const r=t.nodes[e],a=r.name?i.createUniqueName(r.name):"",s=[],o=i._invokeOne(function(t){return t.createNodeMesh&&t.createNodeMesh(e)});return o&&s.push(o),void 0!==r.camera&&s.push(i.getDependency("camera",r.camera).then(function(e){return i._getNodeRef(i.cameraCache,r.camera,e)})),i._invokeAll(function(t){return t.createNodeAttachment&&t.createNodeAttachment(e)}).forEach(function(e){s.push(e)}),this.nodeCache[e]=Promise.all(s).then(function(t){let s;if(s=!0===r.isBone?new Go:t.length>1?new co:1===t.length?t[0]:new hi,s!==t[0])for(let e=0,n=t.length;e<n;e++)s.add(t[e]);if(r.name&&(s.userData.name=r.name,s.name=a),MA(s,r),r.extensions&&wA(n,s,r),void 0!==r.matrix){const e=new Nn;e.fromArray(r.matrix),s.applyMatrix4(e)}else void 0!==r.translation&&s.position.fromArray(r.translation),void 0!==r.rotation&&s.quaternion.fromArray(r.rotation),void 0!==r.scale&&s.scale.fromArray(r.scale);return i.associations.has(s)||i.associations.set(s,{}),i.associations.get(s).nodes=e,s}),this.nodeCache[e]}loadScene(e){const t=this.extensions,n=this.json.scenes[e],i=this,r=new co;n.name&&(r.name=i.createUniqueName(n.name)),MA(r,n),n.extensions&&wA(t,r,n);const a=n.nodes||[],s=[];for(let e=0,t=a.length;e<t;e++)s.push(i.getDependency("node",a[e]));return Promise.all(s).then(function(e){for(let t=0,n=e.length;t<n;t++)r.add(e[t]);return i.associations=(e=>{const t=new Map;for(const[e,n]of i.associations)(e instanceof Bi||e instanceof $t)&&t.set(e,n);return e.traverse(e=>{const n=i.associations.get(e);null!=n&&t.set(e,n)}),t})(r),r.userData.isDiamondScene=i._sceneContainsDiamondMaterial(r),r})}_sceneContainsDiamondMaterial(e){let t=!1;return e.traverse(e=>{e.material&&e.material.isMeshDiamondMaterial&&(t=!0)}),t}_createAnimationTracks(e,t,n,i,r){const a=[],s=e.name?e.name:e.uuid,o=[];let l;switch(IA[r.path]===IA.weights?e.traverse(function(e){e.morphTargetInfluences&&o.push(e.name?e.name:e.uuid)}):o.push(s),IA[r.path]){case IA.weights:l=Ul;break;case IA.rotation:l=Pl;break;case IA.position:case IA.scale:l=Fl;break;default:l=1===n.itemSize?Ul:Fl}const c=void 0!==i.interpolation?xA[i.interpolation]:Xe,h=this._getArrayFromAccessor(n);for(let e=0,n=o.length;e<n;e++){const n=new l(o[e]+"."+IA[r.path],t.array,h,c);"CUBICSPLINE"===i.interpolation&&this._createCubicSplineTrackInterpolant(n),a.push(n)}return a}_getArrayFromAccessor(e){let t=e.array;if(e.normalized){const e=RA(t.constructor),n=new Float32Array(t.length);for(let i=0,r=t.length;i<r;i++)n[i]=t[i]*e;t=n}return t}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(e){return new(this instanceof Pl?gA:pA)(this.times,this.values,this.getValueSize()/3,e)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function UA(e,t,n){const i=t.attributes,r=[];function a(t,i){return n.getDependency("accessor",t).then(function(t){e.setAttribute(i,t)})}for(const t in i){const n=_A[t]||t.toLowerCase();n in e.attributes||r.push(a(i[t],n))}if(void 0!==t.indices&&!e.index){const i=n.getDependency("accessor",t.indices).then(function(t){e.setIndex(t)});r.push(i)}return Vt.workingColorSpace!==$e&&"COLOR_0"in i&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${Vt.workingColorSpace}" not supported.`),MA(e,t),function(e,t,n){const i=t.attributes,r=new hn;if(void 0===i.POSITION)return;{const e=n.json.accessors[i.POSITION],t=e.min,a=e.max;if(void 0===t||void 0===a)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(r.set(new on(t[0],t[1],t[2]),new on(a[0],a[1],a[2])),e.normalized){const t=RA(vA[e.componentType]);r.min.multiplyScalar(t),r.max.multiplyScalar(t)}}const a=t.targets;if(void 0!==a){const e=new on,t=new on;for(let i=0,r=a.length;i<r;i++){const r=a[i];if(void 0!==r.POSITION){const i=n.json.accessors[r.POSITION],a=i.min,s=i.max;if(void 0!==a&&void 0!==s){if(t.setX(Math.max(Math.abs(a[0]),Math.abs(s[0]))),t.setY(Math.max(Math.abs(a[1]),Math.abs(s[1]))),t.setZ(Math.max(Math.abs(a[2]),Math.abs(s[2]))),i.normalized){const e=RA(vA[i.componentType]);t.multiplyScalar(e)}e.max(t)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}r.expandByVector(e)}e.boundingBox=r;const s=new Sn;r.getCenter(s.center),s.radius=r.min.distanceTo(r.max)/2,e.boundingSphere=s}(e,t,n),Promise.all(r).then(function(){return void 0!==t.targets?function(e,t,n){let i=!1,r=!1,a=!1;for(let e=0,n=t.length;e<n;e++){const n=t[e];if(void 0!==n.POSITION&&(i=!0),void 0!==n.NORMAL&&(r=!0),void 0!==n.COLOR_0&&(a=!0),i&&r&&a)break}if(!i&&!r&&!a)return Promise.resolve(e);const s=[],o=[],l=[];for(let c=0,h=t.length;c<h;c++){const h=t[c];if(i){const t=void 0!==h.POSITION?n.getDependency("accessor",h.POSITION):e.attributes.position;s.push(t)}if(r){const t=void 0!==h.NORMAL?n.getDependency("accessor",h.NORMAL):e.attributes.normal;o.push(t)}if(a){const t=void 0!==h.COLOR_0?n.getDependency("accessor",h.COLOR_0):e.attributes.color;l.push(t)}}return Promise.all([Promise.all(s),Promise.all(o),Promise.all(l)]).then(function(t){const n=t[0],s=t[1],o=t[2];return i&&(e.morphAttributes.position=n),r&&(e.morphAttributes.normal=s),a&&(e.morphAttributes.color=o),e.morphTargetsRelative=!0,e})}(e,t.targets,n):e})}class LA{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(e){if(!this.workers[e]){const t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}_getIdleWorker(){for(let e=0;e<this.pool;e++)if(!(this.workerStatus&1<<e))return e;return-1}_onMessage(e,t){const n=this.workersResolve[e];if(n&&n(t),this.queue.length){const{resolve:t,msg:n,transfer:i}=this.queue.shift();this.workersResolve[e]=t,this.workers[e].postMessage(n,i)}else this.workerStatus^=1<<e}setWorkerCreator(e){this.workerCreator=e}setWorkerLimit(e){this.pool=e}postMessage(e,t){return new Promise(n=>{const i=this._getIdleWorker();-1!==i?(this._initWorker(i),this.workerStatus|=1<<i,this.workersResolve[i]=n,this.workers[i].postMessage(e,t)):this.queue.push({resolve:n,msg:e,transfer:t})})}dispose(){this.workers.forEach(e=>e.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const PA=9,NA=15,FA=16,OA=22,kA=37,GA=43,HA=76,zA=83,VA=97,WA=100,qA=103,jA=109,YA=165,XA=166;class KA{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class JA{constructor(e,t,n,i){this._dataView=new DataView(e.buffer,e.byteOffset+t,n),this._littleEndian=i,this._offset=0}_nextUint8(){const e=this._dataView.getUint8(this._offset);return this._offset+=1,e}_nextUint16(){const e=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,e}_nextUint32(){const e=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint64(){const e=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,e}_nextInt32(){const e=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,e}_skip(e){return this._offset+=e,this}_scan(e,t=0){const n=this._offset;let i=0;for(;this._dataView.getUint8(this._offset)!==t&&i<e;)i++,this._offset++;return i<e&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+n,i)}}const ZA=[171,75,84,88,32,50,48,187,13,10,26,10];function $A(e){return"undefined"!=typeof TextDecoder?(new TextDecoder).decode(e):Buffer.from(e).toString("utf8")}let eu,tu,nu;const iu={env:{emscripten_notify_memory_growth:function(e){nu=new Uint8Array(tu.exports.memory.buffer)}}};class ru{init(){return eu||(eu="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+au).then(e=>e.arrayBuffer()).then(e=>WebAssembly.instantiate(e,iu)).then(this._init):WebAssembly.instantiate(Buffer.from(au,"base64"),iu).then(this._init),eu)}_init(e){tu=e.instance,iu.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!tu)throw new Error("ZSTDDecoder: Await .init() before decoding.");const n=e.byteLength,i=tu.exports.malloc(n);nu.set(e,i),t=t||Number(tu.exports.ZSTD_findDecompressedSize(i,n));const r=tu.exports.malloc(t),a=tu.exports.ZSTD_decompress(r,t,i,n),s=nu.slice(r,r+a);return tu.exports.free(i),tu.exports.free(r),s}}const au="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",su=new WeakMap;let ou,lu=0;class cu extends zl{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new LA,this.workerSourceURL="",this.workerConfig=null,"undefined"!=typeof MSC_TRANSCODER&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerPool.setWorkerLimit(e),this}async detectSupportAsync(e){return this.workerConfig={astcSupported:await e.hasFeatureAsync("texture-compression-astc"),etc1Supported:await e.hasFeatureAsync("texture-compression-etc1"),etc2Supported:await e.hasFeatureAsync("texture-compression-etc2"),dxtSupported:await e.hasFeatureAsync("texture-compression-bc"),bptcSupported:await e.hasFeatureAsync("texture-compression-bptc"),pvrtcSupported:await e.hasFeatureAsync("texture-compression-pvrtc")},this}detectSupport(e){return!0===e.isWebGPURenderer?this.workerConfig={astcSupported:e.hasFeature("texture-compression-astc"),etc1Supported:e.hasFeature("texture-compression-etc1"),etc2Supported:e.hasFeature("texture-compression-etc2"),dxtSupported:e.hasFeature("texture-compression-bc"),bptcSupported:e.hasFeature("texture-compression-bptc"),pvrtcSupported:e.hasFeature("texture-compression-pvrtc")}:this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}init(){if(!this.transcoderPending){const e=new ql(this.manager);e.setPath(this.transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),n=new ql(this.manager);n.setPath(this.transcoderPath),n.setResponseType("arraybuffer"),n.setWithCredentials(this.withCredentials);const i=n.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([t,i]).then(([e,t])=>{const n=cu.BasisWorker.toString(),i=["/* constants */","let _EngineFormat = "+JSON.stringify(cu.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(cu.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(cu.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([i])),this.transcoderBinary=t,this.workerPool.setWorkerCreator(()=>{const e=new Worker(this.workerSourceURL),t=this.transcoderBinary.slice(0);return e.postMessage({type:"init",config:this.workerConfig,transcoderBinary:t},[t]),e})}),lu>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),lu++}return this.transcoderPending}load(e,t,n,i){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const r=new ql(this.manager);r.setResponseType("arraybuffer"),r.setWithCredentials(this.withCredentials),r.load(e,e=>{if(su.has(e))return su.get(e).promise.then(t).catch(i);this._createTexture(e).then(e=>t?t(e):null).catch(i)},n,i)}_createTextureFrom(e,t){const{faces:n,width:i,height:r,format:a,type:s,error:o,dfdFlags:l}=e;if("error"===s)return Promise.reject(o);let c;if(6===t.faceCount)c=new _l(n,a,ye);else{const e=n[0].mipmaps;c=t.layerCount>1?new Cl(e,i,r,t.layerCount,a,ye):new bl(e,i,r,a,ye)}return c.minFilter=1===n[0].mipmaps.length?_e:xe,c.magFilter=_e,c.generateMipmaps=!1,c.needsUpdate=!0,c.colorSpace=du(t),c.premultiplyAlpha=!!(1&l),c}async _createTexture(e,t={}){const n=function(e){const t=new Uint8Array(e.buffer,e.byteOffset,ZA.length);if(t[0]!==ZA[0]||t[1]!==ZA[1]||t[2]!==ZA[2]||t[3]!==ZA[3]||t[4]!==ZA[4]||t[5]!==ZA[5]||t[6]!==ZA[6]||t[7]!==ZA[7]||t[8]!==ZA[8]||t[9]!==ZA[9]||t[10]!==ZA[10]||t[11]!==ZA[11])throw new Error("Missing KTX 2.0 identifier.");const n=new KA,i=17*Uint32Array.BYTES_PER_ELEMENT,r=new JA(e,ZA.length,i,!0);n.vkFormat=r._nextUint32(),n.typeSize=r._nextUint32(),n.pixelWidth=r._nextUint32(),n.pixelHeight=r._nextUint32(),n.pixelDepth=r._nextUint32(),n.layerCount=r._nextUint32(),n.faceCount=r._nextUint32();const a=r._nextUint32();n.supercompressionScheme=r._nextUint32();const s=r._nextUint32(),o=r._nextUint32(),l=r._nextUint32(),c=r._nextUint32(),h=r._nextUint64(),A=r._nextUint64(),u=new JA(e,ZA.length+i,3*a*8,!0);for(let t=0;t<a;t++)n.levels.push({levelData:new Uint8Array(e.buffer,e.byteOffset+u._nextUint64(),u._nextUint64()),uncompressedByteLength:u._nextUint64()});const d=new JA(e,s,o,!0),p={vendorId:d._skip(4)._nextUint16(),descriptorType:d._nextUint16(),versionNumber:d._nextUint16(),descriptorBlockSize:d._nextUint16(),colorModel:d._nextUint8(),colorPrimaries:d._nextUint8(),transferFunction:d._nextUint8(),flags:d._nextUint8(),texelBlockDimension:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],bytesPlane:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],samples:[]},f=(p.descriptorBlockSize/4-6)/4;for(let e=0;e<f;e++){const t={bitOffset:d._nextUint16(),bitLength:d._nextUint8(),channelType:d._nextUint8(),samplePosition:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};64&t.channelType?(t.sampleLower=d._nextInt32(),t.sampleUpper=d._nextInt32()):(t.sampleLower=d._nextUint32(),t.sampleUpper=d._nextUint32()),p.samples[e]=t}n.dataFormatDescriptor.length=0,n.dataFormatDescriptor.push(p);const g=new JA(e,l,c,!0);for(;g._offset<c;){const e=g._nextUint32(),t=g._scan(e),i=$A(t),r=g._scan(e-t.byteLength);n.keyValue[i]=i.match(/^ktx/i)?$A(r):r,g._offset%4&&g._skip(4-g._offset%4)}if(A<=0)return n;const m=new JA(e,h,A,!0),v=m._nextUint16(),E=m._nextUint16(),b=m._nextUint32(),C=m._nextUint32(),_=m._nextUint32(),I=m._nextUint32(),x=[];for(let e=0;e<a;e++)x.push({imageFlags:m._nextUint32(),rgbSliceByteOffset:m._nextUint32(),rgbSliceByteLength:m._nextUint32(),alphaSliceByteOffset:m._nextUint32(),alphaSliceByteLength:m._nextUint32()});const y=h+m._offset,w=y+b,M=w+C,S=M+_,B=new Uint8Array(e.buffer,e.byteOffset+y,b),T=new Uint8Array(e.buffer,e.byteOffset+w,C),R=new Uint8Array(e.buffer,e.byteOffset+M,_),D=new Uint8Array(e.buffer,e.byteOffset+S,I);return n.globalData={endpointCount:v,selectorCount:E,imageDescs:x,endpointsData:B,selectorsData:T,tablesData:R,extendedData:D},n}(new Uint8Array(e));if(0!==n.vkFormat)return async function(e){const{vkFormat:t}=e;if(void 0===Au[t])throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");let n;2===e.supercompressionScheme&&(ou||(ou=new Promise(async e=>{const t=new ru;await t.init(),e(t)})),n=await ou);const i=[];for(let r=0;r<e.levels.length;r++){const a=Math.max(1,e.pixelWidth>>r),s=Math.max(1,e.pixelHeight>>r),o=e.pixelDepth?Math.max(1,e.pixelDepth>>r):0,l=e.levels[r];let c,h;if(0===e.supercompressionScheme)c=l.levelData;else{if(2!==e.supercompressionScheme)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");c=n.decode(l.levelData,l.uncompressedByteLength)}h=uu[t]===Se?new Float32Array(c.buffer,c.byteOffset,c.byteLength/Float32Array.BYTES_PER_ELEMENT):uu[t]===Be?new Uint16Array(c.buffer,c.byteOffset,c.byteLength/Uint16Array.BYTES_PER_ELEMENT):c,i.push({data:h,width:a,height:s,depth:o})}let r;if(hu.has(Au[t]))r=0===e.pixelDepth?new Ho(i[0].data,e.pixelWidth,e.pixelHeight):new an(i[0].data,e.pixelWidth,e.pixelHeight,e.pixelDepth);else{if(e.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");r=new bl(i,e.pixelWidth,e.pixelHeight)}return r.mipmaps=i,r.type=uu[t],r.format=Au[t],r.colorSpace=du(e),r.needsUpdate=!0,Promise.resolve(r)}(n);const i=t,r=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:e,taskConfig:i},[e])).then(e=>this._createTextureFrom(e.data,n));return su.set(e,{promise:r}),r}dispose(){return this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),lu--,this}}cu.BasisFormat={ETC1S:0,UASTC_4x4:1},cu.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16},cu.EngineFormat={RGBAFormat:Re,RGBA_ASTC_4x4_Format:We,RGBA_BPTC_Format:je,RGBA_ETC2_EAC_Format:Ve,RGBA_PVRTC_4BPPV1_Format:Ge,RGBA_S3TC_DXT5_Format:Oe,RGB_ETC1_Format:He,RGB_ETC2_Format:ze,RGB_PVRTC_4BPPV1_Format:ke,RGBA_S3TC_DXT1_Format:Ne},cu.BasisWorker=function(){let e,t,n;const i=_EngineFormat,r=_TranscoderFormat,a=_BasisFormat;self.addEventListener("message",function(s){const A=s.data;switch(A.type){case"init":e=A.config,u=A.transcoderBinary,t=new Promise(e=>{n={wasmBinary:u,onRuntimeInitialized:e},BASIS(n)}).then(()=>{n.initializeBasis(),void 0===n.KTX2File&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":t.then(()=>{try{const{faces:t,buffers:s,width:u,height:d,hasAlpha:p,format:f,dfdFlags:g}=function(t){const s=new n.KTX2File(new Uint8Array(t));function A(){s.close(),s.delete()}if(!s.isValid())throw A(),new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file");const u=s.isUASTC()?a.UASTC_4x4:a.ETC1S,d=s.getWidth(),p=s.getHeight(),f=s.getLayers()||1,g=s.getLevels(),m=s.getFaces(),v=s.getHasAlpha(),E=s.getDFDFlags(),{transcoderFormat:b,engineFormat:C}=function(t,n,s,h){let A,u;const d=t===a.ETC1S?o:l;for(let i=0;i<d.length;i++){const r=d[i];if(e[r.if]&&r.basisFormat.includes(t)&&!(h&&r.transcoderFormat.length<2)&&(!r.needsPowerOfTwo||c(n)&&c(s)))return A=r.transcoderFormat[h?1:0],u=r.engineFormat[h?1:0],{transcoderFormat:A,engineFormat:u}}return console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32."),A=r.RGBA32,u=i.RGBAFormat,{transcoderFormat:A,engineFormat:u}}(u,d,p,v);if(!d||!p||!g)throw A(),new Error("THREE.KTX2Loader:\tInvalid texture");if(!s.startTranscoding())throw A(),new Error("THREE.KTX2Loader: .startTranscoding failed");const _=[],I=[];for(let e=0;e<m;e++){const t=[];for(let n=0;n<g;n++){const i=[];let r,a;for(let t=0;t<f;t++){const o=s.getImageLevelInfo(n,t,e);0!==e||0!==n||0!==t||o.origWidth%4==0&&o.origHeight%4==0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),g>1?(r=o.origWidth,a=o.origHeight):(r=o.width,a=o.height);const l=new Uint8Array(s.getImageTranscodedSizeInBytes(n,t,0,b));if(!s.transcodeImage(l,n,t,e,b,0,-1,-1))throw A(),new Error("THREE.KTX2Loader: .transcodeImage failed.");i.push(l)}const o=h(i);t.push({data:o,width:r,height:a}),I.push(o.buffer)}_.push({mipmaps:t,width:d,height:p,format:C})}return A(),{faces:_,buffers:I,width:d,height:p,hasAlpha:v,format:C,dfdFlags:E}}(A.buffer);self.postMessage({type:"transcode",id:A.id,faces:t,width:u,height:d,hasAlpha:p,format:f,dfdFlags:g},s)}catch(e){console.error(e),self.postMessage({type:"error",id:A.id,error:e.message})}})}var u});const s=[{if:"astcSupported",basisFormat:[a.UASTC_4x4],transcoderFormat:[r.ASTC_4x4,r.ASTC_4x4],engineFormat:[i.RGBA_ASTC_4x4_Format,i.RGBA_ASTC_4x4_Format],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.BC7_M5,r.BC7_M5],engineFormat:[i.RGBA_BPTC_Format,i.RGBA_BPTC_Format],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.BC1,r.BC3],engineFormat:[i.RGBA_S3TC_DXT1_Format,i.RGBA_S3TC_DXT5_Format],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.ETC1,r.ETC2],engineFormat:[i.RGB_ETC2_Format,i.RGBA_ETC2_EAC_Format],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.ETC1],engineFormat:[i.RGB_ETC1_Format],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.PVRTC1_4_RGB,r.PVRTC1_4_RGBA],engineFormat:[i.RGB_PVRTC_4BPPV1_Format,i.RGBA_PVRTC_4BPPV1_Format],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0}],o=s.sort(function(e,t){return e.priorityETC1S-t.priorityETC1S}),l=s.sort(function(e,t){return e.priorityUASTC-t.priorityUASTC});function c(e){return e<=2||!(e&e-1)&&0!==e}function h(e){if(1===e.length)return e[0];let t=0;for(let n=0;n<e.length;n++)t+=e[n].byteLength;const n=new Uint8Array(t);let i=0;for(let t=0;t<e.length;t++){const r=e[t];n.set(r,i),i+=r.byteLength}return n}};const hu=new Set([Re,Le,Ue]),Au={[jA]:Re,[VA]:Re,[kA]:Re,[GA]:Re,[qA]:Le,[zA]:Le,[FA]:Le,[OA]:Le,[WA]:Ue,[HA]:Ue,[NA]:Ue,[PA]:Ue,[XA]:qe,[YA]:qe},uu={[jA]:Se,[VA]:Be,[kA]:ye,[GA]:ye,[qA]:Se,[zA]:Be,[FA]:ye,[OA]:ye,[WA]:Se,[HA]:Be,[NA]:ye,[PA]:ye,[XA]:ye,[YA]:ye};function du(e){const t=e.dataFormatDescriptor[0];return 1===t.colorPrimaries?2===t.transferFunction?Ze:$e:10===t.colorPrimaries?2===t.transferFunction?et:tt:(0===t.colorPrimaries||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${t.colorPrimaries}"`),Je)}let pu=null;const fu=e=>{pu=null==e?null:e.endsWith("/")?e.substring(0,e.length-1):e},gu=()=>null!=pu?`${pu}/libs`:"https://cdn.jsdelivr.net/npm/three@0.165.0/examples/jsm/libs",mu=(()=>{const e=(()=>{var e;if(null===(e=document.documentElement.getAttribute("itemtype"))||void 0===e?void 0:e.includes("schema.org/SearchResultsPage"))return!0;const t=null!=document.head?Array.from(document.head.querySelectorAll("meta")):[];for(const e of t)if("viewport"===e.name)return!0;return!1})();return e||console.error('No <meta name="viewport"> detected. This might cause ShopAR to crash on iOS.\nPlease add the following line to your HTML:\n<meta name="viewport" content="width=device-width, initial-scale=1.0">'),()=>e?Math.min(window.devicePixelRatio||1,2):1})(),vu=new wi(16777215);let Eu,bu,Cu=!1,_u=1,Iu=1,xu=1;function yu(){return wu(),Eu}function wu(){if(Cu)return;bu=document.createElement("canvas");const e=bu.style;e.position="absolute",e.top="0",e.left="0",e.width="100%",e.height="100%",Eu=new Mo({powerPreference:"high-performance",canvas:bu,antialias:!0,alpha:!0}),Eu.outputColorSpace=Ze,Eu.toneMapping=4,Eu.setClearColor(new wi(16777215),0),Cu=!0}function Mu(e,t,n,i,r){const{width:a,height:s}=t,o=Eu.toneMapping,l=Eu.toneMappingExposure;if(Eu.toneMapping=i,Eu.toneMappingExposure=r,Eu.setViewport(0,0,a,s),Eu.setClearColor(vu,n),e.setSize(a,s),e.render(),Eu.toneMapping=o,Eu.toneMappingExposure=l,t.isBlitted()){const{context2d:e}=t;if(null==e)return;e.clearRect(0,0,a,s),bu.width>0&&bu.height>0&&e.drawImage(bu,0,Iu-s,a,s,0,0,a,s)}}function Su(e,t){const n=mu();e=Math.ceil(e*n),t=Math.ceil(t*n),e===_u&&t===Iu&&n===xu||(_u=e,Iu=t,xu=n,yu().setSize(_u,Iu,!1))}function Bu(e,t){yu().renderCubeMapNormals(e),e.traverse(e=>{e instanceof hr&&e.material&&e.material.isMeshDiamondMaterial&&(e.material.envMap=t)})}let Tu,Ru=!1;function Du(e){return Ru||Qu(),Tu.parseAsync(e.buffer,"")}function Qu(){if(Ru)return;const e=(new Fh).setDecoderPath(`${gu()}/draco/gltf/`);e.preload();const t=(new cu).setTranscoderPath(`${gu()}/basis/`).detectSupport(yu());Tu=(new Gh).setDRACOLoader(e).setKTX2Loader(t).setMeshoptDecoder(Ph),Ru=!0}function Uu(e){null!=e&&(Object.values(e).forEach(e=>{(null==e?void 0:e.dispose)instanceof Function&&e.dispose()}),e.dispose())}function Lu(e,t,n,i,r,a){if(null==e)return new on;const s=Pu(e,i,r,new on),o=Nu(e);Pu(e,s.scale,s.quaternion,s.position);const l=o.getSize(new on),c=o.getCenter(new on);let h=0;return h=l.x/2+t/2,n&&(h=-h),new on(-c.x+h,-c.y+l.y/2,-c.z)}function Pu(e,t,n,i){let r,a,s;return null!=t&&(r=e.scale.x,e.scale.set(t,t,t)),null!=n&&(a=e.quaternion.clone(),e.quaternion.copy(n)),null!=i&&(s=e.position.clone(),e.position.copy(i)),{scale:r,quaternion:a,position:s}}function Nu(e){return(new hn).setFromObject(e,!0)}function Fu(e){e.traverse(e=>{var t;e instanceof hr&&(null===(t=e.geometry)||void 0===t||t.dispose(),Array.isArray(e.material)?e.material.forEach(Uu):Uu(e.material))}),e.clear()}const Ou={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\n\t\t}"};class ku{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const Gu=new Xr(-1,1,1,-1,0,1),Hu=new class extends qi{constructor(){super(),this.setAttribute("position",new Fi([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new Fi([0,2,0,0,2,0],2))}};class zu{constructor(e){this._mesh=new hr(Hu,e)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,Gu)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}}class Vu extends ku{constructor(e,t){super(),this.textureID=void 0!==t?t:"tDiffuse",e instanceof mr?(this.uniforms=e.uniforms,this.material=e):e&&(this.uniforms=gr.clone(e.uniforms),this.material=new mr({name:void 0!==e.name?e.name:"unspecified",defines:Object.assign({},e.defines),uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader})),this.fsQuad=new zu(this.material)}render(e,t,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this.fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class Wu extends ku{constructor(e,t){super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,n){const i=e.getContext(),r=e.state;let a,s;r.buffers.color.setMask(!1),r.buffers.depth.setMask(!1),r.buffers.color.setLocked(!0),r.buffers.depth.setLocked(!0),this.inverse?(a=0,s=1):(a=1,s=0),r.buffers.stencil.setTest(!0),r.buffers.stencil.setOp(i.REPLACE,i.REPLACE,i.REPLACE),r.buffers.stencil.setFunc(i.ALWAYS,a,4294967295),r.buffers.stencil.setClear(s),r.buffers.stencil.setLocked(!0),e.setRenderTarget(n),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),r.buffers.color.setLocked(!1),r.buffers.depth.setLocked(!1),r.buffers.color.setMask(!0),r.buffers.depth.setMask(!0),r.buffers.stencil.setLocked(!1),r.buffers.stencil.setFunc(i.EQUAL,1,4294967295),r.buffers.stencil.setOp(i.KEEP,i.KEEP,i.KEEP),r.buffers.stencil.setLocked(!0)}}class qu extends ku{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}}class ju{constructor(e,t){if(this.renderer=e,this._pixelRatio=e.getPixelRatio(),void 0===t){const n=e.getSize(new Dt);this._width=n.width,this._height=n.height,(t=new nn(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:Be})).texture.name="EffectComposer.rt1"}else this._width=t.width,this._height=t.height;this.renderTarget1=t,this.renderTarget2=t.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new Vu(Ou),this.copyPass.material.blending=0,this.clock=new uc}swapBuffers(){const e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){const t=this.passes.indexOf(e);-1!==t&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t<this.passes.length;t++)if(this.passes[t].enabled)return!1;return!0}render(e){void 0===e&&(e=this.clock.getDelta());const t=this.renderer.getRenderTarget();let n=!1;for(let t=0,i=this.passes.length;t<i;t++){const i=this.passes[t];if(!1!==i.enabled){if(i.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(t),i.render(this.renderer,this.writeBuffer,this.readBuffer,e,n),i.needsSwap){if(n){const t=this.renderer.getContext(),n=this.renderer.state.buffers.stencil;n.setFunc(t.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,e),n.setFunc(t.EQUAL,1,4294967295)}this.swapBuffers()}void 0!==Wu&&(i instanceof Wu?n=!0:i instanceof qu&&(n=!1))}}this.renderer.setRenderTarget(t)}reset(e){if(void 0===e){const t=this.renderer.getSize(new Dt);this._pixelRatio=this.renderer.getPixelRatio(),this._width=t.width,this._height=t.height,(e=this.renderTarget1.clone()).setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=e,this.renderTarget2=e.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(e,t){this._width=e,this._height=t;const n=this._width*this._pixelRatio,i=this._height*this._pixelRatio;this.renderTarget1.setSize(n,i),this.renderTarget2.setSize(n,i);for(let e=0;e<this.passes.length;e++)this.passes[e].setSize(n,i)}setPixelRatio(e){this._pixelRatio=e,this.setSize(this._width,this._height)}dispose(){this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.copyPass.dispose()}}const Yu={name:"OutputShader",uniforms:{tDiffuse:{value:null},toneMappingExposure:{value:1}},vertexShader:"\n\t\tprecision highp float;\n\n\t\tuniform mat4 modelViewMatrix;\n\t\tuniform mat4 projectionMatrix;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\t\n\t\tprecision highp float;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\t#include <tonemapping_pars_fragment>\n\t\t#include <colorspace_pars_fragment>\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tgl_FragColor = texture2D( tDiffuse, vUv );\n\n\t\t\t// tone mapping\n\n\t\t\t#ifdef LINEAR_TONE_MAPPING\n\n\t\t\t\tgl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( REINHARD_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( CINEON_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = OptimizedCineonToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( ACES_FILMIC_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( AGX_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( NEUTRAL_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb );\n\n\t\t\t#endif\n\n\t\t\t// color space\n\n\t\t\t#ifdef SRGB_TRANSFER\n\n\t\t\t\tgl_FragColor = sRGBTransferOETF( gl_FragColor );\n\n\t\t\t#endif\n\n\t\t}"};class Xu extends ku{constructor(){super();const e=Yu;this.uniforms=gr.clone(e.uniforms),this.material=new Eo({name:e.name,uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader}),this.fsQuad=new zu(this.material),this._outputColorSpace=null,this._toneMapping=null}render(e,t,n){this.uniforms.tDiffuse.value=n.texture,this.uniforms.toneMappingExposure.value=e.toneMappingExposure,this._outputColorSpace===e.outputColorSpace&&this._toneMapping===e.toneMapping||(this._outputColorSpace=e.outputColorSpace,this._toneMapping=e.toneMapping,this.material.defines={},Vt.getTransfer(this._outputColorSpace)===it&&(this.material.defines.SRGB_TRANSFER=""),1===this._toneMapping?this.material.defines.LINEAR_TONE_MAPPING="":2===this._toneMapping?this.material.defines.REINHARD_TONE_MAPPING="":3===this._toneMapping?this.material.defines.CINEON_TONE_MAPPING="":4===this._toneMapping?this.material.defines.ACES_FILMIC_TONE_MAPPING="":6===this._toneMapping?this.material.defines.AGX_TONE_MAPPING="":7===this._toneMapping&&(this.material.defines.NEUTRAL_TONE_MAPPING=""),this.material.needsUpdate=!0),!0===this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class Ku extends ku{constructor(e,t,n=null,i=null,r=null){super(),this.scene=e,this.camera=t,this.overrideMaterial=n,this.clearColor=i,this.clearAlpha=r,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new wi}render(e,t,n){const i=e.autoClear;let r,a;e.autoClear=!1,null!==this.overrideMaterial&&(a=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),null!==this.clearColor&&(e.getClearColor(this._oldClearColor),e.setClearColor(this.clearColor,e.getClearAlpha())),null!==this.clearAlpha&&(r=e.getClearAlpha(),e.setClearAlpha(this.clearAlpha)),1==this.clearDepth&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:n),!0===this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),null!==this.clearColor&&e.setClearColor(this._oldClearColor),null!==this.clearAlpha&&e.setClearAlpha(r),null!==this.overrideMaterial&&(this.scene.overrideMaterial=a),e.autoClear=i}}const Ju={uniforms:{tDiffuse:{value:null},luminosityThreshold:{value:1},smoothWidth:{value:1},defaultColor:{value:new wi(0)},defaultOpacity:{value:0}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform vec3 defaultColor;\n\t\tuniform float defaultOpacity;\n\t\tuniform float luminosityThreshold;\n\t\tuniform float smoothWidth;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\n\t\t\tvec3 luma = vec3( 0.299, 0.587, 0.114 );\n\n\t\t\tfloat v = dot( texel.xyz, luma );\n\n\t\t\tvec4 outputColor = vec4( defaultColor.rgb, defaultOpacity );\n\n\t\t\tfloat alpha = smoothstep( luminosityThreshold, luminosityThreshold + smoothWidth, v );\n\n\t\t\tgl_FragColor = mix( outputColor, texel, alpha );\n\t\t\tgl_FragColor.rgb = max( gl_FragColor.rgb, vec3( 0.0 ) );\n\n\t\t}"};class Zu extends ku{constructor(e,t,n,i){super(),this.strength=void 0!==t?t:1,this.radius=n,this.threshold=i,this.resolution=void 0!==e?new Dt(e.x,e.y):new Dt(256,256),this.clearColor=new wi(0,0,0),this.renderTargetsHorizontal=[],this.renderTargetsVertical=[],this.nMips=5;let r=Math.round(this.resolution.x/2),a=Math.round(this.resolution.y/2);this.renderTargetBright=new nn(r,a,{type:Be}),this.renderTargetBright.texture.name="UnrealBloomPass.bright",this.renderTargetBright.texture.generateMipmaps=!1;for(let e=0;e<this.nMips;e++){const t=new nn(r,a,{type:Be});t.texture.name="UnrealBloomPass.h"+e,t.texture.generateMipmaps=!1,this.renderTargetsHorizontal.push(t);const n=new nn(r,a,{type:Be});n.texture.name="UnrealBloomPass.v"+e,n.texture.generateMipmaps=!1,this.renderTargetsVertical.push(n),r=Math.round(r/2),a=Math.round(a/2)}const s=Ju;this.highPassUniforms=gr.clone(s.uniforms),this.highPassUniforms.luminosityThreshold.value=i,this.highPassUniforms.smoothWidth.value=.01,this.materialHighPassFilter=new mr({uniforms:this.highPassUniforms,vertexShader:s.vertexShader,fragmentShader:s.fragmentShader}),this.separableBlurMaterials=[];const o=[3,5,7,9,11];r=Math.round(this.resolution.x/2),a=Math.round(this.resolution.y/2);for(let e=0;e<this.nMips;e++)this.separableBlurMaterials.push(this.getSeperableBlurMaterial(o[e])),this.separableBlurMaterials[e].uniforms.invSize.value=new Dt(1/r,1/a),r=Math.round(r/2),a=Math.round(a/2);this.compositeMaterial=this.getCompositeMaterial(this.nMips),this.compositeMaterial.uniforms.blurTexture1.value=this.renderTargetsVertical[0].texture,this.compositeMaterial.uniforms.blurTexture2.value=this.renderTargetsVertical[1].texture,this.compositeMaterial.uniforms.blurTexture3.value=this.renderTargetsVertical[2].texture,this.compositeMaterial.uniforms.blurTexture4.value=this.renderTargetsVertical[3].texture,this.compositeMaterial.uniforms.blurTexture5.value=this.renderTargetsVertical[4].texture,this.compositeMaterial.uniforms.bloomStrength.value=t,this.compositeMaterial.uniforms.bloomRadius.value=.1,this.compositeMaterial.uniforms.bloomFactors.value=[1,.8,.6,.4,.2],this.bloomTintColors=[new on(1,1,1),new on(1,1,1),new on(1,1,1),new on(1,1,1),new on(1,1,1)],this.compositeMaterial.uniforms.bloomTintColors.value=this.bloomTintColors;const l=Ou;this.copyUniforms=gr.clone(l.uniforms),this.blendMaterial=new mr({uniforms:this.copyUniforms,vertexShader:l.vertexShader,fragmentShader:l.fragmentShader,blending:2,depthTest:!1,depthWrite:!1,transparent:!0}),this.enabled=!0,this.needsSwap=!1,this._oldClearColor=new wi,this.oldClearAlpha=1,this.basic=new Ti,this.fsQuad=new zu(null)}dispose(){for(let e=0;e<this.renderTargetsHorizontal.length;e++)this.renderTargetsHorizontal[e].dispose();for(let e=0;e<this.renderTargetsVertical.length;e++)this.renderTargetsVertical[e].dispose();this.renderTargetBright.dispose();for(let e=0;e<this.separableBlurMaterials.length;e++)this.separableBlurMaterials[e].dispose();this.compositeMaterial.dispose(),this.blendMaterial.dispose(),this.basic.dispose(),this.fsQuad.dispose()}setSize(e,t){let n=Math.round(e/2),i=Math.round(t/2);this.renderTargetBright.setSize(n,i);for(let e=0;e<this.nMips;e++)this.renderTargetsHorizontal[e].setSize(n,i),this.renderTargetsVertical[e].setSize(n,i),this.separableBlurMaterials[e].uniforms.invSize.value=new Dt(1/n,1/i),n=Math.round(n/2),i=Math.round(i/2)}render(e,t,n,i,r){e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();const a=e.autoClear;e.autoClear=!1,e.setClearColor(this.clearColor,0),r&&e.state.buffers.stencil.setTest(!1),this.renderToScreen&&(this.fsQuad.material=this.basic,this.basic.map=n.texture,e.setRenderTarget(null),e.clear(),this.fsQuad.render(e)),this.highPassUniforms.tDiffuse.value=n.texture,this.highPassUniforms.luminosityThreshold.value=this.threshold,this.fsQuad.material=this.materialHighPassFilter,e.setRenderTarget(this.renderTargetBright),e.clear(),this.fsQuad.render(e);let s=this.renderTargetBright;for(let t=0;t<this.nMips;t++)this.fsQuad.material=this.separableBlurMaterials[t],this.separableBlurMaterials[t].uniforms.colorTexture.value=s.texture,this.separableBlurMaterials[t].uniforms.direction.value=Zu.BlurDirectionX,e.setRenderTarget(this.renderTargetsHorizontal[t]),e.clear(),this.fsQuad.render(e),this.separableBlurMaterials[t].uniforms.colorTexture.value=this.renderTargetsHorizontal[t].texture,this.separableBlurMaterials[t].uniforms.direction.value=Zu.BlurDirectionY,e.setRenderTarget(this.renderTargetsVertical[t]),e.clear(),this.fsQuad.render(e),s=this.renderTargetsVertical[t];this.fsQuad.material=this.compositeMaterial,this.compositeMaterial.uniforms.bloomStrength.value=this.strength,this.compositeMaterial.uniforms.bloomRadius.value=this.radius,this.compositeMaterial.uniforms.bloomTintColors.value=this.bloomTintColors,e.setRenderTarget(this.renderTargetsHorizontal[0]),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.blendMaterial,this.copyUniforms.tDiffuse.value=this.renderTargetsHorizontal[0].texture,r&&e.state.buffers.stencil.setTest(!0),this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(n),this.fsQuad.render(e)),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=a}getSeperableBlurMaterial(e){const t=[];for(let n=0;n<e;n++)t.push(.39894*Math.exp(-.5*n*n/(e*e))/e);return new mr({defines:{KERNEL_RADIUS:e},uniforms:{colorTexture:{value:null},invSize:{value:new Dt(.5,.5)},direction:{value:new Dt(.5,.5)},gaussianCoefficients:{value:t}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"#include <common>\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 invSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float gaussianCoefficients[KERNEL_RADIUS];\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tfloat weightSum = gaussianCoefficients[0];\n\t\t\t\t\tvec3 diffuseSum = texture2D( colorTexture, vUv ).rgb * weightSum;\n\t\t\t\t\tfor( int i = 1; i < KERNEL_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = float(i);\n\t\t\t\t\t\tfloat w = gaussianCoefficients[i];\n\t\t\t\t\t\tvec2 uvOffset = direction * invSize * x;\n\t\t\t\t\t\tvec3 sample1 = texture2D( colorTexture, vUv + uvOffset ).rgb;\n\t\t\t\t\t\tvec3 sample2 = texture2D( colorTexture, vUv - uvOffset ).rgb;\n\t\t\t\t\t\tdiffuseSum += (sample1 + sample2) * w;\n\t\t\t\t\t\tweightSum += 2.0 * w;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = vec4(diffuseSum/weightSum, 1.0);\n\t\t\t\t}"})}getCompositeMaterial(e){return new mr({defines:{NUM_MIPS:e},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D blurTexture1;\n\t\t\t\tuniform sampler2D blurTexture2;\n\t\t\t\tuniform sampler2D blurTexture3;\n\t\t\t\tuniform sampler2D blurTexture4;\n\t\t\t\tuniform sampler2D blurTexture5;\n\t\t\t\tuniform float bloomStrength;\n\t\t\t\tuniform float bloomRadius;\n\t\t\t\tuniform float bloomFactors[NUM_MIPS];\n\t\t\t\tuniform vec3 bloomTintColors[NUM_MIPS];\n\n\t\t\t\tfloat lerpBloomFactor(const in float factor) {\n\t\t\t\t\tfloat mirrorFactor = 1.2 - factor;\n\t\t\t\t\treturn mix(factor, mirrorFactor, bloomRadius);\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tgl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\n\t\t\t\t}"})}}Zu.BlurDirectionX=new Dt(1,0),Zu.BlurDirectionY=new Dt(0,1);const $u="backgroundTexture",ed=`\n uniform sampler2D ${$u};\n uniform sampler2D bloomTexture;\n uniform sampler2D objectMaskTexture;\n\n varying vec2 vUv;\n\n void main() {\n gl_FragColor = texture2D( ${$u}, vUv );\n gl_FragColor.rgb += texture2D( bloomTexture, vUv ).rgb * texture2D( objectMaskTexture, vUv ).a;\n }\n`;class td extends Vu{constructor(e,t){super(new mr({uniforms:{[$u]:{value:null},bloomTexture:{value:e},objectMaskTexture:{value:t}},vertexShader:"\n varying vec2 vUv;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }\n",fragmentShader:ed}),$u)}}var nd,id,rd,ad,sd,od,ld,cd,hd,Ad,ud,dd,pd,fd,gd,md,vd,Ed;const bd="neverDarken",Cd="shadowObject";class _d{constructor(e,t){nd.set(this,void 0),id.set(this,void 0),rd.set(this,!1),ad.set(this,.25),sd.set(this,0),od.set(this,2),ld.set(this,null),cd.set(this,null),hd.set(this,null),Ad.set(this,null),ud.set(this,null),dd.set(this,null),pd.set(this,null),fd.set(this,null),gd.set(this,null),md.set(this,{}),vd.set(this,null),Ed.set(this,new wi),E(this,nd,e),E(this,id,t)}set strength(e){E(this,ad,e),null!=v(this,hd,"f")&&(v(this,hd,"f").strength=v(this,ad,"f"))}set radius(e){E(this,sd,e),null!=v(this,hd,"f")&&(v(this,hd,"f").radius=v(this,sd,"f"))}set threshold(e){E(this,od,e),null!=v(this,hd,"f")&&(v(this,hd,"f").threshold=v(this,od,"f"))}init(){v(this,rd,"f")||(E(this,ld,new ju(yu())),E(this,cd,new Ku(v(this,nd,"f"),v(this,id,"f"))),v(this,cd,"f").clearColor=new wi(0),v(this,cd,"f").clearAlpha=0,v(this,ld,"f").addPass(v(this,cd,"f")),E(this,hd,new Zu(new Dt(256,256),v(this,ad,"f"),v(this,sd,"f"),v(this,od,"f"))),v(this,ld,"f").addPass(v(this,hd,"f")),E(this,Ad,new Xu),v(this,Ad,"f").needsSwap=!1,v(this,ld,"f").addPass(v(this,Ad,"f")),v(this,ld,"f").renderToScreen=!1,E(this,fd,new ju(yu())),E(this,gd,new Ku(v(this,nd,"f"),v(this,id,"f"))),v(this,fd,"f").addPass(v(this,gd,"f")),v(this,fd,"f").renderToScreen=!1,E(this,ud,new ju(yu())),E(this,dd,new Ku(v(this,nd,"f"),v(this,id,"f"))),v(this,ud,"f").addPass(v(this,dd,"f")),E(this,pd,new td(v(this,ld,"f").renderTarget1.texture,v(this,fd,"f").renderTarget2.texture)),v(this,ud,"f").addPass(v(this,pd,"f")),E(this,vd,new Ti({color:0})),E(this,rd,!0))}destroy(){v(this,rd,"f")&&(v(this,vd,"f").dispose(),E(this,vd,null),v(this,pd,"f").dispose(),E(this,pd,null),v(this,dd,"f").dispose(),E(this,dd,null),v(this,ud,"f").dispose(),E(this,ud,null),v(this,gd,"f").dispose(),E(this,gd,null),v(this,fd,"f").dispose(),E(this,fd,null),v(this,Ad,"f").dispose(),E(this,Ad,null),v(this,hd,"f").dispose(),E(this,hd,null),v(this,cd,"f").dispose(),E(this,cd,null),v(this,ld,"f").dispose(),E(this,ld,null),E(this,rd,!1))}setSize(e,t){null!=v(this,ld,"f")&&null!=v(this,fd,"f")&&null!=v(this,ud,"f")&&(v(this,ld,"f").setSize(e,t),v(this,fd,"f").setSize(e,t),v(this,ud,"f").setSize(e,t))}render(){null!=v(this,ld,"f")&&null!=v(this,fd,"f")&&null!=v(this,gd,"f")&&null!=v(this,ud,"f")&&null!=v(this,dd,"f")&&(v(this,ld,"f").render(),this.darkenMaterials(),this.hideShadow(),v(this,gd,"f").clearColor=yu().getClearColor(v(this,Ed,"f")),v(this,gd,"f").clearAlpha=yu().getClearAlpha(),v(this,fd,"f").render(),this.showShadow(),v(this,dd,"f").clearColor=yu().getClearColor(v(this,Ed,"f")),v(this,dd,"f").clearAlpha=yu().getClearAlpha(),v(this,ud,"f").render(),this.restoreDarkenedMaterials())}hideShadow(){v(this,nd,"f").traverse(e=>{e instanceof hr&&e.material.userData[Cd]&&(e.visible=!1)})}showShadow(){v(this,nd,"f").traverse(e=>{e instanceof hr&&e.material.userData[Cd]&&(e.visible=!0)})}onSceneUpdate(){yu().renderCubeMapNormals(v(this,nd,"f"))}darkenMaterials(){v(this,nd,"f").traverse(e=>{if(e instanceof hr){if(e.material.userData[bd])return;v(this,md,"f")[e.uuid]=e.material,e.material=v(this,vd,"f")}})}restoreDarkenedMaterials(){v(this,nd,"f").traverse(e=>{if(e instanceof hr){if(e.material!==v(this,vd,"f"))return;e.material=v(this,md,"f")[e.uuid],delete v(this,md,"f")[e.uuid]}})}}var Id,xd,yd,wd,Md,Sd;nd=new WeakMap,id=new WeakMap,rd=new WeakMap,ad=new WeakMap,sd=new WeakMap,od=new WeakMap,ld=new WeakMap,cd=new WeakMap,hd=new WeakMap,Ad=new WeakMap,ud=new WeakMap,dd=new WeakMap,pd=new WeakMap,fd=new WeakMap,gd=new WeakMap,md=new WeakMap,vd=new WeakMap,Ed=new WeakMap,(Sd=Md||(Md={}))[Sd.Direct=0]="Direct",Sd[Sd.Postprocessed=1]="Postprocessed";class Bd{constructor(e,t){Id.set(this,void 0),xd.set(this,void 0),yd.set(this,Md.Direct),wd.set(this,void 0),E(this,Id,e),E(this,xd,t),E(this,wd,new _d(v(this,Id,"f"),v(this,xd,"f")))}get bloomEnabled(){return v(this,yd,"f")===Md.Postprocessed}set bloomEnabled(e){e?(v(this,wd,"f").init(),E(this,yd,Md.Postprocessed)):(v(this,wd,"f").destroy(),E(this,yd,Md.Direct))}set bloomStrength(e){v(this,wd,"f").strength=e}set bloomRadius(e){v(this,wd,"f").radius=e}set bloomThreshold(e){v(this,wd,"f").threshold=e}dispose(){v(this,wd,"f").destroy(),E(this,yd,Md.Direct)}setSize(e,t){v(this,wd,"f").setSize(e,t)}render(){v(this,yd,"f")===Md.Direct?yu().render(v(this,Id,"f"),v(this,xd,"f")):v(this,yd,"f")===Md.Postprocessed&&v(this,wd,"f").render()}}Id=new WeakMap,xd=new WeakMap,yd=new WeakMap,wd=new WeakMap;const Td={name:"HorizontalBlurShader",uniforms:{tDiffuse:{value:null},h:{value:1/512}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float h;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 sum = vec4( 0.0 );\n\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051;\n\n\t\t\tgl_FragColor = sum;\n\n\t\t}"},Rd={name:"VerticalBlurShader",uniforms:{tDiffuse:{value:null},v:{value:1/512}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float v;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 sum = vec4( 0.0 );\n\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * v ) ) * 0.051;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * v ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * v ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * v ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * v ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * v ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * v ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * v ) ) * 0.051;\n\n\t\t\tgl_FragColor = sum;\n\n\t\t}"};let Dd,Qd,Ud,Ld=!1;const Pd=300,Nd=2*Math.PI/32,Fd=k("hold"),Od=k("sine"),kd=k("sine-in"),Gd=k("sine-out");function Hd(){let e=!0,t=!1,n=null,i=null,r=null;return{get custom(){return t},set:e=>{const{theta:a,phi:s,fov:o}=e;n=a,i=s,r=o,t=null!=a||null!=s||null!=o},reset:e=>{var a;t?(null==n||n.reset(),null==i||i.reset(),null==r||r.reset()):(n=B([{time:0,value:a=e,interpolation:Fd},{time:Pd,value:a,interpolation:Gd},{time:800,value:a+Nd,interpolation:Od},{time:1800,value:a-Nd,interpolation:kd},{time:2300,value:a,interpolation:Fd},{time:4300,value:a,interpolation:Fd}]),i=null,r=null)},get running(){return e},set running(t){e=t},update:t=>{e&&(null==n||n.update(t),null==i||i.update(t),null==r||r.update(t))},get theta(){return null==n?void 0:n.get()},get phi(){return null==i?void 0:i.get()},get fov(){return null==r?void 0:r.get()}}}var zd;!function(e){e[e.NONE=0]="NONE",e[e.USER_INTERACTION=1]="USER_INTERACTION",e[e.AUTOMATIC=2]="AUTOMATIC"}(zd||(zd={}));const Vd="pan-y",Wd=1e-6,qd=Math.PI/8,jd=new on;class Yd extends Et{constructor(e,t){super(),this.touchAction_=Vd,this.enablePan=!0,this.screenSpacePanning=!0,this.enableZoom_=!0,this.enableKeyControls=!1,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.defaultFov=16,this.minFovFactor=.2,this.maxFovFactor=1.6,this.minFov=this.defaultFov*this.minFovFactor,this.maxFov=this.defaultFov*this.maxFovFactor,this.fovMultiplier_=1,this.enableDamping=!0,this.dampingFactor=.3,this.interactionEnabled=!1,this.userInteracted=!1,this.target=new on,this.panSphereCenter=new on,this.panSphereRadius=1/0,this.spherical=new Cc,this.goalSpherical=new Cc,this.fov=this.defaultFov,this.panOffset=new on,this.fovDelta=0,this.lastPosition=new on,this.lastQuaternion=new sn,this.lastTargetPosition=new on,this.lastFov=this.fov,this.changeSource=zd.NONE,this.panInProgress=!1,this.touchMode=null,this.pointers=[],this.startPointerPosition={clientX:0,clientY:0},this.lastSeparation=0,this.touchDecided=!1,this.onPointerDown=e=>{if(this.pointers.length>2)return;const{element:t}=this;0===this.pointers.length&&(t.addEventListener("pointermove",this.onPointerMove),t.addEventListener("pointerup",this.onPointerUp),this.touchMode=null,this.touchDecided=!1,this.startPointerPosition.clientX=e.clientX,this.startPointerPosition.clientY=e.clientY);try{t.setPointerCapture(e.pointerId)}catch(e){}this.pointers.push({clientX:e.clientX,clientY:e.clientY,id:e.pointerId}),"touch"===e.pointerType?(this.changeSource=e.altKey?zd.AUTOMATIC:zd.USER_INTERACTION,this.onTouchChange()):(this.changeSource=zd.USER_INTERACTION,this.onMouseDown(e))},this.onPointerMove=e=>{const t=this.pointers.find(t=>t.id===e.pointerId);if(null==t)return;if("mouse"===e.pointerType&&0===e.buttons)return void this.onPointerUp(e);const n=this.pointers.length,i=(e.clientX-t.clientX)/n,r=(e.clientY-t.clientY)/n;0===i&&0===r||(t.clientX=e.clientX,t.clientY=e.clientY,"touch"===e.pointerType?(this.changeSource=e.altKey?zd.AUTOMATIC:zd.USER_INTERACTION,null!==this.touchMode&&this.touchMode(i,r)):(this.changeSource=zd.USER_INTERACTION,this.panInProgress?this.pan(i,r):this.handleSinglePointerMove(i,r)))},this.onPointerUp=e=>{const t=this.pointers.findIndex(t=>t.id===e.pointerId);-1!==t&&this.pointers.splice(t,1);const{element:n}=this;0===this.pointers.length?(n.removeEventListener("pointermove",this.onPointerMove),n.removeEventListener("pointerup",this.onPointerUp),n.removeEventListener("touchmove",this.disableScroll)):null!==this.touchMode&&this.onTouchChange(),n.style.cursor="grab",this.panInProgress=!1},this.onWheel=e=>{this.changeSource=zd.USER_INTERACTION;const t=e.deltaY*(1==e.deltaMode?18:1)*.2/30;this.userAdjustOrbit(0,0,t),e.preventDefault()},this.onKeyDown=e=>{const{changeSource:t}=this;this.changeSource=zd.USER_INTERACTION,(e.shiftKey&&this.enablePan?this.panKeyCodeHandler(e):this.orbitZoomKeyCodeHandler(e))?e.preventDefault():this.changeSource=t},this.disableScroll=e=>{e.preventDefault()},this.onContext=e=>{if(this.enablePan)e.preventDefault();else for(const e of this.pointers)this.onPointerUp(new PointerEvent("pointercancel",Object.assign(Object.assign({},this.startPointerPosition),{pointerId:e.id})))},this.onTouchChange=()=>{if(1===this.pointers.length)this.touchMode=this.touchModeRotate;else{if(!this.enableZoom_)return this.touchMode=null,void this.element.removeEventListener("touchmove",this.disableScroll);this.touchMode=this.touchDecided&&null===this.touchMode?null:this.touchModeZoom,this.touchDecided=!0,this.element.addEventListener("touchmove",this.disableScroll,{passive:!1}),this.lastSeparation=Kd(this.pointers[0],this.pointers[1]),this.enablePan&&null!=this.touchMode&&this.initializePan()}},this.onMouseDown=e=>{this.panInProgress=!1,this.enablePan&&(2===e.button||e.ctrlKey||e.metaKey||e.shiftKey)&&this.initializePan(),this.element.style.cursor="grabbing"},this.touchModeZoom=(e,t)=>{if(this.enableZoom_){const e=Kd(this.pointers[0],this.pointers[1]),t=.2*(this.lastSeparation-e)*35/this.element.clientHeight;this.lastSeparation=e,this.userAdjustOrbit(0,0,t)}this.panInProgress&&this.pan(e,t)},this.touchModeRotate=(e,t)=>{if(!this.touchDecided){this.touchDecided=!0;const n=Math.abs(e),i=Math.abs(t),r="pan-x"===this.touchAction_&&n>i,a="pan-y"===this.touchAction_&&i>n;if(this.changeSource===zd.USER_INTERACTION&&(r||a))return void(this.touchMode=null);this.element.addEventListener("touchmove",this.disableScroll,{passive:!1})}this.handleSinglePointerMove(e,t)},this.camera=e,this.element=t,this.quat=(new sn).setFromUnitVectors(e.up,new on(0,1,0)),this.quatInverse=this.quat.clone().invert(),this.update(0)}set touchAction(e){this.touchAction_=null!=e?e:Vd,this.updateTouchActionStyle()}set enableZoom(e){this.enableZoom_!=e&&(this.enableZoom_=e,e?this.element.addEventListener("wheel",this.onWheel):this.element.removeEventListener("wheel",this.onWheel),this.updateTouchActionStyle())}set minZoom(e){this.maxFovFactor=null!=e?1/e:1.6,this.maxFov=this.defaultFov*this.fovMultiplier_*this.maxFovFactor,this.fov=Xd(this.fov,this.minFov,this.maxFov)}set maxZoom(e){this.minFovFactor=null!=e?1/e:.2,this.minFov=this.defaultFov*this.fovMultiplier_*this.minFovFactor,this.fov=Xd(this.fov,this.minFov,this.maxFov)}set fovMultiplier(e){this.fovMultiplier_=e,this.fov=this.defaultFov*this.fovMultiplier_,this.minFov=this.fov*this.minFovFactor,this.maxFov=this.fov*this.maxFovFactor}reset(e,t,n,i,r){i||(this.fov=this.defaultFov*this.fovMultiplier_,this.minFov=this.fov*this.minFovFactor,this.maxFov=this.fov*this.maxFovFactor,this.camera.fov=this.camera.aspect<1?2*Math.atan(Math.tan(this.fov/2*Bt)/this.camera.aspect)*Tt:this.fov,this.camera.updateProjectionMatrix()),r?jd.copy(this.target).sub(this.panSphereCenter).divideScalar(this.panSphereRadius):jd.set(0,0,0),this.panSphereCenter.set(e.x,e.y,e.z);const a=t/Math.tan(this.defaultFov/2*Bt);this.panSphereRadius=Math.min(t,a-t),jd.multiplyScalar(this.panSphereRadius);const s=e.clone().addScaledVector(n,a).add(jd);this.camera.position.set(s.x,s.y,s.z),this.target.set(e.x,e.y,e.z).add(jd),this.camera.lookAt(this.target),jd.copy(this.camera.position).sub(this.target),jd.applyQuaternion(this.quat),this.spherical.setFromVector3(jd),this.goalSpherical.copy(this.spherical),this.lastPosition.copy(this.camera.position),this.lastQuaternion.copy(this.camera.quaternion),this.lastTargetPosition.copy(this.target),this.lastFov=this.fov,this.userInteracted=!1}hasUserInteracted(){return this.userInteracted}update(e){this.spherical.theta+=(this.goalSpherical.theta-this.spherical.theta)*Math.min(.03*e,1),this.spherical.phi+=(this.goalSpherical.phi-this.spherical.phi)*Math.min(.03*e,1),this.spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this.spherical.phi)),this.spherical.makeSafe(),!0===this.enableDamping?this.target.addScaledVector(this.panOffset,this.dampingFactor):this.target.add(this.panOffset),this.target.sub(this.panSphereCenter),this.target.clampLength(0,this.panSphereRadius),this.target.add(this.panSphereCenter),jd.setFromSpherical(this.spherical),jd.applyQuaternion(this.quatInverse),this.camera.position.copy(this.target).add(jd),this.camera.lookAt(this.target),this.fov=Math.pow(Math.sqrt(this.fov)+this.fovDelta,2),this.fov=Xd(this.fov,this.minFov,this.maxFov),this.fovDelta=0,!0===this.enableDamping?this.panOffset.multiplyScalar(1-this.dampingFactor):this.panOffset.set(0,0,0);let t=!1;const{aspect:n}=this.camera,i=this.element.clientWidth/this.element.clientHeight;i!==n&&(this.camera.aspect=i,t=!0);const r=Math.abs(this.lastFov-this.fov)>Wd;return(t||r)&&(this.camera.fov=this.camera.aspect<1?2*Math.atan(Math.tan(this.fov/2*Bt)/this.camera.aspect)*Tt:this.fov),this.camera.updateProjectionMatrix(),(this.lastPosition.distanceToSquared(this.camera.position)>Wd||8*(1-this.lastQuaternion.dot(this.camera.quaternion))>Wd||this.lastTargetPosition.distanceToSquared(this.target)>0||r)&&(this.dispatchEvent({type:"change"}),this.lastPosition.copy(this.camera.position),this.lastQuaternion.copy(this.camera.quaternion),this.lastTargetPosition.copy(this.target),this.lastFov=this.fov,t=!0),this.userInteracted=!1,t}getPose(e){return e.copy(this.camera.position),e.sub(this.target),e.normalize(),e}getTheta(){const e=this.camera.position;return jd.copy(e).sub(this.target),jd.applyQuaternion(this.quat),this.spherical.setFromVector3(jd),this.spherical.theta}set(e,t,n){return null!=e&&this.setTheta(e),null!=t&&this.setPhi(t),null!=n&&this.setFovRadians(n),null!=e||null!=t||null!=n}setTheta(e){const t=this.camera.position;jd.copy(t).sub(this.target),jd.applyQuaternion(this.quat),this.spherical.setFromVector3(jd),this.spherical.theta=e,this.spherical.makeSafe(),this.goalSpherical.copy(this.spherical),this.target.sub(this.panSphereCenter),this.target.clampLength(0,this.panSphereRadius),this.target.add(this.panSphereCenter),jd.setFromSpherical(this.spherical),jd.applyQuaternion(this.quatInverse),t.copy(this.target).add(jd),this.camera.lookAt(this.target),this.lastPosition.copy(t),this.lastQuaternion.copy(this.camera.quaternion),this.camera.updateProjectionMatrix()}setPhi(e){const t=this.camera.position;jd.copy(t).sub(this.target),jd.applyQuaternion(this.quat),this.spherical.setFromVector3(jd),this.spherical.phi=e,this.spherical.makeSafe(),this.goalSpherical.copy(this.spherical),this.target.sub(this.panSphereCenter),this.target.clampLength(0,this.panSphereRadius),this.target.add(this.panSphereCenter),jd.setFromSpherical(this.spherical),jd.applyQuaternion(this.quatInverse),t.copy(this.target).add(jd),this.camera.lookAt(this.target),this.lastPosition.copy(t),this.lastQuaternion.copy(this.camera.quaternion),this.camera.updateProjectionMatrix()}setFovRadians(e){this.fov=e*this.fovMultiplier_*Tt,this.fov=Xd(this.fov,this.minFov,this.maxFov),this.camera.fov=this.camera.aspect<1?2*Math.atan(Math.tan(this.fov/2*Bt)/this.camera.aspect)*Tt:this.fov,this.lastFov=this.fov}setInteractionEnabled(e){e?this.enableInteraction():this.disableInteraction()}enableInteraction(){if(!1===this.interactionEnabled){const{element:e}=this;e.addEventListener("pointerdown",this.onPointerDown),e.addEventListener("pointercancel",this.onPointerUp),this.enableZoom_&&e.addEventListener("wheel",this.onWheel),this.enableKeyControls&&(e.tabIndex=1,e.addEventListener("keydown",this.onKeyDown)),e.addEventListener("touchmove",()=>{},{passive:!1}),e.addEventListener("contextmenu",this.onContext),e.style.cursor="grab",this.interactionEnabled=!0,this.updateTouchActionStyle()}}disableInteraction(){if(!0===this.interactionEnabled){const{element:e}=this;e.removeEventListener("pointerdown",this.onPointerDown),e.removeEventListener("pointermove",this.onPointerMove),e.removeEventListener("pointerup",this.onPointerUp),e.removeEventListener("pointercancel",this.onPointerUp),e.removeEventListener("wheel",this.onWheel),e.tabIndex=-1,e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("contextmenu",this.onContext),e.style.cursor="",this.touchMode=null,this.interactionEnabled=!1,this.updateTouchActionStyle()}}orbitZoomKeyCodeHandler(e){let t=!0;switch(e.key){case"PageUp":this.userAdjustOrbit(0,0,.2);break;case"PageDown":this.userAdjustOrbit(0,0,-.2);break;case"ArrowUp":this.userAdjustOrbit(0,-qd,0);break;case"ArrowDown":this.userAdjustOrbit(0,qd,0);break;case"ArrowLeft":this.userAdjustOrbit(-qd,0,0);break;case"ArrowRight":this.userAdjustOrbit(qd,0,0);break;default:t=!1}return t}panKeyCodeHandler(e){this.initializePan();let t=!0;switch(e.key){case"ArrowUp":this.pan(0,10);break;case"ArrowDown":this.pan(0,-10);break;case"ArrowLeft":this.pan(10,0);break;case"ArrowRight":this.pan(-10,0);break;default:t=!1}return t}initializePan(){this.panInProgress=!0}pan(e,t){const n=this.element,i=this.camera.position;jd.copy(i).sub(this.target);let r=jd.length();r*=Math.tan(this.camera.fov/2*Math.PI/180),this.panLeft(2*e*r/n.clientHeight,this.camera.matrix),this.panUp(2*t*r/n.clientHeight,this.camera.matrix)}panLeft(e,t){jd.setFromMatrixColumn(t,0),jd.multiplyScalar(-e),this.panOffset.add(jd)}panUp(e,t){!0===this.screenSpacePanning?jd.setFromMatrixColumn(t,1):(jd.setFromMatrixColumn(t,0),jd.crossVectors(this.camera.up,jd)),jd.multiplyScalar(e),this.panOffset.add(jd)}handleSinglePointerMove(e,t){const n=this.pixelLengthToSphericalAngle(e),i=this.pixelLengthToSphericalAngle(t);this.userAdjustOrbit(n,i,0)}userAdjustOrbit(e,t,n){this.goalSpherical.theta+=.5*e*this.fovMultiplier_,this.goalSpherical.phi+=.5*t*this.fovMultiplier_,this.goalSpherical.makeSafe(),this.fovDelta+=n,this.userInteracted=!0}pixelLengthToSphericalAngle(e){return-2*Math.PI*e/Math.min(this.element.clientHeight,this.element.clientWidth)}updateTouchActionStyle(){const{style:e}=this.element;this.interactionEnabled?this.enableZoom_?e.touchAction=this.touchAction_:e.touchAction="manipulation":e.touchAction=""}}function Xd(e,t,n){return Math.max(t,Math.min(n,e))}function Kd(e,t){const{clientX:n,clientY:i}=e,{clientX:r,clientY:a}=t,s=r-n,o=a-i;return Math.sqrt(s*s+o*o)}const Jd=new Map;let Zd=null;function $d(){yu().setAnimationLoop(ep)}function ep(e){!function(){for(const e of Jd.values())e.prepareResize()}(),function(e){for(const t of Jd.values())t.update(e)}(e);let t=function(){let e=null;for(const t of Jd.values())if(t.needsRender){if(null!=e)return null;e=t}return e}();null!=Zd&&t!==Zd&&(Zd.ensureBlittedMode(),t=null),Zd=t,0!==function(){let e=0;for(const t of Jd.values())t.needsRender&&e++;return e}()&&(null!=t?(t.ensureDirectMode(),tp(),Su(t.width,t.height),np()):(function(){for(const e of Jd.values())e.needsRender&&e.ensureBlittedMode()}(),tp(),Su(function(){let e=0;for(const t of Jd.values())t.needsRender&&(e=Math.max(e,t.width));return e}(),function(){let e=0;for(const t of Jd.values())t.needsRender&&(e=Math.max(e,t.height));return e}()),np()))}function tp(){for(const e of Jd.values())e.commitResize()}function np(){for(const e of Jd.values())e.render()}function ip(){let e=null,t=null;return{reset:()=>{e=B([{time:0,value:0,interpolation:Fd},{time:Pd,value:1,interpolation:Fd},{time:2300,value:0,interpolation:Fd},{time:4300,value:0,interpolation:Fd}]),t=B([{time:0,value:0,interpolation:Fd},{time:Pd,value:0,interpolation:Gd},{time:800,value:-.05,interpolation:Od},{time:1800,value:.05,interpolation:kd},{time:2300,value:0,interpolation:Fd},{time:4300,value:0,interpolation:Fd}])},clear:()=>{e=null,t=null},update:n=>{null==e||e.update(n),null==t||t.update(n)},get visibility(){return null==e?void 0:e.get()},get position(){return null==t?void 0:t.get()}}}const rp=2e3,ap=2*Math.PI,sp=ap/12,op=ap/60,lp=ap/60;function cp(e){return B([{time:0,value:0,interpolation:{type:"bezier",x1:.9,y1:0,x2:.6,y2:1}},{time:rp,value:e,interpolation:{type:"hold"}}])}function hp(e,t,n){return-1*sp*(e%12+t/60+n/3600)}function Ap(e,t){return-1*op*(e+t/60)}function up(e,t){return-1*lp*(e+t/1e3)}function dp(e,t){let n,i,r,a,s,o,l,c,h,A,u,d,p,f=!1,g=null,m=new on(1,0,0),v=!1,E=!1,b=!1,C=!0,_=!1,I=!1,x=4,y=1,w=!0,M=!1,S=!1,B=0,T=0;const R={get paused(){return C},get needsRender(){return!(!f||C)&&_},ensureDirectMode:()=>{e.isDirect()||(_=!0),e.ensureDirectMode()},ensureBlittedMode:()=>{e.isBlitted()||(_=!0),e.ensureBlittedMode()},update:t=>{if(M||!f||C||null==s||!function(e){const t=e.getBoundingClientRect();return t.bottom>0&&t.top<Math.max(document.documentElement.clientHeight,window.innerHeight)&&t.right>0&&t.left<Math.max(document.documentElement.clientWidth,window.innerWidth)}(e.element))return;let n=0!==T?t-T:0;T=t,0===B?_=!0:B<3&&(n=0),B++,S||(a.hasUserInteracted()?(S=!0,u.running=!1,d.clear(),I=!0):(u.update(n),d.update(n),u.running&&a.set(u.theta,u.phi,u.fov)&&(_=!0),null==d.visibility&&null==d.position||(I=!0))),a.update(n)&&(_=!0),0!==n&&p.update()&&(_=!0)},render:()=>{M||!f||C||(_&&(Mu(n,e,!E&&!n.bloomEnabled||b?0:1,x,y),_=!1,null==h||h()),I&&(t.visible=w&&!S,null!=d.visibility&&(t.opacity=`${d.visibility}`),null!=d.position&&(t.transform=`translateX(${d.position*Math.min(e.width,e.height)}px)`),I=!1))},get width(){return e.element.clientWidth},get height(){return e.element.clientHeight},prepareResize:()=>{const{clientWidth:t,clientHeight:n}=e.element;e.clientWidth=t,e.clientHeight=n,e.dpr=xu,e.sizeDirty&&(_=!0)},commitResize:()=>{e.commitResize()}},D=(e,t)=>{const n=l.min.clone().add(l.max).divideScalar(2),i=Math.sqrt(function(e,t){let n=0;const i=new on;return e.updateWorldMatrix(!0,!0),e.traverseVisible(e=>{const{geometry:r}=e;if(void 0!==r){const{position:a}=r.attributes;if(void 0!==a)for(let r=0,s=a.count;r<s;r++)e.isMesh?e.getVertexPosition(r,i):i.fromBufferAttribute(a,r),e.isSkinnedMesh||i.applyMatrix4(e.matrixWorld),n=t(n,i)}}),n}(e,(e,t)=>Math.max(e,n.distanceToSquared(t))));a.reset(n,i,t?a.getPose(new on):m,t,t),null!=u&&(u.reset(a.getTheta()),a.set(u.theta,u.phi,u.fov))},Q={init:()=>{f||(function(e,t){Jd.set(e,t),1===Jd.size&&(wu(),Ld||(Dd=new no,Dd.userData.darkness={value:1},Dd.onBeforeCompile=e=>{e.uniforms.darkness=Dd.userData.darkness;const t=e.fragmentShader.replace("gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );","gl_FragColor = vec4( vec3( 0.0 ), ( 1.0 - fragCoordZ ) * darkness );");e.fragmentShader=`uniform float darkness;\n${t}`},Dd.depthTest=!1,Dd.depthWrite=!1,Qd=new mr(Td),Qd.depthTest=!1,Ud=new mr(Rd),Ud.depthTest=!1,Ld=!0))}(e.element,R),i=new wo,r=new _r(25,1,.5),a=new Yd(r,e.element),a.setInteractionEnabled(w),n=new Bd(i,r),c=function(e){let t,n,i,r,a,s,o,l,c=!1;function h(e){o.visible=!0,Qd.uniforms.tDiffuse.value=t.texture,Qd.uniforms.h.value=1*e/256,o.material=Qd;const i=yu();i.setRenderTarget(n),i.render(o,l),Ud.uniforms.tDiffuse.value=n.texture,Ud.uniforms.v.value=1*e/256,o.material=Ud,i.setRenderTarget(t),i.render(o,l),o.visible=!1}return{init:()=>{c||(t=new nn(512,512),t.texture.generateMipmaps=!1,n=new nn(512,512),n.texture.generateMipmaps=!1,i=new co,i.position.y=-.7,r=new Pr(45,45).rotateX(Math.PI/2),a=new Ti({map:t.texture,opacity:.5,transparent:!0,depthWrite:!1,userData:{[bd]:!0,[Cd]:!0}}),s=new hr(r,a),s.renderOrder=1,s.scale.y=-1,i.add(s),o=new hr(r),o.visible=!1,i.add(o),l=new Xr(-22.5,22.5,22.5,-22.5,0,3),l.rotation.x=Math.PI/2,i.add(l),c=!0)},destroy:()=>{c&&(l=null,o.clear(),o=null,s.clear(),s=null,Uu(a),a=null,r.dispose(),r=null,i.clear(),i=null,n.dispose(),n=null,t.dispose(),t=null,c=!1)},get group(){return i},render:()=>{const n=e.background;e.background=null,e.overrideMaterial=Dd;const i=yu(),r=i.getClearAlpha();i.setClearAlpha(0),i.setRenderTarget(t),i.render(e,l),e.overrideMaterial=null,h(1.5),h(.4*1.5),i.setRenderTarget(null),i.setClearAlpha(r),e.background=n}}}(i),c.init(),u=Hd(),d=ip(),p=function(){let e,t,n,i,r=!1,a=null;return{clear:()=>{r=!1,e=void 0,t=void 0,n=void 0,a=null},reset:i=>{r=!0,e=i.getObjectByName("hours"),t=i.getObjectByName("minutes"),n=i.getObjectByName("seconds"),a=function(e,t,n){let i,r,a,s,o=!1,l=!1;return{update:c=>{if(!o){i=new Date(c),i.setMilliseconds(i.getMilliseconds()+rp);const e=i.getHours(),t=i.getMinutes(),n=i.getSeconds(),l=i.getMilliseconds();r=cp(hp(e,t,n)),a=cp(Ap(t,n)),s=cp(up(n,l)),o=!0}if(l)return;const h=i.getTime()-c.getTime(),A=rp-h;h<=0?l=!0:(null!=e&&(r.seek(A),e.rotation.y=r.get()),null!=t&&(a.seek(A),t.rotation.y=a.get()),null!=n&&(s.seek(A),n.rotation.y=s.get()))},get done(){return l}}}(e,t,n)},update:()=>{if(!r)return!1;const s=new Date;if(null==i&&(i=new Date),null!=a){if(a.update(s),!a.done)return i=s,!0;a=null}if(Math.abs(s.getTime()-i.getTime())<125)return!1;const o=s.getHours(),l=s.getMinutes(),c=s.getSeconds(),h=s.getMilliseconds();return null!=e&&(e.rotation.y=hp(o,l,c)),null!=t&&(t.rotation.y=Ap(l,c)),null!=n&&(n.rotation.y=up(c,h)),i=s,!0}}}(),f=!0)},destroy:()=>{var t;f&&(null===(t=i.environment)||void 0===t||t.dispose(),i.environment=null,p=null,d=null,u=null,c.destroy(),c=null,n.dispose(),n=null,a=null,r=null,Fu(i),i=null,function(e){Jd.delete(e),0===Jd.size&&Ld&&(Uu(Ud),Ud=null,Uu(Qd),Qd=null,Uu(Dd),Dd=null,Ld=!1)}(e.element),f=!1)},set gltfScene(e){s=e,Fu(i),null!=s&&(i.add(s),this.isDiamondScene&&Bu(s,o),l=(new hn).setFromObject(s),c.group.position.y=l.min.y-0,i.add(c.group),c.render(),E=function(e){let t=!1;return e.traverse(e=>{if(!t&&e instanceof hr){const n=e.material;Array.isArray(n)?n.forEach(e=>{e.transmission>0&&(t=!0)}):n.transmission>0&&(t=!0)}}),t}(i),D(s,v&&S),u.reset(a.getTheta()),d.reset(),p.clear(),"Watches"===g&&p.reset(s),C||$d()),B=0,_=!0},get isDiamondScene(){var e;return!!(null===(e=null==s?void 0:s.userData)||void 0===e?void 0:e.isDiamondScene)},set environment(e){var t;null===(t=i.environment)||void 0===t||t.dispose(),i.environment=e},set diamondEnvironment(e){o=e,this.isDiamondScene&&null!=s&&Bu(s,e)},set environmentRotation(e){i.environmentRotation.y=e*Math.PI/180,_=!0},updateOnce:e=>{f&&!C&&(S||(u.update(e),u.running&&a.set(u.theta,u.phi,u.fov)&&(_=!0)),0!==e&&p.update()&&(_=!0))},renderOnce:()=>{R.prepareResize(),R.commitResize(),S||a.set(u.theta,u.phi,u.fov),Mu(n,e,!E&&!n.bloomEnabled||b?0:1,x,y),null==h||h()},get category(){return g},set category(e){g=e},set initialPose(e){m=e},set toneMapping(e){const t={ACES:4,Linear:1,Neutral:7};null!=t[e]&&(x=t[e]),_=!0},set toneMappingExposure(e){y=e,_=!0},set paused(e){e?(C=!0,a.setInteractionEnabled(!1),function(){for(const{paused:e}of Jd.values())if(!e)return!1;return!0}()&&yu().setAnimationLoop(null),t.opacity="0",t.visible=!1):(C=!1,a.setInteractionEnabled(w),null!=s&&(D(s,!1),_=!0,$d()),T=0)},set interactive(e){w=e,a.setInteractionEnabled(e)},set touchAction(e){a.touchAction=e},set zoomEnabled(e){a.enableZoom=e},set minZoom(e){a.minZoom=e},set maxZoom(e){a.maxZoom=e},set preserveCameraOnReload(e){v=e},set forcedTransparency(e){b=e,_=!0},set defaultFov(e){a.defaultFov=e},set fovMultiplier(e){a.fovMultiplier=e,_=!0},set bloomEnabled(e){n.bloomEnabled=e,_=!0},set bloomStrength(e){n.bloomStrength=e,_=!0},set bloomRadius(e){n.bloomRadius=e,_=!0},set bloomThreshold(e){n.bloomThreshold=e,_=!0},set nonLiveRendering(e){M=e},set onRendered(e){h=e},set onInteracted(e){null!=A&&a.removeEventListener("change",A),A=e,null!=e&&a.addEventListener("change",e)},setAnimationConfig:e=>{u.set(e),null!=s&&D(s,!0),u.custom||(u.reset(a.getTheta()),d.reset()),_=!0}};return Q}function pp(e){return t=>m(this,void 0,void 0,function*(){try{yield t()}catch(t){e(t)}})}const fp={initialized:!1,paused:!1,posterUrl:null,glbUrl:null,envUrl:null,diamondEnvUrl:null,envRotation:null,toneMapping:null,toneMappingExposure:null,bloomEnabled:null,bloomStrength:null,bloomRadius:null,bloomThreshold:null,category:null,glbLocal:!1,interactive:!1,touchAction:null,zoomEnabled:!1,minZoom:null,maxZoom:null,preserveCameraOnReload:!1,alwaysTransparentBackground:!1,defaultFov:null,fovMultiplier:null,defaultCameraPositions:null,interactionPromptUrl:null,interactionPromptSize:null,nonLiveRendering:null,baseUrl:null,onModelLoaded:null,onRendered:null,onInteracted:null,animation:null,thetaAnimation:null,phiAnimation:null,fovAnimation:null};function gp(e,t){const n=e,i=t,r=dp(i.canvasWrapper,i.prompt),a=function(){const e=Object.assign({},wc);return{set vectors(t){for(const i of Object.keys(e)){if(!yc(i))continue;const r=null==t?void 0:t[i];e[i]=null!=r?new on((n=r)[0],n[1],n[2]):wc[i]}var n},getVector:t=>{var n;return(null==t?e.Glasses:null!==(n=e[t])&&void 0!==n?n:e.Glasses).normalize()}}}();let s=()=>{};const o=[],l=new nh;let c,h,A,u,d,p,f,g,v,E,b,C,_,I,x;l.setOnProgress(e=>{i.loading.progress=e,e>0&&(i.loading.visible=!0)});const y=function(){const e=Object.keys(fp).reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:0}),{});return t=>{const n=++e[t];return()=>n!==e[t]}}(),w=function(){const e=Object.keys(fp).reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:!1}),{});return{lock:t=>{e[t]=!0},unlock:t=>{e[t]=!1},anyLocked:()=>Object.values(e).some(e=>e),locks_:e}}(),M=function(e,t){return n=>{t.length>0?(t.forEach(e=>e.reject(n)),t.length=0):e.onError?e.onError(n):console.error(n)}}(n,o),S=function(e,t){return(n,i)=>m(this,void 0,void 0,function*(){const r=pp(t),a=function(e,t){const n=e(t);return e=>m(this,void 0,void 0,function*(){yield e(n)})}(e,n);yield r(()=>a(i))})}(y,M),T=function(e,t,n,i){return(r,a)=>m(this,void 0,void 0,function*(){const s=function(e,t){return n=>m(this,void 0,void 0,function*(){e.lock(t),yield n(),e.unlock(t)})}(e,r),o=pp(i),l=function(e,t,n,i){const r=t(i);return t=>m(this,void 0,void 0,function*(){yield Promise.resolve(),r()||(yield t(r))&&(e.unlock(i),e.anyLocked()||n())})}(e,t,n,r);yield s(()=>o(()=>l(a)))})}(w,y,()=>{void 0!==b&&(r.category=b,r.initialPose=a.getVector(null!=b?b:Mc)),void 0!==c&&(r.gltfScene=c),void 0!==h&&(r.environment=h),void 0!==A&&(r.diamondEnvironment=A),void 0!==u&&(r.environmentRotation=null!=u?u:0),void 0!==f&&(r.bloomEnabled=null!=f&&f),void 0!==g&&(r.bloomStrength=null!=g?g:.25),void 0!==v&&(r.bloomRadius=null!=v?v:0),void 0!==E&&(r.bloomThreshold=null!=E?E:2),null==s||s(),void 0!==x&&r.setAnimationConfig(x),void 0!==d&&(r.toneMapping=null!=d?d:"Neutral"),void 0!==p&&(r.toneMappingExposure=null!=p?p:1),void 0!==C&&(r.forcedTransparency=C),void 0!==_&&(r.onRendered=_),void 0!==I&&(r.onInteracted=I),r.renderOnce(),i.canvasVisible=!0,i.posterVisible=!1,i.loading.visible=!1,o.forEach(e=>e.resolve()),o.length=0,c=void 0,h=void 0,A=void 0,d=void 0,p=void 0,b=void 0,C=void 0,_=void 0,I=void 0},M);return n.onInitializedChange=e=>S("initialized",t=>m(this,void 0,void 0,function*(){e?(r.init(),r.paused=n.paused):r.destroy()})),n.onPausedChange=e=>S("paused",t=>m(this,void 0,void 0,function*(){r.paused=e})),n.onPosterUrlChange=e=>S("posterUrl",t=>m(this,void 0,void 0,function*(){i.loadPoster(e),i.posterVisible=w.anyLocked(),i.canvasVisible=!w.anyLocked()})),n.onGlbUrlChange=t=>T("glbUrl",r=>m(this,void 0,void 0,function*(){if(null!=t)if(Qu(),"string"==typeof t){null!=n.posterUrl&&(i.posterVisible=!0,i.canvasVisible=!1);const a=255,s=mp(e.glbLocal)?new Uint8Array(yield Xc(t,l)):yield Kc(t,(new Date).getTime()+a,Math.random()*a,l);if(r())return!1;const o=yield Du(s);if(r())return!1;c=o.scene}else{const n=255,i=mp(e.glbLocal,"left")?Xc(t.left,l).then(e=>new Uint8Array(e)):Kc(t.left,(new Date).getTime()+n,Math.random()*n,l),a=mp(e.glbLocal,"right")?Xc(t.right,l).then(e=>new Uint8Array(e)):Kc(t.right,(new Date).getTime()+n,Math.random()*n,l),s=yield i;if(r())return!1;const o=yield a;if(r())return!1;const h=(yield Du(s)).scene;if(r())return!1;const A=(yield Du(o)).scene;if(r())return!1;c=function(e,t){const n=new co,i=Nu(e).getSize(new on),r=Nu(t).getSize(new on),a=.075*Math.max(i.z,r.z),s=Lu(e,a,!1,void 0,new sn(0,0,0,1));e.position.set(s.x,s.y,s.z);const o=Lu(t,a,!0,void 0,new sn(0,0,0,1));return t.position.set(o.x,o.y,o.z),n.add(e,t),n}(h,A)}else c=null;return!0})),n.onEnvUrlChange=e=>T("envUrl",t=>m(this,void 0,void 0,function*(){if(null!=e){const n=yield Xc(e,l);if(t())return!1;h=Lh(n)}else h=null;return!0})),n.onDiamondEnvUrlChange=e=>T("diamondEnvUrl",t=>m(this,void 0,void 0,function*(){if(null!=e){const n=yield Xc(e,l);if(t())return!1;A=Lh(n)}else A=null;return!0})),n.onEnvRotationChange=e=>T("envRotation",t=>m(this,void 0,void 0,function*(){return u=e,!0})),n.onToneMappingChange=e=>T("toneMapping",t=>m(this,void 0,void 0,function*(){return d=e,!0})),n.onToneMappingExposureChange=e=>T("toneMappingExposure",t=>m(this,void 0,void 0,function*(){return p=e,!0})),n.onBloomEnabledChange=e=>T("bloomEnabled",t=>m(this,void 0,void 0,function*(){return f=e,!0})),n.onBloomStrengthChange=e=>T("bloomStrength",t=>m(this,void 0,void 0,function*(){return g=e,!0})),n.onBloomRadiusChange=e=>T("bloomRadius",t=>m(this,void 0,void 0,function*(){return v=e,!0})),n.onBloomThresholdChange=e=>T("bloomThreshold",t=>m(this,void 0,void 0,function*(){return E=e,!0})),n.onCategoryChange=e=>T("category",t=>m(this,void 0,void 0,function*(){return b=e,!0})),n.onInteractiveChange=e=>S("interactive",t=>m(this,void 0,void 0,function*(){r.interactive=e})),n.onTouchActionChange=e=>S("touchAction",t=>m(this,void 0,void 0,function*(){r.touchAction=e})),n.onZoomEnabledChange=e=>S("zoomEnabled",t=>m(this,void 0,void 0,function*(){r.zoomEnabled=e})),n.onMinZoomChange=e=>S("minZoom",t=>m(this,void 0,void 0,function*(){r.minZoom=e})),n.onMaxZoomChange=e=>S("maxZoom",t=>m(this,void 0,void 0,function*(){r.maxZoom=e})),n.onPreserveCameraOnReloadChange=e=>S("preserveCameraOnReload",t=>m(this,void 0,void 0,function*(){r.preserveCameraOnReload=e})),n.onAlwaysTransparentBackgroundChange=e=>T("alwaysTransparentBackground",t=>m(this,void 0,void 0,function*(){return C=e,!0})),n.onDefaultFovChange=e=>S("defaultFov",t=>m(this,void 0,void 0,function*(){r.defaultFov=null!=e?e:16})),n.onFovMultiplierChange=e=>S("fovMultiplier",t=>m(this,void 0,void 0,function*(){r.fovMultiplier=null!=e?e:1})),n.onDefaultCameraPositionsChange=e=>S("defaultCameraPositions",t=>m(this,void 0,void 0,function*(){var t;a.vectors=e,r.initialPose=a.getVector(null!==(t=r.category)&&void 0!==t?t:Mc)})),n.onInteractionPromptUrlChange=e=>S("interactionPromptUrl",t=>m(this,void 0,void 0,function*(){i.prompt.imageUrl=e})),n.onInteractionPromptSizeChange=e=>S("interactionPromptSize",t=>m(this,void 0,void 0,function*(){i.prompt.imageSize=e})),n.onNonLiveRenderingChange=e=>S("nonLiveRendering",t=>m(this,void 0,void 0,function*(){r.nonLiveRendering=!!e})),n.onBaseUrlChange=e=>S("baseUrl",t=>m(this,void 0,void 0,function*(){fu(e)})),n.onOnModelLoadedChange=e=>S("onModelLoaded",t=>m(this,void 0,void 0,function*(){s=e})),n.onOnRenderedChange=e=>T("onRendered",t=>m(this,void 0,void 0,function*(){return _=e,!0})),n.onOnInteractedChange=e=>T("onInteracted",t=>m(this,void 0,void 0,function*(){return I=e,!0})),n.onAnimationChange=e=>T("animation",t=>m(this,void 0,void 0,function*(){if(null==e)return x={theta:null,phi:null,fov:null},!0;const t=N(e);return x={theta:null!=t.theta?B(t.theta):null,phi:null!=t.phi?B(t.phi):null,fov:null!=t.fov?B(t.fov):null},!0})),{render:e=>{r.updateOnce(e),r.renderOnce()},flushChanges:()=>new Promise((e,t)=>{w.anyLocked()?o.push({resolve:e,reject:t}):e()})}}function mp(e,t){if(null==t){if("boolean"==typeof e)return e;const t=e.left||e.right;return console.warn(`Expected 'glbLocal' to be boolean, but got object (treating as ${t}).`),t}return"boolean"==typeof e?e:e[t]}var vp,Ep,bp,Cp,_p,Ip,xp,yp,wp,Mp,Sp,Bp;!function(e){e[e.Empty=0]="Empty",e[e.Direct=1]="Direct",e[e.Blitted=2]="Blitted"}(Bp||(Bp={}));class Tp{constructor(){vp.add(this),Ep.set(this,document.createElement("div")),bp.set(this,Bp.Empty),Cp.set(this,null),_p.set(this,1),Ip.set(this,1),xp.set(this,1),yp.set(this,1),wp.set(this,1),Mp.set(this,!1);const{style:e}=v(this,Ep,"f");e.position="absolute",e.top="0",e.left="0",e.width="100%",e.height="100%",e.pointerEvents="auto"}get element(){return v(this,Ep,"f")}isDirect(){return v(this,bp,"f")===Bp.Direct}ensureDirectMode(){if(v(this,bp,"f")===Bp.Direct)return;E(this,bp,Bp.Direct);const e=yu().domElement;document.contains(e)&&console.warn("[ShopAR 3D] Direct rendering not working properly!"),v(this,Ep,"f").replaceChildren(e),E(this,Cp,null),E(this,Mp,!0)}isBlitted(){return v(this,bp,"f")===Bp.Blitted}ensureBlittedMode(){v(this,bp,"f")!==Bp.Blitted&&(E(this,bp,Bp.Blitted),E(this,Cp,function(){const e=document.createElement("canvas"),{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",e}()),v(this,Ep,"f").replaceChildren(v(this,Cp,"f")),E(this,Mp,!0))}set visible(e){v(this,Ep,"f").style.visibility=e?"visible":"hidden"}get width(){return v(this,xp,"f")}get height(){return v(this,yp,"f")}set clientWidth(e){e!==v(this,_p,"f")&&E(this,Mp,!0),E(this,_p,e)}set clientHeight(e){e!==v(this,Ip,"f")&&E(this,Mp,!0),E(this,Ip,e)}get dpr(){return v(this,wp,"f")}set dpr(e){e!==this.dpr&&E(this,Mp,!0),E(this,wp,e)}get sizeDirty(){return v(this,Mp,"f")}commitResize(){if(!v(this,Mp,"f"))return;E(this,Mp,!1);const e=v(this,vp,"m",Sp).call(this);null!=e&&(E(this,xp,Math.ceil(v(this,_p,"f")*v(this,wp,"f"))),E(this,yp,Math.ceil(v(this,Ip,"f")*v(this,wp,"f"))),e.width=v(this,xp,"f"),e.height=v(this,yp,"f"))}get context2d(){var e,t;return null!==(t=null===(e=v(this,Cp,"f"))||void 0===e?void 0:e.getContext("2d"))&&void 0!==t?t:null}}function Rp(e){return`var(${e.var}, ${e.default})`}Ep=new WeakMap,bp=new WeakMap,Cp=new WeakMap,_p=new WeakMap,Ip=new WeakMap,xp=new WeakMap,yp=new WeakMap,wp=new WeakMap,Mp=new WeakMap,vp=new WeakSet,Sp=function(){return v(this,bp,"f")===Bp.Direct?yu().domElement:v(this,bp,"f")===Bp.Blitted?v(this,Cp,"f"):null};const Dp="--shopar-3d",Qp={display:{var:`${Dp}-loading-display`,default:"block"},top:{var:`${Dp}-loading-top`,default:"0"},bottom:{var:`${Dp}-loading-bottom`,default:"auto"},height:{var:`${Dp}-loading-height`,default:"0.375rem"},radius:{var:`${Dp}-loading-radius`,default:"calc(infinity * 1px)"},fg:{var:`${Dp}-loading-fg`,default:"linear-gradient(90deg, #773cd8, #5fb9ec)"},bg:{var:`${Dp}-loading-bg`,default:"#e5e7eb"}},Up="width 0.05s ease-out";const Lp="data:image/svg+xml,%3csvg width='869' height='1251' viewBox='0 0 869 1251' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg clip-path='url(%23clip0_894_1533)'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M303.44 353.132C304.829 314.64 330.051 282.714 363.992 272.987C371.106 271.049 378.436 270.01 385.808 269.895C391.367 269.895 396.717 270.486 401.893 271.424C439.69 278.372 467.899 309.36 467.899 346.462V654.953H511.671C613.911 606.665 685.371 500.36 685.371 376.165C685.571 306.213 662.333 238.211 619.365 183.01L604.427 165.64C577.851 136.528 545.96 112.766 510.212 96.1603C473.492 79.1377 432.881 69.4105 390.012 69.4105C347.143 69.4105 306.636 79.0683 269.812 96.1603C234.029 112.766 202.173 136.528 175.666 165.64L160.728 183.01C117.761 238.211 94.5225 306.213 94.722 376.165C94.714 391.336 95.8054 406.487 97.9875 421.5C99.0297 428.796 101.045 435.744 102.504 442.935L107.228 464.613C110.112 474.548 114.037 484.067 117.824 493.516L122.132 505.085C127.341 516.473 133.246 527.53 139.814 538.192L142.073 542.43C171.755 590.029 214.112 628.416 264.392 653.286L302.954 671.941V353.097L303.44 353.132Z' fill='white' fill-opacity='0.5'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M797.001 876.074L701.118 1144.96C695.143 1161.81 677.634 1172.75 657.589 1172.75H425.283C369.49 1172.75 317.867 1149.13 287.018 1109.53C231.711 1038.38 160.321 976.75 74.7561 926.447C71.4558 924.536 69.5451 921.687 69.4757 918.456C69.3367 914.982 71.0737 911.647 76.1805 908.139C95.6349 894.486 119.05 887.295 143.09 887.295C151.152 887.279 159.195 888.083 167.095 889.692L338.085 924.223V346.427C338.085 323.395 359.45 304.635 385.679 304.635C411.908 304.635 433.377 323.395 433.377 346.427V689.728H535.964C545.448 689.728 554.481 692.264 562.263 697.024L779.631 831.606C780.569 832.197 781.194 833.065 782.063 833.691C796.306 843.974 802.42 860.441 796.862 876.074M142.499 542.431C141.665 541.041 141.04 539.547 140.241 538.192C133.666 527.534 127.76 516.477 122.558 505.085C120.891 501.368 119.779 497.338 118.251 493.517L107.655 464.613C105.64 457.595 104.528 450.161 102.93 442.935L98.4141 421.501C96.2308 406.488 95.1394 391.336 95.1485 376.165C95.1485 302.968 119.953 235.815 161.155 183.011L176.093 165.641C202.634 136.459 234.525 112.731 270.238 96.1605C306.993 79.1379 347.569 69.4107 390.439 69.4107C433.308 69.4107 473.884 79.1379 510.639 96.1605C546.421 112.731 578.278 136.459 604.854 165.641L619.723 183.011C662.719 238.184 685.972 306.182 685.763 376.13C685.763 500.395 614.338 606.665 512.063 654.953H468.291V346.393C468.291 309.325 439.735 278.302 402.285 271.354C397.074 270.382 391.724 269.826 386.2 269.826C378.557 269.826 371.366 271.111 364.384 272.952C330.443 282.68 305.221 314.571 303.832 353.063V671.907L265.27 653.251C214.758 628.725 172.376 590.58 142.499 542.431ZM798.043 802.147L580.71 667.564C577.166 665.375 573.136 664.16 569.245 662.562C662.453 600.03 720.503 493.899 720.503 376.2C720.503 359.316 719.218 342.71 716.89 326.521C709.659 275.243 691.021 226.238 662.348 183.115L652.1 168.941L649.807 165.745C639.725 152.491 628.708 139.976 616.839 128.295C604.958 116.692 592.243 105.957 578.834 96.2647C538.709 67.2916 492.261 47.2118 441.958 38.9437L416.528 35.8866L390.543 34.8444C373.298 34.8447 356.082 36.2272 339.058 38.9785C288.789 47.2466 242.272 67.3263 202.182 96.2995C192.322 103.7 182.893 111.657 173.939 120.131C163.518 129.655 153.713 139.831 144.584 150.598L131.209 165.779L118.702 183.149L108.697 199.408L94.1758 226.436L92.7862 229.562C72.1854 274.029 60.478 323.708 60.478 376.234C60.478 509.358 136.281 631.295 253.632 686.741L303.554 710.364V882.188L173.765 855.994C163.608 853.965 153.273 852.964 142.916 853.006C142.325 853.006 141.735 853.11 141.179 853.11C132.425 853.249 123.705 854.257 115.124 855.89C112.364 856.472 109.619 857.121 106.891 857.835C100.186 859.433 93.62 861.552 87.1583 864.088C84.5528 865.13 81.9473 866.068 79.3418 867.562C70.6568 871.523 62.1803 876.039 54.2248 881.632C47.9431 885.96 42.8502 891.798 39.4144 898.609C35.9785 905.42 34.3099 912.986 34.562 920.61C34.9201 928.091 37.1618 935.359 41.079 941.742C44.9961 948.125 50.4619 953.415 56.9693 957.122C139.025 1004.85 207.116 1063.53 259.677 1131.24C264.329 1137.24 269.365 1142.94 274.754 1148.3C312.482 1185.88 367.024 1207.81 425.04 1207.88H657.693C683.679 1207.84 707.372 1196.31 722.24 1177.58C727.173 1171.33 731.134 1164.38 733.913 1156.67L829.691 887.781C832.957 878.749 834.207 869.369 833.582 860.197C832.957 851.026 830.525 842.133 826.53 833.795C820.225 820.757 810.33 809.79 798.008 802.182' fill='black' fill-opacity='0.6'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M779.738 831.676L562.37 697.093C554.446 692.276 545.346 689.739 536.072 689.763H433.485V346.532C433.485 323.499 412.085 304.74 385.787 304.74C359.489 304.74 338.193 323.499 338.193 346.532V924.71L167.203 890.178C159.291 888.569 151.236 887.766 143.163 887.781C119.267 887.676 95.9182 894.929 76.2881 908.555C71.1813 912.099 69.4096 915.434 69.5485 918.908C69.6875 922.174 71.5635 925.022 74.8638 926.898C160.394 977.202 231.784 1038.76 287.125 1109.98C317.94 1149.58 369.563 1173.2 425.39 1173.2H657.662C677.707 1173.2 695.181 1161.88 701.191 1145.41L797.074 876.525C802.632 860.962 796.483 844.46 782.274 834.142C781.406 833.448 780.781 832.649 779.843 832.058L779.738 831.676Z' fill='white'/%3e%3cmask id='mask0_894_1533' style='mask-type:luminance' maskUnits='userSpaceOnUse' x='0' y='0' width='869' height='1243'%3e%3cpath d='M0.0664062 0.0349731H868.462V1242.62H0.0664062V0.0349731Z' fill='white'/%3e%3c/mask%3e%3cg mask='url(%23mask0_894_1533)'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M833.58 860.197C834.209 869.559 832.897 878.95 829.724 887.781L733.911 1156.67C731.132 1164.31 727.172 1171.36 722.239 1177.58C707.405 1196.34 683.677 1207.81 657.727 1207.88H425.038C367.022 1207.81 312.481 1185.88 274.753 1148.3C269.403 1142.95 264.331 1137.25 259.676 1131.27C207.114 1063.57 139.024 1004.89 57.2458 956.809C43.8709 948.993 35.4985 935.34 34.8385 920.332C34.5864 912.708 36.255 905.143 39.6909 898.332C43.1267 891.521 48.2196 885.682 54.5013 881.354C62.4292 875.912 70.8363 871.202 79.6183 867.284L87.4348 863.81C93.8598 861.272 100.453 859.183 107.167 857.557L115.401 855.612C124.016 854.014 132.771 853.006 141.456 852.833C142.081 852.833 142.637 852.728 143.193 852.728C153.719 852.694 163.932 853.666 174.111 855.716L303.413 881.84V710.399L253.527 686.775C136.21 631.33 60.3724 509.393 60.3724 376.269C60.3724 323.812 72.045 274.134 92.6806 229.597C93.2017 228.555 93.5491 227.513 94.0702 226.47C98.4821 217.195 103.38 208.232 108.591 199.443C111.822 193.884 115.053 188.465 118.597 183.184C120.785 179.884 123.217 176.723 125.545 173.561L131.138 165.675C135.237 160.291 140.17 155.601 144.513 150.494C153.753 140.072 163.411 129.511 173.868 120.027C182.822 111.552 192.251 103.596 202.112 96.1953C242.202 67.2569 288.753 47.2119 339.022 38.8743C356.034 36.1219 373.239 34.7394 390.472 34.7402C399.145 34.7313 407.815 35.0906 416.457 35.8172C425.038 36.512 433.48 37.5542 441.922 38.8743C492.225 47.1424 538.707 67.2221 578.797 96.1953C592.242 105.923 604.922 116.622 616.803 128.226C628.681 139.898 639.699 152.413 649.771 165.675L652.064 168.871C655.607 173.492 659.116 178.182 662.312 183.045C690.997 226.166 709.647 275.171 716.889 326.452C719.182 342.676 720.467 359.281 720.467 376.13C720.467 493.829 662.451 600.307 569.244 662.492C573.065 664.09 577.13 665.271 580.708 667.495L798.041 802.077C810.895 810.068 820.449 821.184 826.528 833.343C830.523 841.681 832.955 850.644 833.58 859.746M857.794 818.231C848.588 799.124 834.275 783.248 816.315 772.166L631.394 657.628C709.732 586.863 755.207 484.971 755.207 375.748C755.207 299.667 733.078 226.227 691.285 163.348C686.908 156.817 682.253 150.494 677.389 144.171C654.982 114.712 628.684 88.5872 599.155 67.6043C537.561 23.5887 465.337 0.0349731 390.472 0.0349731C315.457 0.0670918 242.383 23.8817 181.754 68.0559C152.294 89.3863 125.961 115.163 103.485 144.658C98.7601 150.911 94.0354 157.268 89.6582 163.765C47.7965 226.679 25.6671 300.119 25.6671 376.2C25.6671 522.733 109.286 656.899 238.728 718.111L268.708 732.354V839.77L180.99 822.053C168.622 819.621 156.081 818.37 143.609 818.37C104.55 818.376 66.4474 830.462 34.5258 852.971C11.8406 868.952 -0.978479 894.729 0.133201 921.861C0.732449 935.148 4.66826 948.071 11.5776 959.437C18.4869 970.803 28.1472 980.245 39.6673 986.894C117.485 1032.68 182.31 1088.44 232.231 1152.67C276.004 1208.95 348.02 1242.65 425.038 1242.72H657.727C707.057 1242.68 750.83 1212.84 766.602 1168.45L862.484 899.558C871.933 873.26 870.266 844.53 857.829 818.787' fill='black' fill-opacity='0.05'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cclipPath id='clip0_894_1533'%3e%3crect width='868.5' height='1250.64' fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",Pp="2rem";function Np(e){const t=function(){const e=document.createElement("div"),{style:t}=e;return t.position="relative",t.width="100%",t.height="100%",t.pointerEvents="none",e}(),n=function(){const e=document.createElement("div");e.draggable=!1;const{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.objectFit="contain",t.visibility="hidden",t.backgroundSize="contain",t.backgroundRepeat="no-repeat",t.backgroundPosition="center",e}();t.appendChild(n);const i=new Tp;t.appendChild(i.element);const r=function(){const e=function(){const e=document.createElement("div"),{style:t}=e;return t.display=Rp(Qp.display),t.opacity="0",t.transition="opacity 0.2s ease-out",t.position="absolute",t.top=Rp(Qp.top),t.bottom=Rp(Qp.bottom),t.left="0",t.width="100%",t.height=Rp(Qp.height),t.overflow="hidden",e}(),t=function(){const e=document.createElement("div"),{style:t}=e;return t.position="absolute",t.width="100%",t.height="100%",t.background=Rp(Qp.bg),e}(),n=function(){const e=document.createElement("div"),{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="0%",t.height="100%",t.background=Rp(Qp.fg),t.borderRadius=Rp(Qp.radius),t.transition=Up,e}();t.appendChild(n),e.appendChild(t);let i=0;return{get container(){return e},set progress(e){e<i?(n.style.transition="none",n.style.width=100*e+"%",n.offsetWidth,n.style.transition=Up):n.style.width=100*e+"%",i=e},set visible(t){e.style.opacity=t?"1":"0"}}}();t.appendChild(r.container);const a=function(){const e=function(){const e=document.createElement("div"),{style:t}=e;return t.visibility="hidden",t.position="absolute",t.width="100%",t.height="100%",t.display="flex",t.justifyContent="center",t.alignItems="center",e}(),t=function(){const e=function(e){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width",e),t.setAttribute("height",e),t}(Pp),{style:t}=e;return t.transition="opacity 0.3s",t.opacity="0",e}(),n=function(e,t){const n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t),n.setAttribute("width",e),n.setAttribute("height",e),n}(Pp,Lp);return t.appendChild(n),e.appendChild(t),{get container(){return e},get svg(){return t},set imageUrl(e){n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",null!=e?e:Lp)},set imageSize(e){const i=null!=e?e:Pp;t.setAttribute("width",i),t.setAttribute("height",i),n.setAttribute("width",i),n.setAttribute("height",i)},set visible(t){e.style.visibility=t?"visible":"hidden"},set opacity(e){t.style.opacity=e},set transform(e){t.style.transform=e}}}();return t.appendChild(a.container),{get root(){return t},get canvasWrapper(){return i},get loading(){return r},get prompt(){return a},set canvasVisible(e){i.visible=e},set posterVisible(e){n.style.visibility=e?"visible":"hidden"},loadPoster:e=>{n.style.backgroundImage=e?`url(${e})`:""}}}var Fp,Op,kp,Gp;class Hp extends HTMLElement{constructor(){super(),Fp.add(this),Op.set(this,void 0),kp.set(this,void 0),E(this,Op,function(){let e,t,n,i,r,a,s,o,l,c,h,A,u,d,p,f,g,m,v,E,b,C,_,I,x,y,w,M,S,B,T,R,D,Q,U=()=>{},L=()=>{},P=()=>{},N=()=>{},F=()=>{},O=()=>{},k=()=>{},G=()=>{},H=()=>{},z=()=>{},V=()=>{},W=()=>{},q=()=>{},j=()=>{},Y=()=>{},X=()=>{},K=()=>{},J=()=>{},Z=()=>{},$=()=>{},ee=()=>{},te=()=>{},ne=()=>{},ie=()=>{},re=()=>{},ae=()=>{},se=()=>{},oe=()=>{},le=()=>{},ce=()=>{},he=()=>{},Ae=()=>{},ue=()=>{},de=()=>{};function pe(){e=!1,t=!1,n=null,i=null,r=null,a=null,s=null,o=null,l=null,c=null,h=null,A=null,u=null,d=null,p=!1,f=!0,g=null,m=null,v=null,E=null,b=null,C=!0,_=null,I=null,x=!1,y=!1,w=null,M=null,S=null,B=null,T=null,R=null,D=null,Q=null}return pe(),{get initialized(){return e},set initialized(t){const n=t!==e;e=t,t||pe(),n&&(null==U||U(e))},set onInitializedChange(e){U=e},get paused(){return t},set paused(e){const n=e!==t;t=e,n&&(null==L||L(t))},set onPausedChange(e){L=e},get posterUrl(){return n},set posterUrl(e){const t=e!==n;n=e,t&&(null==P||P(e))},set onPosterUrlChange(e){P=e},set glbUrl(e){const t=e!==i;i=e,t&&(null==N||N(i))},set onGlbUrlChange(e){N=e},set envUrl(e){const t=e!==r;r=e,t&&(null==F||F(r))},set onEnvUrlChange(e){F=e},set diamondEnvUrl(e){const t=e!==a;a=e,t&&(null==O||O(a))},set onDiamondEnvUrlChange(e){O=e},set envRotation(e){const t=e!==s;s=e,t&&(null==k||k(s))},set onEnvRotationChange(e){k=e},set toneMapping(e){const t=e!==o;o=e,t&&(null==G||G(o))},set onToneMappingChange(e){G=e},set toneMappingExposure(e){const t=e!==l;l=e,t&&(null==H||H(l))},set onToneMappingExposureChange(e){H=e},set bloomEnabled(e){const t=e!==c;c=e,t&&(null==z||z(c))},set onBloomEnabledChange(e){z=e},set bloomStrength(e){const t=e!==h;h=e,t&&(null==V||V(h))},set onBloomStrengthChange(e){V=e},set bloomRadius(e){const t=e!==A;A=e,t&&(null==W||W(A))},set onBloomRadiusChange(e){W=e},set bloomThreshold(e){const t=e!==u;u=e,t&&(null==q||q(u))},set onBloomThresholdChange(e){q=e},set category(e){const t=e!==d;d=e,t&&(null==j||j(d))},set onCategoryChange(e){j=e},get glbLocal(){return p},set glbLocal(e){const t=e!==p;p=e,t&&(null==Y||Y(p))},set onGlbLocalChange(e){Y=e},set interactive(e){const t=e!==f;f=e,t&&(null==X||X(f))},set onInteractiveChange(e){X=e},set onModelLoaded(e){const t=e!==g;g=e,t&&(null==K||K(g))},set onOnModelLoadedChange(e){K=e},set onRendered(e){const t=e!==m;m=e,t&&(null==J||J(m))},set onOnRenderedChange(e){J=e},set onInteracted(e){const t=e!==v;v=e,t&&(null==Z||Z(v))},set onOnInteractedChange(e){Z=e},get onError(){return E},set onError(e){const t=e!==E;E=e,t&&(null==$||$(E))},set onOnErrorChange(e){$=e},set touchAction(e){const t=e!==b;b=e,t&&(null==ee||ee(b))},set onTouchActionChange(e){ee=e},set zoomEnabled(e){const t=e!==C;C=e,t&&(null==te||te(C))},set onZoomEnabledChange(e){te=e},set minZoom(e){const t=e!==_;_=e,t&&(null==ne||ne(_))},set onMinZoomChange(e){ne=e},set maxZoom(e){const t=e!==I;I=e,t&&(null==ie||ie(I))},set onMaxZoomChange(e){ie=e},set preserveCameraOnReload(e){const t=e!==x;x=e,t&&(null==re||re(x))},set onPreserveCameraOnReloadChange(e){re=e},set alwaysTransparentBackground(e){const t=e!==y;y=e,t&&(null==ae||ae(y))},set onAlwaysTransparentBackgroundChange(e){ae=e},set defaultFov(e){const t=e!==w;w=e,t&&(null==se||se(w))},set onDefaultFovChange(e){se=e},set fovMultiplier(e){const t=e!==M;M=e,t&&(null==oe||oe(M))},set onFovMultiplierChange(e){oe=e},set defaultCameraPositions(e){const t=e!==S;S=e,t&&(null==le||le(S))},set onDefaultCameraPositionsChange(e){le=e},set interactionPromptUrl(e){const t=e!==B;B=e,t&&(null==ce||ce(B))},set onInteractionPromptUrlChange(e){ce=e},set interactionPromptSize(e){const t=e!==T;T=e,t&&(null==he||he(T))},set onInteractionPromptSizeChange(e){he=e},set animation(e){const t=e!==R;R=e,t&&(null==Ae||Ae(R))},set onAnimationChange(e){Ae=e},set nonLiveRendering(e){const t=e!==D;D=e,t&&(null==ue||ue(D))},set onNonLiveRenderingChange(e){ue=e},set baseUrl(e){const t=e!==Q;Q=e,t&&(null==de||de(Q))},set onBaseUrlChange(e){de=e}}}());const e=Np(v(this,Op,"f"));E(this,kp,gp(v(this,Op,"f"),e)),this.attachShadow({mode:"open"}).appendChild(e.root)}connectedCallback(){v(this,Op,"f").initialized=!0}disconnectedCallback(){v(this,Op,"f").initialized=!1}attributeChangedCallback(e,t,n){var i,r;if(v(this,Op,"f").initialized)if("paused"===e)v(this,Op,"f").paused=zp(n);else if("poster-url"===e)v(this,Op,"f").posterUrl=n;else if("glb-url"===e)v(this,Op,"f").glbUrl=function(e){if(null==e?void 0:e.includes("|")){const[t,n]=e.split("|",2);return{left:t,right:n}}return e}(n);else if("env-url"===e)v(this,Op,"f").envUrl=n;else if("diamond-env-url"===e)v(this,Op,"f").diamondEnvUrl=n;else if("env-rotation"===e)v(this,Op,"f").envRotation=Vp(n);else if("tone-mapping"===e)v(this,Op,"f").toneMapping=(r=i=n,Ic.includes(r)?i:null);else if("tone-mapping-exposure"===e)v(this,Op,"f").toneMappingExposure=Vp(n);else if("bloom-enabled"===e)v(this,Op,"f").bloomEnabled=zp(n);else if("bloom-strength"===e)v(this,Op,"f").bloomStrength=Vp(n);else if("bloom-radius"===e)v(this,Op,"f").bloomRadius=Vp(n);else if("bloom-threshold"===e)v(this,Op,"f").bloomThreshold=Vp(n);else if("category"===e)v(this,Op,"f").category=function(e){return yc(e)?e:null}(n);else if("glb-local"===e)v(this,Op,"f").glbLocal=function(e){if(null==e?void 0:e.includes("|")){const[t,n]=e.split("|",2);return{left:"true"===t,right:"true"===n}}return zp(e)}(n);else if("interactivity-disabled"===e)v(this,Op,"f").interactive=!zp(n);else if("touch-action"===e)v(this,Op,"f").touchAction=function(e){return function(e){return xc.includes(e)}(e)?e:null}(n);else if("zoom-disabled"===e)v(this,Op,"f").zoomEnabled=!zp(n);else if("min-zoom"===e)v(this,Op,"f").minZoom=Vp(n);else if("max-zoom"===e)v(this,Op,"f").maxZoom=Vp(n);else if("preserve-camera-on-reload"===e)v(this,Op,"f").preserveCameraOnReload=zp(n);else if("always-transparent-background"===e)v(this,Op,"f").alwaysTransparentBackground=zp(n);else if("default-fov"===e)v(this,Op,"f").defaultFov=Vp(n);else if("fov-multiplier"===e)v(this,Op,"f").fovMultiplier=Vp(n);else if("interaction-prompt-url"===e)v(this,Op,"f").interactionPromptUrl=n;else if("interaction-prompt-size"===e)v(this,Op,"f").interactionPromptSize=n;else if("non-live-rendering"===e)v(this,Op,"f").nonLiveRendering=zp(n);else{if("base-url"!==e)throw new Error(`Unknown attribute: ${e} (changed from '${t}' to '${n}')`);v(this,Op,"f").baseUrl=n}}set paused(e){v(this,Fp,"m",Gp).call(this,"paused",e?"":null)}set posterUrl(e){v(this,Fp,"m",Gp).call(this,"poster-url",e)}set glbUrl(e){v(this,Fp,"m",Gp).call(this,"glb-url","string"==typeof e||null==e?e:`${e.left}|${e.right}`)}set envUrl(e){v(this,Fp,"m",Gp).call(this,"env-url",e)}set diamondEnvUrl(e){v(this,Fp,"m",Gp).call(this,"diamond-env-url",e)}set envRotation(e){v(this,Fp,"m",Gp).call(this,"env-rotation",null!=e?`${e}`:null)}set toneMapping(e){v(this,Fp,"m",Gp).call(this,"tone-mapping",e)}set toneMappingExposure(e){v(this,Fp,"m",Gp).call(this,"tone-mapping-exposure",`${e}`)}set bloomEnabled(e){v(this,Fp,"m",Gp).call(this,"bloom-enabled",e?"":null)}set bloomStrength(e){v(this,Fp,"m",Gp).call(this,"bloom-strength",null!=e?`${e}`:null)}set bloomRadius(e){v(this,Fp,"m",Gp).call(this,"bloom-radius",null!=e?`${e}`:null)}set bloomThreshold(e){v(this,Fp,"m",Gp).call(this,"bloom-threshold",null!=e?`${e}`:null)}set category(e){v(this,Fp,"m",Gp).call(this,"category",e)}set animation(e){v(this,Op,"f").animation=e}set glbLocal(e){v(this,Fp,"m",Gp).call(this,"glb-local","boolean"==typeof e||null==e?e?"":null:`${e.left}|${e.right}`)}set interactivityDisabled(e){v(this,Fp,"m",Gp).call(this,"interactivity-disabled",e?"":null)}set touchAction(e){v(this,Fp,"m",Gp).call(this,"touch-action",e)}set zoomDisabled(e){v(this,Fp,"m",Gp).call(this,"zoom-disabled",e?"":null)}set minZoom(e){v(this,Fp,"m",Gp).call(this,"min-zoom",null!=e?`${e}`:null)}set maxZoom(e){v(this,Fp,"m",Gp).call(this,"max-zoom",null!=e?`${e}`:null)}set preserveCameraOnReload(e){v(this,Fp,"m",Gp).call(this,"preserve-camera-on-reload",e?"":null)}set alwaysTransparentBackground(e){v(this,Fp,"m",Gp).call(this,"always-transparent-background",e?"":null)}set defaultFov(e){v(this,Fp,"m",Gp).call(this,"default-fov",`${e}`)}set fovMultiplier(e){v(this,Fp,"m",Gp).call(this,"fov-multiplier",`${e}`)}set defaultCameraPositions(e){v(this,Op,"f").defaultCameraPositions=e}set interactionPromptUrl(e){v(this,Fp,"m",Gp).call(this,"interaction-prompt-url",e)}set interactionPromptSize(e){v(this,Fp,"m",Gp).call(this,"interaction-prompt-size",e)}set nonLiveRendering(e){v(this,Fp,"m",Gp).call(this,"non-live-rendering",e?"":null)}set baseUrl(e){v(this,Fp,"m",Gp).call(this,"base-url",e)}set onModelLoaded(e){v(this,Op,"f").onModelLoaded=e}set onRendered(e){v(this,Op,"f").onRendered=e}set onInteracted(e){v(this,Op,"f").onInteracted=e}set onError(e){v(this,Op,"f").onError=e}render(e){v(this,kp,"f").render(e)}flushChanges(){return v(this,kp,"f").flushChanges()}}function zp(e){return null!=e}function Vp(e){return null==e?null:Number.parseFloat(e)}if(Op=new WeakMap,kp=new WeakMap,Fp=new WeakSet,Gp=function(e,t){null==t?this.removeAttribute(e):this.setAttribute(e,t)},Hp.observedAttributes=["paused","poster-url","glb-url","env-url","diamond-env-url","env-rotation","tone-mapping","tone-mapping-exposure","category","glb-local","interactivity-disabled","touch-action","zoom-disabled","min-zoom","max-zoom","preserve-camera-on-reload","always-transparent-background","default-fov","fov-multiplier","interaction-prompt-url","interaction-prompt-size","bloom-enabled","bloom-strength","bloom-radius","bloom-threshold","non-live-rendering","base-url"],null==window)throw new Error("window is not defined. ShopAR 3D only works in a browser environment.");const{customElements:Wp}=window;try{Wp.define("shopar-3d",Hp)}catch(Sd){console.error(Sd)}const qp=["demo.deepar.ai","dbeochk72stb2.cloudfront.net","d1q93hnxt3ps3w.cloudfront.net","dj5e08oeu5ym4.cloudfront.net"];function jp(e){if(null==e||"string"!=typeof e)throw new Error(`Invalid url: ${e}.`);let t;try{t=new URL(e)}catch(t){throw new Error(`Invalid url: ${e}. ${t.message}`)}if("https:"!==t.protocol)throw new Error(`Invalid url: ${e}.`);if(!function(e){return qp.includes(e)}(t.hostname))throw new Error(`Invalid url: ${e}.`);return t.toString()}function Yp(e){return a(this,void 0,void 0,function*(){return yield g(()=>a(this,void 0,void 0,function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin?${new URLSearchParams(e)}`).catch(e=>{throw new Xp(`API unavailable: ${o(e)}`)});if(!t.ok)throw new Xp("API response not OK.",t.status);const n=t.headers.get("content-length");if(n&&parseInt(n)>1048576)throw new Xp("API response too large.");try{return function(e){const t=Object.assign({},e);if(t.category&&!_c.includes(t.category))throw new Error(`Invalid response category: ${e.category}`);if(t.arToneMapping&&!Ic.includes(t.arToneMapping))throw new Error(`Invalid response tone mapping: ${e.arToneMapping}`);if(t.previewToneMapping&&!Ic.includes(t.previewToneMapping))throw new Error(`Invalid response tone mapping: ${e.previewToneMapping}`);return t.arUrl=t.arUrl?jp(t.arUrl):void 0,t.arEnvUrl=t.arEnvUrl?jp(t.arEnvUrl):void 0,t.arDiamondEnvUrl=t.arDiamondEnvUrl?jp(t.arDiamondEnvUrl):void 0,t.arPromptImage=t.arPromptImage?jp(t.arPromptImage):void 0,t.previewUrl=t.previewUrl?jp(t.previewUrl):void 0,t.previewEnvUrl=t.previewEnvUrl?jp(t.previewEnvUrl):void 0,t.previewDiamondEnvUrl=t.previewDiamondEnvUrl?jp(t.previewDiamondEnvUrl):void 0,t.previewPosterUrl=t.previewPosterUrl?jp(t.previewPosterUrl):void 0,t}(yield t.json())}catch(e){throw new Xp(`API returned invalid body: ${o(e)}`)}}))})}class Xp extends Error{constructor(e,t){super(e),this.name="ApiError",this.status=t}}function Kp(e){return e*(180/Math.PI)}function Jp(e){return Math.round(100*e)/100}const Zp=["Glasses","Shoes","Watches","Bracelets","Scarves","Hats","Necklaces"],$p=["Shoes"];const ef={};const tf="1.0.0-alpha.6";let nf=`https://cdn.jsdelivr.net/npm/shopar-plugin@${tf}/dist`;const rf=e=>{null!=e&&(nf=e.endsWith("/")?e.substring(0,e.length-1):e)},af=()=>nf;function sf(e,t){return a(this,void 0,void 0,function*(){if("function"!=typeof importScripts){if("function"==typeof window.define&&window.define.amd&&"function"==typeof window.require)return new Promise(n=>{window.require([e],e=>{window[t]=e,n()},()=>{n()})});{const t=document.createElement("script");return t.setAttribute("src",e),t.setAttribute("crossorigin","anonymous"),new Promise(e=>{t.addEventListener("load",()=>e(),!1),t.addEventListener("error",()=>e(),!1),document.body.appendChild(t)})}}importScripts(e.toString())})}let of;function lf(e,t){let n=!0;return{qrPaused:()=>n,qrDraw:(i,r)=>a(this,void 0,void 0,function*(){!function(){a(this,void 0,void 0,function*(){null==of&&(of=sf(`${af()}/shopar-qr.js`,"ShopAR__QR"))})}(),yield of;const s=`https://ar.shopar.ai/${tf.includes("alpha")?"qr-alpha":"qr"}/?${new URLSearchParams({a:i,s:r,h:location.href})}`,o=yield window.ShopAR__QR.toDataURL(s),l=new Promise((e,n)=>{t.onload=e,t.onerror=n});t.src=o,yield l,n=!1,e.style.display=""}),qrPause:()=>a(this,void 0,void 0,function*(){n=!0,e.style.display="none"})}}const cf={"loading.ar":"Loading Try On...","loading.3d":"Loading 3D...","prompt.ar.shoes":void 0,"prompt.ar.glasses":void 0,"prompt.ar.watches":void 0,"prompt.ar.bracelets":void 0,"prompt.ar.scarves":void 0,"prompt.ar.hats":void 0,"prompt.ar.necklaces":void 0},hf=Object.keys(cf);const Af="--shopar";function uf(e){return`var(${e.var}, ${e.default})`}const df={padding:{var:`${Af}-btn-padding`,default:"0.5rem 0.75rem"},gap:{var:`${Af}-btn-gap`,default:"0.25rem"},border:{var:`${Af}-btn-border`,default:"1px solid #dddddd"},borderRadius:{var:`${Af}-btn-border-radius`,default:"calc(infinity * 1px)"},bg:{var:`${Af}-btn-bg`,default:"#ffffff"},hoverBg:{var:`${Af}-btn-hover-bg`,default:"#f5f5f5"}};function pf(e,t,n){const i=document.createElement("button");i.type="button",i.appendChild(n);{const t=document.createElement("span");t.textContent=e,i.appendChild(t)}i.ariaLabel=t;const r=i.style;r.display="none",r.pointerEvents="auto",r.padding=uf(df.padding),r.justifyContent="center",r.alignItems="center",r.gap=uf(df.gap),r.backgroundColor=uf(df.bg),r.border=uf(df.border),r.borderRadius=uf(df.borderRadius),r.cursor="pointer";const a=uf(df.bg),s=uf(df.hoverBg);return i.addEventListener("mouseenter",()=>{r.backgroundColor=s}),i.addEventListener("mouseleave",()=>{r.backgroundColor=a}),i}const ff={paddingBottom:{var:`${Af}-btn-container-padding-bottom`,default:"2rem"},gap:{var:`${Af}-btn-container-gap`,default:"0.5rem"}};const gf={bg:{var:`${Af}-ar-prompt-bg`,default:"#1e293bb2"},gap:{var:`${Af}-ar-prompt-gap`,default:"1rem"},textColor:{var:`${Af}-ar-prompt-text-color`,default:"white"},imgMaxWidth:{var:`${Af}-ar-prompt-img-max-width`,default:"80%"},imgMaxHeight:{var:`${Af}-ar-prompt-img-max-height`,default:"50%"}};const mf={containerDisplay:{var:`${Af}-ar-loading-container-display`,default:"flex"},containerBg:{var:`${Af}-ar-loading-container-bg`,default:"#ffffff"},containerGap:{var:`${Af}-ar-loading-container-gap`,default:"1rem"},barWidth:{var:`${Af}-ar-loading-bar-width`,default:"80%"},barHeight:{var:`${Af}-ar-loading-bar-height`,default:"0.5rem"},barRadius:{var:`${Af}-ar-loading-bar-radius`,default:"calc(infinity * 1px)"},barFg:{var:`${Af}-ar-loading-bar-fg`,default:"linear-gradient(90deg, #773cd8, #5fb9ec)"},barBg:{var:`${Af}-ar-loading-bar-bg`,default:"#e5e7eb"}};const vf={bg:{var:`${Af}-qr-bg`,default:"#ffffff"}};const Ef={bg:{var:`${Af}-3d-bg`,default:"#ffffff"}};function bf(e){var t,n;const i=document.createElementNS("http://www.w3.org/2000/svg","svg");return i.setAttribute("width",null!==(t=e.getAttribute("width"))&&void 0!==t?t:"1rem"),i.setAttribute("height",null!==(n=e.getAttribute("height"))&&void 0!==n?n:"1rem"),i.appendChild(e),i}function Cf(e,t){const n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href","data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22/%3E"),n.setAttribute("width",e),n.setAttribute("height",e),n}var _f;function If(){const e=function(){const e=document.createElement("div");e.id="shopar-main";const t=e.style;return t.position="absolute",t.top="0",t.bottom="0",t.left="0",t.right="0",t.pointerEvents="none",e}(),t=function(){const e=document.createElement("div");return e.style.textAlign="center",e}(),n=function(){const e=new Image;e.draggable=!1;const t=e.style;return t.maxWidth="100%",t.maxHeight="100%",e}(),i=function(e,t){const n=document.createElement("div"),i=n.style;i.position="absolute",i.top="0",i.left="0",i.width="100%",i.height="100%",i.display="none",i.pointerEvents="auto",i.userSelect="none";const r=document.createElement("div"),a=r.style;a.position="relative",a.top="0",a.left="0",a.width="100%",a.height="100%",a.display="flex",a.flexDirection="column",a.justifyContent="center",a.alignItems="center",a.background=uf(vf.bg),n.appendChild(r),r.appendChild(e);const s=document.createElement("div");return s.appendChild(t),r.appendChild(s),n}(t,n);e.appendChild(i);const r=function(){const e=document.createElement("div"),t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.display="none",t.pointerEvents="auto",e}();e.appendChild(r);const a=function(){const e=document.createElement("shopar-3d"),{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.pointerEvents="auto",t.display="none",t.background=uf(Ef.bg),e}();e.appendChild(a);const s=function(){const e=document.createElement("div");return e.style.textAlign="center",e.style.color=uf(gf.textColor),e}(),o=function(){const e=new Image,{style:t}=e;return t.maxWidth=uf(gf.imgMaxWidth),t.maxHeight=uf(gf.imgMaxHeight),t.objectFit="contain",e}(),l=function(e,t){const n=document.createElement("div"),{style:i}=n;return i.position="absolute",i.width="100%",i.height="100%",i.opacity="0",i.display="flex",i.flexDirection="column",i.justifyContent="center",i.alignItems="center",i.gap=uf(gf.gap),i.backgroundColor=uf(gf.bg),i.transition="0.3s ease-in-out opacity",n.appendChild(e),n.appendChild(t),n}(s,o);e.appendChild(l);const c=function(){const e=document.createElement("div"),t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.pointerEvents="auto",t.userSelect="none",t.display=uf(mf.containerDisplay),t.flexDirection="column",t.justifyContent="center",t.alignItems="center",t.gap=uf(mf.containerGap),t.backgroundColor=uf(mf.containerBg),e}(),h=function(e){const t=document.createElement("div");return t.textContent=e,t.style.textAlign="center",t}(cf["loading.ar"]);c.appendChild(h);const A=function(){const e=document.createElement("div"),t=e.style;return t.position="relative",t.overflow="hidden",t.width=uf(mf.barWidth),t.height=uf(mf.barHeight),t.backgroundColor=uf(mf.barBg),t.borderRadius=uf(mf.barRadius),e}(),u=function(){const e=document.createElement("div"),t=e.style;return t.height="100%",t.width="0%",t.background=uf(mf.barFg),t.borderRadius=uf(mf.barRadius),t.transition="width 0.05s ease-out",e}(),d=function(){const e=document.createElement("div");return e.textContent="0%",e.style.textAlign="center",e}();A.appendChild(u),c.appendChild(A),c.appendChild(d),e.appendChild(c);const p=function(){const e=document.createElement("div");return e.style.textAlign="center",e}(),f=function(e){const t=document.createElement("div"),n=t.style;n.position="absolute",n.width="100%",n.height="100%",n.display="none",n.pointerEvents="auto",n.userSelect="none";const i=document.createElement("div"),r=i.style;return r.position="absolute",r.width="100%",r.height="100%",r.backgroundColor="#ffffff",r.display="flex",r.flexDirection="column",r.justifyContent="center",r.alignItems="center",t.appendChild(i),i.appendChild(e),t}(p);e.appendChild(f);const g=function(){const e=document.createElement("div");e.role="group",e.ariaLabel="Preview type chooser";const{style:t}=e;return t.display="none",t.position="absolute",t.width="100%",t.bottom="0",t.paddingBottom=uf(ff.paddingBottom),t.justifyContent="center",t.gap=uf(ff.gap),e}();e.appendChild(g);const m=Cf("1.75rem"),v=pf("Try-on","Launch ShopAR virtual try-on",bf(m));g.appendChild(v);const E=Cf("1.75rem"),b=pf("3D","Launch ShopAR 3D preview",bf(E));g.appendChild(b);const C=Cf("1.75rem"),_=pf("Close","Close ShopAR view",bf(C));g.append(_);let I,x,y=_f.None,w=!1,M=!1,S=!1,B=!1;function T(){u.style.width="100%",d.textContent="100%",c.style.visibility="hidden",u.style.width="0%",d.textContent="0%"}return{setTargetElement:function(t){t.style.position="relative",t.appendChild(e)},getQRTarget:function(){return i},getQRImage:function(){return n},getDeepARTarget:function(){return r},getDeepARPrompt:function(){return l},getThreeTarget:function(){return a},customizeDeepARPrompt:function(e,t){s.textContent=e,o.src=t},customizeCameraError:function(e){p.textContent=null!=e?e:"Please reload page and allow camera access to continue"},customizeQRPrompt:function(e){t.textContent=null!=e?e:"Scan on mobile or tablet to try on"},setVisibilityParameters:function(e,t,n,i,r,a){var s;w=e,M=t,S=n,B=i,I=r,x=a,yf(g,w),yf(v,w&&(S||M)&&y===_f.None),yf(b,w&&B&&y===_f.None),yf(_,w&&y!==_f.None),T(),w||""===(s=f).style.display&&xf(s,!1)},getUIState:function(){return y},setUIState:function(e){y=e,y===_f.None?(T(),w&&(xf(f,!1),yf(_,!1),(M||S)&&yf(v,!0),B&&yf(b,!0))):y===_f.QR||y===_f.AR?w&&(xf(f,!1),yf(v,!1),yf(b,B&&"AR"===x),yf(_,"AR"!==x)):y===_f.Preview&&w&&(xf(f,!1),yf(v,(M||S)&&"3D"===x),yf(b,!1),yf(_,"3D"!==x))},setDefaultUIActions:function(e,t,n){w&&((M||S)&&(!function(e){const t={Glasses:"glasses.svg",Shoes:"shoe.svg",Watches:"watch.svg",Bracelets:"watch.svg",Scarves:"glasses.svg",Hats:"glasses.svg",Necklaces:"glasses.svg"},n=null!=e&&t[e]||t.Glasses,i=`${af()}/img/icons/${n}`;m.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",i)}(I),v.onclick=e),B&&(E.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",`${af()}/img/icons/cube.svg`),b.onclick=t),C.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",`${af()}/img/icons/close.svg`),_.onclick=n)},startDeepARLoading:function(){u.style.width="0%",c.style.visibility="visible"},stopDeepARLoading:T,updateDeepARLoadingProgress:function(e){u.style.width=`${e}%`,d.textContent=`${Math.floor(e)}%`},showCameraError:function(){w&&xf(f,!0)}}}function xf(e,t){e.style.display=t?"":"none"}function yf(e,t){e.style.display=t?"flex":"none"}!function(e){e[e.None=0]="None",e[e.QR=1]="QR",e[e.AR=2]="AR",e[e.Preview=3]="Preview"}(_f||(_f={}));const wf=new Map;function Mf(e){let t=wf.get(e);return null==t?(t=function(){let e=0,t=null,n=null,i=!0;const r=()=>(null==t&&(t=If()),t);return{getSetupId:()=>e,incrementSetupId_:()=>e++,getUI_:()=>t,findUI:r,findQR:()=>{if(null==n){const{getQRTarget:e,getQRImage:t}=r();n=lf(e(),t())}return n},isInteractive:()=>i,setInteractive:e=>{i=e,null!=(null==t?void 0:t.getThreeTarget())&&(t.getThreeTarget().interactivityDisabled=!e)}}}(),wf.set(e,t)):t.incrementSetupId_(),t}function Sf(e){for(const t of wf.values()){if(t===e)continue;const n=t.getUI_();if(null==n)continue;const{getUIState:i,setUIState:r}=n;i()===_f.AR&&r(_f.None)}}const Bf=[];for(let e=0;e<256;++e)Bf.push((e+256).toString(16).slice(1));let Tf;const Rf=new Uint8Array(16);var Df={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Qf(e,t,n){const i=(e=e||{}).random??e.rng?.()??function(){if(!Tf){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Tf=crypto.getRandomValues.bind(crypto)}return Tf(Rf)}();if(i.length<16)throw new Error("Random bytes length must be >= 16");return i[6]=15&i[6]|64,i[8]=63&i[8]|128,function(e,t=0){return(Bf[e[t+0]]+Bf[e[t+1]]+Bf[e[t+2]]+Bf[e[t+3]]+"-"+Bf[e[t+4]]+Bf[e[t+5]]+"-"+Bf[e[t+6]]+Bf[e[t+7]]+"-"+Bf[e[t+8]]+Bf[e[t+9]]+"-"+Bf[e[t+10]]+Bf[e[t+11]]+Bf[e[t+12]]+Bf[e[t+13]]+Bf[e[t+14]]+Bf[e[t+15]]).toLowerCase()}(i)}function Uf(e,t,n){return Df.randomUUID&&!e?Df.randomUUID():Qf(e)}function Lf(){let e=!1,t=0,n=0;return{get dirty(){return e},clearDirty(){e=!1},get engagementMs(){return Math.round(t)},interact(i){const r=i-n;n=i,r<200&&(t+=r,e=!0)}}}function Pf(){let e,t,n=0,i=0,r=2e3;return{set debounceDurationMs(e){r=null!=e?e:2e3},set onDebouncedEngagement(e){t=e},interact(a){const s=a-i;i=a,s<200&&(n+=s),e&&clearTimeout(e),e=setTimeout(()=>{n>0&&t&&(t(Math.round(n)),n=0,i=0),e=void 0},r)},flush(){e&&(clearTimeout(e),e=void 0,n>0&&t&&(t(Math.round(n)),n=0,i=0))}}}const Nf="qrLaunch",Ff="arLaunch",Of="previewLaunch";let kf,Gf,Hf=!1;const zf=window.navigator.userAgent||"no user agent",Vf=[];function Wf(){null==kf&&(Gf=Uf(),kf=sf(`${af()}/shopar-analytics.js`,"ShopAR__analytics"),kf.then(()=>{Hf=!0,window.ShopAR__analytics.initializeImpl(),Vf.forEach(e=>e())}))}function qf(e){Hf?e():Vf.push(e)}const jf=.1,Yf="function"==typeof Float32Array;function Xf(e,t,n,i){if(!(0<=e&&e<=1&&0<=n&&n<=1))throw new Error("bezier x values must be in [0, 1] range");if(e===t&&n===i)return tg;const r=Yf?new Float32Array(11):new Array(11);for(let t=0;t<11;++t)r[t]=$f(t*jf,e,n);function a(t){let i=0,a=1;for(;10!==a&&r[a]<=t;++a)i+=jf;--a;const s=i+(t-r[a])/(r[a+1]-r[a])*jf,o=eg(s,e,n);return o>=.001?function(e,t,n,i){for(let r=0;r<4;++r){const r=eg(t,n,i);if(0===r)return t;t-=($f(t,n,i)-e)/r}return t}(t,s,e,n):0===o?s:function(e,t,n,i,r){let a,s,o=0;do{s=t+(n-t)/2,a=$f(s,i,r)-e,a>0?n=s:t=s}while(Math.abs(a)>1e-7&&++o<10);return s}(t,i,i+jf,e,n)}return function(e){return 0===e||1===e?e:$f(a(e),t,i)}}function Kf(e,t){return 1-3*t+3*e}function Jf(e,t){return 3*t-6*e}function Zf(e){return 3*e}function $f(e,t,n){return((Kf(t,n)*e+Jf(t,n))*e+Zf(t))*e}function eg(e,t,n){return 3*Kf(t,n)*e*e+2*Jf(t,n)*e+Zf(t)}function tg(e){return e}function ng(e){if("hold"===e.type)return()=>0;if("bezier"===e.type){const t=Xf(e.x1,e.y1,e.x2,e.y2);return e=>t(e)}throw new Error(`Unknown interpolation: ${e}`)}function ig(e){if(e.length<2)throw new Error("Expected at least two key frames.");const t=e[e.length-1].time,n=[...e].sort((e,t)=>e.time-t.time).map(({time:e,value:t,interpolation:n})=>({time:e,value:t,interpolate:ng(n)}));let i=0,r=n[0].value;return{reset:()=>{i=0},update:e=>{for(i+=e;i>=t;)i-=t;for(let e=0;e<n.length-1;e++){const t=n[e],a=n[e+1];if(i>=t.time&&i<a.time){const e=t.interpolate((i-t.time)/(a.time-t.time));r=t.value+e*(a.value-t.value)}}},get:()=>r}}const rg="time",ag="interpolation",sg="pitch",og=[rg,"yaw",sg,"fov",ag],lg="s",cg="ms",hg=Math.PI/180,Ag="ease-in-out",ug="cubic-bezier(";function dg(e){if("string"==typeof e)return function(e){const[t,...n]=function(e){return e.split(/\r?\n/).map(e=>function(e){const t=e.indexOf("#");return(-1!==t?e.substring(0,t):e).trim()}(e)).filter(e=>""!==e)}(e);if(null==t)throw new Error("Header missing.");const i=function(e){const t=[];for(let n=0;n<e.length;n++){const i=e[n];if(!og.includes(i))throw new Error(`Invalid token in header: '${i}'.`);if(t.includes(i))throw new Error(`Duplicate token in header: '${i}'.`);t.push(i)}if(!t.includes(rg))throw new Error(`Missing required token: '${rg}'.`);return t}(t.split(/\s+/)),r={};if(n.length<2)throw new Error("Expected at least two key frames.");for(const e of n){const{theta:t,phi:n,fov:a}=pg(i,e);null!=t&&(null==r.theta&&(r.theta=[]),r.theta.push(t)),null!=n&&(null==r.phi&&(r.phi=[]),r.phi.push(n)),null!=a&&(null==r.fov&&(r.fov=[]),r.fov.push(a))}if(0===Object.values(r).length)throw new Error("At least one parameter should be animated.");return r}(e);if(Array.isArray(e))return function(e){var t;const n={};if(e.length<2)throw new Error("Expected at least two key frames.");for(const i of e){const{time:e,pitch:r,yaw:a,fov:s}=i;if(null==e)throw new Error("Time missing.");const o=gg(null!==(t=i.interpolation)&&void 0!==t?t:Ag);null!=a&&(null==n.theta&&(n.theta=[]),n.theta.push({time:e,value:a*hg,interpolation:o})),null!=r&&(null==n.phi&&(n.phi=[]),n.phi.push({time:e,value:r*hg,interpolation:o})),null!=s&&(null==n.fov&&(n.fov=[]),n.fov.push({time:e,value:s*hg,interpolation:o}))}if(0===Object.values(n).length)throw new Error("At least one parameter should be animated.");if(Object.values(n).every(t=>t.length!==e.length))throw new Error("All parameters should have the same key frame count.");return n}(e);throw new Error("Expected string or key frame config array.")}function pg(e,t){const n=t.match(/[^()\s]+(\(.*?\))?/g);if(null==n||n.length<e.length)throw new Error(`Missing data for fields: '${e.filter(e=>!(null==n?void 0:n.includes(e))).join(", ")}'.`);if(n.length>e.length)throw new Error(`Excess data: '${n.filter(t=>!e.includes(t)).join(", ")}'.`);const i=e.indexOf(rg),r=function(e){if(e.endsWith(cg))return vg(e.substring(0,e.length-2));if(e.endsWith(lg))return 1e3*vg(e.substring(0,e.length-1));return vg(e)}(n[i]),a=e.indexOf(ag),s=gg(-1===a?Ag:n[a]),o={};for(let t=0;t<n.length;t++){if(t===i||t===a)continue;const l=e[t],c=n[t];switch(l){case"yaw":o.theta={time:r,value:fg(c),interpolation:s};break;case sg:o.phi={time:r,value:fg(c),interpolation:s};break;case"fov":o.fov={time:r,value:fg(c),interpolation:s};break;default:throw new Error(`Unhandled value for header '${l}'.`)}}return o}function fg(e){return e.endsWith("deg")?vg(e.substring(0,e.length-3))*hg:e.endsWith("rad")?vg(e.substring(0,e.length-3)):vg(e)*hg}function gg(e){if("hold"===e)return{type:"hold"};if("linear"===e)return mg(0,0,1,1);if("sine"===e)return mg(.37,0,.63,1);if("sine-in"===e)return mg(.12,0,.39,0);if("sine-out"===e)return mg(.61,1,.88,1);if("ease"===e)return mg(.25,.1,.25,1);if("ease-in"===e)return mg(.42,0,1,1);if("ease-out"===e)return mg(0,0,.58,1);if("ease-in-out"===e)return mg(.42,0,.58,1);if(e.startsWith(ug)&&e.endsWith(")")){const t=e.substring(13,e.length-1).split(/\s*,\s*/);if(4!==t.length)throw new Error(`Expected 4 parameters for the Bezier curve, but got '${t}'.`);return{type:"bezier",x1:vg(t[0]),y1:vg(t[1]),x2:vg(t[2]),y2:vg(t[3])}}throw new Error(`Expected an interpolation token, but found: ${e}`)}function mg(e,t,n,i){return{type:"bezier",x1:e,y1:t,x2:n,y2:i}}function vg(e){const t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error(`Expected a numeric value, but got: ${e}`);return t}var Eg="undefined"!=typeof Float32Array?Float32Array:Array;function bg(){var e=new Eg(16);return Eg!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function Cg(e,t){var n=t[0],i=t[1],r=t[2],a=t[3],s=t[4],o=t[5],l=t[6],c=t[7],h=t[8],A=t[9],u=t[10],d=t[11],p=t[12],f=t[13],g=t[14],m=t[15],v=n*o-i*s,E=n*l-r*s,b=n*c-a*s,C=i*l-r*o,_=i*c-a*o,I=r*c-a*l,x=h*f-A*p,y=h*g-u*p,w=h*m-d*p,M=A*g-u*f,S=A*m-d*f,B=u*m-d*g,T=v*B-E*S+b*M+C*w-_*y+I*x;return T?(T=1/T,e[0]=(o*B-l*S+c*M)*T,e[1]=(r*S-i*B-a*M)*T,e[2]=(f*I-g*_+m*C)*T,e[3]=(u*_-A*I-d*C)*T,e[4]=(l*w-s*B-c*y)*T,e[5]=(n*B-r*w+a*y)*T,e[6]=(g*b-p*I-m*E)*T,e[7]=(h*I-u*b+d*E)*T,e[8]=(s*S-o*w+c*x)*T,e[9]=(i*w-n*S-a*x)*T,e[10]=(p*_-f*b+m*v)*T,e[11]=(A*b-h*_-d*v)*T,e[12]=(o*y-s*M-l*x)*T,e[13]=(n*M-i*y+r*x)*T,e[14]=(f*E-p*C-g*v)*T,e[15]=(h*C-A*E+u*v)*T,e):null}function _g(e,t,n){var i=t[0],r=t[1],a=t[2],s=t[3],o=t[4],l=t[5],c=t[6],h=t[7],A=t[8],u=t[9],d=t[10],p=t[11],f=t[12],g=t[13],m=t[14],v=t[15],E=n[0],b=n[1],C=n[2],_=n[3];return e[0]=E*i+b*o+C*A+_*f,e[1]=E*r+b*l+C*u+_*g,e[2]=E*a+b*c+C*d+_*m,e[3]=E*s+b*h+C*p+_*v,E=n[4],b=n[5],C=n[6],_=n[7],e[4]=E*i+b*o+C*A+_*f,e[5]=E*r+b*l+C*u+_*g,e[6]=E*a+b*c+C*d+_*m,e[7]=E*s+b*h+C*p+_*v,E=n[8],b=n[9],C=n[10],_=n[11],e[8]=E*i+b*o+C*A+_*f,e[9]=E*r+b*l+C*u+_*g,e[10]=E*a+b*c+C*d+_*m,e[11]=E*s+b*h+C*p+_*v,E=n[12],b=n[13],C=n[14],_=n[15],e[12]=E*i+b*o+C*A+_*f,e[13]=E*r+b*l+C*u+_*g,e[14]=E*a+b*c+C*d+_*m,e[15]=E*s+b*h+C*p+_*v,e}function Ig(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function xg(e,t){var n=t[0],i=t[1],r=t[2],a=t[4],s=t[5],o=t[6],l=t[8],c=t[9],h=t[10];return e[0]=Math.hypot(n,i,r),e[1]=Math.hypot(a,s,o),e[2]=Math.hypot(l,c,h),e}function yg(e,t){var n=new Eg(3);xg(n,t);var i=1/n[0],r=1/n[1],a=1/n[2],s=t[0]*i,o=t[1]*r,l=t[2]*a,c=t[4]*i,h=t[5]*r,A=t[6]*a,u=t[8]*i,d=t[9]*r,p=t[10]*a,f=s+h+p,g=0;return f>0?(g=2*Math.sqrt(f+1),e[3]=.25*g,e[0]=(A-d)/g,e[1]=(u-l)/g,e[2]=(o-c)/g):s>h&&s>p?(g=2*Math.sqrt(1+s-h-p),e[3]=(A-d)/g,e[0]=.25*g,e[1]=(o+c)/g,e[2]=(u+l)/g):h>p?(g=2*Math.sqrt(1+h-s-p),e[3]=(u-l)/g,e[0]=(o+c)/g,e[1]=.25*g,e[2]=(A+d)/g):(g=2*Math.sqrt(1+p-s-h),e[3]=(o-c)/g,e[0]=(u+l)/g,e[1]=(A+d)/g,e[2]=.25*g),e}function wg(){var e=new Eg(3);return Eg!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Mg(e,t,n){var i=new Eg(3);return i[0]=e,i[1]=t,i[2]=n,i}function Sg(e,t){var n=t[0]-e[0],i=t[1]-e[1],r=t[2]-e[2];return Math.hypot(n,i,r)}function Bg(e,t,n){var i=t[0],r=t[1],a=t[2],s=n[3]*i+n[7]*r+n[11]*a+n[15];return s=s||1,e[0]=(n[0]*i+n[4]*r+n[8]*a+n[12])/s,e[1]=(n[1]*i+n[5]*r+n[9]*a+n[13])/s,e[2]=(n[2]*i+n[6]*r+n[10]*a+n[14])/s,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});function Tg(){var e=new Eg(4);return Eg!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}wg(),function(){var e,t=(e=new Eg(4),Eg!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();var Rg;wg(),Mg(1,0,0),Mg(0,1,0),Tg(),Tg(),Rg=new Eg(9),Eg!=Float32Array&&(Rg[1]=0,Rg[2]=0,Rg[3]=0,Rg[5]=0,Rg[6]=0,Rg[7]=0),Rg[0]=1,Rg[4]=1,Rg[8]=1;async function Dg(){const e=await async function(){const e=await fetch("data:application/octet-stream;base64,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");return await function(e={}){var t,n,i,r,a,s=e,o=new Promise((e,n)=>{t=e}),l={1076:e=>{const t=[e,Date.now()],n=t.length-2,r=["addEventListener","alert","atob","blur","btoa","cancelAnimationFrame","localStorage","location","locationbar","hash","hasOwnProperty","host","hostname","href","requestAnimationFrame","navigator","userAgent"],a=[2,12,7,1],s=window[r[r[a[a[a.length-1]]+2].length-a[t.length]+1]][r[Math.pow(a[n],r[a.length].length)]]||"no user agent",o=c(32);for(let e=0;e<32;++e)i[o+e]=s.charCodeAt(e%s.length);return o},1870:e=>{var t,n=function(){var e;try{e=Function('return (function() {}.constructor("return this")( ));')()}catch(t){e=window}return e}(),r=Date.now();for(var a in n)if(8==a.length&&110==a.charCodeAt(7)&&105==a.charCodeAt(5)&&97==a.charCodeAt(3)&&108==a.charCodeAt(0)){r=a,t=e;break}for(var s in n[r])if(8==s.length&&97==s.charCodeAt(5)&&104==s.charCodeAt(0)){t=s;break}const o=n[r][t]||"no hostname",l=c(32);for(let e=0;e<32;++e)i[l+e]=o.charCodeAt(e%o.length);return l}};s.noExitRuntime;var c,h=[],A=(e,t,s)=>{var o=((e,t)=>{var s;for(h.length=0;s=i[e++];){var o=105!=s;t+=(o&=112!=s)&&t%8?4:0,h.push(112==s?r[t>>2]:105==s?n[t>>2]:a[t>>3]),t+=o?8:4}return h})(t,s);return l[e](...o)},u={a:{a:(e,t,n)=>A(e,t,n),c:()=>Date.now(),b:e=>{i.length,function(){throw"OOM"}()}}};return WebAssembly.instantiate(s.wasm,u).then(e=>{var o,l=e.instance.exports;s._magic=l.f,s._free=l.g,s._malloc=c=l.i,o=l.d.buffer,s.HEAPU8=i=new Uint8Array(o),n=new Int32Array(o),r=new Uint32Array(o),a=new Float64Array(o),function(e){e.e()}(l),t(s)}),o}({wasm:await e.arrayBuffer()})}();return function(t){const n=e._malloc(32);for(let i=0;i<t.size()&&i<32;i++)e.HEAPU8[n+i]=t.get(i);const i=e._malloc(64);e._magic(n,i);const r=new Uint8Array(64);for(let t=0;t<64;++t)r[t]=e.HEAPU8[i+t];return e._free(n),e._free(i),r}}let Qg,Ug,Lg,Pg,Ng,Fg,Og=!1,kg=null,Gg=[],Hg=[];function zg(e){return a(this,void 0,void 0,function*(){Og=!1;const{ShopAR__TrueScale:t}=window;yield t.initialize(`${af()}/wasm/mediapipe`,e),kg&&clearInterval(kg);const n=[],i=[];kg=setInterval(()=>a(this,void 0,void 0,function*(){if(Og)return;const{error:e,faceWidth:r,ipd:a,translation:s,rotation:o}=yield t.predict(performance.now());Og||(null!=s&&null!=o&&function(e){for(let t of Gg)t(e)}({translation:s,rotation:o}),null==e&&(n.push(r),i.push(a),n.length<10||(n.shift(),i.shift(),function(e,t){for(let n of Hg)n({faceWidth:e,IPD:t})}(Wg(n),Wg(i)))))}),200)})}function Vg(){Hg=[],Gg=[],Og=!0}function Wg(e){let t=0;const n=e.length;for(let i=0;i<n;i++)t+=e[i];return t/n}let qg=null;const jg=new Set;let Yg,Xg,Kg,Jg,Zg,$g,em=!1;function tm(){null==Qg&&(Qg=sf(`${af()}/shopar-deepar.js`,"ShopAR__DeepAR"))}function nm(){null==Ug&&(Ug=sf(`${af()}/shopar-true-scale.js`,"ShopAR__TrueScale"))}function im(e){return a(this,void 0,void 0,function*(){const{licenseKey:t,truescaleUsecase:n,onProgress:i,effectUrl:r,effectOptions:s}=e;return s&&null==s.envmap&&(s.envmap=`${af()}/deepar/default_envmap.webp`),Zg=n,null==Yg&&(Yg=(()=>a(this,void 0,void 0,function*(){em=!1;const e=function(e){var t;const n={Glasses:"user",Shoes:"environment",Watches:"environment",Bracelets:"environment",Hats:"user",Scarves:"user",Necklaces:"user"};return null==e?"user":null!==(t=n[e])&&void 0!==t?t:"user"}(Ng);Lg=yield window.ShopAR__DeepAR.deepar.initialize({licenseKey:t||"your_license_key_goes_here",previewElement:Fg,effect:r,effectOptions:s,rootPath:`${af()}/deepar`,additionalOptions:{hint:$g,cameraConfig:{facingMode:e},pixelRatio:Math.min(window.devicePixelRatio,2),onVerify:yield Dg()},onProgress:i}),Lg.setWatchTicking("Watches"===Ng),"Glasses"===Ng&&(yield Ug,Pg=Lg.getVideoElement(),zg(Pg),"DetectionLoop"!==Zg&&_m(e=>{Jg=e.faceWidth})),em=!0,dm(),Fg.style.display=""}))()),Yg})}function rm(e,t){t=null!=t?t:function(e){const t={Glasses:["rigidFaceTrackingInit","faceInit"],Shoes:["footInit"],Watches:["wristInit"],Bracelets:["wristInit"],Hats:["rigidFaceTrackingInit","faceInit"],Scarves:["rigidFaceTrackingInit","faceInit"],Necklaces:["rigidFaceTrackingInit","faceInit"]};return null==e?void 0:t[e]}(e),e===Ng&&function(e,t){return e===t||null!=e&&null!=t&&e.length===t.length&&e.every(e=>t.find(t=>e===t))&&t.every(t=>e.find(e=>e===t))}(t,$g)||(Ng=e,$g=t)}function am(e){pm(),e!==Fg&&(Fg=e,null!=Lg&&Lg.changePreviewElement(Fg,Math.min(window.devicePixelRatio,2)))}function sm(e){qg=e}function om(e){Lg.callbacks.onFaceTracked=t=>{if(t.some(e=>e.detected)){if(Jg){const e=137/(Jg+5);Lg.changeParameterVector("GLASSES","","scale",e,e,e,0),Lg.changeParameterVector("shopar_glasses","","scale",e,e,e,0),function(e){const t=[-8.362421,4.549,-9.275],n=[8.362421,4.549,-9.275];try{const i=Lg.getTransformationBetween("face_position","temples"),r=bm(i,"temple_left","temple_left_outer","temple_tip_outer_left",n,e).map(gm),a=bm(i,"temple_right","temple_right_outer","temple_tip_outer_right",t,e).map(gm);Lg.changeParameterVector("temple_left","","rotation",r[0],r[1],r[2],0),Lg.changeParameterVector("temple_right","","rotation",a[0],a[1],a[2],0)}catch(e){return}}(e),Vg(),Jg=null}e(),fm("Glasses")}},Lg.callbacks.onFeetTracked=(t,n)=>{(t.detected||n.detected)&&(e(),fm("Shoes"))},Lg.callbacks.onWristTracked=t=>{t.detected&&(e(),fm("Watches"))}}function lm(e,t,n){return a(this,void 0,void 0,function*(){return null!=Xg&&Kg===n||(yield Xg,t.trackingInit={face:(null==$g?void 0:$g.includes("rigidFaceTrackingInit"))||(null==$g?void 0:$g.includes("faceInit")),foot:null==$g?void 0:$g.includes("footInit"),wrist:null==$g?void 0:$g.includes("wristInit")},null==t.envmap&&(t.envmap=`${af()}/deepar/default_envmap.webp`),Xg=Lg.switchEffect(e,t),Lg.setWatchTicking("Watches"===Ng),Kg=n,dm(),Fg.style.display=""),Xg})}function cm(e,t){null!=e&&null!=t&&(Lg.setToneMapping(e),Lg.setExposure(t))}function hm(e,t,n,i){Lg.setBloomEnabled(!!e),null!=t&&Lg.setBloomStrength(t),null!=n&&Lg.setBloomRadius(n),null!=i&&Lg.setBloomThreshold(i)}function Am(){null!=Lg&&(Vg(),null!=Pg&&null!=Pg.srcObject&&Pg.srcObject instanceof MediaStream&&(Pg.srcObject.getTracks().forEach(e=>e.stop()),Pg=null),Lg.shutdown(),pm(),em=!1,Lg=null,Yg=null,Fg.style.display="none")}function um(){return em}function dm(){null!=qg&&(null==Ng||jg.has(Ng)||(qg.style.visibility="visible",qg.style.opacity="1"))}function pm(){null!=qg&&(qg.style.visibility="hidden",qg.style.opacity="0")}function fm(e){null!=qg&&(jg.has(e)||(jg.add(e),qg.style.opacity="0"))}function gm(e){return 180*e/Math.PI}function mm(e,t){let n=t[0],i=t[1],r=t[2],a=t[3],s=n*n,o=i*i,l=r*r;return e[0]=Math.atan2(2*(a*n+i*r),1-2*(s+o)),e[1]=-Math.PI/2+2*Math.atan2(Math.sqrt(1+2*(a*i-n*r)),Math.sqrt(1-2*(a*i-n*r))),e[2]=Math.atan2(2*(a*r+n*i),1-2*(o+l)),e}function vm(e,t,n){const i=Cg(bg(),e),r=function(e,t){var n=Math.sin(t),i=Math.cos(t);return e[0]=i,e[1]=0,e[2]=-n,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=n,e[9]=0,e[10]=i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}(bg(),-n),a=_g(bg(),i,r),s=_g(bg(),a,e),o=_g(bg(),s,t),l=yg(Tg(),o);return mm(wg(),l)}function Em(e,t){let n=Lg.getTransformationBetween("face_position",t);const i=mm(wg(),yg(Tg(),n)).map(gm);n=function(e,t,n,i){var r=t[0],a=t[1],s=t[2],o=t[3],l=r+r,c=a+a,h=s+s,A=r*l,u=r*c,d=r*h,p=a*c,f=a*h,g=s*h,m=o*l,v=o*c,E=o*h,b=i[0],C=i[1],_=i[2];return e[0]=(1-(p+g))*b,e[1]=(u+E)*b,e[2]=(d-v)*b,e[3]=0,e[4]=(u-E)*C,e[5]=(1-(A+g))*C,e[6]=(f+m)*C,e[7]=0,e[8]=(d+v)*_,e[9]=(f-m)*_,e[10]=(1-(A+p))*_,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}(bg(),function(e,t,n,i){var r=.5*Math.PI/180;t*=r,n*=r,i*=r;var a=Math.sin(t),s=Math.cos(t),o=Math.sin(n),l=Math.cos(n),c=Math.sin(i),h=Math.cos(i);return e[0]=a*l*h-s*o*c,e[1]=s*o*h+a*l*c,e[2]=s*l*c-a*o*h,e[3]=s*l*h+a*o*c,e}(Tg(),i[0],0,i[2]),Ig(wg(),n),xg(wg(),n));const r=Cg(bg(),e);return _g(bg(),r,n)}function bm(e,t,n,i,r,a){let s=Em(e,t);const o=_g(bg(),e,s),l=Bg(wg(),Ig(wg(),o),function(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}(bg(),[a,a,a])),c=Math.atan2(r[0]-l[0],Math.abs(r[2]-l[2]));let h;try{h=Lg.getTransformationBetween(t,n)}catch(t){return vm(e,s,c)}const A=_g(bg(),o,h),u=Mg(l[0],r[1],r[2]),d=Bg(wg(),u,Cg(bg(),A));let p=Lg.getClosestPointOnMesh(n,d);try{const e=Lg.getClosestPointOnMesh(i,d);Sg(d,e)<Sg(d,p)&&(p=e)}catch(e){}const f=Bg(wg(),p,A);return vm(e,s,c-Math.atan2(f[0]-l[0],Math.abs(f[2]-l[2])))}function Cm(e){!function(e){Gg.push(e)}(e)}function _m(e){!function(e){Hg.push(e)}(e)}var Im;function xm(){return[Im.Android,Im.iOS,Im.Tablet].includes(function(){if("undefined"!=typeof window&&window.navigator){const e=window.navigator.userAgent,t=window.navigator.platform||"",n=["Macintosh","MacIntel","MacPPC","Mac68K"],i=["Win32","Win64","Windows","WinCE"],r=["iPhone","iPod","iPad"],a="ontouchstart"in window||navigator.maxTouchPoints>0;return-1!==r.indexOf(t)?Im.iOS:-1!==n.indexOf(t)?a?Im.Tablet:Im.MacOS:-1!==i.indexOf(t)?Im.Windows:/Android/.test(e)?Im.Android:/Linux/.test(t)?Im.Linux:a?Im.Tablet:Im.Unknown}return Im.Unknown}())}function ym(e,t){if(null==e)throw new Error(`'${t}' not specified.`)}function wm(e,t){if("boolean"!=typeof e)throw new Error(`'${t}' must be a boolean.`)}function Mm(e,t){if("number"!=typeof e)throw new Error(`'${t}' must be a number.`)}function Sm(e,t,n,i){if("number"!=typeof e)throw new Error(`'${t}' must be a number.`);if(e<n)throw new Error(`'${t}' must be greater than ${n}.`);if(e>i)throw new Error(`'${t}' must be less than ${i}.`)}function Bm(e,t){if("string"!=typeof e)throw new Error(`'${t}' must be a string.`)}function Tm(e,t,n){if("string"!=typeof e)throw new Error(`'${t}' must be a string.`);if(!n.includes(e))throw new Error(`'${t}' must be ${n.join("' or '")}.`)}function Rm(e,t){if(!(e instanceof HTMLElement))throw new Error(`'${t}' must be an HTMLElement.`)}function Dm(e,t){if("function"!=typeof e)throw new Error(`'${t}' must be a function.`)}function Qm(t){const{apiKey:n,sku:i,targetElement:r,initialState:a,initialAnimation:s,baseUrl:o,defaultUI:l,interactive:c,touchAction:h,zoomEnabled:A,minZoom:u,maxZoom:d,alwaysTransparentBackground:p,strings:f,debounceAREngagementMs:g,onDebouncedAREngagement:m,debounce3DEngagementMs:v,onDebounced3DEngagement:E}=t;Um(n),function(e){ym(e,"sku"),Bm(e,"sku"),function(e){if(0===e.length||e.length>100||!/^[\p{L}0-9 ./_-]+$/u.test(e))throw new Error("Invalid 'sku'.")}(e)}(i),ym(r,"targetElement"),Rm(r,"targetElement"),null!=a&&Tm(a,"initialState",e),null!=s&&function(e,t){if("string"!=typeof e&&!Array.isArray(e))throw new Error(`'${t}' must be a string or array.`)}(s,"initialAnimation"),null!=o&&Bm(o,"baseUrl"),null!=l&&wm(l,"defaultUI"),null!=c&&wm(c,"interactive"),null!=h&&Tm(h,"touchAction",xc),null!=A&&wm(A,"zoomEnabled"),null!=u&&Sm(u,"minZoom",.1,1),null!=d&&Sm(d,"maxZoom",1,1/0),null!=p&&wm(p,"alwaysTransparentBackground"),null!=f&&function(e,t,n){for(const i of n){const n=e[i];if(null!=n&&"string"!=typeof n)throw new Error(`Value for key '${i}' in '${t}' must be a string or undefined.`)}}(f,"strings",hf),null!=g&&Mm(g,"debounceAREngagementMs"),null!=m&&Dm(m,"onDebouncedAREngagement"),null!=v&&Mm(v,"debounce3DEngagementMs"),null!=E&&Dm(E,"onDebounced3DEngagement")}function Um(e){ym(e,"apiKey"),Bm(e,"apiKey"),function(e){if(!function(e){return 24===e.length&&/^[0-9a-fA-F]{24}$/.test(e)}(e))throw new Error("Invalid 'apiKey'.")}(e)}!function(e){e[e.Unknown=0]="Unknown",e[e.Android=1]="Android",e[e.iOS=2]="iOS",e[e.Tablet=3]="Tablet",e[e.MacOS=4]="MacOS",e[e.Windows=5]="Windows",e[e.Linux=6]="Linux"}(Im||(Im={}));let Lm=!1;function Pm(e){return a(this,void 0,void 0,function*(){!function(e){const{apiKey:t,targetElement:n}=e;Um(t),ym(n,"targetElement"),Rm(n,"targetElement")}(e);const{targetElement:t}=e;rf(e.baseUrl),Wf();const{trackEvent:n}=function(e){const t=performance.now(),n=Uf();return{trackEvent:(i,r={})=>{r=Object.assign(Object.assign({},r),{userAgent:zf,hostname:window.location.hostname,href:window.location.href,pluginVersion:tf,sessionId:Gf,setupId:n,timeSinceSetup:performance.now()-t,apiKey:e}),qf(()=>{window.ShopAR__analytics.trackEventImpl(i,r)})}}}(e.apiKey);n("visionSetup");const i=yield function(e){return a(this,void 0,void 0,function*(){return yield g(()=>a(this,void 0,void 0,function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin/vision?${new URLSearchParams({apiKey:e,sid:d()})}`).catch(e=>{throw new Xp(`API unavailable: ${o(e)}`)});if(!t.ok)throw new Xp("API response not OK.",t.status);const n=t.headers.get("content-length");if(n&&parseInt(n)>1048576)throw new Xp("API response too large.");try{return yield t.json()}catch(e){throw new Xp(`API returned invalid body: ${o(e)}`)}}))})}(e.apiKey);n("visionApiResponse",i);const{arKey:r}=i,l=Mf(t),{getSetupId:c,findUI:h}=l,A=c();tm(),nm();const{setTargetElement:u,getDeepARTarget:p,setVisibilityParameters:f,getUIState:m,setUIState:v,startDeepARLoading:E,stopDeepARLoading:b,showCameraError:C}=h();if(m()!=_f.None)throw Error("UI state is not None, this is weird..");v(_f.AR),u(t),f(!1,!1,!0,!1,void 0,void 0),E(),yield Qg,Nm(c(),A);try{n("visionArLaunch"),rm("Glasses",["faceInit"]),am(p()),yield im({licenseKey:r,truescaleUsecase:"DetectionLoop"}),Nm(c(),A),Nm(c(),A)}catch(e){const t=o(e);throw n("visionArLaunchFailure",{errorName:s(e),errorMessage:t}),C(),new Error(`AR failed: ${t}`)}finally{b()}return Lm=!0,{registerFacePoseListener:e=>{Lm&&(n("registerFacePoseListener"),Cm(e))},registerFaceMeasurementListener:e=>{Lm&&(n("registerFaceMeasurementListener"),_m(e))},switchEffect:e=>a(this,void 0,void 0,function*(){Lm&&(n("switchEffect",{arUrl:e}),function(e){Lg.switchEffect(e)}(e))}),clearEffect:()=>{Lm&&(n("clearEffect"),Lg.clearEffect())},close:()=>{if(Lm){if(Lm=!1,n("visionClose"),m()!==_f.AR)throw new Error("AR not launched.");v(_f.None)}}}})}function Nm(e,t){if(e!==t)throw new Error("Setup cancelled. Please ensure that setup is only called once.")}function Fm(e){return a(this,void 0,void 0,function*(){var t,c,h,A;Qm(e);const{apiKey:u,sku:p,targetElement:f,initialState:g,initialAnimation:m}=e,v=e.touchAction,E=null==e.zoomEnabled||e.zoomEnabled,b=e.minZoom,C=e.maxZoom,_=!0===e.alwaysTransparentBackground;!function(e){const t=getComputedStyle(e);if(!["static","relative"].includes(t.position))throw new Error(`Invalid targetElement's position. Expected 'static' or 'relative', but found '${t.position}'.`)}(f),rf(e.baseUrl),function(e){if(null!=e)for(const t of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(cf,t)){console.warn(`String for key '${t}' will be ignored.`);continue}const n=e[t];null!=n&&(cf[t]=n)}}(e.strings);const I=null!=m?dg(m):null,x=null!=(null==I?void 0:I.theta)?ig(I.theta):null,y=null!=(null==I?void 0:I.phi)?ig(I.phi):null,w=null!=(null==I?void 0:I.fov)?ig(I.fov):null,M=function(e){const t=function(e){const{apiKey:t,sku:n,yaw:i,pitch:r,fov:a,forcedTransparency:s}=e,o=[];return o.push(`apiKey=${t}`),o.push(`sku=${n}`),null!=i&&o.push(`yaw=${i}`),null!=r&&o.push(`pitch=${r}`),null!=a&&o.push(`fov=${a}`),null!=s&&o.push(`forcedTransparency=${s}`),o.join("&")}(e);return null==ef[t]&&(ef[t]=Yp(e).catch(e=>{throw delete ef[t],e})),ef[t]}(function(e,t,n,i,r,a){return Object.assign(Object.assign(Object.assign(Object.assign({apiKey:e,sku:t,sid:d(),initialFov:"16"},null!=n&&{yaw:`${Jp(Kp(n))}`}),null!=i&&{pitch:`${Jp(Kp(i))}`}),null!=r&&{fov:`${Jp(Kp(r))}`}),a&&{forcedTransparency:`${a}`})}(u,p,null==x?void 0:x.get(),null==y?void 0:y.get(),null==w?void 0:w.get(),_)),S=Mf(f),{getSetupId:B,findUI:T,findQR:R,isInteractive:D,setInteractive:Q}=S,U=B();Wf();const{prepareEvent:L,submitEvent:P,trackEvent:N,arInteracted:F,previewInteracted:O,setDebounceAREngagementMs:k,setOnDebouncedAREngagement:G,setDebouncePreviewEngagementMs:H,setOnDebouncedPreviewEngagement:z,flushEngagementCallbacks:V}=function(e,t){const n=performance.now(),i=Uf(),r=Lf(),a=Lf(),s=Pf(),o=Pf();window.setInterval(()=>{if(r.dirty||a.dirty){const e=r.engagementMs,t=a.engagementMs,n=e+t;r.clearDirty(),a.clearDirty(),h("heartbeat",{engagementTotal:n,engagementAR:e,engagement3D:t})}},1e3);const l=(r,a={})=>({name:r,props:a=Object.assign(Object.assign({},a),{userAgent:zf,hostname:window.location.hostname,href:window.location.href,pluginVersion:tf,sessionId:Gf,setupId:i,timeSinceSetup:performance.now()-n,sku:e,apiKey:t})}),c=({name:e,props:t})=>{qf(()=>{window.ShopAR__analytics.trackEventImpl(e,t)})},h=(e,t={})=>{c(l(e,t))};return{prepareEvent:l,submitEvent:c,trackEvent:h,arInteracted:()=>{const e=performance.now();r.interact(e),s.interact(e)},previewInteracted:()=>{const e=performance.now();a.interact(e),o.interact(e)},setDebounceAREngagementMs:e=>{s.debounceDurationMs=e},setOnDebouncedAREngagement:e=>{s.onDebouncedEngagement=e},setDebouncePreviewEngagementMs:e=>{o.debounceDurationMs=e},setOnDebouncedPreviewEngagement:e=>{o.onDebouncedEngagement=e},flushEngagementCallbacks:()=>{s.flush(),o.flush()}}}(p,u),W=L("setup");let q;k(e.debounceAREngagementMs),G(e.onDebouncedAREngagement),H(e.debounce3DEngagementMs),z(e.onDebounced3DEngagement);try{q=yield M}catch(e){const t=o(e);throw N("apiError",{errorName:s(e),errorMessage:t,errorStatusCode:e instanceof Xp?e.status:void 0}),new Error(`API error: ${t}`)}Om(B(),U);const{category:j,arUrl:Y,arEnvUrl:X,arDiamondEnvUrl:K,arToneMapping:J,arToneMappingExposure:Z,arBloomEnabled:$,arBloomStrength:ee,arBloomRadius:te,arBloomThreshold:ne,arKey:ie,arPromptEnabled:re,arPromptText:ae,arPromptImage:se,previewUrl:oe,previewEnvUrl:le,previewDiamondEnvUrl:ce,previewToneMapping:he,previewToneMappingExposure:Ae,previewBloomEnabled:ue,previewBloomStrength:de,previewBloomRadius:pe,previewBloomThreshold:fe,previewPosterUrl:ge,cameraErrorText:me,qrPromptText:ve}=q;var Ee;null!=Y||null!=oe?(P(W),N("apiResponse",q)):(N("apiResponseFailure",q),Ee="SKU not found (or both 3D and AR disabled).",console.error(`ShopAR Plugin: ${Ee}`));const be=null!=Y&&function(e){return null!=e&&Zp.includes(e)}(j),Ce=null==(null===(t=e._internalOptions)||void 0===t?void 0:t.qrEnabled)||(null===(c=e._internalOptions)||void 0===c?void 0:c.qrEnabled),_e=be&&function(e){return null!=e&&$p.includes(e)}(j),Ie=Ce&&_e&&!xm(),xe=be&&!Ie,ye=null!=oe;Om(B(),U);const{setTargetElement:we,getDeepARTarget:Me,getDeepARPrompt:Se,getThreeTarget:Be,customizeDeepARPrompt:Te,customizeCameraError:Re,customizeQRPrompt:De,setVisibilityParameters:Qe,getUIState:Ue,setUIState:Le,setDefaultUIActions:Pe,startDeepARLoading:Ne,stopDeepARLoading:Fe,showCameraError:Oe,updateDeepARLoadingProgress:ke}=T();we(f);Qe(null==e.defaultUI||e.defaultUI,Ie,xe,ye,j,g),Te(null!==(A=null!==(h=function(e){switch(e){case"Glasses":return cf["prompt.ar.glasses"];case"Shoes":return cf["prompt.ar.shoes"];case"Watches":return cf["prompt.ar.watches"];case"Bracelets":return cf["prompt.ar.bracelets"];case"Scarves":return cf["prompt.ar.scarves"];case"Hats":return cf["prompt.ar.hats"];case"Necklaces":return cf["prompt.ar.necklaces"];default:return}}(j))&&void 0!==h?h:ae)&&void 0!==A?A:"",null!=se?se:""),Re(me),De(ve);const Ge=Be();Ge.baseUrl=`${af()}/3d`,Ge.posterUrl=null!=ge?ge:null,function(e,t){const n=e.parentNode;if(null==n)throw new Error("Parent node missing.");new MutationObserver(n=>{for(const i of n)for(const n of i.removedNodes)if(n===e)return void t()}).observe(n,{childList:!0})}(f,()=>{V(),Ue()!==_f.QR||He()||Ve(),Ue()===_f.AR&&um()&&Am(),Ue()===_f.Preview&&(Ge.paused=!0),Le(_f.None),Ge.remove(),function(e){wf.delete(e)}(f)});const{qrPaused:He,qrDraw:ze,qrPause:Ve}=R(),We=null==e.interactive||e.interactive;Ge.interactivityDisabled=!We;let qe=0;if(Ue()===_f.QR){if(!He())if(Ie){N(Nf);try{yield ze(u,p)}catch(e){const t=o(e);throw new Error(`QR failed: ${t}`)}}else Ve(),Le(_f.None)}else if(Ue()===_f.AR){if(um())if(xe&&!Lm){N(Ff),Ne(),tm(),"Glasses"===j&&nm(),Sf(S),am(Me()),rm(j),sm(re?Se():null);const e=e=>{ke(e.loaded/e.total*100)};yield lm(Y,{envmap:X,diamondEnvMap:K,onProgress:e},`${Y}${X}${K}`),cm(J,Z),hm($,ee,te,ne),om(F),Om(B(),U),Fe()}else Am(),Le(_f.None)}else Ue()===_f.Preview&&(ye?(N(Of),yield customElements.whenDefined("shopar-3d"),Ge.posterUrl=null!=ge?ge:null,Ge.glbUrl=oe,Ge.envUrl=null!=le?le:`${af()}/env/default.hdr`,Ge.diamondEnvUrl=null!=ce?ce:null,Ge.category=null!=j?j:null,Ge.touchAction=null!=v?v:null,Ge.zoomDisabled=!E,Ge.minZoom=null!=b?b:null,Ge.maxZoom=null!=C?C:null,Ge.alwaysTransparentBackground=_,Ge.toneMapping=null!=he?he:"ACES",Ge.toneMappingExposure=null!=Ae?Ae:1,Ge.bloomEnabled=null!=ue?ue:null,Ge.bloomStrength=null!=de?de:null,Ge.bloomRadius=null!=pe?pe:null,Ge.bloomThreshold=null!=fe?fe:null,Ge.onInteracted=O,Ge.animation=null!=m?m:null,Ge.paused=!1,Ge.style.display="",yield Ge.flushChanges()):(Ge.posterUrl=null,Ge.glbUrl=null,Ge.envUrl=null,Ge.diamondEnvUrl=null,Ge.bloomEnabled=null,Ge.paused=!0,Ge.style.display="none",Le(_f.None)));const je=()=>a(this,void 0,void 0,function*(){if(Ie)try{N(Nf);const e=++qe;if(Ue()===_f.Preview&&(Ge.paused=!0,Ge.style.display="none"),Le(_f.QR),yield ze(u,p),qe!==e)return;return void Om(B(),U)}catch(e){const t=o(e);throw N("qrLaunchFailure",{errorName:s(e),errorMessage:t}),new Error(`QR failed: ${t}`)}if(!xe)throw new i("Model does not have AR enabled.");try{N(Ff);const e=++qe;if(Ue()===_f.Preview&&(Ge.paused=!0,Ge.style.display="none"),Sf(S),Le(_f.AR),tm(),"Glasses"===j&&nm(),Ne(),yield Qg,qe!==e)return;Om(B(),U),rm(j),am(Me()),sm(re?Se():null);const t=e=>{ke(e.loaded/e.total*100)};if(um())yield lm(Y,{envmap:X,diamondEnvMap:K,onProgress:t},`${Y}${X}${K}`);else{if(yield im({licenseKey:ie,effectUrl:Y,effectOptions:{envmap:X,diamondEnvMap:K},onProgress:t}),qe!==e)return;Om(B(),U)}if(cm(J,Z),hm($,ee,te,ne),om(F),qe!==e)return;if(Om(B(),U),qe!==e)return;Om(B(),U)}catch(e){const t=s(e),n=o(e);if(N("arLaunchFailure",{errorName:t,errorMessage:n}),Oe(),"CameraPermissionDeniedError"===t)throw new r(n);throw new i(n)}finally{Fe()}}),Ye=()=>a(this,void 0,void 0,function*(){if(!ye)throw new n("Model does not have 3D enabled.");try{N(Of),Ue()===_f.AR&&(Am(),Ve()),Le(_f.Preview),yield customElements.whenDefined("shopar-3d"),Ge.posterUrl=null!=ge?ge:null,Ge.glbUrl=oe,Ge.envUrl=null!=le?le:`${af()}/env/default.hdr`,Ge.diamondEnvUrl=null!=ce?ce:null,Ge.category=null!=j?j:null,Ge.touchAction=null!=v?v:null,Ge.zoomDisabled=!E,Ge.minZoom=null!=b?b:null,Ge.maxZoom=null!=C?C:null,Ge.alwaysTransparentBackground=_,Ge.toneMapping=null!=he?he:"ACES",Ge.toneMappingExposure=null!=Ae?Ae:1,Ge.bloomEnabled=null!=ue?ue:null,Ge.bloomStrength=null!=de?de:null,Ge.bloomRadius=null!=pe?pe:null,Ge.bloomThreshold=null!=fe?fe:null,Ge.onInteracted=O,Ge.animation=null!=m?m:null,Ge.paused=!1,Ge.style.display="",yield Ge.flushChanges()}catch(e){const t=o(e);throw N("previewLaunchFailure",{errorName:s(e),errorMessage:t}),new n(t)}}),Xe=()=>a(this,void 0,void 0,function*(){Ue()!==_f.None&&("AR"!==g||Ue()!==_f.AR&&Ue()!==_f.QR)&&("3D"===g&&Ue()===_f.Preview||(++qe,V(),Ue()===_f.QR||Ue()===_f.AR?(Am(),Ve()):Ue()===_f.Preview&&(Ge.paused=!0,Ge.style.display="none"),Le(_f.None),"AR"!==g?"3D"!==g||(yield Ye()):yield je()))});return Pe(l("launchAR",je),l("launch3D",Ye),l("close",Xe)),"AR"===g?(yield je(),Om(B(),U)):"3D"===g&&(yield Ye(),Om(B(),U)),Lm=!1,{launchAR:be?l("launchAR",je):void 0,launch3D:ye?l("launch3D",Ye):void 0,closeAR:be?l("closeAR",()=>a(this,void 0,void 0,function*(){Ue()!==_f.AR&&Ue()!==_f.QR||"AR"!==g&&(++qe,V(),Am(),Ve(),Le(_f.None),"3D"!==g||(yield Ye()))})):void 0,close3D:ye?l("close3D",()=>a(this,void 0,void 0,function*(){Ue()===_f.Preview&&"3D"!==g&&(++qe,V(),Ge.paused=!0,Ge.style.display="none",Le(_f.None),"AR"!==g||(yield je()))})):void 0,close:be||ye?l("close",Xe):void 0,isInteractive:()=>D(),setInteractive:e=>Q(e)}})}function Om(e,t){if(e!==t)throw new Error("Setup cancelled. Please ensure that setup is only called once.")}const km={setup:function(e){return a(this,void 0,void 0,function*(){return l("visionSetup",()=>Pm(e))()})}},Gm={setup:function(e){return a(this,void 0,void 0,function*(){return l("setup",()=>Fm(e))()})},version:tf};export{r as CameraPermissionDeniedError,n as Launch3DError,i as LaunchARError,e as PREVIEW_STATES,t as PluginError,Gm as plugin,km as vision};
|
|
12
|
+
*/var rh=Uint8Array,ah=Uint16Array,sh=Int32Array,oh=new rh([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]),lh=new rh([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]),ch=new rh([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),hh=function(e,t){for(var n=new ah(31),i=0;i<31;++i)n[i]=t+=1<<e[i-1];var r=new sh(n[30]);for(i=1;i<30;++i)for(var a=n[i];a<n[i+1];++a)r[a]=a-n[i]<<5|i;return{b:n,r:r}},Ah=hh(oh,2),uh=Ah.b,dh=Ah.r;uh[28]=258,dh[258]=28;for(var ph=hh(lh,0).b,fh=new ah(32768),gh=0;gh<32768;++gh){var mh=(43690&gh)>>1|(21845&gh)<<1;mh=(61680&(mh=(52428&mh)>>2|(13107&mh)<<2))>>4|(3855&mh)<<4,fh[gh]=((65280&mh)>>8|(255&mh)<<8)>>1}var vh=function(e,t,n){for(var i=e.length,r=0,a=new ah(t);r<i;++r)e[r]&&++a[e[r]-1];var s,o=new ah(t);for(r=1;r<t;++r)o[r]=o[r-1]+a[r-1]<<1;s=new ah(1<<t);var l=15-t;for(r=0;r<i;++r)if(e[r])for(var c=r<<4|e[r],h=t-e[r],A=o[e[r]-1]++<<h,u=A|(1<<h)-1;A<=u;++A)s[fh[A]>>l]=c;return s},Eh=new rh(288);for(gh=0;gh<144;++gh)Eh[gh]=8;for(gh=144;gh<256;++gh)Eh[gh]=9;for(gh=256;gh<280;++gh)Eh[gh]=7;for(gh=280;gh<288;++gh)Eh[gh]=8;var bh=new rh(32);for(gh=0;gh<32;++gh)bh[gh]=5;var Ch=vh(Eh,9),_h=vh(bh,5),Ih=function(e){for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},xh=function(e,t,n){var i=t/8|0;return(e[i]|e[i+1]<<8)>>(7&t)&n},yh=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},wh=function(e){return(e+7)/8|0},Mh=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Sh=function(e,t,n){var i=new Error(t||Mh[e]);if(i.code=e,Error.captureStackTrace&&Error.captureStackTrace(i,Sh),!n)throw i;return i},Bh=new rh(0);function Th(e,t){return function(e,t,n,i){var r=e.length;if(!r||t.f&&!t.l)return n||new rh(0);var a=!n,s=a||2!=t.i,o=t.i;a&&(n=new rh(3*r));var l=function(e){var t=n.length;if(e>t){var i=new rh(Math.max(2*t,e));i.set(n),n=i}},c=t.f||0,h=t.p||0,A=t.b||0,u=t.l,d=t.d,p=t.m,f=t.n,g=8*r;do{if(!u){c=xh(e,h,1);var m=xh(e,h+1,3);if(h+=3,!m){var v=e[(B=wh(h)+4)-4]|e[B-3]<<8,E=B+v;if(E>r){o&&Sh(0);break}s&&l(A+v),n.set(e.subarray(B,E),A),t.b=A+=v,t.p=h=8*E,t.f=c;continue}if(1==m)u=Ch,d=_h,p=9,f=5;else if(2==m){var b=xh(e,h,31)+257,C=xh(e,h+10,15)+4,_=b+xh(e,h+5,31)+1;h+=14;for(var I=new rh(_),x=new rh(19),y=0;y<C;++y)x[ch[y]]=xh(e,h+3*y,7);h+=3*C;var w=Ih(x),M=(1<<w)-1,S=vh(x,w);for(y=0;y<_;){var B,T=S[xh(e,h,M)];if(h+=15&T,(B=T>>4)<16)I[y++]=B;else{var R=0,D=0;for(16==B?(D=3+xh(e,h,3),h+=2,R=I[y-1]):17==B?(D=3+xh(e,h,7),h+=3):18==B&&(D=11+xh(e,h,127),h+=7);D--;)I[y++]=R}}var Q=I.subarray(0,b),U=I.subarray(b);p=Ih(Q),f=Ih(U),u=vh(Q,p),d=vh(U,f)}else Sh(1);if(h>g){o&&Sh(0);break}}s&&l(A+131072);for(var L=(1<<p)-1,P=(1<<f)-1,N=h;;N=h){var F=(R=u[yh(e,h)&L])>>4;if((h+=15&R)>g){o&&Sh(0);break}if(R||Sh(2),F<256)n[A++]=F;else{if(256==F){N=h,u=null;break}var O=F-254;if(F>264){var k=oh[y=F-257];O=xh(e,h,(1<<k)-1)+uh[y],h+=k}var G=d[yh(e,h)&P],H=G>>4;if(G||Sh(3),h+=15&G,U=ph[H],H>3&&(k=lh[H],U+=yh(e,h)&(1<<k)-1,h+=k),h>g){o&&Sh(0);break}s&&l(A+131072);var z=A+O;if(A<U){var V=0-U,W=Math.min(U,z);for(V+A<0&&Sh(3);A<W;++A)n[A]=i[V+A]}for(;A<z;++A)n[A]=n[A-U]}}t.l=u,t.p=N,t.b=A,t.f=c,u&&(c=1,t.m=p,t.d=d,t.n=f)}while(!c);return A!=n.length&&a?function(e,t,n){return(null==n||n>e.length)&&(n=e.length),new rh(e.subarray(0,n))}(n,0,A):n.subarray(0,A)}(e.subarray((i=t,(8!=(15&(n=e)[0])||n[0]>>4>7||(n[0]<<8|n[1])%31)&&Sh(6,"invalid zlib data"),(n[1]>>5&1)==+!i&&Sh(6,"invalid zlib data: "+(32&n[1]?"need":"unexpected")+" dictionary"),2+(n[1]>>3&4)),-4),{i:2},t,t);var n,i}var Rh="undefined"!=typeof TextDecoder&&new TextDecoder;try{Rh.decode(Bh,{stream:!0})}catch(Sd){}class Dh extends Yl{constructor(e){super(e),this.type=Be}parse(e){const t=65536,n=14,i=65537,r=Math.pow(2.7182818,2.2),a={l:0,c:0,lc:0};function s(e,t,n,i,r){for(;n<e;)t=t<<8|k(i,r),n+=8;n-=e,a.l=t>>n&(1<<e)-1,a.c=t,a.lc=n}const o=new Array(59);function l(e,t,n,r,l,c){const h=t;let A=0,u=0;for(;r<=l;r++){if(h.value-t.value>n)return!1;s(6,A,u,e,h);const i=a.l;if(A=a.c,u=a.lc,c[r]=i,63==i){if(h.value-t.value>n)throw new Error("Something wrong with hufUnpackEncTable");s(8,A,u,e,h);let i=a.l+6;if(A=a.c,u=a.lc,r+i>l+1)throw new Error("Something wrong with hufUnpackEncTable");for(;i--;)c[r++]=0;r--}else if(i>=59){let e=i-59+2;if(r+e>l+1)throw new Error("Something wrong with hufUnpackEncTable");for(;e--;)c[r++]=0;r--}}!function(e){for(let e=0;e<=58;++e)o[e]=0;for(let t=0;t<i;++t)o[e[t]]+=1;let t=0;for(let e=58;e>0;--e){const n=t+o[e]>>1;o[e]=t,t=n}for(let t=0;t<i;++t){const n=e[t];n>0&&(e[t]=n|o[n]++<<6)}}(c)}function c(e){return 63&e}function h(e){return e>>6}const A={c:0,lc:0};function u(e,t,n,i){e=e<<8|k(n,i),t+=8,A.c=e,A.lc=t}const d={c:0,lc:0};function p(e,t,n,i,r,a,s,o,l){if(e==t){i<8&&(u(n,i,r,a),n=A.c,i=A.lc);let e=n>>(i-=8);if(e=new Uint8Array([e])[0],o.value+e>l)return!1;const t=s[o.value-1];for(;e-- >0;)s[o.value++]=t}else{if(!(o.value<l))return!1;s[o.value++]=e}d.c=n,d.lc=i}function f(e){return 65535&e}function g(e){const t=f(e);return t>32767?t-65536:t}const m={a:0,b:0};function v(e,t){const n=g(e),i=g(t),r=n+(1&i)+(i>>1),a=r,s=r-i;m.a=a,m.b=s}function E(e,t){const n=f(e),i=f(t),r=n-(i>>1)&65535,a=i+r-32768&65535;m.a=a,m.b=r}function b(e,t,n,i,r,a,s){const o=s<16384,l=n>r?r:n;let c,h,A=1;for(;A<=l;)A<<=1;for(A>>=1,c=A,A>>=1;A>=1;){h=0;const s=h+a*(r-c),l=a*A,u=a*c,d=i*A,p=i*c;let f,g,b,C;for(;h<=s;h+=u){let r=h;const a=h+i*(n-c);for(;r<=a;r+=p){const n=r+d,i=r+l,a=i+d;o?(v(e[r+t],e[i+t]),f=m.a,b=m.b,v(e[n+t],e[a+t]),g=m.a,C=m.b,v(f,g),e[r+t]=m.a,e[n+t]=m.b,v(b,C),e[i+t]=m.a,e[a+t]=m.b):(E(e[r+t],e[i+t]),f=m.a,b=m.b,E(e[n+t],e[a+t]),g=m.a,C=m.b,E(f,g),e[r+t]=m.a,e[n+t]=m.b,E(b,C),e[i+t]=m.a,e[a+t]=m.b)}if(n&A){const n=r+l;o?v(e[r+t],e[n+t]):E(e[r+t],e[n+t]),f=m.a,e[n+t]=m.b,e[r+t]=f}}if(r&A){let r=h;const a=h+i*(n-c);for(;r<=a;r+=p){const n=r+d;o?v(e[r+t],e[n+t]):E(e[r+t],e[n+t]),f=m.a,e[n+t]=m.b,e[r+t]=f}}c=A,A>>=1}return h}function C(e,t,r,a,s,o){const f=r.value,g=O(t,r),m=O(t,r);r.value+=4;const v=O(t,r);if(r.value+=4,g<0||g>=i||m<0||m>=i)throw new Error("Something wrong with HUF_ENCSIZE");const E=new Array(i),b=new Array(16384);if(function(e){for(let t=0;t<16384;t++)e[t]={},e[t].len=0,e[t].lit=0,e[t].p=null}(b),l(e,r,a-(r.value-f),g,m,E),v>8*(a-(r.value-f)))throw new Error("Something wrong with hufUncompress");!function(e,t,i,r){for(;t<=i;t++){const i=h(e[t]),a=c(e[t]);if(i>>a)throw new Error("Invalid table entry");if(a>n){const e=r[i>>a-n];if(e.len)throw new Error("Invalid table entry");if(e.lit++,e.p){const t=e.p;e.p=new Array(e.lit);for(let n=0;n<e.lit-1;++n)e.p[n]=t[n]}else e.p=new Array(1);e.p[e.lit-1]=t}else if(a){let e=0;for(let s=1<<n-a;s>0;s--){const s=r[(i<<n-a)+e];if(s.len||s.p)throw new Error("Invalid table entry");s.len=a,s.lit=t,e++}}}}(E,g,m,b),function(e,t,i,r,a,s,o,l,f){let g=0,m=0;const v=o,E=Math.trunc(r.value+(a+7)/8);for(;r.value<E;)for(u(g,m,i,r),g=A.c,m=A.lc;m>=n;){const a=t[g>>m-n&16383];if(a.len)m-=a.len,p(a.lit,s,g,m,i,r,l,f,v),g=d.c,m=d.lc;else{if(!a.p)throw new Error("hufDecode issues");let t;for(t=0;t<a.lit;t++){const n=c(e[a.p[t]]);for(;m<n&&r.value<E;)u(g,m,i,r),g=A.c,m=A.lc;if(m>=n&&h(e[a.p[t]])==(g>>m-n&(1<<n)-1)){m-=n,p(a.p[t],s,g,m,i,r,l,f,v),g=d.c,m=d.lc;break}}if(t==a.lit)throw new Error("hufDecode issues")}}const b=8-a&7;for(g>>=b,m-=b;m>0;){const e=t[g<<n-m&16383];if(!e.len)throw new Error("hufDecode issues");m-=e.len,p(e.lit,s,g,m,i,r,l,f,v),g=d.c,m=d.lc}}(E,b,e,r,v,m,o,s,{value:0})}function _(e){for(let t=1;t<e.length;t++){const n=e[t-1]+e[t]-128;e[t]=n}}function I(e,t){let n=0,i=Math.floor((e.length+1)/2),r=0;const a=e.length-1;for(;!(r>a||(t[r++]=e[n++],r>a));)t[r++]=e[i++]}function x(e){let t=e.byteLength;const n=new Array;let i=0;const r=new DataView(e);for(;t>0;){const e=r.getInt8(i++);if(e<0){const a=-e;t-=a+1;for(let e=0;e<a;e++)n.push(r.getUint8(i++))}else{const a=e;t-=2;const s=r.getUint8(i++);for(let e=0;e<a+1;e++)n.push(s)}}return n}function y(e,t,n){let i,r=1;for(;r<64;)i=t[e.value],65280==i?r=64:i>>8==255?r+=255&i:(n[r]=i,r++),e.value++}function w(e,t){t[0]=W(e[0]),t[1]=W(e[1]),t[2]=W(e[5]),t[3]=W(e[6]),t[4]=W(e[14]),t[5]=W(e[15]),t[6]=W(e[27]),t[7]=W(e[28]),t[8]=W(e[2]),t[9]=W(e[4]),t[10]=W(e[7]),t[11]=W(e[13]),t[12]=W(e[16]),t[13]=W(e[26]),t[14]=W(e[29]),t[15]=W(e[42]),t[16]=W(e[3]),t[17]=W(e[8]),t[18]=W(e[12]),t[19]=W(e[17]),t[20]=W(e[25]),t[21]=W(e[30]),t[22]=W(e[41]),t[23]=W(e[43]),t[24]=W(e[9]),t[25]=W(e[11]),t[26]=W(e[18]),t[27]=W(e[24]),t[28]=W(e[31]),t[29]=W(e[40]),t[30]=W(e[44]),t[31]=W(e[53]),t[32]=W(e[10]),t[33]=W(e[19]),t[34]=W(e[23]),t[35]=W(e[32]),t[36]=W(e[39]),t[37]=W(e[45]),t[38]=W(e[52]),t[39]=W(e[54]),t[40]=W(e[20]),t[41]=W(e[22]),t[42]=W(e[33]),t[43]=W(e[38]),t[44]=W(e[46]),t[45]=W(e[51]),t[46]=W(e[55]),t[47]=W(e[60]),t[48]=W(e[21]),t[49]=W(e[34]),t[50]=W(e[37]),t[51]=W(e[47]),t[52]=W(e[50]),t[53]=W(e[56]),t[54]=W(e[59]),t[55]=W(e[61]),t[56]=W(e[35]),t[57]=W(e[36]),t[58]=W(e[48]),t[59]=W(e[49]),t[60]=W(e[57]),t[61]=W(e[58]),t[62]=W(e[62]),t[63]=W(e[63])}function M(e){const t=.5*Math.cos(.7853975),n=.5*Math.cos(3.14159/16),i=.5*Math.cos(3.14159/8),r=.5*Math.cos(3*3.14159/16),a=.5*Math.cos(.981746875),s=.5*Math.cos(3*3.14159/8),o=.5*Math.cos(1.374445625),l=new Array(4),c=new Array(4),h=new Array(4),A=new Array(4);for(let u=0;u<8;++u){const d=8*u;l[0]=i*e[d+2],l[1]=s*e[d+2],l[2]=i*e[d+6],l[3]=s*e[d+6],c[0]=n*e[d+1]+r*e[d+3]+a*e[d+5]+o*e[d+7],c[1]=r*e[d+1]-o*e[d+3]-n*e[d+5]-a*e[d+7],c[2]=a*e[d+1]-n*e[d+3]+o*e[d+5]+r*e[d+7],c[3]=o*e[d+1]-a*e[d+3]+r*e[d+5]-n*e[d+7],h[0]=t*(e[d+0]+e[d+4]),h[3]=t*(e[d+0]-e[d+4]),h[1]=l[0]+l[3],h[2]=l[1]-l[2],A[0]=h[0]+h[1],A[1]=h[3]+h[2],A[2]=h[3]-h[2],A[3]=h[0]-h[1],e[d+0]=A[0]+c[0],e[d+1]=A[1]+c[1],e[d+2]=A[2]+c[2],e[d+3]=A[3]+c[3],e[d+4]=A[3]-c[3],e[d+5]=A[2]-c[2],e[d+6]=A[1]-c[1],e[d+7]=A[0]-c[0]}for(let u=0;u<8;++u)l[0]=i*e[16+u],l[1]=s*e[16+u],l[2]=i*e[48+u],l[3]=s*e[48+u],c[0]=n*e[8+u]+r*e[24+u]+a*e[40+u]+o*e[56+u],c[1]=r*e[8+u]-o*e[24+u]-n*e[40+u]-a*e[56+u],c[2]=a*e[8+u]-n*e[24+u]+o*e[40+u]+r*e[56+u],c[3]=o*e[8+u]-a*e[24+u]+r*e[40+u]-n*e[56+u],h[0]=t*(e[u]+e[32+u]),h[3]=t*(e[u]-e[32+u]),h[1]=l[0]+l[3],h[2]=l[1]-l[2],A[0]=h[0]+h[1],A[1]=h[3]+h[2],A[2]=h[3]-h[2],A[3]=h[0]-h[1],e[0+u]=A[0]+c[0],e[8+u]=A[1]+c[1],e[16+u]=A[2]+c[2],e[24+u]=A[3]+c[3],e[32+u]=A[3]-c[3],e[40+u]=A[2]-c[2],e[48+u]=A[1]-c[1],e[56+u]=A[0]-c[0]}function S(e){for(let t=0;t<64;++t){const n=e[0][t],i=e[1][t],r=e[2][t];e[0][t]=n+1.5747*r,e[1][t]=n-.1873*i-.4682*r,e[2][t]=n+1.8556*i}}function B(e,t,n){for(let i=0;i<64;++i)t[n+i]=Di(T(e[i]))}function T(e){return e<=1?Math.sign(e)*Math.pow(Math.abs(e),2.2):Math.sign(e)*Math.pow(r,Math.abs(e)-1)}function R(e){return new DataView(e.array.buffer,e.offset.value,e.size)}function D(e){const t=e.viewer.buffer.slice(e.offset.value,e.offset.value+e.size),n=new Uint8Array(x(t)),i=new Uint8Array(n.length);return _(n),I(n,i),new DataView(i.buffer)}function Q(e){const t=Th(e.array.slice(e.offset.value,e.offset.value+e.size)),n=new Uint8Array(t.length);return _(t),I(t,n),new DataView(n.buffer)}function U(e){const n=e.viewer,i={value:e.offset.value},r=new Uint16Array(e.columns*e.lines*(e.inputChannels.length*e.type)),a=new Uint8Array(8192);let s=0;const o=new Array(e.inputChannels.length);for(let t=0,n=e.inputChannels.length;t<n;t++)o[t]={},o[t].start=s,o[t].end=o[t].start,o[t].nx=e.columns,o[t].ny=e.lines,o[t].size=e.type,s+=o[t].nx*o[t].ny*o[t].size;const l=q(n,i),c=q(n,i);if(c>=8192)throw new Error("Something is wrong with PIZ_COMPRESSION BITMAP_SIZE");if(l<=c)for(let e=0;e<c-l+1;e++)a[e+l]=G(n,i);const h=new Uint16Array(t),A=function(e,n){let i=0;for(let r=0;r<t;++r)(0==r||e[r>>3]&1<<(7&r))&&(n[i++]=r);const r=i-1;for(;i<t;)n[i++]=0;return r}(a,h),u=O(n,i);C(e.array,n,i,u,r,s);for(let t=0;t<e.inputChannels.length;++t){const e=o[t];for(let n=0;n<o[t].size;++n)b(r,e.start+n,e.nx,e.size,e.ny,e.nx*e.size,A)}!function(e,t,n){for(let i=0;i<n;++i)t[i]=e[t[i]]}(h,r,s);let d=0;const p=new Uint8Array(r.buffer.byteLength);for(let t=0;t<e.lines;t++)for(let t=0;t<e.inputChannels.length;t++){const e=o[t],n=e.nx*e.size,i=new Uint8Array(r.buffer,2*e.end,2*n);p.set(i,d),d+=2*n,e.end+=n}return new DataView(p.buffer)}function L(e){const t=Th(e.array.slice(e.offset.value,e.offset.value+e.size)),n=e.inputChannels.length*e.lines*e.columns*e.totalBytes,i=new ArrayBuffer(n),r=new DataView(i);let a=0,s=0;const o=new Array(4);for(let n=0;n<e.lines;n++)for(let n=0;n<e.inputChannels.length;n++){let i=0;switch(e.inputChannels[n].pixelType){case 1:o[0]=a,o[1]=o[0]+e.columns,a=o[1]+e.columns;for(let n=0;n<e.columns;++n)i+=t[o[0]++]<<8|t[o[1]++],r.setUint16(s,i,!0),s+=2;break;case 2:o[0]=a,o[1]=o[0]+e.columns,o[2]=o[1]+e.columns,a=o[2]+e.columns;for(let n=0;n<e.columns;++n)i+=t[o[0]++]<<24|t[o[1]++]<<16|t[o[2]++]<<8,r.setUint32(s,i,!0),s+=4}}return r}function P(e){const t=e.viewer,n={value:e.offset.value},i=new Uint8Array(e.columns*e.lines*(e.inputChannels.length*e.type*2)),r={version:H(t,n),unknownUncompressedSize:H(t,n),unknownCompressedSize:H(t,n),acCompressedSize:H(t,n),dcCompressedSize:H(t,n),rleCompressedSize:H(t,n),rleUncompressedSize:H(t,n),rleRawSize:H(t,n),totalAcUncompressedCount:H(t,n),totalDcUncompressedCount:H(t,n),acCompression:H(t,n)};if(r.version<2)throw new Error("EXRLoader.parse: "+te.compression+" version "+r.version+" is unsupported");const a=new Array;let s=q(t,n)-2;for(;s>0;){const e=N(t.buffer,n),i=G(t,n),r=i>>2&3,o=new Int8Array([(i>>4)-1])[0],l=G(t,n);a.push({name:e,index:o,type:l,compression:r}),s-=e.length+3}const o=te.channels,l=new Array(e.inputChannels.length);for(let t=0;t<e.inputChannels.length;++t){const n=l[t]={},i=o[t];n.name=i.name,n.compression=0,n.decoded=!1,n.type=i.pixelType,n.pLinear=i.pLinear,n.width=e.columns,n.height=e.lines}const c={idx:new Array(3)};for(let t=0;t<e.inputChannels.length;++t){const e=l[t];for(let n=0;n<a.length;++n){const i=a[n];e.name==i.name&&(e.compression=i.compression,i.index>=0&&(c.idx[i.index]=t),e.offset=t)}}let h,A,u;if(r.acCompressedSize>0)switch(r.acCompression){case 0:h=new Uint16Array(r.totalAcUncompressedCount),C(e.array,t,n,r.acCompressedSize,h,r.totalAcUncompressedCount);break;case 1:const i=Th(e.array.slice(n.value,n.value+r.totalAcUncompressedCount));h=new Uint16Array(i.buffer),n.value+=r.totalAcUncompressedCount}if(r.dcCompressedSize>0){const t={array:e.array,offset:n,size:r.dcCompressedSize};A=new Uint16Array(Q(t).buffer),n.value+=r.dcCompressedSize}r.rleRawSize>0&&(u=x(Th(e.array.slice(n.value,n.value+r.rleCompressedSize)).buffer),n.value+=r.rleCompressedSize);let d=0;const p=new Array(l.length);for(let e=0;e<p.length;++e)p[e]=new Array;for(let t=0;t<e.lines;++t)for(let t=0;t<l.length;++t)p[t].push(d),d+=l[t].width*e.type*2;!function(e,t,n,i,r,a){let s=new DataView(a.buffer);const o=n[e.idx[0]].width,l=n[e.idx[0]].height,c=Math.floor(o/8),h=Math.ceil(o/8),A=Math.ceil(l/8),u=o-8*(h-1),d=l-8*(A-1),p={value:0},f=new Array(3),g=new Array(3),m=new Array(3),v=new Array(3),E=new Array(3);for(let n=0;n<3;++n)E[n]=t[e.idx[n]],f[n]=n<1?0:f[n-1]+h*A,g[n]=new Float32Array(64),m[n]=new Uint16Array(64),v[n]=new Uint16Array(64*h);for(let t=0;t<A;++t){let a=8;t==A-1&&(a=d);let o=8;for(let e=0;e<h;++e){e==h-1&&(o=u);for(let e=0;e<3;++e)m[e].fill(0),m[e][0]=r[f[e]++],y(p,i,m[e]),w(m[e],g[e]),M(g[e]);S(g);for(let t=0;t<3;++t)B(g[t],v[t],64*e)}let l=0;for(let i=0;i<3;++i){const r=n[e.idx[i]].type;for(let e=8*t;e<8*t+a;++e){l=E[i][e];for(let t=0;t<c;++t){const n=64*t+8*(7&e);s.setUint16(l+0*r,v[i][n+0],!0),s.setUint16(l+2*r,v[i][n+1],!0),s.setUint16(l+4*r,v[i][n+2],!0),s.setUint16(l+6*r,v[i][n+3],!0),s.setUint16(l+8*r,v[i][n+4],!0),s.setUint16(l+10*r,v[i][n+5],!0),s.setUint16(l+12*r,v[i][n+6],!0),s.setUint16(l+14*r,v[i][n+7],!0),l+=16*r}}if(c!=h)for(let e=8*t;e<8*t+a;++e){const t=E[i][e]+8*c*2*r,n=64*c+8*(7&e);for(let e=0;e<o;++e)s.setUint16(t+2*e*r,v[i][n+e],!0)}}}const b=new Uint16Array(o);s=new DataView(a.buffer);for(let t=0;t<3;++t){n[e.idx[t]].decoded=!0;const i=n[e.idx[t]].type;if(2==n[t].type)for(let e=0;e<l;++e){const n=E[t][e];for(let e=0;e<o;++e)b[e]=s.getUint16(n+2*e*i,!0);for(let e=0;e<o;++e)s.setFloat32(n+2*e*i,W(b[e]),!0)}}}(c,p,l,h,A,i);for(let t=0;t<l.length;++t){const n=l[t];if(!n.decoded){if(2!==n.compression)throw new Error("EXRLoader.parse: unsupported channel compression");{let r=0,a=0;for(let s=0;s<e.lines;++s){let e=p[t][r];for(let t=0;t<n.width;++t){for(let t=0;t<2*n.type;++t)i[e++]=u[a+t*n.width*n.height];a++}r++}}}}return new DataView(i.buffer)}function N(e,t){const n=new Uint8Array(e);let i=0;for(;0!=n[t.value+i];)i+=1;const r=(new TextDecoder).decode(n.slice(t.value,t.value+i));return t.value=t.value+i+1,r}function F(e,t){const n=e.getInt32(t.value,!0);return t.value=t.value+4,n}function O(e,t){const n=e.getUint32(t.value,!0);return t.value=t.value+4,n}function k(e,t){const n=e[t.value];return t.value=t.value+1,n}function G(e,t){const n=e.getUint8(t.value);return t.value=t.value+1,n}const H=function(e,t){let n;return n="getBigInt64"in DataView.prototype?Number(e.getBigInt64(t.value,!0)):e.getUint32(t.value+4,!0)+Number(e.getUint32(t.value,!0)<<32),t.value+=8,n};function z(e,t){const n=e.getFloat32(t.value,!0);return t.value+=4,n}function V(e,t){return Di(z(e,t))}function W(e){const t=(31744&e)>>10,n=1023&e;return(e>>15?-1:1)*(t?31===t?n?NaN:1/0:Math.pow(2,t-15)*(1+n/1024):n/1024*6103515625e-14)}function q(e,t){const n=e.getUint16(t.value,!0);return t.value+=2,n}function j(e,t){return W(q(e,t))}function Y(e,t,n,i,r){return"string"===i||"stringvector"===i||"iccProfile"===i?function(e,t,n){const i=(new TextDecoder).decode(new Uint8Array(e).slice(t.value,t.value+n));return t.value=t.value+n,i}(t,n,r):"chlist"===i?function(e,t,n,i){const r=n.value,a=[];for(;n.value<r+i-1;){const i=N(t,n),r=F(e,n),s=G(e,n);n.value+=3;const o=F(e,n),l=F(e,n);a.push({name:i,pixelType:r,pLinear:s,xSampling:o,ySampling:l})}return n.value+=1,a}(e,t,n,r):"chromaticities"===i?function(e,t){return{redX:z(e,t),redY:z(e,t),greenX:z(e,t),greenY:z(e,t),blueX:z(e,t),blueY:z(e,t),whiteX:z(e,t),whiteY:z(e,t)}}(e,n):"compression"===i?function(e,t){return["NO_COMPRESSION","RLE_COMPRESSION","ZIPS_COMPRESSION","ZIP_COMPRESSION","PIZ_COMPRESSION","PXR24_COMPRESSION","B44_COMPRESSION","B44A_COMPRESSION","DWAA_COMPRESSION","DWAB_COMPRESSION"][G(e,t)]}(e,n):"box2i"===i?function(e,t){return{xMin:F(e,t),yMin:F(e,t),xMax:F(e,t),yMax:F(e,t)}}(e,n):"envmap"===i?function(e,t){return["ENVMAP_LATLONG","ENVMAP_CUBE"][G(e,t)]}(e,n):"tiledesc"===i?function(e,t){const n=O(e,t),i=O(e,t),r=G(e,t);return{xSize:n,ySize:i,levelMode:["ONE_LEVEL","MIPMAP_LEVELS","RIPMAP_LEVELS"][15&r],roundingMode:["ROUND_DOWN","ROUND_UP"][r>>4]}}(e,n):"lineOrder"===i?function(e,t){return["INCREASING_Y","DECREASING_Y","RANDOM_Y"][G(e,t)]}(e,n):"float"===i?z(e,n):"v2f"===i?function(e,t){return[z(e,t),z(e,t)]}(e,n):"v3f"===i?function(e,t){return[z(e,t),z(e,t),z(e,t)]}(e,n):"int"===i?F(e,n):"rational"===i?function(e,t){return[F(e,t),O(e,t)]}(e,n):"timecode"===i?function(e,t){return[O(e,t),O(e,t)]}(e,n):"preview"===i?(n.value+=r,"skipped"):void(n.value+=r)}function X(e,t,n,i){const r=new Array(e);for(let a=0;a<e;a++){const e=1<<a;let s=t/e|0;"ROUND_UP"==i&&s*e<t&&(s+=1);const o=Math.max(s,1);r[a]=(o+n-1)/n|0}return r}function K(){const e=this,t=e.offset,n={value:0};for(let i=0;i<e.tileCount;i++){const i=F(e.viewer,t),r=F(e.viewer,t);t.value+=8,e.size=O(e.viewer,t);const a=i*e.blockWidth,s=r*e.blockHeight;e.columns=a+e.blockWidth>e.width?e.width-a:e.blockWidth,e.lines=s+e.blockHeight>e.height?e.height-s:e.blockHeight;const o=e.columns*e.totalBytes,l=e.size<e.lines*o?e.uncompress(e):R(e);t.value+=e.size;for(let t=0;t<e.lines;t++){const i=t*e.columns*e.totalBytes;for(let r=0;r<e.inputChannels.length;r++){const o=te.channels[r].name,c=e.channelByteOffsets[o]*e.columns,h=e.decodeChannels[o];if(void 0===h)continue;n.value=i+c;const A=(e.height-(1+s+t))*e.outLineWidth;for(let t=0;t<e.columns;t++){const i=A+(t+a)*e.outputChannels+h;e.byteArray[i]=e.getter(l,n)}}}}}function J(){const e=this,t=e.offset,n={value:0};for(let i=0;i<e.height/e.blockHeight;i++){const r=F(e.viewer,t)-te.dataWindow.yMin;e.size=O(e.viewer,t),e.lines=r+e.blockHeight>e.height?e.height-r:e.blockHeight;const a=e.columns*e.totalBytes,s=e.size<e.lines*a?e.uncompress(e):R(e);t.value+=e.size;for(let t=0;t<e.blockHeight;t++){const r=i*e.blockHeight,o=t+e.scanOrder(r);if(o>=e.height)continue;const l=t*a,c=(e.height-1-o)*e.outLineWidth;for(let t=0;t<e.inputChannels.length;t++){const i=te.channels[t].name,r=e.channelByteOffsets[i]*e.columns,a=e.decodeChannels[i];if(void 0!==a){n.value=l+r;for(let t=0;t<e.columns;t++){const i=c+t*e.outputChannels+a;e.byteArray[i]=e.getter(s,n)}}}}}}const Z={value:0},$=new DataView(e),ee=new Uint8Array(e),te=function(e,t,n){const i={};if(20000630!=e.getUint32(0,!0))throw new Error("THREE.EXRLoader: Provided file doesn't appear to be in OpenEXR format.");i.version=e.getUint8(4);const r=e.getUint8(5);i.spec={singleTile:!!(2&r),longName:!!(4&r),deepFormat:!!(8&r),multiPart:!!(16&r)},n.value=8;let a=!0;for(;a;){const r=N(t,n);if(0==r)a=!1;else{const a=N(t,n),s=Y(e,t,n,a,O(e,n));void 0===s?console.warn(`THREE.EXRLoader: Skipped unknown header attribute type '${a}'.`):i[r]=s}}if(-7&r)throw console.error("THREE.EXRHeader:",i),new Error("THREE.EXRLoader: Provided file is currently unsupported.");return i}($,e,Z),ne=function(e,t,n,i,r){const a={size:0,viewer:t,array:n,offset:i,width:e.dataWindow.xMax-e.dataWindow.xMin+1,height:e.dataWindow.yMax-e.dataWindow.yMin+1,inputChannels:e.channels,channelByteOffsets:{},scanOrder:null,totalBytes:null,columns:null,lines:null,type:null,uncompress:null,getter:null,format:null,colorSpace:$e};switch(e.compression){case"NO_COMPRESSION":a.blockHeight=1,a.uncompress=R;break;case"RLE_COMPRESSION":a.blockHeight=1,a.uncompress=D;break;case"ZIPS_COMPRESSION":a.blockHeight=1,a.uncompress=Q;break;case"ZIP_COMPRESSION":a.blockHeight=16,a.uncompress=Q;break;case"PIZ_COMPRESSION":a.blockHeight=32,a.uncompress=U;break;case"PXR24_COMPRESSION":a.blockHeight=16,a.uncompress=L;break;case"DWAA_COMPRESSION":a.blockHeight=32,a.uncompress=P;break;case"DWAB_COMPRESSION":a.blockHeight=256,a.uncompress=P;break;default:throw new Error("EXRLoader.parse: "+e.compression+" is unsupported")}const s={};for(const t of e.channels)switch(t.name){case"Y":case"R":case"G":case"B":case"A":s[t.name]=!0,a.type=t.pixelType}let o=!1;if(s.R&&s.G&&s.B)o=!s.A,a.outputChannels=4,a.decodeChannels={R:0,G:1,B:2,A:3};else{if(!s.Y)throw new Error("EXRLoader.parse: file contains unsupported data channels.");a.outputChannels=1,a.decodeChannels={Y:0}}if(1==a.type)switch(r){case Se:a.getter=j;break;case Be:a.getter=q}else{if(2!=a.type)throw new Error("EXRLoader.parse: unsupported pixelType "+a.type+" for "+e.compression+".");switch(r){case Se:a.getter=z;break;case Be:a.getter=V}}a.columns=a.width;const l=a.width*a.height*a.outputChannels;switch(r){case Se:a.byteArray=new Float32Array(l),o&&a.byteArray.fill(1,0,l);break;case Be:a.byteArray=new Uint16Array(l),o&&a.byteArray.fill(15360,0,l);break;default:console.error("THREE.EXRLoader: unsupported type: ",r)}let c=0;for(const t of e.channels)void 0!==a.decodeChannels[t.name]&&(a.channelByteOffsets[t.name]=c),c+=2*t.pixelType;if(a.totalBytes=c,a.outLineWidth=a.width*a.outputChannels,"INCREASING_Y"===e.lineOrder?a.scanOrder=e=>e:a.scanOrder=e=>a.height-1-e,4==a.outputChannels?(a.format=Re,a.colorSpace=$e):(a.format=Ue,a.colorSpace=Je),e.spec.singleTile){a.blockHeight=e.tiles.ySize,a.blockWidth=e.tiles.xSize;const n=function(e,t,n){let i=0;switch(e.levelMode){case"ONE_LEVEL":i=1;break;case"MIPMAP_LEVELS":i=function(e,t){const n=Math.log2(e);return"ROUND_DOWN"==t?Math.floor(n):Math.ceil(n)}(Math.max(t,n),e.roundingMode)+1;break;case"RIPMAP_LEVELS":throw new Error("THREE.EXRLoader: RIPMAP_LEVELS tiles currently unsupported.")}return i}(e.tiles,a.width,a.height),r=X(n,a.width,e.tiles.xSize,e.tiles.roundingMode),s=X(n,a.height,e.tiles.ySize,e.tiles.roundingMode);a.tileCount=r[0]*s[0];for(let e=0;e<n;e++)for(let n=0;n<s[e];n++)for(let n=0;n<r[e];n++)H(t,i);a.decode=K.bind(a)}else{a.blockWidth=a.width;const e=Math.ceil(a.height/a.blockHeight);for(let n=0;n<e;n++)H(t,i);a.decode=J.bind(a)}return a}(te,$,ee,Z,this.type);return ne.decode(),{header:te,width:ne.width,height:ne.height,data:ne.byteArray,format:ne.format,colorSpace:ne.colorSpace,type:this.type}}setDataType(e){return this.type=e,this}load(e,t,n,i){return super.load(e,function(e,n){e.colorSpace=n.colorSpace,e.minFilter=_e,e.magFilter=_e,e.generateMipmaps=!1,e.flipY=!1,t&&t(e,n)},n,i)}}let Qh,Uh=!1;function Lh(e){Uh||(Qh=new ih,new Dh,Uh=!0);const t=function(e){const t=new Ho(e.data,e.width,e.height,void 0,e.type,void 0,me,me,_e,_e,1,$e);return t.flipY=!0,t.generateMipmaps=!1,t.needsUpdate=!0,t}(Qh.parse(e));return t.mapping=pe,t.colorSpace=$e,t}var Ph=function(){var e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if("object"!=typeof WebAssembly)return{supported:!1};var n,i=WebAssembly.validate(e)?"b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb":"b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",r=WebAssembly.instantiate(a(i),{}).then(function(e){(n=e.instance).exports.__wasm_call_ctors()});function a(e){for(var n=new Uint8Array(e.length),i=0;i<e.length;++i){var r=e.charCodeAt(i);n[i]=r>96?r-97:r>64?r-39:r+4}var a=0;for(i=0;i<e.length;++i)n[a++]=n[i]<60?t[n[i]]:64*(n[i]-60)+n[++i];return n.buffer.slice(0,a)}function s(e,t,i,r,a,s){var o=n.exports.sbrk,l=i+3&-4,c=o(l*r),h=o(a.length),A=new Uint8Array(n.exports.memory.buffer);A.set(a,h);var u=e(c,i,r,h,a.length);if(0==u&&s&&s(c,l,r),t.set(A.subarray(c,c+i*r)),o(c-o(0)),0!=u)throw new Error("Malformed buffer data: "+u)}var o={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},l={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},c=[],h=0;function A(e){var t={object:new Worker(e),pending:0,requests:{}};return t.object.onmessage=function(e){var n=e.data;t.pending-=n.count,t.requests[n.id][n.action](n.value),delete t.requests[n.id]},t}function u(e){r.then(function(){var t=e.data;try{var i=new Uint8Array(t.count*t.size);s(n.exports[t.mode],i,t.count,t.size,t.source,n.exports[t.filter]),self.postMessage({id:t.id,count:t.count,action:"resolve",value:i},[i.buffer])}catch(e){self.postMessage({id:t.id,count:t.count,action:"reject",value:e})}})}return{ready:r,supported:!0,useWorkers:function(e){!function(e){for(var t="var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(a(i))+"]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;"+s.toString()+u.toString(),n=new Blob([t],{type:"text/javascript"}),r=URL.createObjectURL(n),o=0;o<e;++o)c[o]=A(r);URL.revokeObjectURL(r)}(e)},decodeVertexBuffer:function(e,t,i,r,a){s(n.exports.meshopt_decodeVertexBuffer,e,t,i,r,n.exports[o[a]])},decodeIndexBuffer:function(e,t,i,r){s(n.exports.meshopt_decodeIndexBuffer,e,t,i,r)},decodeIndexSequence:function(e,t,i,r){s(n.exports.meshopt_decodeIndexSequence,e,t,i,r)},decodeGltfBuffer:function(e,t,i,r,a,c){s(n.exports[l[a]],e,t,i,r,n.exports[o[c]])},decodeGltfBufferAsync:function(e,t,i,a,A){return c.length>0?function(e,t,n,i,r){for(var a=c[0],s=1;s<c.length;++s)c[s].pending<a.pending&&(a=c[s]);return new Promise(function(s,o){var l=new Uint8Array(n),c=h++;a.pending+=e,a.requests[c]={resolve:s,reject:o},a.object.postMessage({id:c,count:e,size:t,source:l,mode:i,filter:r},[l.buffer])})}(e,t,i,l[a],o[A]):r.then(function(){var r=new Uint8Array(e*t);return s(n.exports[l[a]],r,e,t,i,n.exports[o[A]]),r})}}}();const Nh=new WeakMap;class Fh extends zl{constructor(e){super(e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(e){return this.decoderPath=e,this}setDecoderConfig(e){return this.decoderConfig=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,t,n,i){const r=new ql(this.manager);r.setPath(this.path),r.setResponseType("arraybuffer"),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials),r.load(e,e=>{this.parse(e,t,i)},n,i)}parse(e,t,n=()=>{}){this.decodeDracoFile(e,t,null,null,Ze,n).catch(n)}decodeDracoFile(e,t,n,i,r=$e,a=()=>{}){const s={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:i||this.defaultAttributeTypes,useUniqueIDs:!!n,vertexColorSpace:r};return this.decodeGeometry(e,s).then(t).catch(a)}decodeGeometry(e,t){const n=JSON.stringify(t);if(Nh.has(e)){const t=Nh.get(e);if(t.key===n)return t.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let i;const r=this.workerNextTaskID++,a=e.byteLength,s=this._getWorker(r,a).then(n=>(i=n,new Promise((n,a)=>{i._callbacks[r]={resolve:n,reject:a},i.postMessage({type:"decode",id:r,taskConfig:t,buffer:e},[e])}))).then(e=>this._createGeometry(e.geometry));return s.catch(()=>!0).then(()=>{i&&r&&this._releaseTask(i,r)}),Nh.set(e,{key:n,promise:s}),s}_createGeometry(e){const t=new qi;e.index&&t.setIndex(new Li(e.index.array,1));for(let n=0;n<e.attributes.length;n++){const i=e.attributes[n],r=i.name,a=i.array,s=i.itemSize,o=new Li(a,s);"color"===r&&(this._assignVertexColorSpace(o,i.vertexColorSpace),o.normalized=a instanceof Float32Array==0),t.setAttribute(r,o)}return t}_assignVertexColorSpace(e,t){if(t!==Ze)return;const n=new wi;for(let t=0,i=e.count;t<i;t++)n.fromBufferAttribute(e,t).convertSRGBToLinear(),e.setXYZ(t,n.r,n.g,n.b)}_loadLibrary(e,t){const n=new ql(this.manager);return n.setPath(this.decoderPath),n.setResponseType(t),n.setWithCredentials(this.withCredentials),new Promise((t,i)=>{n.load(e,t,void 0,i)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then(t=>{const n=t[0];e||(this.decoderConfig.wasmBinary=t[1]);const i=Oh.toString(),r=["/* draco decoder */",n,"","/* worker */",i.substring(i.indexOf("{")+1,i.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([r]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const e=new Worker(this.workerSourceURL);e._callbacks={},e._taskCosts={},e._taskLoad=0,e.postMessage({type:"init",decoderConfig:this.decoderConfig}),e.onmessage=function(t){const n=t.data;switch(n.type){case"decode":e._callbacks[n.id].resolve(n);break;case"error":e._callbacks[n.id].reject(n);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+n.type+'"')}},this.workerPool.push(e)}else this.workerPool.sort(function(e,t){return e._taskLoad>t._taskLoad?-1:1});const n=this.workerPool[this.workerPool.length-1];return n._taskCosts[e]=t,n._taskLoad+=t,n})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e<this.workerPool.length;++e)this.workerPool[e].terminate();return this.workerPool.length=0,""!==this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),this}}function Oh(){let e,t;function n(e,t,n,i,r,a){const s=a.num_components(),o=n.num_points()*s,l=o*r.BYTES_PER_ELEMENT,c=function(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}(e,r),h=e._malloc(l);t.GetAttributeDataArrayForAllPoints(n,a,c,l,h);const A=new r(e.HEAPF32.buffer,h,o).slice();return e._free(h),{name:i,array:A,itemSize:s}}onmessage=function(i){const r=i.data;switch(r.type){case"init":e=r.decoderConfig,t=new Promise(function(t){e.onModuleLoaded=function(e){t({draco:e})},DracoDecoderModule(e)});break;case"decode":const i=r.buffer,a=r.taskConfig;t.then(e=>{const t=e.draco,s=new t.Decoder;try{const e=function(e,t,i,r){const a=r.attributeIDs,s=r.attributeTypes;let o,l;const c=t.GetEncodedGeometryType(i);if(c===e.TRIANGULAR_MESH)o=new e.Mesh,l=t.DecodeArrayToMesh(i,i.byteLength,o);else{if(c!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");o=new e.PointCloud,l=t.DecodeArrayToPointCloud(i,i.byteLength,o)}if(!l.ok()||0===o.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+l.error_msg());const h={index:null,attributes:[]};for(const i in a){const l=self[s[i]];let c,A;if(r.useUniqueIDs)A=a[i],c=t.GetAttributeByUniqueId(o,A);else{if(A=t.GetAttributeId(o,e[a[i]]),-1===A)continue;c=t.GetAttribute(o,A)}const u=n(e,t,o,i,l,c);"color"===i&&(u.vertexColorSpace=r.vertexColorSpace),h.attributes.push(u)}return c===e.TRIANGULAR_MESH&&(h.index=function(e,t,n){const i=3*n.num_faces(),r=4*i,a=e._malloc(r);t.GetTrianglesUInt32Array(n,r,a);const s=new Uint32Array(e.HEAPF32.buffer,a,i).slice();return e._free(a),{array:s,itemSize:1}}(e,t,o)),e.destroy(o),h}(t,s,new Int8Array(i),a),o=e.attributes.map(e=>e.array.buffer);e.index&&o.push(e.index.array.buffer),self.postMessage({type:"decode",id:r.id,geometry:e},o)}catch(e){console.error(e),self.postMessage({type:"error",id:r.id,error:e.message})}finally{t.destroy(s)}})}}}function kh(e,t){if(0===t)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(2===t||1===t){let n=e.getIndex();if(null===n){const t=[],i=e.getAttribute("position");if(void 0===i)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e<i.count;e++)t.push(e);e.setIndex(t),n=e.getIndex()}const i=n.count-2,r=[];if(2===t)for(let e=1;e<=i;e++)r.push(n.getX(0)),r.push(n.getX(e)),r.push(n.getX(e+1));else for(let e=0;e<i;e++)e%2==0?(r.push(n.getX(e)),r.push(n.getX(e+1)),r.push(n.getX(e+2))):(r.push(n.getX(e+2)),r.push(n.getX(e+1)),r.push(n.getX(e)));r.length/3!==i&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const a=e.clone();return a.setIndex(r),a.clearGroups(),a}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",t),e}class Gh extends zl{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new Kh(e)}),this.register(function(e){return new jh(e)}),this.register(function(e){return new Yh(e)}),this.register(function(e){return new rA(e)}),this.register(function(e){return new aA(e)}),this.register(function(e){return new sA(e)}),this.register(function(e){return new Jh(e)}),this.register(function(e){return new Zh(e)}),this.register(function(e){return new $h(e)}),this.register(function(e){return new eA(e)}),this.register(function(e){return new qh(e)}),this.register(function(e){return new tA(e)}),this.register(function(e){return new Xh(e)}),this.register(function(e){return new iA(e)}),this.register(function(e){return new nA(e)}),this.register(function(e){return new Vh(e)}),this.register(function(e){return new oA(e)}),this.register(function(e){return new lA(e)})}load(e,t,n,i){const r=this;let a;if(""!==this.resourcePath)a=this.resourcePath;else if(""!==this.path){const t=hc.extractUrlBase(e);a=hc.resolveURL(t,this.path)}else a=hc.extractUrlBase(e);this.manager.itemStart(e);const s=function(t){i?i(t):console.error(t),r.manager.itemError(e),r.manager.itemEnd(e)},o=new ql(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,function(n){try{r.parse(n,a,function(n){t(n),r.manager.itemEnd(e)},s)}catch(e){s(e)}},n,s)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,n,i){let r;const a={},s={},o=new TextDecoder;if("string"==typeof e)r=JSON.parse(e);else if(e instanceof ArrayBuffer)if(o.decode(new Uint8Array(e,0,4))===cA){try{a[zh.KHR_BINARY_GLTF]=new hA(e)}catch(e){return void(i&&i(e))}r=JSON.parse(a[zh.KHR_BINARY_GLTF].content)}else r=JSON.parse(o.decode(e));else r=e;if(void 0===r.asset||r.asset.version[0]<2)return void(i&&i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const l=new QA(r,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});l.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e<this.pluginCallbacks.length;e++){const t=this.pluginCallbacks[e](l);t.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),s[t.name]=t,a[t.name]=!0}if(r.extensionsUsed)for(let e=0;e<r.extensionsUsed.length;++e){const t=r.extensionsUsed[e],n=r.extensionsRequired||[];switch(t){case zh.KHR_MATERIALS_UNLIT:a[t]=new Wh;break;case zh.KHR_DRACO_MESH_COMPRESSION:a[t]=new AA(r,this.dracoLoader);break;case zh.KHR_TEXTURE_TRANSFORM:a[t]=new uA;break;case zh.KHR_MESH_QUANTIZATION:a[t]=new dA;break;default:n.indexOf(t)>=0&&void 0===s[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}l.setExtensions(a),l.setPlugins(s),l.parse(n,i)}parseAsync(e,t){const n=this;return new Promise(function(i,r){n.parse(e,t,i,r)})}}function Hh(){let e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const zh={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing",DEEPAR_MATERIALS_DIAMOND:"DEEPAR_materials_diamond"};class Vh{constructor(e){this.parser=e,this.name=zh.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let n=0,i=t.length;n<i;n++){const i=t[n];i.extensions&&i.extensions[this.name]&&void 0!==i.extensions[this.name].light&&e._addNodeRef(this.cache,i.extensions[this.name].light)}}_loadLight(e){const t=this.parser,n="light:"+e;let i=t.cache.get(n);if(i)return i;const r=t.json,a=((r.extensions&&r.extensions[this.name]||{}).lights||[])[e];let s;const o=new wi(16777215);void 0!==a.color&&o.setRGB(a.color[0],a.color[1],a.color[2],$e);const l=void 0!==a.range?a.range:0;switch(a.type){case"directional":s=new cc(o),s.target.position.set(0,0,-1),s.add(s.target);break;case"point":s=new oc(o),s.distance=l;break;case"spot":s=new nc(o),s.distance=l,a.spot=a.spot||{},a.spot.innerConeAngle=void 0!==a.spot.innerConeAngle?a.spot.innerConeAngle:0,a.spot.outerConeAngle=void 0!==a.spot.outerConeAngle?a.spot.outerConeAngle:Math.PI/4,s.angle=a.spot.outerConeAngle,s.penumbra=1-a.spot.innerConeAngle/a.spot.outerConeAngle,s.target.position.set(0,0,-1),s.add(s.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+a.type)}return s.position.set(0,0,0),s.decay=2,MA(s,a),void 0!==a.intensity&&(s.intensity=a.intensity),s.name=t.createUniqueName(a.name||"light_"+e),i=Promise.resolve(s),t.cache.add(n,i),i}getDependency(e,t){if("light"===e)return this._loadLight(t)}createNodeAttachment(e){const t=this,n=this.parser,i=n.json.nodes[e],r=(i.extensions&&i.extensions[this.name]||{}).light;return void 0===r?null:this._loadLight(r).then(function(e){return n._getNodeRef(t.cache,r,e)})}}class Wh{constructor(){this.name=zh.KHR_MATERIALS_UNLIT}getMaterialType(){return Ti}extendParams(e,t,n){const i=[];e.color=new wi(1,1,1),e.opacity=1;const r=t.pbrMetallicRoughness;if(r){if(Array.isArray(r.baseColorFactor)){const t=r.baseColorFactor;e.color.setRGB(t[0],t[1],t[2],$e),e.opacity=t[3]}void 0!==r.baseColorTexture&&i.push(n.assignTexture(e,"map",r.baseColorTexture,Ze))}return Promise.all(i)}}class qh{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name].emissiveStrength;return void 0!==i&&(t.emissiveIntensity=i),Promise.resolve()}}class jh{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];if(void 0!==a.clearcoatFactor&&(t.clearcoat=a.clearcoatFactor),void 0!==a.clearcoatTexture&&r.push(n.assignTexture(t,"clearcoatMap",a.clearcoatTexture)),void 0!==a.clearcoatRoughnessFactor&&(t.clearcoatRoughness=a.clearcoatRoughnessFactor),void 0!==a.clearcoatRoughnessTexture&&r.push(n.assignTexture(t,"clearcoatRoughnessMap",a.clearcoatRoughnessTexture)),void 0!==a.clearcoatNormalTexture&&(r.push(n.assignTexture(t,"clearcoatNormalMap",a.clearcoatNormalTexture)),void 0!==a.clearcoatNormalTexture.scale)){const e=a.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new Dt(e,e)}return Promise.all(r)}}class Yh{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_DISPERSION}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name];return t.dispersion=void 0!==i.dispersion?i.dispersion:0,Promise.resolve()}}class Xh{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return void 0!==a.iridescenceFactor&&(t.iridescence=a.iridescenceFactor),void 0!==a.iridescenceTexture&&r.push(n.assignTexture(t,"iridescenceMap",a.iridescenceTexture)),void 0!==a.iridescenceIor&&(t.iridescenceIOR=a.iridescenceIor),void 0===t.iridescenceThicknessRange&&(t.iridescenceThicknessRange=[100,400]),void 0!==a.iridescenceThicknessMinimum&&(t.iridescenceThicknessRange[0]=a.iridescenceThicknessMinimum),void 0!==a.iridescenceThicknessMaximum&&(t.iridescenceThicknessRange[1]=a.iridescenceThicknessMaximum),void 0!==a.iridescenceThicknessTexture&&r.push(n.assignTexture(t,"iridescenceThicknessMap",a.iridescenceThicknessTexture)),Promise.all(r)}}class Kh{constructor(e){this.parser=e,this.name=zh.DEEPAR_MATERIALS_DIAMOND}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?xo:null}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();t.envMapIntensity=1,t.envMapRotation=0,t.rIndexDelta=.012,t.squashFactor=.98,t.geometryFactor=.5,t.gammaFactor=1,t.absorptionFactor=1,t.reflectivity=.5,t.diamondOrientedEnvMap=0,t.boostFactors=new on(1,1,1),t.fixedEnvMapDirection=!1,t.rayBounces=5,t.defines={RAY_BOUNCES:5};const i=n.extensions[this.name];if(void 0!==i.envMapIntensity&&(t.envMapIntensity=i.envMapIntensity),void 0!==i.envMapRotationOffset&&(t.envMapRotation=i.envMapRotationOffset),void 0!==i.dispersion&&(t.rIndexDelta=i.dispersion),void 0!==i.squashFactor&&(t.squashFactor=i.squashFactor),void 0!==i.geometryFactor&&(t.geometryFactor=i.geometryFactor),void 0!==i.gammaFactor&&(t.gammaFactor=i.gammaFactor),void 0!==i.absorptionFactor&&(t.absorptionFactor=i.absorptionFactor),void 0!==i.reflectivity&&(t.reflectivity=i.reflectivity),void 0!==i.diamondOrientedEnvMap&&(t.diamondOrientedEnvMap=i.diamondOrientedEnvMap),void 0!==i.boostFactors){const e=i.boostFactors;t.boostFactors.set(e[0],e[1],e[2])}return void 0!==i.fixedEnvMapDirection&&(t.fixedEnvMapDirection=i.fixedEnvMapDirection),void 0!==i.rayBounces&&(t.rayBounces=i.rayBounces,t.defines={RAY_BOUNCES:i.rayBounces}),Promise.resolve()}}class Jh{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_SHEEN}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[];t.sheenColor=new wi(0,0,0),t.sheenRoughness=0,t.sheen=1;const a=i.extensions[this.name];if(void 0!==a.sheenColorFactor){const e=a.sheenColorFactor;t.sheenColor.setRGB(e[0],e[1],e[2],$e)}return void 0!==a.sheenRoughnessFactor&&(t.sheenRoughness=a.sheenRoughnessFactor),void 0!==a.sheenColorTexture&&r.push(n.assignTexture(t,"sheenColorMap",a.sheenColorTexture,Ze)),void 0!==a.sheenRoughnessTexture&&r.push(n.assignTexture(t,"sheenRoughnessMap",a.sheenRoughnessTexture)),Promise.all(r)}}class Zh{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return void 0!==a.transmissionFactor&&(t.transmission=a.transmissionFactor),void 0!==a.transmissionTexture&&r.push(n.assignTexture(t,"transmissionMap",a.transmissionTexture)),Promise.all(r)}}class $h{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_VOLUME}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];t.thickness=void 0!==a.thicknessFactor?a.thicknessFactor:0,void 0!==a.thicknessTexture&&r.push(n.assignTexture(t,"thicknessMap",a.thicknessTexture)),t.attenuationDistance=a.attenuationDistance||1/0;const s=a.attenuationColor||[1,1,1];return t.attenuationColor=(new wi).setRGB(s[0],s[1],s[2],$e),Promise.all(r)}}class eA{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_IOR}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name];return t.ior=void 0!==i.ior?i.ior:1.5,Promise.resolve()}}class tA{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_SPECULAR}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];t.specularIntensity=void 0!==a.specularFactor?a.specularFactor:1,void 0!==a.specularTexture&&r.push(n.assignTexture(t,"specularIntensityMap",a.specularTexture));const s=a.specularColorFactor||[1,1,1];return t.specularColor=(new wi).setRGB(s[0],s[1],s[2],$e),void 0!==a.specularColorTexture&&r.push(n.assignTexture(t,"specularColorMap",a.specularColorTexture,Ze)),Promise.all(r)}}class nA{constructor(e){this.parser=e,this.name=zh.EXT_MATERIALS_BUMP}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return t.bumpScale=void 0!==a.bumpFactor?a.bumpFactor:1,void 0!==a.bumpTexture&&r.push(n.assignTexture(t,"bumpMap",a.bumpTexture)),Promise.all(r)}}class iA{constructor(e){this.parser=e,this.name=zh.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){const t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?_o:null}extendMaterialParams(e,t){const n=this.parser,i=n.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],a=i.extensions[this.name];return void 0!==a.anisotropyStrength&&(t.anisotropy=a.anisotropyStrength),void 0!==a.anisotropyRotation&&(t.anisotropyRotation=a.anisotropyRotation),void 0!==a.anisotropyTexture&&r.push(n.assignTexture(t,"anisotropyMap",a.anisotropyTexture)),Promise.all(r)}}class rA{constructor(e){this.parser=e,this.name=zh.KHR_TEXTURE_BASISU}loadTexture(e){const t=this.parser,n=t.json,i=n.textures[e];if(!i.extensions||!i.extensions[this.name])return null;const r=i.extensions[this.name],a=t.options.ktx2Loader;if(!a){if(n.extensionsRequired&&n.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,r.source,a)}}class aA{constructor(e){this.parser=e,this.name=zh.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,n=this.parser,i=n.json,r=i.textures[e];if(!r.extensions||!r.extensions[t])return null;const a=r.extensions[t],s=i.images[a.source];let o=n.textureLoader;if(s.uri){const e=n.options.manager.getHandler(s.uri);null!==e&&(o=e)}return this.detectSupport().then(function(r){if(r)return n.loadTextureImage(e,a.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return n.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class sA{constructor(e){this.parser=e,this.name=zh.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const t=this.name,n=this.parser,i=n.json,r=i.textures[e];if(!r.extensions||!r.extensions[t])return null;const a=r.extensions[t],s=i.images[a.source];let o=n.textureLoader;if(s.uri){const e=n.options.manager.getHandler(s.uri);null!==e&&(o=e)}return this.detectSupport().then(function(r){if(r)return n.loadTextureImage(e,a.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return n.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class oA{constructor(e){this.name=zh.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){const e=n.extensions[this.name],i=this.parser.getDependency("buffer",e.buffer),r=this.parser.options.meshoptDecoder;if(!r||!r.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return i.then(function(t){const n=e.byteOffset||0,i=e.byteLength||0,a=e.count,s=e.byteStride,o=new Uint8Array(t,n,i);return r.decodeGltfBufferAsync?r.decodeGltfBufferAsync(a,s,o,e.mode,e.filter).then(function(e){return e.buffer}):r.ready.then(function(){const t=new ArrayBuffer(a*s);return r.decodeGltfBuffer(new Uint8Array(t),a,s,o,e.mode,e.filter),t})})}return null}}class lA{constructor(e){this.name=zh.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,n=t.nodes[e];if(!n.extensions||!n.extensions[this.name]||void 0===n.mesh)return null;const i=t.meshes[n.mesh];for(const e of i.primitives)if(e.mode!==mA.TRIANGLES&&e.mode!==mA.TRIANGLE_STRIP&&e.mode!==mA.TRIANGLE_FAN&&void 0!==e.mode)return null;const r=n.extensions[this.name].attributes,a=[],s={};for(const e in r)a.push(this.parser.getDependency("accessor",r[e]).then(t=>(s[e]=t,s[e])));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then(e=>{const t=e.pop(),n=t.isGroup?t.children:[t],i=e[0].count,r=[];for(const e of n){const t=new Nn,n=new on,a=new sn,o=new on(1,1,1),l=new el(e.geometry,e.material,i);for(let e=0;e<i;e++)s.TRANSLATION&&n.fromBufferAttribute(s.TRANSLATION,e),s.ROTATION&&a.fromBufferAttribute(s.ROTATION,e),s.SCALE&&o.fromBufferAttribute(s.SCALE,e),l.setMatrixAt(e,t.compose(n,a,o));for(const t in s)if("_COLOR_0"===t){const e=s[t];l.instanceColor=new qo(e.array,e.itemSize,e.normalized)}else"TRANSLATION"!==t&&"ROTATION"!==t&&"SCALE"!==t&&e.geometry.setAttribute(t,s[t]);hi.prototype.copy.call(l,e),this.parser.assignFinalMaterial(l),r.push(l)}return t.isGroup?(t.clear(),t.add(...r),t):r[0]}))}}const cA="glTF";class hA{constructor(e){this.name=zh.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12),n=new TextDecoder;if(this.header={magic:n.decode(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==cA)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const i=this.header.length-12,r=new DataView(e,12);let a=0;for(;a<i;){const t=r.getUint32(a,!0);a+=4;const i=r.getUint32(a,!0);if(a+=4,1313821514===i){const i=new Uint8Array(e,12+a,t);this.content=n.decode(i)}else if(5130562===i){const n=12+a;this.body=e.slice(n,n+t)}a+=t}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class AA{constructor(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=zh.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){const n=this.json,i=this.dracoLoader,r=e.extensions[this.name].bufferView,a=e.extensions[this.name].attributes,s={},o={},l={};for(const e in a){const t=_A[e]||e.toLowerCase();s[t]=a[e]}for(const t in e.attributes){const i=_A[t]||t.toLowerCase();if(void 0!==a[t]){const r=n.accessors[e.attributes[t]],a=vA[r.componentType];l[i]=a.name,o[i]=!0===r.normalized}}return t.getDependency("bufferView",r).then(function(e){return new Promise(function(t,n){i.decodeDracoFile(e,function(e){for(const t in e.attributes){const n=e.attributes[t],i=o[t];void 0!==i&&(n.normalized=i)}t(e)},s,l,$e,n)})})}}class uA{constructor(){this.name=zh.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return void 0!==t.texCoord&&t.texCoord!==e.channel||void 0!==t.offset||void 0!==t.rotation||void 0!==t.scale?(e=e.clone(),void 0!==t.texCoord&&(e.channel=t.texCoord),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),e.needsUpdate=!0,e):e}}class dA{constructor(){this.name=zh.KHR_MESH_QUANTIZATION}}class pA extends Ml{constructor(e,t,n,i){super(e,t,n,i)}copySampleValue_(e){const t=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=e*i*3+i;for(let e=0;e!==i;e++)t[e]=n[r+e];return t}interpolate_(e,t,n,i){const r=this.resultBuffer,a=this.sampleValues,s=this.valueSize,o=2*s,l=3*s,c=i-t,h=(n-t)/c,A=h*h,u=A*h,d=e*l,p=d-l,f=-2*u+3*A,g=u-A,m=1-f,v=g-A+h;for(let e=0;e!==s;e++){const t=a[p+e+s],n=a[p+e+o]*c,i=a[d+e+s],l=a[d+e]*c;r[e]=m*t+v*n+f*i+g*l}return r}}const fA=new sn;class gA extends pA{interpolate_(e,t,n,i){const r=super.interpolate_(e,t,n,i);return fA.fromArray(r).normalize().toArray(r),r}}const mA={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},vA={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},EA={9728:Ee,9729:_e,9984:1004,9985:Ie,9986:Ce,9987:xe},bA={33071:me,33648:ve,10497:ge},CA={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},_A={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},IA={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},xA={CUBICSPLINE:void 0,LINEAR:Xe,STEP:Ye};function yA(e){return void 0===e.DefaultMaterial&&(e.DefaultMaterial=new Co({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:0})),e.DefaultMaterial}function wA(e,t,n){for(const i in n.extensions)void 0===e[i]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[i]=n.extensions[i])}function MA(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function SA(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let n=0,i=t.weights.length;n<i;n++)e.morphTargetInfluences[n]=t.weights[n];if(t.extras&&Array.isArray(t.extras.targetNames)){const n=t.extras.targetNames;if(e.morphTargetInfluences.length===n.length){e.morphTargetDictionary={};for(let t=0,i=n.length;t<i;t++)e.morphTargetDictionary[n[t]]=t}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function BA(e){let t;const n=e.extensions&&e.extensions[zh.KHR_DRACO_MESH_COMPRESSION];if(t=n?"draco:"+n.bufferView+":"+n.indices+":"+TA(n.attributes):e.indices+":"+TA(e.attributes)+":"+e.mode,void 0!==e.targets)for(let n=0,i=e.targets.length;n<i;n++)t+=":"+TA(e.targets[n]);return t}function TA(e){let t="";const n=Object.keys(e).sort();for(let i=0,r=n.length;i<r;i++)t+=n[i]+":"+e[n[i]]+";";return t}function RA(e){switch(e){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}const DA=new Nn;class QA{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new Hh,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let n=!1,i=!1,r=-1;"undefined"!=typeof navigator&&(n=!0===/^((?!chrome|android).)*safari/i.test(navigator.userAgent),i=navigator.userAgent.indexOf("Firefox")>-1,r=i?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"undefined"==typeof createImageBitmap||n||i&&r<98?this.textureLoader=new Xl(this.options.manager):this.textureLoader=new Ac(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new ql(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const n=this,i=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(e){return e._markDefs&&e._markDefs()}),Promise.all(this._invokeAll(function(e){return e.beforeRoot&&e.beforeRoot()})).then(function(){return Promise.all([n.getDependencies("scene"),n.getDependencies("animation"),n.getDependencies("camera")])}).then(function(t){const a={scene:t[0][i.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:i.asset,parser:n,userData:{}};return wA(r,a,i),MA(a,i),Promise.all(n._invokeAll(function(e){return e.afterRoot&&e.afterRoot(a)})).then(function(){for(const e of a.scenes)e.updateMatrixWorld();e(a)})}).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[];for(let n=0,i=t.length;n<i;n++){const i=t[n].joints;for(let t=0,n=i.length;t<n;t++)e[i[t]].isBone=!0}for(let t=0,i=e.length;t<i;t++){const i=e[t];void 0!==i.mesh&&(this._addNodeRef(this.meshCache,i.mesh),void 0!==i.skin&&(n[i.mesh].isSkinnedMesh=!0)),void 0!==i.camera&&this._addNodeRef(this.cameraCache,i.camera)}}_addNodeRef(e,t){void 0!==t&&(void 0===e.refs[t]&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,n){if(e.refs[t]<=1)return n;const i=n.clone(),r=(e,t)=>{const n=this.associations.get(e);null!=n&&this.associations.set(t,n);for(const[n,i]of e.children.entries())r(i,t.children[n])};return r(n,i),i.name+="_instance_"+e.uses[t]++,i}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let n=0;n<t.length;n++){const i=e(t[n]);if(i)return i}return null}_invokeAll(e){const t=Object.values(this.plugins);t.unshift(this);const n=[];for(let i=0;i<t.length;i++){const r=e(t[i]);r&&n.push(r)}return n}getDependency(e,t){const n=e+":"+t;let i=this.cache.get(n);if(!i){switch(e){case"scene":i=this.loadScene(t);break;case"node":i=this._invokeOne(function(e){return e.loadNode&&e.loadNode(t)});break;case"mesh":i=this._invokeOne(function(e){return e.loadMesh&&e.loadMesh(t)});break;case"accessor":i=this.loadAccessor(t);break;case"bufferView":i=this._invokeOne(function(e){return e.loadBufferView&&e.loadBufferView(t)});break;case"buffer":i=this.loadBuffer(t);break;case"material":i=this._invokeOne(function(e){return e.loadMaterial&&e.loadMaterial(t)});break;case"texture":i=this._invokeOne(function(e){return e.loadTexture&&e.loadTexture(t)});break;case"skin":i=this.loadSkin(t);break;case"animation":i=this._invokeOne(function(e){return e.loadAnimation&&e.loadAnimation(t)});break;case"camera":i=this.loadCamera(t);break;default:if(i=this._invokeOne(function(n){return n!=this&&n.getDependency&&n.getDependency(e,t)}),!i)throw new Error("Unknown type: "+e)}this.cache.add(n,i)}return i}getDependencies(e){let t=this.cache.get(e);if(!t){const n=this,i=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(i.map(function(t,i){return n.getDependency(e,i)})),this.cache.add(e,t)}return t}loadBuffer(e){const t=this.json.buffers[e],n=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[zh.KHR_BINARY_GLTF].body);const i=this.options;return new Promise(function(e,r){n.load(hc.resolveURL(t.uri,i.path),e,void 0,function(){r(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))})})}loadBufferView(e){const t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(e){const n=t.byteLength||0,i=t.byteOffset||0;return e.slice(i,i+n)})}loadAccessor(e){const t=this,n=this.json,i=this.json.accessors[e];if(void 0===i.bufferView&&void 0===i.sparse){const e=CA[i.type],t=vA[i.componentType],n=!0===i.normalized,r=new t(i.count*e);return Promise.resolve(new Li(r,e,n))}const r=[];return void 0!==i.bufferView?r.push(this.getDependency("bufferView",i.bufferView)):r.push(null),void 0!==i.sparse&&(r.push(this.getDependency("bufferView",i.sparse.indices.bufferView)),r.push(this.getDependency("bufferView",i.sparse.values.bufferView))),Promise.all(r).then(function(e){const r=e[0],a=CA[i.type],s=vA[i.componentType],o=s.BYTES_PER_ELEMENT,l=o*a,c=i.byteOffset||0,h=void 0!==i.bufferView?n.bufferViews[i.bufferView].byteStride:void 0,A=!0===i.normalized;let u,d;if(h&&h!==l){const e=Math.floor(c/h),n="InterleavedBuffer:"+i.bufferView+":"+i.componentType+":"+e+":"+i.count;let l=t.cache.get(n);l||(u=new s(r,e*h,i.count*h/o),l=new So(u,h/o),t.cache.add(n,l)),d=new To(l,a,c%h/o,A)}else u=null===r?new s(i.count*a):new s(r,c,i.count*a),d=new Li(u,a,A);if(void 0!==i.sparse){const t=CA.SCALAR,n=vA[i.sparse.indices.componentType],o=i.sparse.indices.byteOffset||0,l=i.sparse.values.byteOffset||0,c=new n(e[1],o,i.sparse.count*t),h=new s(e[2],l,i.sparse.count*a);null!==r&&(d=new Li(d.array.slice(),d.itemSize,d.normalized));for(let e=0,t=c.length;e<t;e++){const t=c[e];if(d.setX(t,h[e*a]),a>=2&&d.setY(t,h[e*a+1]),a>=3&&d.setZ(t,h[e*a+2]),a>=4&&d.setW(t,h[e*a+3]),a>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return d})}loadTexture(e){const t=this.json,n=this.options,i=t.textures[e].source,r=t.images[i];let a=this.textureLoader;if(r.uri){const e=n.manager.getHandler(r.uri);null!==e&&(a=e)}return this.loadTextureImage(e,i,a)}loadTextureImage(e,t,n){const i=this,r=this.json,a=r.textures[e],s=r.images[t],o=(s.uri||s.bufferView)+":"+a.sampler;if(this.textureCache[o])return this.textureCache[o];const l=this.loadImageSource(t,n).then(function(t){t.flipY=!1,t.name=a.name||s.name||"",""===t.name&&"string"==typeof s.uri&&!1===s.uri.startsWith("data:image/")&&(t.name=s.uri);const n=(r.samplers||{})[a.sampler]||{};return t.magFilter=EA[n.magFilter]||_e,t.minFilter=EA[n.minFilter]||xe,t.wrapS=bA[n.wrapS]||ge,t.wrapT=bA[n.wrapT]||ge,i.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[o]=l,l}loadImageSource(e,t){const n=this.json,i=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then(e=>e.clone());const r=n.images[e],a=self.URL||self.webkitURL;let s=r.uri||"",o=!1;if(void 0!==r.bufferView)s=this.getDependency("bufferView",r.bufferView).then(function(e){o=!0;const t=new Blob([e],{type:r.mimeType});return s=a.createObjectURL(t),s});else if(void 0===r.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const l=Promise.resolve(s).then(function(e){return new Promise(function(n,r){let a=n;!0===t.isImageBitmapLoader&&(a=function(e){const t=new $t(e);t.needsUpdate=!0,n(t)}),t.load(hc.resolveURL(e,i.path),a,void 0,r)})}).then(function(e){var t;return!0===o&&a.revokeObjectURL(s),MA(e,r),e.userData.mimeType=r.mimeType||((t=r.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e}).catch(function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",s),e});return this.sourceCache[e]=l,l}assignTexture(e,t,n,i){const r=this;return this.getDependency("texture",n.index).then(function(a){if(!a)return null;if(void 0!==n.texCoord&&n.texCoord>0&&((a=a.clone()).channel=n.texCoord),r.extensions[zh.KHR_TEXTURE_TRANSFORM]){const e=void 0!==n.extensions?n.extensions[zh.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=r.associations.get(a);a=r.extensions[zh.KHR_TEXTURE_TRANSFORM].extendTexture(a,e),r.associations.set(a,t)}}return void 0!==i&&(a.colorSpace=i),e[t]=a,a})}assignFinalMaterial(e){const t=e.geometry;let n=e.material;const i=void 0===t.attributes.tangent,r=void 0!==t.attributes.color,a=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+n.uuid;let t=this.cache.get(e);t||(t=new bo,Bi.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,t.sizeAttenuation=!1,this.cache.add(e,t)),n=t}else if(e.isLine){const e="LineBasicMaterial:"+n.uuid;let t=this.cache.get(e);t||(t=new Io,Bi.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,this.cache.add(e,t)),n=t}if(i||r||a){let e="ClonedMaterial:"+n.uuid+":";i&&(e+="derivative-tangents:"),r&&(e+="vertex-colors:"),a&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=n.clone(),r&&(t.vertexColors=!0),a&&(t.flatShading=!0),i&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(n))),n=t}e.material=n}getMaterialType(){return Co}loadMaterial(e){const t=this,n=this.json,i=this.extensions,r=n.materials[e];let a;const s={},o=[];if((r.extensions||{})[zh.KHR_MATERIALS_UNLIT]){const e=i[zh.KHR_MATERIALS_UNLIT];a=e.getMaterialType(),o.push(e.extendParams(s,r,t))}else{const n=r.pbrMetallicRoughness||{};if(s.color=new wi(1,1,1),s.opacity=1,Array.isArray(n.baseColorFactor)){const e=n.baseColorFactor;s.color.setRGB(e[0],e[1],e[2],$e),s.opacity=e[3]}void 0!==n.baseColorTexture&&o.push(t.assignTexture(s,"map",n.baseColorTexture,Ze)),s.metalness=void 0!==n.metallicFactor?n.metallicFactor:1,s.roughness=void 0!==n.roughnessFactor?n.roughnessFactor:1,void 0!==n.metallicRoughnessTexture&&(o.push(t.assignTexture(s,"metalnessMap",n.metallicRoughnessTexture)),o.push(t.assignTexture(s,"roughnessMap",n.metallicRoughnessTexture))),a=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),o.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,s)})))}!0===r.doubleSided&&(s.side=2);const l=r.alphaMode||"OPAQUE";if("BLEND"===l?(s.transparent=!0,s.depthWrite=!1):(s.transparent=!1,"MASK"===l&&(s.alphaTest=void 0!==r.alphaCutoff?r.alphaCutoff:.5)),void 0!==r.normalTexture&&a!==Ti&&(o.push(t.assignTexture(s,"normalMap",r.normalTexture)),s.normalScale=new Dt(1,1),void 0!==r.normalTexture.scale)){const e=r.normalTexture.scale;s.normalScale.set(e,e)}if(void 0!==r.occlusionTexture&&a!==Ti&&(o.push(t.assignTexture(s,"aoMap",r.occlusionTexture)),void 0!==r.occlusionTexture.strength&&(s.aoMapIntensity=r.occlusionTexture.strength)),void 0!==r.emissiveFactor&&a!==Ti){const e=r.emissiveFactor;s.emissive=(new wi).setRGB(e[0],e[1],e[2],$e)}return void 0!==r.emissiveTexture&&a!==Ti&&o.push(t.assignTexture(s,"emissiveMap",r.emissiveTexture,Ze)),Promise.all(o).then(function(){const n=new a(s);return r.name&&(n.name=r.name),MA(n,r),t.associations.set(n,{materials:e}),r.extensions&&wA(i,n,r),n})}createUniqueName(e){const t=bc.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,n=this.extensions,i=this.primitiveCache;function r(e){return n[zh.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then(function(n){return UA(n,e,t)})}const a=[];for(let n=0,s=e.length;n<s;n++){const s=e[n],o=BA(s),l=i[o];if(l)a.push(l.promise);else{let e;e=s.extensions&&s.extensions[zh.KHR_DRACO_MESH_COMPRESSION]?r(s):UA(new qi,s,t),i[o]={primitive:s,promise:e},a.push(e)}}return Promise.all(a)}loadMesh(e){const t=this,n=this.json,i=this.extensions,r=n.meshes[e],a=r.primitives,s=[];for(let e=0,t=a.length;e<t;e++){const t=void 0===a[e].material?yA(this.cache):this.getDependency("material",a[e].material);s.push(t)}return s.push(t.loadGeometries(a)),Promise.all(s).then(function(n){const s=n.slice(0,n.length-1),o=n[n.length-1],l=[];for(let n=0,c=o.length;n<c;n++){const c=o[n],h=a[n];let A;const u=s[n];if(h.mode===mA.TRIANGLES||h.mode===mA.TRIANGLE_STRIP||h.mode===mA.TRIANGLE_FAN||void 0===h.mode)A=!0===r.isSkinnedMesh?new ko(c,u):new hr(c,u),!0===A.isSkinnedMesh&&A.normalizeSkinWeights(),h.mode===mA.TRIANGLE_STRIP?A.geometry=kh(A.geometry,1):h.mode===mA.TRIANGLE_FAN&&(A.geometry=kh(A.geometry,2));else if(h.mode===mA.LINES)A=new ul(c,u);else if(h.mode===mA.LINE_STRIP)A=new ll(c,u);else if(h.mode===mA.LINE_LOOP)A=new dl(c,u);else{if(h.mode!==mA.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+h.mode);A=new vl(c,u)}Object.keys(A.geometry.morphAttributes).length>0&&SA(A,r),A.name=t.createUniqueName(r.name||"mesh_"+e),MA(A,r),h.extensions&&wA(i,A,h),t.assignFinalMaterial(A),A.computeOffsets(),l.push(A)}for(let n=0,i=l.length;n<i;n++)t.associations.set(l[n],{meshes:e,primitives:n});if(1===l.length)return r.extensions&&wA(i,l[0],r),l[0];const c=new co;r.extensions&&wA(i,c,r),t.associations.set(c,{meshes:e});for(let e=0,t=l.length;e<t;e++)c.add(l[e]);return c})}loadCamera(e){let t;const n=this.json.cameras[e],i=n[n.type];if(i)return"perspective"===n.type?t=new _r(Rt(i.yfov),i.aspectRatio||1,i.znear||1,i.zfar||2e6):"orthographic"===n.type&&(t=new Xr(-i.xmag,i.xmag,i.ymag,-i.ymag,i.znear,i.zfar)),n.name&&(t.name=this.createUniqueName(n.name)),MA(t,n),Promise.resolve(t);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(e){const t=this.json.skins[e],n=[];for(let e=0,i=t.joints.length;e<i;e++)n.push(this._loadNodeShallow(t.joints[e]));return void 0!==t.inverseBindMatrices?n.push(this.getDependency("accessor",t.inverseBindMatrices)):n.push(null),Promise.all(n).then(function(e){const n=e.pop(),i=e,r=[],a=[];for(let e=0,s=i.length;e<s;e++){const s=i[e];if(s){r.push(s);const t=new Nn;null!==n&&t.fromArray(n.array,16*e),a.push(t)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[e])}return new Wo(r,a)})}loadAnimation(e){const t=this.json,n=this,i=t.animations[e],r=i.name?i.name:"animation_"+e,a=[],s=[],o=[],l=[],c=[];for(let e=0,t=i.channels.length;e<t;e++){const t=i.channels[e],n=i.samplers[t.sampler],r=t.target,h=r.node,A=void 0!==i.parameters?i.parameters[n.input]:n.input,u=void 0!==i.parameters?i.parameters[n.output]:n.output;void 0!==r.node&&(a.push(this.getDependency("node",h)),s.push(this.getDependency("accessor",A)),o.push(this.getDependency("accessor",u)),l.push(n),c.push(r))}return Promise.all([Promise.all(a),Promise.all(s),Promise.all(o),Promise.all(l),Promise.all(c)]).then(function(e){const t=e[0],i=e[1],a=e[2],s=e[3],o=e[4],l=[];for(let e=0,r=t.length;e<r;e++){const r=t[e],c=i[e],h=a[e],A=s[e],u=o[e];if(void 0===r)continue;r.updateMatrix&&r.updateMatrix();const d=n._createAnimationTracks(r,c,h,A,u);if(d)for(let e=0;e<d.length;e++)l.push(d[e])}return new Ol(r,void 0,l)})}createNodeMesh(e){const t=this.json,n=this,i=t.nodes[e];return void 0===i.mesh?null:n.getDependency("mesh",i.mesh).then(function(e){const t=n._getNodeRef(n.meshCache,i.mesh,e);return void 0!==i.weights&&t.traverse(function(e){if(e.isMesh)for(let t=0,n=i.weights.length;t<n;t++)e.morphTargetInfluences[t]=i.weights[t]}),t})}loadNode(e){const t=this,n=this.json.nodes[e],i=t._loadNodeShallow(e),r=[],a=n.children||[];for(let e=0,n=a.length;e<n;e++)r.push(t.getDependency("node",a[e]));const s=void 0===n.skin?Promise.resolve(null):t.getDependency("skin",n.skin);return Promise.all([i,Promise.all(r),s]).then(function(e){const t=e[0],n=e[1],i=e[2];null!==i&&t.traverse(function(e){e.isSkinnedMesh&&e.bind(i,DA)});for(let e=0,i=n.length;e<i;e++)t.add(n[e]);return t})}_loadNodeShallow(e){const t=this.json,n=this.extensions,i=this;if(void 0!==this.nodeCache[e])return this.nodeCache[e];const r=t.nodes[e],a=r.name?i.createUniqueName(r.name):"",s=[],o=i._invokeOne(function(t){return t.createNodeMesh&&t.createNodeMesh(e)});return o&&s.push(o),void 0!==r.camera&&s.push(i.getDependency("camera",r.camera).then(function(e){return i._getNodeRef(i.cameraCache,r.camera,e)})),i._invokeAll(function(t){return t.createNodeAttachment&&t.createNodeAttachment(e)}).forEach(function(e){s.push(e)}),this.nodeCache[e]=Promise.all(s).then(function(t){let s;if(s=!0===r.isBone?new Go:t.length>1?new co:1===t.length?t[0]:new hi,s!==t[0])for(let e=0,n=t.length;e<n;e++)s.add(t[e]);if(r.name&&(s.userData.name=r.name,s.name=a),MA(s,r),r.extensions&&wA(n,s,r),void 0!==r.matrix){const e=new Nn;e.fromArray(r.matrix),s.applyMatrix4(e)}else void 0!==r.translation&&s.position.fromArray(r.translation),void 0!==r.rotation&&s.quaternion.fromArray(r.rotation),void 0!==r.scale&&s.scale.fromArray(r.scale);return i.associations.has(s)||i.associations.set(s,{}),i.associations.get(s).nodes=e,s}),this.nodeCache[e]}loadScene(e){const t=this.extensions,n=this.json.scenes[e],i=this,r=new co;n.name&&(r.name=i.createUniqueName(n.name)),MA(r,n),n.extensions&&wA(t,r,n);const a=n.nodes||[],s=[];for(let e=0,t=a.length;e<t;e++)s.push(i.getDependency("node",a[e]));return Promise.all(s).then(function(e){for(let t=0,n=e.length;t<n;t++)r.add(e[t]);return i.associations=(e=>{const t=new Map;for(const[e,n]of i.associations)(e instanceof Bi||e instanceof $t)&&t.set(e,n);return e.traverse(e=>{const n=i.associations.get(e);null!=n&&t.set(e,n)}),t})(r),r.userData.isDiamondScene=i._sceneContainsDiamondMaterial(r),r})}_sceneContainsDiamondMaterial(e){let t=!1;return e.traverse(e=>{e.material&&e.material.isMeshDiamondMaterial&&(t=!0)}),t}_createAnimationTracks(e,t,n,i,r){const a=[],s=e.name?e.name:e.uuid,o=[];let l;switch(IA[r.path]===IA.weights?e.traverse(function(e){e.morphTargetInfluences&&o.push(e.name?e.name:e.uuid)}):o.push(s),IA[r.path]){case IA.weights:l=Ul;break;case IA.rotation:l=Pl;break;case IA.position:case IA.scale:l=Fl;break;default:l=1===n.itemSize?Ul:Fl}const c=void 0!==i.interpolation?xA[i.interpolation]:Xe,h=this._getArrayFromAccessor(n);for(let e=0,n=o.length;e<n;e++){const n=new l(o[e]+"."+IA[r.path],t.array,h,c);"CUBICSPLINE"===i.interpolation&&this._createCubicSplineTrackInterpolant(n),a.push(n)}return a}_getArrayFromAccessor(e){let t=e.array;if(e.normalized){const e=RA(t.constructor),n=new Float32Array(t.length);for(let i=0,r=t.length;i<r;i++)n[i]=t[i]*e;t=n}return t}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(e){return new(this instanceof Pl?gA:pA)(this.times,this.values,this.getValueSize()/3,e)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function UA(e,t,n){const i=t.attributes,r=[];function a(t,i){return n.getDependency("accessor",t).then(function(t){e.setAttribute(i,t)})}for(const t in i){const n=_A[t]||t.toLowerCase();n in e.attributes||r.push(a(i[t],n))}if(void 0!==t.indices&&!e.index){const i=n.getDependency("accessor",t.indices).then(function(t){e.setIndex(t)});r.push(i)}return Vt.workingColorSpace!==$e&&"COLOR_0"in i&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${Vt.workingColorSpace}" not supported.`),MA(e,t),function(e,t,n){const i=t.attributes,r=new hn;if(void 0===i.POSITION)return;{const e=n.json.accessors[i.POSITION],t=e.min,a=e.max;if(void 0===t||void 0===a)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(r.set(new on(t[0],t[1],t[2]),new on(a[0],a[1],a[2])),e.normalized){const t=RA(vA[e.componentType]);r.min.multiplyScalar(t),r.max.multiplyScalar(t)}}const a=t.targets;if(void 0!==a){const e=new on,t=new on;for(let i=0,r=a.length;i<r;i++){const r=a[i];if(void 0!==r.POSITION){const i=n.json.accessors[r.POSITION],a=i.min,s=i.max;if(void 0!==a&&void 0!==s){if(t.setX(Math.max(Math.abs(a[0]),Math.abs(s[0]))),t.setY(Math.max(Math.abs(a[1]),Math.abs(s[1]))),t.setZ(Math.max(Math.abs(a[2]),Math.abs(s[2]))),i.normalized){const e=RA(vA[i.componentType]);t.multiplyScalar(e)}e.max(t)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}r.expandByVector(e)}e.boundingBox=r;const s=new Sn;r.getCenter(s.center),s.radius=r.min.distanceTo(r.max)/2,e.boundingSphere=s}(e,t,n),Promise.all(r).then(function(){return void 0!==t.targets?function(e,t,n){let i=!1,r=!1,a=!1;for(let e=0,n=t.length;e<n;e++){const n=t[e];if(void 0!==n.POSITION&&(i=!0),void 0!==n.NORMAL&&(r=!0),void 0!==n.COLOR_0&&(a=!0),i&&r&&a)break}if(!i&&!r&&!a)return Promise.resolve(e);const s=[],o=[],l=[];for(let c=0,h=t.length;c<h;c++){const h=t[c];if(i){const t=void 0!==h.POSITION?n.getDependency("accessor",h.POSITION):e.attributes.position;s.push(t)}if(r){const t=void 0!==h.NORMAL?n.getDependency("accessor",h.NORMAL):e.attributes.normal;o.push(t)}if(a){const t=void 0!==h.COLOR_0?n.getDependency("accessor",h.COLOR_0):e.attributes.color;l.push(t)}}return Promise.all([Promise.all(s),Promise.all(o),Promise.all(l)]).then(function(t){const n=t[0],s=t[1],o=t[2];return i&&(e.morphAttributes.position=n),r&&(e.morphAttributes.normal=s),a&&(e.morphAttributes.color=o),e.morphTargetsRelative=!0,e})}(e,t.targets,n):e})}class LA{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(e){if(!this.workers[e]){const t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}_getIdleWorker(){for(let e=0;e<this.pool;e++)if(!(this.workerStatus&1<<e))return e;return-1}_onMessage(e,t){const n=this.workersResolve[e];if(n&&n(t),this.queue.length){const{resolve:t,msg:n,transfer:i}=this.queue.shift();this.workersResolve[e]=t,this.workers[e].postMessage(n,i)}else this.workerStatus^=1<<e}setWorkerCreator(e){this.workerCreator=e}setWorkerLimit(e){this.pool=e}postMessage(e,t){return new Promise(n=>{const i=this._getIdleWorker();-1!==i?(this._initWorker(i),this.workerStatus|=1<<i,this.workersResolve[i]=n,this.workers[i].postMessage(e,t)):this.queue.push({resolve:n,msg:e,transfer:t})})}dispose(){this.workers.forEach(e=>e.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const PA=9,NA=15,FA=16,OA=22,kA=37,GA=43,HA=76,zA=83,VA=97,WA=100,qA=103,jA=109,YA=165,XA=166;class KA{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class JA{constructor(e,t,n,i){this._dataView=new DataView(e.buffer,e.byteOffset+t,n),this._littleEndian=i,this._offset=0}_nextUint8(){const e=this._dataView.getUint8(this._offset);return this._offset+=1,e}_nextUint16(){const e=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,e}_nextUint32(){const e=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint64(){const e=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,e}_nextInt32(){const e=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,e}_skip(e){return this._offset+=e,this}_scan(e,t=0){const n=this._offset;let i=0;for(;this._dataView.getUint8(this._offset)!==t&&i<e;)i++,this._offset++;return i<e&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+n,i)}}const ZA=[171,75,84,88,32,50,48,187,13,10,26,10];function $A(e){return"undefined"!=typeof TextDecoder?(new TextDecoder).decode(e):Buffer.from(e).toString("utf8")}let eu,tu,nu;const iu={env:{emscripten_notify_memory_growth:function(e){nu=new Uint8Array(tu.exports.memory.buffer)}}};class ru{init(){return eu||(eu="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+au).then(e=>e.arrayBuffer()).then(e=>WebAssembly.instantiate(e,iu)).then(this._init):WebAssembly.instantiate(Buffer.from(au,"base64"),iu).then(this._init),eu)}_init(e){tu=e.instance,iu.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!tu)throw new Error("ZSTDDecoder: Await .init() before decoding.");const n=e.byteLength,i=tu.exports.malloc(n);nu.set(e,i),t=t||Number(tu.exports.ZSTD_findDecompressedSize(i,n));const r=tu.exports.malloc(t),a=tu.exports.ZSTD_decompress(r,t,i,n),s=nu.slice(r,r+a);return tu.exports.free(i),tu.exports.free(r),s}}const au="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",su=new WeakMap;let ou,lu=0;class cu extends zl{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new LA,this.workerSourceURL="",this.workerConfig=null,"undefined"!=typeof MSC_TRANSCODER&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerPool.setWorkerLimit(e),this}async detectSupportAsync(e){return this.workerConfig={astcSupported:await e.hasFeatureAsync("texture-compression-astc"),etc1Supported:await e.hasFeatureAsync("texture-compression-etc1"),etc2Supported:await e.hasFeatureAsync("texture-compression-etc2"),dxtSupported:await e.hasFeatureAsync("texture-compression-bc"),bptcSupported:await e.hasFeatureAsync("texture-compression-bptc"),pvrtcSupported:await e.hasFeatureAsync("texture-compression-pvrtc")},this}detectSupport(e){return!0===e.isWebGPURenderer?this.workerConfig={astcSupported:e.hasFeature("texture-compression-astc"),etc1Supported:e.hasFeature("texture-compression-etc1"),etc2Supported:e.hasFeature("texture-compression-etc2"),dxtSupported:e.hasFeature("texture-compression-bc"),bptcSupported:e.hasFeature("texture-compression-bptc"),pvrtcSupported:e.hasFeature("texture-compression-pvrtc")}:this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}init(){if(!this.transcoderPending){const e=new ql(this.manager);e.setPath(this.transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),n=new ql(this.manager);n.setPath(this.transcoderPath),n.setResponseType("arraybuffer"),n.setWithCredentials(this.withCredentials);const i=n.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([t,i]).then(([e,t])=>{const n=cu.BasisWorker.toString(),i=["/* constants */","let _EngineFormat = "+JSON.stringify(cu.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(cu.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(cu.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([i])),this.transcoderBinary=t,this.workerPool.setWorkerCreator(()=>{const e=new Worker(this.workerSourceURL),t=this.transcoderBinary.slice(0);return e.postMessage({type:"init",config:this.workerConfig,transcoderBinary:t},[t]),e})}),lu>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),lu++}return this.transcoderPending}load(e,t,n,i){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const r=new ql(this.manager);r.setResponseType("arraybuffer"),r.setWithCredentials(this.withCredentials),r.load(e,e=>{if(su.has(e))return su.get(e).promise.then(t).catch(i);this._createTexture(e).then(e=>t?t(e):null).catch(i)},n,i)}_createTextureFrom(e,t){const{faces:n,width:i,height:r,format:a,type:s,error:o,dfdFlags:l}=e;if("error"===s)return Promise.reject(o);let c;if(6===t.faceCount)c=new _l(n,a,ye);else{const e=n[0].mipmaps;c=t.layerCount>1?new Cl(e,i,r,t.layerCount,a,ye):new bl(e,i,r,a,ye)}return c.minFilter=1===n[0].mipmaps.length?_e:xe,c.magFilter=_e,c.generateMipmaps=!1,c.needsUpdate=!0,c.colorSpace=du(t),c.premultiplyAlpha=!!(1&l),c}async _createTexture(e,t={}){const n=function(e){const t=new Uint8Array(e.buffer,e.byteOffset,ZA.length);if(t[0]!==ZA[0]||t[1]!==ZA[1]||t[2]!==ZA[2]||t[3]!==ZA[3]||t[4]!==ZA[4]||t[5]!==ZA[5]||t[6]!==ZA[6]||t[7]!==ZA[7]||t[8]!==ZA[8]||t[9]!==ZA[9]||t[10]!==ZA[10]||t[11]!==ZA[11])throw new Error("Missing KTX 2.0 identifier.");const n=new KA,i=17*Uint32Array.BYTES_PER_ELEMENT,r=new JA(e,ZA.length,i,!0);n.vkFormat=r._nextUint32(),n.typeSize=r._nextUint32(),n.pixelWidth=r._nextUint32(),n.pixelHeight=r._nextUint32(),n.pixelDepth=r._nextUint32(),n.layerCount=r._nextUint32(),n.faceCount=r._nextUint32();const a=r._nextUint32();n.supercompressionScheme=r._nextUint32();const s=r._nextUint32(),o=r._nextUint32(),l=r._nextUint32(),c=r._nextUint32(),h=r._nextUint64(),A=r._nextUint64(),u=new JA(e,ZA.length+i,3*a*8,!0);for(let t=0;t<a;t++)n.levels.push({levelData:new Uint8Array(e.buffer,e.byteOffset+u._nextUint64(),u._nextUint64()),uncompressedByteLength:u._nextUint64()});const d=new JA(e,s,o,!0),p={vendorId:d._skip(4)._nextUint16(),descriptorType:d._nextUint16(),versionNumber:d._nextUint16(),descriptorBlockSize:d._nextUint16(),colorModel:d._nextUint8(),colorPrimaries:d._nextUint8(),transferFunction:d._nextUint8(),flags:d._nextUint8(),texelBlockDimension:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],bytesPlane:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],samples:[]},f=(p.descriptorBlockSize/4-6)/4;for(let e=0;e<f;e++){const t={bitOffset:d._nextUint16(),bitLength:d._nextUint8(),channelType:d._nextUint8(),samplePosition:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};64&t.channelType?(t.sampleLower=d._nextInt32(),t.sampleUpper=d._nextInt32()):(t.sampleLower=d._nextUint32(),t.sampleUpper=d._nextUint32()),p.samples[e]=t}n.dataFormatDescriptor.length=0,n.dataFormatDescriptor.push(p);const g=new JA(e,l,c,!0);for(;g._offset<c;){const e=g._nextUint32(),t=g._scan(e),i=$A(t),r=g._scan(e-t.byteLength);n.keyValue[i]=i.match(/^ktx/i)?$A(r):r,g._offset%4&&g._skip(4-g._offset%4)}if(A<=0)return n;const m=new JA(e,h,A,!0),v=m._nextUint16(),E=m._nextUint16(),b=m._nextUint32(),C=m._nextUint32(),_=m._nextUint32(),I=m._nextUint32(),x=[];for(let e=0;e<a;e++)x.push({imageFlags:m._nextUint32(),rgbSliceByteOffset:m._nextUint32(),rgbSliceByteLength:m._nextUint32(),alphaSliceByteOffset:m._nextUint32(),alphaSliceByteLength:m._nextUint32()});const y=h+m._offset,w=y+b,M=w+C,S=M+_,B=new Uint8Array(e.buffer,e.byteOffset+y,b),T=new Uint8Array(e.buffer,e.byteOffset+w,C),R=new Uint8Array(e.buffer,e.byteOffset+M,_),D=new Uint8Array(e.buffer,e.byteOffset+S,I);return n.globalData={endpointCount:v,selectorCount:E,imageDescs:x,endpointsData:B,selectorsData:T,tablesData:R,extendedData:D},n}(new Uint8Array(e));if(0!==n.vkFormat)return async function(e){const{vkFormat:t}=e;if(void 0===Au[t])throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");let n;2===e.supercompressionScheme&&(ou||(ou=new Promise(async e=>{const t=new ru;await t.init(),e(t)})),n=await ou);const i=[];for(let r=0;r<e.levels.length;r++){const a=Math.max(1,e.pixelWidth>>r),s=Math.max(1,e.pixelHeight>>r),o=e.pixelDepth?Math.max(1,e.pixelDepth>>r):0,l=e.levels[r];let c,h;if(0===e.supercompressionScheme)c=l.levelData;else{if(2!==e.supercompressionScheme)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");c=n.decode(l.levelData,l.uncompressedByteLength)}h=uu[t]===Se?new Float32Array(c.buffer,c.byteOffset,c.byteLength/Float32Array.BYTES_PER_ELEMENT):uu[t]===Be?new Uint16Array(c.buffer,c.byteOffset,c.byteLength/Uint16Array.BYTES_PER_ELEMENT):c,i.push({data:h,width:a,height:s,depth:o})}let r;if(hu.has(Au[t]))r=0===e.pixelDepth?new Ho(i[0].data,e.pixelWidth,e.pixelHeight):new an(i[0].data,e.pixelWidth,e.pixelHeight,e.pixelDepth);else{if(e.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");r=new bl(i,e.pixelWidth,e.pixelHeight)}return r.mipmaps=i,r.type=uu[t],r.format=Au[t],r.colorSpace=du(e),r.needsUpdate=!0,Promise.resolve(r)}(n);const i=t,r=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:e,taskConfig:i},[e])).then(e=>this._createTextureFrom(e.data,n));return su.set(e,{promise:r}),r}dispose(){return this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),lu--,this}}cu.BasisFormat={ETC1S:0,UASTC_4x4:1},cu.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16},cu.EngineFormat={RGBAFormat:Re,RGBA_ASTC_4x4_Format:We,RGBA_BPTC_Format:je,RGBA_ETC2_EAC_Format:Ve,RGBA_PVRTC_4BPPV1_Format:Ge,RGBA_S3TC_DXT5_Format:Oe,RGB_ETC1_Format:He,RGB_ETC2_Format:ze,RGB_PVRTC_4BPPV1_Format:ke,RGBA_S3TC_DXT1_Format:Ne},cu.BasisWorker=function(){let e,t,n;const i=_EngineFormat,r=_TranscoderFormat,a=_BasisFormat;self.addEventListener("message",function(s){const A=s.data;switch(A.type){case"init":e=A.config,u=A.transcoderBinary,t=new Promise(e=>{n={wasmBinary:u,onRuntimeInitialized:e},BASIS(n)}).then(()=>{n.initializeBasis(),void 0===n.KTX2File&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":t.then(()=>{try{const{faces:t,buffers:s,width:u,height:d,hasAlpha:p,format:f,dfdFlags:g}=function(t){const s=new n.KTX2File(new Uint8Array(t));function A(){s.close(),s.delete()}if(!s.isValid())throw A(),new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file");const u=s.isUASTC()?a.UASTC_4x4:a.ETC1S,d=s.getWidth(),p=s.getHeight(),f=s.getLayers()||1,g=s.getLevels(),m=s.getFaces(),v=s.getHasAlpha(),E=s.getDFDFlags(),{transcoderFormat:b,engineFormat:C}=function(t,n,s,h){let A,u;const d=t===a.ETC1S?o:l;for(let i=0;i<d.length;i++){const r=d[i];if(e[r.if]&&r.basisFormat.includes(t)&&!(h&&r.transcoderFormat.length<2)&&(!r.needsPowerOfTwo||c(n)&&c(s)))return A=r.transcoderFormat[h?1:0],u=r.engineFormat[h?1:0],{transcoderFormat:A,engineFormat:u}}return console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32."),A=r.RGBA32,u=i.RGBAFormat,{transcoderFormat:A,engineFormat:u}}(u,d,p,v);if(!d||!p||!g)throw A(),new Error("THREE.KTX2Loader:\tInvalid texture");if(!s.startTranscoding())throw A(),new Error("THREE.KTX2Loader: .startTranscoding failed");const _=[],I=[];for(let e=0;e<m;e++){const t=[];for(let n=0;n<g;n++){const i=[];let r,a;for(let t=0;t<f;t++){const o=s.getImageLevelInfo(n,t,e);0!==e||0!==n||0!==t||o.origWidth%4==0&&o.origHeight%4==0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),g>1?(r=o.origWidth,a=o.origHeight):(r=o.width,a=o.height);const l=new Uint8Array(s.getImageTranscodedSizeInBytes(n,t,0,b));if(!s.transcodeImage(l,n,t,e,b,0,-1,-1))throw A(),new Error("THREE.KTX2Loader: .transcodeImage failed.");i.push(l)}const o=h(i);t.push({data:o,width:r,height:a}),I.push(o.buffer)}_.push({mipmaps:t,width:d,height:p,format:C})}return A(),{faces:_,buffers:I,width:d,height:p,hasAlpha:v,format:C,dfdFlags:E}}(A.buffer);self.postMessage({type:"transcode",id:A.id,faces:t,width:u,height:d,hasAlpha:p,format:f,dfdFlags:g},s)}catch(e){console.error(e),self.postMessage({type:"error",id:A.id,error:e.message})}})}var u});const s=[{if:"astcSupported",basisFormat:[a.UASTC_4x4],transcoderFormat:[r.ASTC_4x4,r.ASTC_4x4],engineFormat:[i.RGBA_ASTC_4x4_Format,i.RGBA_ASTC_4x4_Format],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.BC7_M5,r.BC7_M5],engineFormat:[i.RGBA_BPTC_Format,i.RGBA_BPTC_Format],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.BC1,r.BC3],engineFormat:[i.RGBA_S3TC_DXT1_Format,i.RGBA_S3TC_DXT5_Format],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.ETC1,r.ETC2],engineFormat:[i.RGB_ETC2_Format,i.RGBA_ETC2_EAC_Format],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.ETC1],engineFormat:[i.RGB_ETC1_Format],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[a.ETC1S,a.UASTC_4x4],transcoderFormat:[r.PVRTC1_4_RGB,r.PVRTC1_4_RGBA],engineFormat:[i.RGB_PVRTC_4BPPV1_Format,i.RGBA_PVRTC_4BPPV1_Format],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0}],o=s.sort(function(e,t){return e.priorityETC1S-t.priorityETC1S}),l=s.sort(function(e,t){return e.priorityUASTC-t.priorityUASTC});function c(e){return e<=2||!(e&e-1)&&0!==e}function h(e){if(1===e.length)return e[0];let t=0;for(let n=0;n<e.length;n++)t+=e[n].byteLength;const n=new Uint8Array(t);let i=0;for(let t=0;t<e.length;t++){const r=e[t];n.set(r,i),i+=r.byteLength}return n}};const hu=new Set([Re,Le,Ue]),Au={[jA]:Re,[VA]:Re,[kA]:Re,[GA]:Re,[qA]:Le,[zA]:Le,[FA]:Le,[OA]:Le,[WA]:Ue,[HA]:Ue,[NA]:Ue,[PA]:Ue,[XA]:qe,[YA]:qe},uu={[jA]:Se,[VA]:Be,[kA]:ye,[GA]:ye,[qA]:Se,[zA]:Be,[FA]:ye,[OA]:ye,[WA]:Se,[HA]:Be,[NA]:ye,[PA]:ye,[XA]:ye,[YA]:ye};function du(e){const t=e.dataFormatDescriptor[0];return 1===t.colorPrimaries?2===t.transferFunction?Ze:$e:10===t.colorPrimaries?2===t.transferFunction?et:tt:(0===t.colorPrimaries||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${t.colorPrimaries}"`),Je)}let pu=null;const fu=e=>{pu=null==e?null:e.endsWith("/")?e.substring(0,e.length-1):e},gu=()=>null!=pu?`${pu}/libs`:"https://cdn.jsdelivr.net/npm/three@0.165.0/examples/jsm/libs",mu=(()=>{const e=(()=>{var e;if(null===(e=document.documentElement.getAttribute("itemtype"))||void 0===e?void 0:e.includes("schema.org/SearchResultsPage"))return!0;const t=null!=document.head?Array.from(document.head.querySelectorAll("meta")):[];for(const e of t)if("viewport"===e.name)return!0;return!1})();return e||console.error('No <meta name="viewport"> detected. This might cause ShopAR to crash on iOS.\nPlease add the following line to your HTML:\n<meta name="viewport" content="width=device-width, initial-scale=1.0">'),()=>e?Math.min(window.devicePixelRatio||1,2):1})(),vu=new wi(16777215);let Eu,bu,Cu=!1,_u=1,Iu=1,xu=1;function yu(){return wu(),Eu}function wu(){if(Cu)return;xu=mu(),bu=document.createElement("canvas");const e=bu.style;e.position="absolute",e.top="0",e.left="0",e.width="100%",e.height="100%",Eu=new Mo({powerPreference:"high-performance",canvas:bu,antialias:!0,alpha:!0}),Eu.outputColorSpace=Ze,Eu.toneMapping=4,Eu.setClearColor(new wi(16777215),0),Cu=!0}function Mu(e,t,n,i,r){const{width:a,height:s}=t,o=Eu.toneMapping,l=Eu.toneMappingExposure;if(Eu.toneMapping=i,Eu.toneMappingExposure=r,Eu.setViewport(0,0,a,s),Eu.setClearColor(vu,n),e.setSize(a,s),e.render(),Eu.toneMapping=o,Eu.toneMappingExposure=l,t.isBlitted()){const{context2d:e}=t;if(null==e)return;e.clearRect(0,0,a,s),bu.width>0&&bu.height>0&&e.drawImage(bu,0,Iu-s,a,s,0,0,a,s)}}function Su(e,t){const n=mu();e=Math.ceil(e*n),t=Math.ceil(t*n),e===_u&&t===Iu&&n===xu||(_u=e,Iu=t,xu=n,yu().setSize(_u,Iu,!1))}function Bu(e,t){yu().renderCubeMapNormals(e),e.traverse(e=>{e instanceof hr&&e.material&&e.material.isMeshDiamondMaterial&&(e.material.envMap=t)})}let Tu,Ru=!1;function Du(e){return Ru||Qu(),Tu.parseAsync(e.buffer,"")}function Qu(){if(Ru)return;const e=(new Fh).setDecoderPath(`${gu()}/draco/gltf/`);e.preload();const t=(new cu).setTranscoderPath(`${gu()}/basis/`).detectSupport(yu());Tu=(new Gh).setDRACOLoader(e).setKTX2Loader(t).setMeshoptDecoder(Ph),Ru=!0}function Uu(e){null!=e&&(Object.values(e).forEach(e=>{(null==e?void 0:e.dispose)instanceof Function&&e.dispose()}),e.dispose())}function Lu(e,t,n,i,r,a){if(null==e)return new on;const s=Pu(e,i,r,new on),o=Nu(e);Pu(e,s.scale,s.quaternion,s.position);const l=o.getSize(new on),c=o.getCenter(new on);let h=0;return h=l.x/2+t/2,n&&(h=-h),new on(-c.x+h,-c.y+l.y/2,-c.z)}function Pu(e,t,n,i){let r,a,s;return null!=t&&(r=e.scale.x,e.scale.set(t,t,t)),null!=n&&(a=e.quaternion.clone(),e.quaternion.copy(n)),null!=i&&(s=e.position.clone(),e.position.copy(i)),{scale:r,quaternion:a,position:s}}function Nu(e){return(new hn).setFromObject(e,!0)}function Fu(e){e.traverse(e=>{var t;e instanceof hr&&(null===(t=e.geometry)||void 0===t||t.dispose(),Array.isArray(e.material)?e.material.forEach(Uu):Uu(e.material))}),e.clear()}const Ou={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\n\t\t}"};class ku{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const Gu=new Xr(-1,1,1,-1,0,1),Hu=new class extends qi{constructor(){super(),this.setAttribute("position",new Fi([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new Fi([0,2,0,0,2,0],2))}};class zu{constructor(e){this._mesh=new hr(Hu,e)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,Gu)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}}class Vu extends ku{constructor(e,t){super(),this.textureID=void 0!==t?t:"tDiffuse",e instanceof mr?(this.uniforms=e.uniforms,this.material=e):e&&(this.uniforms=gr.clone(e.uniforms),this.material=new mr({name:void 0!==e.name?e.name:"unspecified",defines:Object.assign({},e.defines),uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader})),this.fsQuad=new zu(this.material)}render(e,t,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this.fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class Wu extends ku{constructor(e,t){super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,n){const i=e.getContext(),r=e.state;let a,s;r.buffers.color.setMask(!1),r.buffers.depth.setMask(!1),r.buffers.color.setLocked(!0),r.buffers.depth.setLocked(!0),this.inverse?(a=0,s=1):(a=1,s=0),r.buffers.stencil.setTest(!0),r.buffers.stencil.setOp(i.REPLACE,i.REPLACE,i.REPLACE),r.buffers.stencil.setFunc(i.ALWAYS,a,4294967295),r.buffers.stencil.setClear(s),r.buffers.stencil.setLocked(!0),e.setRenderTarget(n),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),r.buffers.color.setLocked(!1),r.buffers.depth.setLocked(!1),r.buffers.color.setMask(!0),r.buffers.depth.setMask(!0),r.buffers.stencil.setLocked(!1),r.buffers.stencil.setFunc(i.EQUAL,1,4294967295),r.buffers.stencil.setOp(i.KEEP,i.KEEP,i.KEEP),r.buffers.stencil.setLocked(!0)}}class qu extends ku{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}}class ju{constructor(e,t){if(this.renderer=e,this._pixelRatio=e.getPixelRatio(),void 0===t){const n=e.getSize(new Dt);this._width=n.width,this._height=n.height,(t=new nn(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:Be})).texture.name="EffectComposer.rt1"}else this._width=t.width,this._height=t.height;this.renderTarget1=t,this.renderTarget2=t.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new Vu(Ou),this.copyPass.material.blending=0,this.clock=new uc}swapBuffers(){const e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){const t=this.passes.indexOf(e);-1!==t&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t<this.passes.length;t++)if(this.passes[t].enabled)return!1;return!0}render(e){void 0===e&&(e=this.clock.getDelta());const t=this.renderer.getRenderTarget();let n=!1;for(let t=0,i=this.passes.length;t<i;t++){const i=this.passes[t];if(!1!==i.enabled){if(i.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(t),i.render(this.renderer,this.writeBuffer,this.readBuffer,e,n),i.needsSwap){if(n){const t=this.renderer.getContext(),n=this.renderer.state.buffers.stencil;n.setFunc(t.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,e),n.setFunc(t.EQUAL,1,4294967295)}this.swapBuffers()}void 0!==Wu&&(i instanceof Wu?n=!0:i instanceof qu&&(n=!1))}}this.renderer.setRenderTarget(t)}reset(e){if(void 0===e){const t=this.renderer.getSize(new Dt);this._pixelRatio=this.renderer.getPixelRatio(),this._width=t.width,this._height=t.height,(e=this.renderTarget1.clone()).setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=e,this.renderTarget2=e.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(e,t){this._width=e,this._height=t;const n=this._width*this._pixelRatio,i=this._height*this._pixelRatio;this.renderTarget1.setSize(n,i),this.renderTarget2.setSize(n,i);for(let e=0;e<this.passes.length;e++)this.passes[e].setSize(n,i)}setPixelRatio(e){this._pixelRatio=e,this.setSize(this._width,this._height)}dispose(){this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.copyPass.dispose()}}const Yu={name:"OutputShader",uniforms:{tDiffuse:{value:null},toneMappingExposure:{value:1}},vertexShader:"\n\t\tprecision highp float;\n\n\t\tuniform mat4 modelViewMatrix;\n\t\tuniform mat4 projectionMatrix;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\t\n\t\tprecision highp float;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\t#include <tonemapping_pars_fragment>\n\t\t#include <colorspace_pars_fragment>\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tgl_FragColor = texture2D( tDiffuse, vUv );\n\n\t\t\t// tone mapping\n\n\t\t\t#ifdef LINEAR_TONE_MAPPING\n\n\t\t\t\tgl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( REINHARD_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( CINEON_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = OptimizedCineonToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( ACES_FILMIC_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( AGX_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb );\n\n\t\t\t#elif defined( NEUTRAL_TONE_MAPPING )\n\n\t\t\t\tgl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb );\n\n\t\t\t#endif\n\n\t\t\t// color space\n\n\t\t\t#ifdef SRGB_TRANSFER\n\n\t\t\t\tgl_FragColor = sRGBTransferOETF( gl_FragColor );\n\n\t\t\t#endif\n\n\t\t}"};class Xu extends ku{constructor(){super();const e=Yu;this.uniforms=gr.clone(e.uniforms),this.material=new Eo({name:e.name,uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader}),this.fsQuad=new zu(this.material),this._outputColorSpace=null,this._toneMapping=null}render(e,t,n){this.uniforms.tDiffuse.value=n.texture,this.uniforms.toneMappingExposure.value=e.toneMappingExposure,this._outputColorSpace===e.outputColorSpace&&this._toneMapping===e.toneMapping||(this._outputColorSpace=e.outputColorSpace,this._toneMapping=e.toneMapping,this.material.defines={},Vt.getTransfer(this._outputColorSpace)===it&&(this.material.defines.SRGB_TRANSFER=""),1===this._toneMapping?this.material.defines.LINEAR_TONE_MAPPING="":2===this._toneMapping?this.material.defines.REINHARD_TONE_MAPPING="":3===this._toneMapping?this.material.defines.CINEON_TONE_MAPPING="":4===this._toneMapping?this.material.defines.ACES_FILMIC_TONE_MAPPING="":6===this._toneMapping?this.material.defines.AGX_TONE_MAPPING="":7===this._toneMapping&&(this.material.defines.NEUTRAL_TONE_MAPPING=""),this.material.needsUpdate=!0),!0===this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class Ku extends ku{constructor(e,t,n=null,i=null,r=null){super(),this.scene=e,this.camera=t,this.overrideMaterial=n,this.clearColor=i,this.clearAlpha=r,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new wi}render(e,t,n){const i=e.autoClear;let r,a;e.autoClear=!1,null!==this.overrideMaterial&&(a=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),null!==this.clearColor&&(e.getClearColor(this._oldClearColor),e.setClearColor(this.clearColor,e.getClearAlpha())),null!==this.clearAlpha&&(r=e.getClearAlpha(),e.setClearAlpha(this.clearAlpha)),1==this.clearDepth&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:n),!0===this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),null!==this.clearColor&&e.setClearColor(this._oldClearColor),null!==this.clearAlpha&&e.setClearAlpha(r),null!==this.overrideMaterial&&(this.scene.overrideMaterial=a),e.autoClear=i}}const Ju={uniforms:{tDiffuse:{value:null},luminosityThreshold:{value:1},smoothWidth:{value:1},defaultColor:{value:new wi(0)},defaultOpacity:{value:0}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform vec3 defaultColor;\n\t\tuniform float defaultOpacity;\n\t\tuniform float luminosityThreshold;\n\t\tuniform float smoothWidth;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\n\t\t\tvec3 luma = vec3( 0.299, 0.587, 0.114 );\n\n\t\t\tfloat v = dot( texel.xyz, luma );\n\n\t\t\tvec4 outputColor = vec4( defaultColor.rgb, defaultOpacity );\n\n\t\t\tfloat alpha = smoothstep( luminosityThreshold, luminosityThreshold + smoothWidth, v );\n\n\t\t\tgl_FragColor = mix( outputColor, texel, alpha );\n\t\t\tgl_FragColor.rgb = max( gl_FragColor.rgb, vec3( 0.0 ) );\n\n\t\t}"};class Zu extends ku{constructor(e,t,n,i){super(),this.strength=void 0!==t?t:1,this.radius=n,this.threshold=i,this.resolution=void 0!==e?new Dt(e.x,e.y):new Dt(256,256),this.clearColor=new wi(0,0,0),this.renderTargetsHorizontal=[],this.renderTargetsVertical=[],this.nMips=5;let r=Math.round(this.resolution.x/2),a=Math.round(this.resolution.y/2);this.renderTargetBright=new nn(r,a,{type:Be}),this.renderTargetBright.texture.name="UnrealBloomPass.bright",this.renderTargetBright.texture.generateMipmaps=!1;for(let e=0;e<this.nMips;e++){const t=new nn(r,a,{type:Be});t.texture.name="UnrealBloomPass.h"+e,t.texture.generateMipmaps=!1,this.renderTargetsHorizontal.push(t);const n=new nn(r,a,{type:Be});n.texture.name="UnrealBloomPass.v"+e,n.texture.generateMipmaps=!1,this.renderTargetsVertical.push(n),r=Math.round(r/2),a=Math.round(a/2)}const s=Ju;this.highPassUniforms=gr.clone(s.uniforms),this.highPassUniforms.luminosityThreshold.value=i,this.highPassUniforms.smoothWidth.value=.01,this.materialHighPassFilter=new mr({uniforms:this.highPassUniforms,vertexShader:s.vertexShader,fragmentShader:s.fragmentShader}),this.separableBlurMaterials=[];const o=[3,5,7,9,11];r=Math.round(this.resolution.x/2),a=Math.round(this.resolution.y/2);for(let e=0;e<this.nMips;e++)this.separableBlurMaterials.push(this.getSeperableBlurMaterial(o[e])),this.separableBlurMaterials[e].uniforms.invSize.value=new Dt(1/r,1/a),r=Math.round(r/2),a=Math.round(a/2);this.compositeMaterial=this.getCompositeMaterial(this.nMips),this.compositeMaterial.uniforms.blurTexture1.value=this.renderTargetsVertical[0].texture,this.compositeMaterial.uniforms.blurTexture2.value=this.renderTargetsVertical[1].texture,this.compositeMaterial.uniforms.blurTexture3.value=this.renderTargetsVertical[2].texture,this.compositeMaterial.uniforms.blurTexture4.value=this.renderTargetsVertical[3].texture,this.compositeMaterial.uniforms.blurTexture5.value=this.renderTargetsVertical[4].texture,this.compositeMaterial.uniforms.bloomStrength.value=t,this.compositeMaterial.uniforms.bloomRadius.value=.1,this.compositeMaterial.uniforms.bloomFactors.value=[1,.8,.6,.4,.2],this.bloomTintColors=[new on(1,1,1),new on(1,1,1),new on(1,1,1),new on(1,1,1),new on(1,1,1)],this.compositeMaterial.uniforms.bloomTintColors.value=this.bloomTintColors;const l=Ou;this.copyUniforms=gr.clone(l.uniforms),this.blendMaterial=new mr({uniforms:this.copyUniforms,vertexShader:l.vertexShader,fragmentShader:l.fragmentShader,blending:2,depthTest:!1,depthWrite:!1,transparent:!0}),this.enabled=!0,this.needsSwap=!1,this._oldClearColor=new wi,this.oldClearAlpha=1,this.basic=new Ti,this.fsQuad=new zu(null)}dispose(){for(let e=0;e<this.renderTargetsHorizontal.length;e++)this.renderTargetsHorizontal[e].dispose();for(let e=0;e<this.renderTargetsVertical.length;e++)this.renderTargetsVertical[e].dispose();this.renderTargetBright.dispose();for(let e=0;e<this.separableBlurMaterials.length;e++)this.separableBlurMaterials[e].dispose();this.compositeMaterial.dispose(),this.blendMaterial.dispose(),this.basic.dispose(),this.fsQuad.dispose()}setSize(e,t){let n=Math.round(e/2),i=Math.round(t/2);this.renderTargetBright.setSize(n,i);for(let e=0;e<this.nMips;e++)this.renderTargetsHorizontal[e].setSize(n,i),this.renderTargetsVertical[e].setSize(n,i),this.separableBlurMaterials[e].uniforms.invSize.value=new Dt(1/n,1/i),n=Math.round(n/2),i=Math.round(i/2)}render(e,t,n,i,r){e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();const a=e.autoClear;e.autoClear=!1,e.setClearColor(this.clearColor,0),r&&e.state.buffers.stencil.setTest(!1),this.renderToScreen&&(this.fsQuad.material=this.basic,this.basic.map=n.texture,e.setRenderTarget(null),e.clear(),this.fsQuad.render(e)),this.highPassUniforms.tDiffuse.value=n.texture,this.highPassUniforms.luminosityThreshold.value=this.threshold,this.fsQuad.material=this.materialHighPassFilter,e.setRenderTarget(this.renderTargetBright),e.clear(),this.fsQuad.render(e);let s=this.renderTargetBright;for(let t=0;t<this.nMips;t++)this.fsQuad.material=this.separableBlurMaterials[t],this.separableBlurMaterials[t].uniforms.colorTexture.value=s.texture,this.separableBlurMaterials[t].uniforms.direction.value=Zu.BlurDirectionX,e.setRenderTarget(this.renderTargetsHorizontal[t]),e.clear(),this.fsQuad.render(e),this.separableBlurMaterials[t].uniforms.colorTexture.value=this.renderTargetsHorizontal[t].texture,this.separableBlurMaterials[t].uniforms.direction.value=Zu.BlurDirectionY,e.setRenderTarget(this.renderTargetsVertical[t]),e.clear(),this.fsQuad.render(e),s=this.renderTargetsVertical[t];this.fsQuad.material=this.compositeMaterial,this.compositeMaterial.uniforms.bloomStrength.value=this.strength,this.compositeMaterial.uniforms.bloomRadius.value=this.radius,this.compositeMaterial.uniforms.bloomTintColors.value=this.bloomTintColors,e.setRenderTarget(this.renderTargetsHorizontal[0]),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.blendMaterial,this.copyUniforms.tDiffuse.value=this.renderTargetsHorizontal[0].texture,r&&e.state.buffers.stencil.setTest(!0),this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(n),this.fsQuad.render(e)),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=a}getSeperableBlurMaterial(e){const t=[];for(let n=0;n<e;n++)t.push(.39894*Math.exp(-.5*n*n/(e*e))/e);return new mr({defines:{KERNEL_RADIUS:e},uniforms:{colorTexture:{value:null},invSize:{value:new Dt(.5,.5)},direction:{value:new Dt(.5,.5)},gaussianCoefficients:{value:t}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"#include <common>\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 invSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float gaussianCoefficients[KERNEL_RADIUS];\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tfloat weightSum = gaussianCoefficients[0];\n\t\t\t\t\tvec3 diffuseSum = texture2D( colorTexture, vUv ).rgb * weightSum;\n\t\t\t\t\tfor( int i = 1; i < KERNEL_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = float(i);\n\t\t\t\t\t\tfloat w = gaussianCoefficients[i];\n\t\t\t\t\t\tvec2 uvOffset = direction * invSize * x;\n\t\t\t\t\t\tvec3 sample1 = texture2D( colorTexture, vUv + uvOffset ).rgb;\n\t\t\t\t\t\tvec3 sample2 = texture2D( colorTexture, vUv - uvOffset ).rgb;\n\t\t\t\t\t\tdiffuseSum += (sample1 + sample2) * w;\n\t\t\t\t\t\tweightSum += 2.0 * w;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = vec4(diffuseSum/weightSum, 1.0);\n\t\t\t\t}"})}getCompositeMaterial(e){return new mr({defines:{NUM_MIPS:e},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D blurTexture1;\n\t\t\t\tuniform sampler2D blurTexture2;\n\t\t\t\tuniform sampler2D blurTexture3;\n\t\t\t\tuniform sampler2D blurTexture4;\n\t\t\t\tuniform sampler2D blurTexture5;\n\t\t\t\tuniform float bloomStrength;\n\t\t\t\tuniform float bloomRadius;\n\t\t\t\tuniform float bloomFactors[NUM_MIPS];\n\t\t\t\tuniform vec3 bloomTintColors[NUM_MIPS];\n\n\t\t\t\tfloat lerpBloomFactor(const in float factor) {\n\t\t\t\t\tfloat mirrorFactor = 1.2 - factor;\n\t\t\t\t\treturn mix(factor, mirrorFactor, bloomRadius);\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tgl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\n\t\t\t\t}"})}}Zu.BlurDirectionX=new Dt(1,0),Zu.BlurDirectionY=new Dt(0,1);const $u="backgroundTexture",ed=`\n uniform sampler2D ${$u};\n uniform sampler2D bloomTexture;\n uniform sampler2D objectMaskTexture;\n\n varying vec2 vUv;\n\n void main() {\n gl_FragColor = texture2D( ${$u}, vUv );\n gl_FragColor.rgb += texture2D( bloomTexture, vUv ).rgb * texture2D( objectMaskTexture, vUv ).a;\n }\n`;class td extends Vu{constructor(e,t){super(new mr({uniforms:{[$u]:{value:null},bloomTexture:{value:e},objectMaskTexture:{value:t}},vertexShader:"\n varying vec2 vUv;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }\n",fragmentShader:ed}),$u)}}var nd,id,rd,ad,sd,od,ld,cd,hd,Ad,ud,dd,pd,fd,gd,md,vd,Ed;const bd="neverDarken",Cd="shadowObject";class _d{constructor(e,t){nd.set(this,void 0),id.set(this,void 0),rd.set(this,!1),ad.set(this,.25),sd.set(this,0),od.set(this,2),ld.set(this,null),cd.set(this,null),hd.set(this,null),Ad.set(this,null),ud.set(this,null),dd.set(this,null),pd.set(this,null),fd.set(this,null),gd.set(this,null),md.set(this,{}),vd.set(this,null),Ed.set(this,new wi),E(this,nd,e),E(this,id,t)}set strength(e){E(this,ad,e),null!=v(this,hd,"f")&&(v(this,hd,"f").strength=v(this,ad,"f"))}set radius(e){E(this,sd,e),null!=v(this,hd,"f")&&(v(this,hd,"f").radius=v(this,sd,"f"))}set threshold(e){E(this,od,e),null!=v(this,hd,"f")&&(v(this,hd,"f").threshold=v(this,od,"f"))}init(){v(this,rd,"f")||(E(this,ld,new ju(yu())),E(this,cd,new Ku(v(this,nd,"f"),v(this,id,"f"))),v(this,cd,"f").clearColor=new wi(0),v(this,cd,"f").clearAlpha=0,v(this,ld,"f").addPass(v(this,cd,"f")),E(this,hd,new Zu(new Dt(256,256),v(this,ad,"f"),v(this,sd,"f"),v(this,od,"f"))),v(this,ld,"f").addPass(v(this,hd,"f")),E(this,Ad,new Xu),v(this,Ad,"f").needsSwap=!1,v(this,ld,"f").addPass(v(this,Ad,"f")),v(this,ld,"f").renderToScreen=!1,E(this,fd,new ju(yu())),E(this,gd,new Ku(v(this,nd,"f"),v(this,id,"f"))),v(this,fd,"f").addPass(v(this,gd,"f")),v(this,fd,"f").renderToScreen=!1,E(this,ud,new ju(yu())),E(this,dd,new Ku(v(this,nd,"f"),v(this,id,"f"))),v(this,ud,"f").addPass(v(this,dd,"f")),E(this,pd,new td(v(this,ld,"f").renderTarget1.texture,v(this,fd,"f").renderTarget2.texture)),v(this,ud,"f").addPass(v(this,pd,"f")),E(this,vd,new Ti({color:0})),E(this,rd,!0))}destroy(){v(this,rd,"f")&&(v(this,vd,"f").dispose(),E(this,vd,null),v(this,pd,"f").dispose(),E(this,pd,null),v(this,dd,"f").dispose(),E(this,dd,null),v(this,ud,"f").dispose(),E(this,ud,null),v(this,gd,"f").dispose(),E(this,gd,null),v(this,fd,"f").dispose(),E(this,fd,null),v(this,Ad,"f").dispose(),E(this,Ad,null),v(this,hd,"f").dispose(),E(this,hd,null),v(this,cd,"f").dispose(),E(this,cd,null),v(this,ld,"f").dispose(),E(this,ld,null),E(this,rd,!1))}setSize(e,t){null!=v(this,ld,"f")&&null!=v(this,fd,"f")&&null!=v(this,ud,"f")&&(v(this,ld,"f").setSize(e,t),v(this,fd,"f").setSize(e,t),v(this,ud,"f").setSize(e,t))}render(){null!=v(this,ld,"f")&&null!=v(this,fd,"f")&&null!=v(this,gd,"f")&&null!=v(this,ud,"f")&&null!=v(this,dd,"f")&&(v(this,ld,"f").render(),this.darkenMaterials(),this.hideShadow(),v(this,gd,"f").clearColor=yu().getClearColor(v(this,Ed,"f")),v(this,gd,"f").clearAlpha=yu().getClearAlpha(),v(this,fd,"f").render(),this.showShadow(),v(this,dd,"f").clearColor=yu().getClearColor(v(this,Ed,"f")),v(this,dd,"f").clearAlpha=yu().getClearAlpha(),v(this,ud,"f").render(),this.restoreDarkenedMaterials())}hideShadow(){v(this,nd,"f").traverse(e=>{e instanceof hr&&e.material.userData[Cd]&&(e.visible=!1)})}showShadow(){v(this,nd,"f").traverse(e=>{e instanceof hr&&e.material.userData[Cd]&&(e.visible=!0)})}onSceneUpdate(){yu().renderCubeMapNormals(v(this,nd,"f"))}darkenMaterials(){v(this,nd,"f").traverse(e=>{if(e instanceof hr){if(e.material.userData[bd])return;v(this,md,"f")[e.uuid]=e.material,e.material=v(this,vd,"f")}})}restoreDarkenedMaterials(){v(this,nd,"f").traverse(e=>{if(e instanceof hr){if(e.material!==v(this,vd,"f"))return;e.material=v(this,md,"f")[e.uuid],delete v(this,md,"f")[e.uuid]}})}}var Id,xd,yd,wd,Md,Sd;nd=new WeakMap,id=new WeakMap,rd=new WeakMap,ad=new WeakMap,sd=new WeakMap,od=new WeakMap,ld=new WeakMap,cd=new WeakMap,hd=new WeakMap,Ad=new WeakMap,ud=new WeakMap,dd=new WeakMap,pd=new WeakMap,fd=new WeakMap,gd=new WeakMap,md=new WeakMap,vd=new WeakMap,Ed=new WeakMap,(Sd=Md||(Md={}))[Sd.Direct=0]="Direct",Sd[Sd.Postprocessed=1]="Postprocessed";class Bd{constructor(e,t){Id.set(this,void 0),xd.set(this,void 0),yd.set(this,Md.Direct),wd.set(this,void 0),E(this,Id,e),E(this,xd,t),E(this,wd,new _d(v(this,Id,"f"),v(this,xd,"f")))}get bloomEnabled(){return v(this,yd,"f")===Md.Postprocessed}set bloomEnabled(e){e?(v(this,wd,"f").init(),E(this,yd,Md.Postprocessed)):(v(this,wd,"f").destroy(),E(this,yd,Md.Direct))}set bloomStrength(e){v(this,wd,"f").strength=e}set bloomRadius(e){v(this,wd,"f").radius=e}set bloomThreshold(e){v(this,wd,"f").threshold=e}dispose(){v(this,wd,"f").destroy(),E(this,yd,Md.Direct)}setSize(e,t){v(this,wd,"f").setSize(e,t)}render(){v(this,yd,"f")===Md.Direct?yu().render(v(this,Id,"f"),v(this,xd,"f")):v(this,yd,"f")===Md.Postprocessed&&v(this,wd,"f").render()}}Id=new WeakMap,xd=new WeakMap,yd=new WeakMap,wd=new WeakMap;const Td={name:"HorizontalBlurShader",uniforms:{tDiffuse:{value:null},h:{value:1/512}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float h;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 sum = vec4( 0.0 );\n\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051;\n\n\t\t\tgl_FragColor = sum;\n\n\t\t}"},Rd={name:"VerticalBlurShader",uniforms:{tDiffuse:{value:null},v:{value:1/512}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float v;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 sum = vec4( 0.0 );\n\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * v ) ) * 0.051;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * v ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * v ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * v ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * v ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * v ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * v ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * v ) ) * 0.051;\n\n\t\t\tgl_FragColor = sum;\n\n\t\t}"};let Dd,Qd,Ud,Ld=!1;const Pd=300,Nd=2*Math.PI/32,Fd=k("hold"),Od=k("sine"),kd=k("sine-in"),Gd=k("sine-out");function Hd(){let e=!0,t=!1,n=null,i=null,r=null;return{get custom(){return t},set:e=>{const{theta:a,phi:s,fov:o}=e;n=a,i=s,r=o,t=null!=a||null!=s||null!=o},reset:e=>{var a;t?(null==n||n.reset(),null==i||i.reset(),null==r||r.reset()):(n=B([{time:0,value:a=e,interpolation:Fd},{time:Pd,value:a,interpolation:Gd},{time:800,value:a+Nd,interpolation:Od},{time:1800,value:a-Nd,interpolation:kd},{time:2300,value:a,interpolation:Fd},{time:4300,value:a,interpolation:Fd}]),i=null,r=null)},get running(){return e},set running(t){e=t},update:t=>{e&&(null==n||n.update(t),null==i||i.update(t),null==r||r.update(t))},get theta(){return null==n?void 0:n.get()},get phi(){return null==i?void 0:i.get()},get fov(){return null==r?void 0:r.get()}}}var zd;!function(e){e[e.NONE=0]="NONE",e[e.USER_INTERACTION=1]="USER_INTERACTION",e[e.AUTOMATIC=2]="AUTOMATIC"}(zd||(zd={}));const Vd="pan-y",Wd=1e-6,qd=Math.PI/8,jd=new on;class Yd extends Et{constructor(e,t){super(),this.touchAction_=Vd,this.enablePan=!0,this.screenSpacePanning=!0,this.enableZoom_=!0,this.enableKeyControls=!1,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.defaultFov=16,this.minFovFactor=.2,this.maxFovFactor=1.6,this.minFov=this.defaultFov*this.minFovFactor,this.maxFov=this.defaultFov*this.maxFovFactor,this.fovMultiplier_=1,this.enableDamping=!0,this.dampingFactor=.3,this.interactionEnabled=!1,this.userInteracted=!1,this.target=new on,this.panSphereCenter=new on,this.panSphereRadius=1/0,this.spherical=new Cc,this.goalSpherical=new Cc,this.fov=this.defaultFov,this.panOffset=new on,this.fovDelta=0,this.lastPosition=new on,this.lastQuaternion=new sn,this.lastTargetPosition=new on,this.lastFov=this.fov,this.changeSource=zd.NONE,this.panInProgress=!1,this.touchMode=null,this.pointers=[],this.startPointerPosition={clientX:0,clientY:0},this.lastSeparation=0,this.touchDecided=!1,this.onPointerDown=e=>{if(this.pointers.length>2)return;const{element:t}=this;0===this.pointers.length&&(t.addEventListener("pointermove",this.onPointerMove),t.addEventListener("pointerup",this.onPointerUp),this.touchMode=null,this.touchDecided=!1,this.startPointerPosition.clientX=e.clientX,this.startPointerPosition.clientY=e.clientY);try{t.setPointerCapture(e.pointerId)}catch(e){}this.pointers.push({clientX:e.clientX,clientY:e.clientY,id:e.pointerId}),"touch"===e.pointerType?(this.changeSource=e.altKey?zd.AUTOMATIC:zd.USER_INTERACTION,this.onTouchChange()):(this.changeSource=zd.USER_INTERACTION,this.onMouseDown(e))},this.onPointerMove=e=>{const t=this.pointers.find(t=>t.id===e.pointerId);if(null==t)return;if("mouse"===e.pointerType&&0===e.buttons)return void this.onPointerUp(e);const n=this.pointers.length,i=(e.clientX-t.clientX)/n,r=(e.clientY-t.clientY)/n;0===i&&0===r||(t.clientX=e.clientX,t.clientY=e.clientY,"touch"===e.pointerType?(this.changeSource=e.altKey?zd.AUTOMATIC:zd.USER_INTERACTION,null!==this.touchMode&&this.touchMode(i,r)):(this.changeSource=zd.USER_INTERACTION,this.panInProgress?this.pan(i,r):this.handleSinglePointerMove(i,r)))},this.onPointerUp=e=>{const t=this.pointers.findIndex(t=>t.id===e.pointerId);-1!==t&&this.pointers.splice(t,1);const{element:n}=this;0===this.pointers.length?(n.removeEventListener("pointermove",this.onPointerMove),n.removeEventListener("pointerup",this.onPointerUp),n.removeEventListener("touchmove",this.disableScroll)):null!==this.touchMode&&this.onTouchChange(),n.style.cursor="grab",this.panInProgress=!1},this.onWheel=e=>{this.changeSource=zd.USER_INTERACTION;const t=e.deltaY*(1==e.deltaMode?18:1)*.2/30;this.userAdjustOrbit(0,0,t),e.preventDefault()},this.onKeyDown=e=>{const{changeSource:t}=this;this.changeSource=zd.USER_INTERACTION,(e.shiftKey&&this.enablePan?this.panKeyCodeHandler(e):this.orbitZoomKeyCodeHandler(e))?e.preventDefault():this.changeSource=t},this.disableScroll=e=>{e.preventDefault()},this.onContext=e=>{if(this.enablePan)e.preventDefault();else for(const e of this.pointers)this.onPointerUp(new PointerEvent("pointercancel",Object.assign(Object.assign({},this.startPointerPosition),{pointerId:e.id})))},this.onTouchChange=()=>{if(1===this.pointers.length)this.touchMode=this.touchModeRotate;else{if(!this.enableZoom_)return this.touchMode=null,void this.element.removeEventListener("touchmove",this.disableScroll);this.touchMode=this.touchDecided&&null===this.touchMode?null:this.touchModeZoom,this.touchDecided=!0,this.element.addEventListener("touchmove",this.disableScroll,{passive:!1}),this.lastSeparation=Kd(this.pointers[0],this.pointers[1]),this.enablePan&&null!=this.touchMode&&this.initializePan()}},this.onMouseDown=e=>{this.panInProgress=!1,this.enablePan&&(2===e.button||e.ctrlKey||e.metaKey||e.shiftKey)&&this.initializePan(),this.element.style.cursor="grabbing"},this.touchModeZoom=(e,t)=>{if(this.enableZoom_){const e=Kd(this.pointers[0],this.pointers[1]),t=.2*(this.lastSeparation-e)*35/this.element.clientHeight;this.lastSeparation=e,this.userAdjustOrbit(0,0,t)}this.panInProgress&&this.pan(e,t)},this.touchModeRotate=(e,t)=>{if(!this.touchDecided){this.touchDecided=!0;const n=Math.abs(e),i=Math.abs(t),r="pan-x"===this.touchAction_&&n>i,a="pan-y"===this.touchAction_&&i>n;if(this.changeSource===zd.USER_INTERACTION&&(r||a))return void(this.touchMode=null);this.element.addEventListener("touchmove",this.disableScroll,{passive:!1})}this.handleSinglePointerMove(e,t)},this.camera=e,this.element=t,this.quat=(new sn).setFromUnitVectors(e.up,new on(0,1,0)),this.quatInverse=this.quat.clone().invert(),this.update(0)}set touchAction(e){this.touchAction_=null!=e?e:Vd,this.updateTouchActionStyle()}set enableZoom(e){this.enableZoom_!=e&&(this.enableZoom_=e,e?this.element.addEventListener("wheel",this.onWheel):this.element.removeEventListener("wheel",this.onWheel),this.updateTouchActionStyle())}set minZoom(e){this.maxFovFactor=null!=e?1/e:1.6,this.maxFov=this.defaultFov*this.fovMultiplier_*this.maxFovFactor,this.fov=Xd(this.fov,this.minFov,this.maxFov)}set maxZoom(e){this.minFovFactor=null!=e?1/e:.2,this.minFov=this.defaultFov*this.fovMultiplier_*this.minFovFactor,this.fov=Xd(this.fov,this.minFov,this.maxFov)}set fovMultiplier(e){this.fovMultiplier_=e,this.fov=this.defaultFov*this.fovMultiplier_,this.minFov=this.fov*this.minFovFactor,this.maxFov=this.fov*this.maxFovFactor}reset(e,t,n,i,r){i||(this.fov=this.defaultFov*this.fovMultiplier_,this.minFov=this.fov*this.minFovFactor,this.maxFov=this.fov*this.maxFovFactor,this.camera.fov=this.camera.aspect<1?2*Math.atan(Math.tan(this.fov/2*Bt)/this.camera.aspect)*Tt:this.fov,this.camera.updateProjectionMatrix()),r?jd.copy(this.target).sub(this.panSphereCenter).divideScalar(this.panSphereRadius):jd.set(0,0,0),this.panSphereCenter.set(e.x,e.y,e.z);const a=t/Math.tan(this.defaultFov/2*Bt);this.panSphereRadius=Math.min(t,a-t),jd.multiplyScalar(this.panSphereRadius);const s=e.clone().addScaledVector(n,a).add(jd);this.camera.position.set(s.x,s.y,s.z),this.target.set(e.x,e.y,e.z).add(jd),this.camera.lookAt(this.target),jd.copy(this.camera.position).sub(this.target),jd.applyQuaternion(this.quat),this.spherical.setFromVector3(jd),this.goalSpherical.copy(this.spherical),this.lastPosition.copy(this.camera.position),this.lastQuaternion.copy(this.camera.quaternion),this.lastTargetPosition.copy(this.target),this.lastFov=this.fov,this.userInteracted=!1}hasUserInteracted(){return this.userInteracted}update(e){this.spherical.theta+=(this.goalSpherical.theta-this.spherical.theta)*Math.min(.03*e,1),this.spherical.phi+=(this.goalSpherical.phi-this.spherical.phi)*Math.min(.03*e,1),this.spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this.spherical.phi)),this.spherical.makeSafe(),!0===this.enableDamping?this.target.addScaledVector(this.panOffset,this.dampingFactor):this.target.add(this.panOffset),this.target.sub(this.panSphereCenter),this.target.clampLength(0,this.panSphereRadius),this.target.add(this.panSphereCenter),jd.setFromSpherical(this.spherical),jd.applyQuaternion(this.quatInverse),this.camera.position.copy(this.target).add(jd),this.camera.lookAt(this.target),this.fov=Math.pow(Math.sqrt(this.fov)+this.fovDelta,2),this.fov=Xd(this.fov,this.minFov,this.maxFov),this.fovDelta=0,!0===this.enableDamping?this.panOffset.multiplyScalar(1-this.dampingFactor):this.panOffset.set(0,0,0);let t=!1;const{aspect:n}=this.camera,i=this.element.clientWidth/this.element.clientHeight;i!==n&&(this.camera.aspect=i,t=!0);const r=Math.abs(this.lastFov-this.fov)>Wd;return(t||r)&&(this.camera.fov=this.camera.aspect<1?2*Math.atan(Math.tan(this.fov/2*Bt)/this.camera.aspect)*Tt:this.fov),this.camera.updateProjectionMatrix(),(this.lastPosition.distanceToSquared(this.camera.position)>Wd||8*(1-this.lastQuaternion.dot(this.camera.quaternion))>Wd||this.lastTargetPosition.distanceToSquared(this.target)>0||r)&&(this.dispatchEvent({type:"change"}),this.lastPosition.copy(this.camera.position),this.lastQuaternion.copy(this.camera.quaternion),this.lastTargetPosition.copy(this.target),this.lastFov=this.fov,t=!0),this.userInteracted=!1,t}getPose(e){return e.copy(this.camera.position),e.sub(this.target),e.normalize(),e}getTheta(){const e=this.camera.position;return jd.copy(e).sub(this.target),jd.applyQuaternion(this.quat),this.spherical.setFromVector3(jd),this.spherical.theta}set(e,t,n){return null!=e&&this.setTheta(e),null!=t&&this.setPhi(t),null!=n&&this.setFovRadians(n),null!=e||null!=t||null!=n}setTheta(e){const t=this.camera.position;jd.copy(t).sub(this.target),jd.applyQuaternion(this.quat),this.spherical.setFromVector3(jd),this.spherical.theta=e,this.spherical.makeSafe(),this.goalSpherical.copy(this.spherical),this.target.sub(this.panSphereCenter),this.target.clampLength(0,this.panSphereRadius),this.target.add(this.panSphereCenter),jd.setFromSpherical(this.spherical),jd.applyQuaternion(this.quatInverse),t.copy(this.target).add(jd),this.camera.lookAt(this.target),this.lastPosition.copy(t),this.lastQuaternion.copy(this.camera.quaternion),this.camera.updateProjectionMatrix()}setPhi(e){const t=this.camera.position;jd.copy(t).sub(this.target),jd.applyQuaternion(this.quat),this.spherical.setFromVector3(jd),this.spherical.phi=e,this.spherical.makeSafe(),this.goalSpherical.copy(this.spherical),this.target.sub(this.panSphereCenter),this.target.clampLength(0,this.panSphereRadius),this.target.add(this.panSphereCenter),jd.setFromSpherical(this.spherical),jd.applyQuaternion(this.quatInverse),t.copy(this.target).add(jd),this.camera.lookAt(this.target),this.lastPosition.copy(t),this.lastQuaternion.copy(this.camera.quaternion),this.camera.updateProjectionMatrix()}setFovRadians(e){this.fov=e*this.fovMultiplier_*Tt,this.fov=Xd(this.fov,this.minFov,this.maxFov),this.camera.fov=this.camera.aspect<1?2*Math.atan(Math.tan(this.fov/2*Bt)/this.camera.aspect)*Tt:this.fov,this.lastFov=this.fov}setInteractionEnabled(e){e?this.enableInteraction():this.disableInteraction()}enableInteraction(){if(!1===this.interactionEnabled){const{element:e}=this;e.addEventListener("pointerdown",this.onPointerDown),e.addEventListener("pointercancel",this.onPointerUp),this.enableZoom_&&e.addEventListener("wheel",this.onWheel),this.enableKeyControls&&(e.tabIndex=1,e.addEventListener("keydown",this.onKeyDown)),e.addEventListener("touchmove",()=>{},{passive:!1}),e.addEventListener("contextmenu",this.onContext),e.style.cursor="grab",this.interactionEnabled=!0,this.updateTouchActionStyle()}}disableInteraction(){if(!0===this.interactionEnabled){const{element:e}=this;e.removeEventListener("pointerdown",this.onPointerDown),e.removeEventListener("pointermove",this.onPointerMove),e.removeEventListener("pointerup",this.onPointerUp),e.removeEventListener("pointercancel",this.onPointerUp),e.removeEventListener("wheel",this.onWheel),e.tabIndex=-1,e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("contextmenu",this.onContext),e.style.cursor="",this.touchMode=null,this.interactionEnabled=!1,this.updateTouchActionStyle()}}orbitZoomKeyCodeHandler(e){let t=!0;switch(e.key){case"PageUp":this.userAdjustOrbit(0,0,.2);break;case"PageDown":this.userAdjustOrbit(0,0,-.2);break;case"ArrowUp":this.userAdjustOrbit(0,-qd,0);break;case"ArrowDown":this.userAdjustOrbit(0,qd,0);break;case"ArrowLeft":this.userAdjustOrbit(-qd,0,0);break;case"ArrowRight":this.userAdjustOrbit(qd,0,0);break;default:t=!1}return t}panKeyCodeHandler(e){this.initializePan();let t=!0;switch(e.key){case"ArrowUp":this.pan(0,10);break;case"ArrowDown":this.pan(0,-10);break;case"ArrowLeft":this.pan(10,0);break;case"ArrowRight":this.pan(-10,0);break;default:t=!1}return t}initializePan(){this.panInProgress=!0}pan(e,t){const n=this.element,i=this.camera.position;jd.copy(i).sub(this.target);let r=jd.length();r*=Math.tan(this.camera.fov/2*Math.PI/180),this.panLeft(2*e*r/n.clientHeight,this.camera.matrix),this.panUp(2*t*r/n.clientHeight,this.camera.matrix)}panLeft(e,t){jd.setFromMatrixColumn(t,0),jd.multiplyScalar(-e),this.panOffset.add(jd)}panUp(e,t){!0===this.screenSpacePanning?jd.setFromMatrixColumn(t,1):(jd.setFromMatrixColumn(t,0),jd.crossVectors(this.camera.up,jd)),jd.multiplyScalar(e),this.panOffset.add(jd)}handleSinglePointerMove(e,t){const n=this.pixelLengthToSphericalAngle(e),i=this.pixelLengthToSphericalAngle(t);this.userAdjustOrbit(n,i,0)}userAdjustOrbit(e,t,n){this.goalSpherical.theta+=.5*e*this.fovMultiplier_,this.goalSpherical.phi+=.5*t*this.fovMultiplier_,this.goalSpherical.makeSafe(),this.fovDelta+=n,this.userInteracted=!0}pixelLengthToSphericalAngle(e){return-2*Math.PI*e/Math.min(this.element.clientHeight,this.element.clientWidth)}updateTouchActionStyle(){const{style:e}=this.element;this.interactionEnabled?this.enableZoom_?e.touchAction=this.touchAction_:e.touchAction="manipulation":e.touchAction=""}}function Xd(e,t,n){return Math.max(t,Math.min(n,e))}function Kd(e,t){const{clientX:n,clientY:i}=e,{clientX:r,clientY:a}=t,s=r-n,o=a-i;return Math.sqrt(s*s+o*o)}const Jd=new Map;let Zd=null;function $d(){yu().setAnimationLoop(ep)}function ep(e){!function(){for(const e of Jd.values())e.prepareResize()}(),function(e){for(const t of Jd.values())t.update(e)}(e);let t=function(){let e=null;for(const t of Jd.values())if(t.needsRender){if(null!=e)return null;e=t}return e}();null!=Zd&&t!==Zd&&(Zd.ensureBlittedMode(),t=null),Zd=t,0!==function(){let e=0;for(const t of Jd.values())t.needsRender&&e++;return e}()&&(null!=t?(t.ensureDirectMode(),tp(),Su(t.width,t.height),np()):(function(){for(const e of Jd.values())e.needsRender&&e.ensureBlittedMode()}(),tp(),Su(function(){let e=0;for(const t of Jd.values())t.needsRender&&(e=Math.max(e,t.width));return e}(),function(){let e=0;for(const t of Jd.values())t.needsRender&&(e=Math.max(e,t.height));return e}()),np()))}function tp(){for(const e of Jd.values())e.commitResize()}function np(){for(const e of Jd.values())e.render()}function ip(){let e=null,t=null;return{reset:()=>{e=B([{time:0,value:0,interpolation:Fd},{time:Pd,value:1,interpolation:Fd},{time:2300,value:0,interpolation:Fd},{time:4300,value:0,interpolation:Fd}]),t=B([{time:0,value:0,interpolation:Fd},{time:Pd,value:0,interpolation:Gd},{time:800,value:-.05,interpolation:Od},{time:1800,value:.05,interpolation:kd},{time:2300,value:0,interpolation:Fd},{time:4300,value:0,interpolation:Fd}])},clear:()=>{e=null,t=null},update:n=>{null==e||e.update(n),null==t||t.update(n)},get visibility(){return null==e?void 0:e.get()},get position(){return null==t?void 0:t.get()}}}const rp=2e3,ap=2*Math.PI,sp=ap/12,op=ap/60,lp=ap/60;function cp(e){return B([{time:0,value:0,interpolation:{type:"bezier",x1:.9,y1:0,x2:.6,y2:1}},{time:rp,value:e,interpolation:{type:"hold"}}])}function hp(e,t,n){return-1*sp*(e%12+t/60+n/3600)}function Ap(e,t){return-1*op*(e+t/60)}function up(e,t){return-1*lp*(e+t/1e3)}function dp(e,t){let n,i,r,a,s,o,l,c,h,A,u,d,p,f=!1,g=null,m=new on(1,0,0),v=!1,E=!1,b=!1,C=!0,_=!1,I=!1,x=4,y=1,w=!0,M=!1,S=!1,B=0,T=0;const R={get paused(){return C},get needsRender(){return!(!f||C)&&_},ensureDirectMode:()=>{e.isDirect()||(_=!0),e.ensureDirectMode()},ensureBlittedMode:()=>{e.isBlitted()||(_=!0),e.ensureBlittedMode()},update:t=>{if(M||!f||C||null==s||!function(e){const t=e.getBoundingClientRect();return t.bottom>0&&t.top<Math.max(document.documentElement.clientHeight,window.innerHeight)&&t.right>0&&t.left<Math.max(document.documentElement.clientWidth,window.innerWidth)}(e.element))return;let n=0!==T?t-T:0;T=t,0===B?_=!0:B<3&&(n=0),B++,S||(a.hasUserInteracted()?(S=!0,u.running=!1,d.clear(),I=!0):(u.update(n),d.update(n),u.running&&a.set(u.theta,u.phi,u.fov)&&(_=!0),null==d.visibility&&null==d.position||(I=!0))),a.update(n)&&(_=!0),0!==n&&p.update()&&(_=!0)},render:()=>{M||!f||C||(_&&(Mu(n,e,!E&&!n.bloomEnabled||b?0:1,x,y),_=!1,null==h||h()),I&&(t.visible=w&&!S,null!=d.visibility&&(t.opacity=`${d.visibility}`),null!=d.position&&(t.transform=`translateX(${d.position*Math.min(e.width,e.height)}px)`),I=!1))},get width(){return e.element.clientWidth},get height(){return e.element.clientHeight},prepareResize:()=>{const{clientWidth:t,clientHeight:n}=e.element;e.clientWidth=t,e.clientHeight=n,e.dpr=xu,e.sizeDirty&&(_=!0)},commitResize:()=>{e.commitResize()}},D=(e,t)=>{const n=l.min.clone().add(l.max).divideScalar(2),i=Math.sqrt(function(e,t){let n=0;const i=new on;return e.updateWorldMatrix(!0,!0),e.traverseVisible(e=>{const{geometry:r}=e;if(void 0!==r){const{position:a}=r.attributes;if(void 0!==a)for(let r=0,s=a.count;r<s;r++)e.isMesh?e.getVertexPosition(r,i):i.fromBufferAttribute(a,r),e.isSkinnedMesh||i.applyMatrix4(e.matrixWorld),n=t(n,i)}}),n}(e,(e,t)=>Math.max(e,n.distanceToSquared(t))));a.reset(n,i,t?a.getPose(new on):m,t,t),null!=u&&(u.reset(a.getTheta()),a.set(u.theta,u.phi,u.fov))},Q={init:()=>{f||(function(e,t){Jd.set(e,t),1===Jd.size&&(wu(),Ld||(Dd=new no,Dd.userData.darkness={value:1},Dd.onBeforeCompile=e=>{e.uniforms.darkness=Dd.userData.darkness;const t=e.fragmentShader.replace("gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );","gl_FragColor = vec4( vec3( 0.0 ), ( 1.0 - fragCoordZ ) * darkness );");e.fragmentShader=`uniform float darkness;\n${t}`},Dd.depthTest=!1,Dd.depthWrite=!1,Qd=new mr(Td),Qd.depthTest=!1,Ud=new mr(Rd),Ud.depthTest=!1,Ld=!0))}(e.element,R),i=new wo,r=new _r(25,1,.5),a=new Yd(r,e.element),a.setInteractionEnabled(w),n=new Bd(i,r),c=function(e){let t,n,i,r,a,s,o,l,c=!1;function h(e){o.visible=!0,Qd.uniforms.tDiffuse.value=t.texture,Qd.uniforms.h.value=1*e/256,o.material=Qd;const i=yu();i.setRenderTarget(n),i.render(o,l),Ud.uniforms.tDiffuse.value=n.texture,Ud.uniforms.v.value=1*e/256,o.material=Ud,i.setRenderTarget(t),i.render(o,l),o.visible=!1}return{init:()=>{c||(t=new nn(512,512),t.texture.generateMipmaps=!1,n=new nn(512,512),n.texture.generateMipmaps=!1,i=new co,i.position.y=-.7,r=new Pr(45,45).rotateX(Math.PI/2),a=new Ti({map:t.texture,opacity:.5,transparent:!0,depthWrite:!1,userData:{[bd]:!0,[Cd]:!0}}),s=new hr(r,a),s.renderOrder=1,s.scale.y=-1,i.add(s),o=new hr(r),o.visible=!1,i.add(o),l=new Xr(-22.5,22.5,22.5,-22.5,0,3),l.rotation.x=Math.PI/2,i.add(l),c=!0)},destroy:()=>{c&&(l=null,o.clear(),o=null,s.clear(),s=null,Uu(a),a=null,r.dispose(),r=null,i.clear(),i=null,n.dispose(),n=null,t.dispose(),t=null,c=!1)},get group(){return i},render:()=>{const n=e.background;e.background=null,e.overrideMaterial=Dd;const i=yu(),r=i.getClearAlpha();i.setClearAlpha(0),i.setRenderTarget(t),i.render(e,l),e.overrideMaterial=null,h(1.5),h(.4*1.5),i.setRenderTarget(null),i.setClearAlpha(r),e.background=n}}}(i),c.init(),u=Hd(),d=ip(),p=function(){let e,t,n,i,r=!1,a=null;return{clear:()=>{r=!1,e=void 0,t=void 0,n=void 0,a=null},reset:i=>{r=!0,e=i.getObjectByName("hours"),t=i.getObjectByName("minutes"),n=i.getObjectByName("seconds"),a=function(e,t,n){let i,r,a,s,o=!1,l=!1;return{update:c=>{if(!o){i=new Date(c),i.setMilliseconds(i.getMilliseconds()+rp);const e=i.getHours(),t=i.getMinutes(),n=i.getSeconds(),l=i.getMilliseconds();r=cp(hp(e,t,n)),a=cp(Ap(t,n)),s=cp(up(n,l)),o=!0}if(l)return;const h=i.getTime()-c.getTime(),A=rp-h;h<=0?l=!0:(null!=e&&(r.seek(A),e.rotation.y=r.get()),null!=t&&(a.seek(A),t.rotation.y=a.get()),null!=n&&(s.seek(A),n.rotation.y=s.get()))},get done(){return l}}}(e,t,n)},update:()=>{if(!r)return!1;const s=new Date;if(null==i&&(i=new Date),null!=a){if(a.update(s),!a.done)return i=s,!0;a=null}if(Math.abs(s.getTime()-i.getTime())<125)return!1;const o=s.getHours(),l=s.getMinutes(),c=s.getSeconds(),h=s.getMilliseconds();return null!=e&&(e.rotation.y=hp(o,l,c)),null!=t&&(t.rotation.y=Ap(l,c)),null!=n&&(n.rotation.y=up(c,h)),i=s,!0}}}(),f=!0)},destroy:()=>{var t;f&&(null===(t=i.environment)||void 0===t||t.dispose(),i.environment=null,p=null,d=null,u=null,c.destroy(),c=null,n.dispose(),n=null,a=null,r=null,Fu(i),i=null,function(e){Jd.delete(e),0===Jd.size&&Ld&&(Uu(Ud),Ud=null,Uu(Qd),Qd=null,Uu(Dd),Dd=null,Ld=!1)}(e.element),f=!1)},set gltfScene(e){s=e,Fu(i),null!=s&&(i.add(s),this.isDiamondScene&&Bu(s,o),l=(new hn).setFromObject(s),c.group.position.y=l.min.y-0,i.add(c.group),c.render(),E=function(e){let t=!1;return e.traverse(e=>{if(!t&&e instanceof hr){const n=e.material;Array.isArray(n)?n.forEach(e=>{e.transmission>0&&(t=!0)}):n.transmission>0&&(t=!0)}}),t}(i),D(s,v&&S),u.reset(a.getTheta()),d.reset(),p.clear(),"Watches"===g&&p.reset(s),C||$d()),B=0,_=!0},get isDiamondScene(){var e;return!!(null===(e=null==s?void 0:s.userData)||void 0===e?void 0:e.isDiamondScene)},set environment(e){var t;null===(t=i.environment)||void 0===t||t.dispose(),i.environment=e},set diamondEnvironment(e){o=e,this.isDiamondScene&&null!=s&&Bu(s,e)},set environmentRotation(e){i.environmentRotation.y=e*Math.PI/180,_=!0},updateOnce:e=>{f&&!C&&(S||(u.update(e),u.running&&a.set(u.theta,u.phi,u.fov)&&(_=!0)),0!==e&&p.update()&&(_=!0))},renderOnce:()=>{R.prepareResize(),R.ensureBlittedMode(),R.commitResize(),Su(R.width,R.height),S||a.set(u.theta,u.phi,u.fov),Mu(n,e,!E&&!n.bloomEnabled||b?0:1,x,y),null==h||h()},get category(){return g},set category(e){g=e},set initialPose(e){m=e},set toneMapping(e){const t={ACES:4,Linear:1,Neutral:7};null!=t[e]&&(x=t[e]),_=!0},set toneMappingExposure(e){y=e,_=!0},set paused(e){e?(C=!0,a.setInteractionEnabled(!1),function(){for(const{paused:e}of Jd.values())if(!e)return!1;return!0}()&&yu().setAnimationLoop(null),t.opacity="0",t.visible=!1):(C=!1,a.setInteractionEnabled(w),null!=s&&(D(s,!1),_=!0,$d()),T=0)},set interactive(e){w=e,a.setInteractionEnabled(e)},set touchAction(e){a.touchAction=e},set zoomEnabled(e){a.enableZoom=e},set minZoom(e){a.minZoom=e},set maxZoom(e){a.maxZoom=e},set preserveCameraOnReload(e){v=e},set forcedTransparency(e){b=e,_=!0},set defaultFov(e){a.defaultFov=e},set fovMultiplier(e){a.fovMultiplier=e,_=!0},set bloomEnabled(e){n.bloomEnabled=e,_=!0},set bloomStrength(e){n.bloomStrength=e,_=!0},set bloomRadius(e){n.bloomRadius=e,_=!0},set bloomThreshold(e){n.bloomThreshold=e,_=!0},set nonLiveRendering(e){M=e},set onRendered(e){h=e},set onInteracted(e){null!=A&&a.removeEventListener("change",A),A=e,null!=e&&a.addEventListener("change",e)},setAnimationConfig:e=>{u.set(e),null!=s&&D(s,!0),u.custom||(u.reset(a.getTheta()),d.reset()),_=!0}};return Q}function pp(e){return t=>m(this,void 0,void 0,function*(){try{yield t()}catch(t){e(t)}})}const fp={initialized:!1,paused:!1,posterUrl:null,glbUrl:null,envUrl:null,diamondEnvUrl:null,envRotation:null,toneMapping:null,toneMappingExposure:null,bloomEnabled:null,bloomStrength:null,bloomRadius:null,bloomThreshold:null,category:null,glbLocal:!1,interactive:!1,touchAction:null,zoomEnabled:!1,minZoom:null,maxZoom:null,preserveCameraOnReload:!1,alwaysTransparentBackground:!1,defaultFov:null,fovMultiplier:null,defaultCameraPositions:null,interactionPromptUrl:null,interactionPromptSize:null,nonLiveRendering:null,baseUrl:null,onModelLoaded:null,onRendered:null,onInteracted:null,animation:null,thetaAnimation:null,phiAnimation:null,fovAnimation:null};function gp(e,t){const n=e,i=t,r=dp(i.canvasWrapper,i.prompt),a=function(){const e=Object.assign({},wc);return{set vectors(t){for(const i of Object.keys(e)){if(!yc(i))continue;const r=null==t?void 0:t[i];e[i]=null!=r?new on((n=r)[0],n[1],n[2]):wc[i]}var n},getVector:t=>{var n;return(null==t?e.Glasses:null!==(n=e[t])&&void 0!==n?n:e.Glasses).normalize()}}}();let s=()=>{};const o=[],l=new nh;let c,h,A,u,d,p,f,g,v,E,b,C,_,I,x;l.setOnProgress(e=>{i.loading.progress=e,e>0&&(i.loading.visible=!0)});const y=function(){const e=Object.keys(fp).reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:0}),{});return t=>{const n=++e[t];return()=>n!==e[t]}}(),w=function(){const e=Object.keys(fp).reduce((e,t)=>Object.assign(Object.assign({},e),{[t]:!1}),{});return{lock:t=>{e[t]=!0},unlock:t=>{e[t]=!1},anyLocked:()=>Object.values(e).some(e=>e),locks_:e}}(),M=function(e,t){return n=>{t.length>0?(t.forEach(e=>e.reject(n)),t.length=0):e.onError?e.onError(n):console.error(n)}}(n,o),S=function(e,t){return(n,i)=>m(this,void 0,void 0,function*(){const r=pp(t),a=function(e,t){const n=e(t);return e=>m(this,void 0,void 0,function*(){yield e(n)})}(e,n);yield r(()=>a(i))})}(y,M),T=function(e,t,n,i){return(r,a)=>m(this,void 0,void 0,function*(){const s=function(e,t){return n=>m(this,void 0,void 0,function*(){e.lock(t),yield n(),e.unlock(t)})}(e,r),o=pp(i),l=function(e,t,n,i){const r=t(i);return t=>m(this,void 0,void 0,function*(){yield Promise.resolve(),r()||(yield t(r))&&(e.unlock(i),e.anyLocked()||n())})}(e,t,n,r);yield s(()=>o(()=>l(a)))})}(w,y,()=>{void 0!==b&&(r.category=b,r.initialPose=a.getVector(null!=b?b:Mc)),void 0!==c&&(r.gltfScene=c),void 0!==h&&(r.environment=h),void 0!==A&&(r.diamondEnvironment=A),void 0!==u&&(r.environmentRotation=null!=u?u:0),void 0!==f&&(r.bloomEnabled=null!=f&&f),void 0!==g&&(r.bloomStrength=null!=g?g:.25),void 0!==v&&(r.bloomRadius=null!=v?v:0),void 0!==E&&(r.bloomThreshold=null!=E?E:2),null==s||s(),void 0!==x&&r.setAnimationConfig(x),void 0!==d&&(r.toneMapping=null!=d?d:"Neutral"),void 0!==p&&(r.toneMappingExposure=null!=p?p:1),void 0!==C&&(r.forcedTransparency=C),void 0!==_&&(r.onRendered=_),void 0!==I&&(r.onInteracted=I),r.renderOnce(),i.canvasVisible=!0,i.posterVisible=!1,i.loading.visible=!1,o.forEach(e=>e.resolve()),o.length=0,c=void 0,h=void 0,A=void 0,d=void 0,p=void 0,b=void 0,C=void 0,_=void 0,I=void 0},M);return n.onInitializedChange=e=>S("initialized",t=>m(this,void 0,void 0,function*(){e?(r.init(),r.paused=n.paused):r.destroy()})),n.onPausedChange=e=>S("paused",t=>m(this,void 0,void 0,function*(){r.paused=e})),n.onPosterUrlChange=e=>S("posterUrl",t=>m(this,void 0,void 0,function*(){i.loadPoster(e),i.posterVisible=w.anyLocked(),i.canvasVisible=!w.anyLocked()})),n.onGlbUrlChange=t=>T("glbUrl",r=>m(this,void 0,void 0,function*(){if(null!=t)if(Qu(),"string"==typeof t){null!=n.posterUrl&&(i.posterVisible=!0,i.canvasVisible=!1);const a=255,s=mp(e.glbLocal)?new Uint8Array(yield Xc(t,l)):yield Kc(t,(new Date).getTime()+a,Math.random()*a,l);if(r())return!1;const o=yield Du(s);if(r())return!1;c=o.scene}else{const n=255,i=mp(e.glbLocal,"left")?Xc(t.left,l).then(e=>new Uint8Array(e)):Kc(t.left,(new Date).getTime()+n,Math.random()*n,l),a=mp(e.glbLocal,"right")?Xc(t.right,l).then(e=>new Uint8Array(e)):Kc(t.right,(new Date).getTime()+n,Math.random()*n,l),s=yield i;if(r())return!1;const o=yield a;if(r())return!1;const h=(yield Du(s)).scene;if(r())return!1;const A=(yield Du(o)).scene;if(r())return!1;c=function(e,t){const n=new co,i=Nu(e).getSize(new on),r=Nu(t).getSize(new on),a=.075*Math.max(i.z,r.z),s=Lu(e,a,!1,void 0,new sn(0,0,0,1));e.position.set(s.x,s.y,s.z);const o=Lu(t,a,!0,void 0,new sn(0,0,0,1));return t.position.set(o.x,o.y,o.z),n.add(e,t),n}(h,A)}else c=null;return!0})),n.onEnvUrlChange=e=>T("envUrl",t=>m(this,void 0,void 0,function*(){if(null!=e){const n=yield Xc(e,l);if(t())return!1;h=Lh(n)}else h=null;return!0})),n.onDiamondEnvUrlChange=e=>T("diamondEnvUrl",t=>m(this,void 0,void 0,function*(){if(null!=e){const n=yield Xc(e,l);if(t())return!1;A=Lh(n)}else A=null;return!0})),n.onEnvRotationChange=e=>T("envRotation",t=>m(this,void 0,void 0,function*(){return u=e,!0})),n.onToneMappingChange=e=>T("toneMapping",t=>m(this,void 0,void 0,function*(){return d=e,!0})),n.onToneMappingExposureChange=e=>T("toneMappingExposure",t=>m(this,void 0,void 0,function*(){return p=e,!0})),n.onBloomEnabledChange=e=>T("bloomEnabled",t=>m(this,void 0,void 0,function*(){return f=e,!0})),n.onBloomStrengthChange=e=>T("bloomStrength",t=>m(this,void 0,void 0,function*(){return g=e,!0})),n.onBloomRadiusChange=e=>T("bloomRadius",t=>m(this,void 0,void 0,function*(){return v=e,!0})),n.onBloomThresholdChange=e=>T("bloomThreshold",t=>m(this,void 0,void 0,function*(){return E=e,!0})),n.onCategoryChange=e=>T("category",t=>m(this,void 0,void 0,function*(){return b=e,!0})),n.onInteractiveChange=e=>S("interactive",t=>m(this,void 0,void 0,function*(){r.interactive=e})),n.onTouchActionChange=e=>S("touchAction",t=>m(this,void 0,void 0,function*(){r.touchAction=e})),n.onZoomEnabledChange=e=>S("zoomEnabled",t=>m(this,void 0,void 0,function*(){r.zoomEnabled=e})),n.onMinZoomChange=e=>S("minZoom",t=>m(this,void 0,void 0,function*(){r.minZoom=e})),n.onMaxZoomChange=e=>S("maxZoom",t=>m(this,void 0,void 0,function*(){r.maxZoom=e})),n.onPreserveCameraOnReloadChange=e=>S("preserveCameraOnReload",t=>m(this,void 0,void 0,function*(){r.preserveCameraOnReload=e})),n.onAlwaysTransparentBackgroundChange=e=>T("alwaysTransparentBackground",t=>m(this,void 0,void 0,function*(){return C=e,!0})),n.onDefaultFovChange=e=>S("defaultFov",t=>m(this,void 0,void 0,function*(){r.defaultFov=null!=e?e:16})),n.onFovMultiplierChange=e=>S("fovMultiplier",t=>m(this,void 0,void 0,function*(){r.fovMultiplier=null!=e?e:1})),n.onDefaultCameraPositionsChange=e=>S("defaultCameraPositions",t=>m(this,void 0,void 0,function*(){var t;a.vectors=e,r.initialPose=a.getVector(null!==(t=r.category)&&void 0!==t?t:Mc)})),n.onInteractionPromptUrlChange=e=>S("interactionPromptUrl",t=>m(this,void 0,void 0,function*(){i.prompt.imageUrl=e})),n.onInteractionPromptSizeChange=e=>S("interactionPromptSize",t=>m(this,void 0,void 0,function*(){i.prompt.imageSize=e})),n.onNonLiveRenderingChange=e=>S("nonLiveRendering",t=>m(this,void 0,void 0,function*(){r.nonLiveRendering=!!e})),n.onBaseUrlChange=e=>S("baseUrl",t=>m(this,void 0,void 0,function*(){fu(e)})),n.onOnModelLoadedChange=e=>S("onModelLoaded",t=>m(this,void 0,void 0,function*(){s=e})),n.onOnRenderedChange=e=>T("onRendered",t=>m(this,void 0,void 0,function*(){return _=e,!0})),n.onOnInteractedChange=e=>T("onInteracted",t=>m(this,void 0,void 0,function*(){return I=e,!0})),n.onAnimationChange=e=>T("animation",t=>m(this,void 0,void 0,function*(){if(null==e)return x={theta:null,phi:null,fov:null},!0;const t=N(e);return x={theta:null!=t.theta?B(t.theta):null,phi:null!=t.phi?B(t.phi):null,fov:null!=t.fov?B(t.fov):null},!0})),{render:e=>{r.updateOnce(e),r.renderOnce()},flushChanges:()=>new Promise((e,t)=>{w.anyLocked()?o.push({resolve:e,reject:t}):e()})}}function mp(e,t){if(null==t){if("boolean"==typeof e)return e;const t=e.left||e.right;return console.warn(`Expected 'glbLocal' to be boolean, but got object (treating as ${t}).`),t}return"boolean"==typeof e?e:e[t]}var vp,Ep,bp,Cp,_p,Ip,xp,yp,wp,Mp,Sp,Bp;!function(e){e[e.Empty=0]="Empty",e[e.Direct=1]="Direct",e[e.Blitted=2]="Blitted"}(Bp||(Bp={}));class Tp{constructor(){vp.add(this),Ep.set(this,document.createElement("div")),bp.set(this,Bp.Empty),Cp.set(this,null),_p.set(this,1),Ip.set(this,1),xp.set(this,1),yp.set(this,1),wp.set(this,1),Mp.set(this,!1);const{style:e}=v(this,Ep,"f");e.position="absolute",e.top="0",e.left="0",e.width="100%",e.height="100%",e.pointerEvents="auto"}get element(){return v(this,Ep,"f")}isDirect(){return v(this,bp,"f")===Bp.Direct}ensureDirectMode(){if(v(this,bp,"f")===Bp.Direct)return;E(this,bp,Bp.Direct);const e=yu().domElement;document.contains(e)&&console.warn("[ShopAR 3D] Direct rendering not working properly!"),v(this,Ep,"f").replaceChildren(e),E(this,Cp,null),E(this,Mp,!0)}isBlitted(){return v(this,bp,"f")===Bp.Blitted}ensureBlittedMode(){v(this,bp,"f")!==Bp.Blitted&&(E(this,bp,Bp.Blitted),E(this,Cp,function(){const e=document.createElement("canvas"),{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",e}()),v(this,Ep,"f").replaceChildren(v(this,Cp,"f")),E(this,Mp,!0))}set visible(e){v(this,Ep,"f").style.visibility=e?"visible":"hidden"}get width(){return v(this,xp,"f")}get height(){return v(this,yp,"f")}set clientWidth(e){e!==v(this,_p,"f")&&E(this,Mp,!0),E(this,_p,e)}set clientHeight(e){e!==v(this,Ip,"f")&&E(this,Mp,!0),E(this,Ip,e)}get dpr(){return v(this,wp,"f")}set dpr(e){e!==this.dpr&&E(this,Mp,!0),E(this,wp,e)}get sizeDirty(){return v(this,Mp,"f")}commitResize(){if(!v(this,Mp,"f"))return;E(this,Mp,!1);const e=v(this,vp,"m",Sp).call(this);null!=e&&(E(this,xp,Math.ceil(v(this,_p,"f")*v(this,wp,"f"))),E(this,yp,Math.ceil(v(this,Ip,"f")*v(this,wp,"f"))),e.width=v(this,xp,"f"),e.height=v(this,yp,"f"))}get context2d(){var e,t;return null!==(t=null===(e=v(this,Cp,"f"))||void 0===e?void 0:e.getContext("2d"))&&void 0!==t?t:null}}function Rp(e){return`var(${e.var}, ${e.default})`}Ep=new WeakMap,bp=new WeakMap,Cp=new WeakMap,_p=new WeakMap,Ip=new WeakMap,xp=new WeakMap,yp=new WeakMap,wp=new WeakMap,Mp=new WeakMap,vp=new WeakSet,Sp=function(){return v(this,bp,"f")===Bp.Direct?yu().domElement:v(this,bp,"f")===Bp.Blitted?v(this,Cp,"f"):null};const Dp="--shopar-3d",Qp={display:{var:`${Dp}-loading-display`,default:"block"},top:{var:`${Dp}-loading-top`,default:"0"},bottom:{var:`${Dp}-loading-bottom`,default:"auto"},height:{var:`${Dp}-loading-height`,default:"0.375rem"},radius:{var:`${Dp}-loading-radius`,default:"calc(infinity * 1px)"},fg:{var:`${Dp}-loading-fg`,default:"linear-gradient(90deg, #773cd8, #5fb9ec)"},bg:{var:`${Dp}-loading-bg`,default:"#e5e7eb"}},Up="width 0.05s ease-out";const Lp="data:image/svg+xml,%3csvg width='869' height='1251' viewBox='0 0 869 1251' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cg clip-path='url(%23clip0_894_1533)'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M303.44 353.132C304.829 314.64 330.051 282.714 363.992 272.987C371.106 271.049 378.436 270.01 385.808 269.895C391.367 269.895 396.717 270.486 401.893 271.424C439.69 278.372 467.899 309.36 467.899 346.462V654.953H511.671C613.911 606.665 685.371 500.36 685.371 376.165C685.571 306.213 662.333 238.211 619.365 183.01L604.427 165.64C577.851 136.528 545.96 112.766 510.212 96.1603C473.492 79.1377 432.881 69.4105 390.012 69.4105C347.143 69.4105 306.636 79.0683 269.812 96.1603C234.029 112.766 202.173 136.528 175.666 165.64L160.728 183.01C117.761 238.211 94.5225 306.213 94.722 376.165C94.714 391.336 95.8054 406.487 97.9875 421.5C99.0297 428.796 101.045 435.744 102.504 442.935L107.228 464.613C110.112 474.548 114.037 484.067 117.824 493.516L122.132 505.085C127.341 516.473 133.246 527.53 139.814 538.192L142.073 542.43C171.755 590.029 214.112 628.416 264.392 653.286L302.954 671.941V353.097L303.44 353.132Z' fill='white' fill-opacity='0.5'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M797.001 876.074L701.118 1144.96C695.143 1161.81 677.634 1172.75 657.589 1172.75H425.283C369.49 1172.75 317.867 1149.13 287.018 1109.53C231.711 1038.38 160.321 976.75 74.7561 926.447C71.4558 924.536 69.5451 921.687 69.4757 918.456C69.3367 914.982 71.0737 911.647 76.1805 908.139C95.6349 894.486 119.05 887.295 143.09 887.295C151.152 887.279 159.195 888.083 167.095 889.692L338.085 924.223V346.427C338.085 323.395 359.45 304.635 385.679 304.635C411.908 304.635 433.377 323.395 433.377 346.427V689.728H535.964C545.448 689.728 554.481 692.264 562.263 697.024L779.631 831.606C780.569 832.197 781.194 833.065 782.063 833.691C796.306 843.974 802.42 860.441 796.862 876.074M142.499 542.431C141.665 541.041 141.04 539.547 140.241 538.192C133.666 527.534 127.76 516.477 122.558 505.085C120.891 501.368 119.779 497.338 118.251 493.517L107.655 464.613C105.64 457.595 104.528 450.161 102.93 442.935L98.4141 421.501C96.2308 406.488 95.1394 391.336 95.1485 376.165C95.1485 302.968 119.953 235.815 161.155 183.011L176.093 165.641C202.634 136.459 234.525 112.731 270.238 96.1605C306.993 79.1379 347.569 69.4107 390.439 69.4107C433.308 69.4107 473.884 79.1379 510.639 96.1605C546.421 112.731 578.278 136.459 604.854 165.641L619.723 183.011C662.719 238.184 685.972 306.182 685.763 376.13C685.763 500.395 614.338 606.665 512.063 654.953H468.291V346.393C468.291 309.325 439.735 278.302 402.285 271.354C397.074 270.382 391.724 269.826 386.2 269.826C378.557 269.826 371.366 271.111 364.384 272.952C330.443 282.68 305.221 314.571 303.832 353.063V671.907L265.27 653.251C214.758 628.725 172.376 590.58 142.499 542.431ZM798.043 802.147L580.71 667.564C577.166 665.375 573.136 664.16 569.245 662.562C662.453 600.03 720.503 493.899 720.503 376.2C720.503 359.316 719.218 342.71 716.89 326.521C709.659 275.243 691.021 226.238 662.348 183.115L652.1 168.941L649.807 165.745C639.725 152.491 628.708 139.976 616.839 128.295C604.958 116.692 592.243 105.957 578.834 96.2647C538.709 67.2916 492.261 47.2118 441.958 38.9437L416.528 35.8866L390.543 34.8444C373.298 34.8447 356.082 36.2272 339.058 38.9785C288.789 47.2466 242.272 67.3263 202.182 96.2995C192.322 103.7 182.893 111.657 173.939 120.131C163.518 129.655 153.713 139.831 144.584 150.598L131.209 165.779L118.702 183.149L108.697 199.408L94.1758 226.436L92.7862 229.562C72.1854 274.029 60.478 323.708 60.478 376.234C60.478 509.358 136.281 631.295 253.632 686.741L303.554 710.364V882.188L173.765 855.994C163.608 853.965 153.273 852.964 142.916 853.006C142.325 853.006 141.735 853.11 141.179 853.11C132.425 853.249 123.705 854.257 115.124 855.89C112.364 856.472 109.619 857.121 106.891 857.835C100.186 859.433 93.62 861.552 87.1583 864.088C84.5528 865.13 81.9473 866.068 79.3418 867.562C70.6568 871.523 62.1803 876.039 54.2248 881.632C47.9431 885.96 42.8502 891.798 39.4144 898.609C35.9785 905.42 34.3099 912.986 34.562 920.61C34.9201 928.091 37.1618 935.359 41.079 941.742C44.9961 948.125 50.4619 953.415 56.9693 957.122C139.025 1004.85 207.116 1063.53 259.677 1131.24C264.329 1137.24 269.365 1142.94 274.754 1148.3C312.482 1185.88 367.024 1207.81 425.04 1207.88H657.693C683.679 1207.84 707.372 1196.31 722.24 1177.58C727.173 1171.33 731.134 1164.38 733.913 1156.67L829.691 887.781C832.957 878.749 834.207 869.369 833.582 860.197C832.957 851.026 830.525 842.133 826.53 833.795C820.225 820.757 810.33 809.79 798.008 802.182' fill='black' fill-opacity='0.6'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M779.738 831.676L562.37 697.093C554.446 692.276 545.346 689.739 536.072 689.763H433.485V346.532C433.485 323.499 412.085 304.74 385.787 304.74C359.489 304.74 338.193 323.499 338.193 346.532V924.71L167.203 890.178C159.291 888.569 151.236 887.766 143.163 887.781C119.267 887.676 95.9182 894.929 76.2881 908.555C71.1813 912.099 69.4096 915.434 69.5485 918.908C69.6875 922.174 71.5635 925.022 74.8638 926.898C160.394 977.202 231.784 1038.76 287.125 1109.98C317.94 1149.58 369.563 1173.2 425.39 1173.2H657.662C677.707 1173.2 695.181 1161.88 701.191 1145.41L797.074 876.525C802.632 860.962 796.483 844.46 782.274 834.142C781.406 833.448 780.781 832.649 779.843 832.058L779.738 831.676Z' fill='white'/%3e%3cmask id='mask0_894_1533' style='mask-type:luminance' maskUnits='userSpaceOnUse' x='0' y='0' width='869' height='1243'%3e%3cpath d='M0.0664062 0.0349731H868.462V1242.62H0.0664062V0.0349731Z' fill='white'/%3e%3c/mask%3e%3cg mask='url(%23mask0_894_1533)'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M833.58 860.197C834.209 869.559 832.897 878.95 829.724 887.781L733.911 1156.67C731.132 1164.31 727.172 1171.36 722.239 1177.58C707.405 1196.34 683.677 1207.81 657.727 1207.88H425.038C367.022 1207.81 312.481 1185.88 274.753 1148.3C269.403 1142.95 264.331 1137.25 259.676 1131.27C207.114 1063.57 139.024 1004.89 57.2458 956.809C43.8709 948.993 35.4985 935.34 34.8385 920.332C34.5864 912.708 36.255 905.143 39.6909 898.332C43.1267 891.521 48.2196 885.682 54.5013 881.354C62.4292 875.912 70.8363 871.202 79.6183 867.284L87.4348 863.81C93.8598 861.272 100.453 859.183 107.167 857.557L115.401 855.612C124.016 854.014 132.771 853.006 141.456 852.833C142.081 852.833 142.637 852.728 143.193 852.728C153.719 852.694 163.932 853.666 174.111 855.716L303.413 881.84V710.399L253.527 686.775C136.21 631.33 60.3724 509.393 60.3724 376.269C60.3724 323.812 72.045 274.134 92.6806 229.597C93.2017 228.555 93.5491 227.513 94.0702 226.47C98.4821 217.195 103.38 208.232 108.591 199.443C111.822 193.884 115.053 188.465 118.597 183.184C120.785 179.884 123.217 176.723 125.545 173.561L131.138 165.675C135.237 160.291 140.17 155.601 144.513 150.494C153.753 140.072 163.411 129.511 173.868 120.027C182.822 111.552 192.251 103.596 202.112 96.1953C242.202 67.2569 288.753 47.2119 339.022 38.8743C356.034 36.1219 373.239 34.7394 390.472 34.7402C399.145 34.7313 407.815 35.0906 416.457 35.8172C425.038 36.512 433.48 37.5542 441.922 38.8743C492.225 47.1424 538.707 67.2221 578.797 96.1953C592.242 105.923 604.922 116.622 616.803 128.226C628.681 139.898 639.699 152.413 649.771 165.675L652.064 168.871C655.607 173.492 659.116 178.182 662.312 183.045C690.997 226.166 709.647 275.171 716.889 326.452C719.182 342.676 720.467 359.281 720.467 376.13C720.467 493.829 662.451 600.307 569.244 662.492C573.065 664.09 577.13 665.271 580.708 667.495L798.041 802.077C810.895 810.068 820.449 821.184 826.528 833.343C830.523 841.681 832.955 850.644 833.58 859.746M857.794 818.231C848.588 799.124 834.275 783.248 816.315 772.166L631.394 657.628C709.732 586.863 755.207 484.971 755.207 375.748C755.207 299.667 733.078 226.227 691.285 163.348C686.908 156.817 682.253 150.494 677.389 144.171C654.982 114.712 628.684 88.5872 599.155 67.6043C537.561 23.5887 465.337 0.0349731 390.472 0.0349731C315.457 0.0670918 242.383 23.8817 181.754 68.0559C152.294 89.3863 125.961 115.163 103.485 144.658C98.7601 150.911 94.0354 157.268 89.6582 163.765C47.7965 226.679 25.6671 300.119 25.6671 376.2C25.6671 522.733 109.286 656.899 238.728 718.111L268.708 732.354V839.77L180.99 822.053C168.622 819.621 156.081 818.37 143.609 818.37C104.55 818.376 66.4474 830.462 34.5258 852.971C11.8406 868.952 -0.978479 894.729 0.133201 921.861C0.732449 935.148 4.66826 948.071 11.5776 959.437C18.4869 970.803 28.1472 980.245 39.6673 986.894C117.485 1032.68 182.31 1088.44 232.231 1152.67C276.004 1208.95 348.02 1242.65 425.038 1242.72H657.727C707.057 1242.68 750.83 1212.84 766.602 1168.45L862.484 899.558C871.933 873.26 870.266 844.53 857.829 818.787' fill='black' fill-opacity='0.05'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cclipPath id='clip0_894_1533'%3e%3crect width='868.5' height='1250.64' fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",Pp="2rem";function Np(e){const t=function(){const e=document.createElement("div"),{style:t}=e;return t.position="relative",t.width="100%",t.height="100%",t.pointerEvents="none",e}(),n=function(){const e=document.createElement("div");e.draggable=!1;const{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.objectFit="contain",t.visibility="hidden",t.backgroundSize="contain",t.backgroundRepeat="no-repeat",t.backgroundPosition="center",e}();t.appendChild(n);const i=new Tp;t.appendChild(i.element);const r=function(){const e=function(){const e=document.createElement("div"),{style:t}=e;return t.display=Rp(Qp.display),t.opacity="0",t.transition="opacity 0.2s ease-out",t.position="absolute",t.top=Rp(Qp.top),t.bottom=Rp(Qp.bottom),t.left="0",t.width="100%",t.height=Rp(Qp.height),t.overflow="hidden",e}(),t=function(){const e=document.createElement("div"),{style:t}=e;return t.position="absolute",t.width="100%",t.height="100%",t.background=Rp(Qp.bg),e}(),n=function(){const e=document.createElement("div"),{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="0%",t.height="100%",t.background=Rp(Qp.fg),t.borderRadius=Rp(Qp.radius),t.transition=Up,e}();t.appendChild(n),e.appendChild(t);let i=0;return{get container(){return e},set progress(e){e<i?(n.style.transition="none",n.style.width=100*e+"%",n.offsetWidth,n.style.transition=Up):n.style.width=100*e+"%",i=e},set visible(t){e.style.opacity=t?"1":"0"}}}();t.appendChild(r.container);const a=function(){const e=function(){const e=document.createElement("div"),{style:t}=e;return t.visibility="hidden",t.position="absolute",t.width="100%",t.height="100%",t.display="flex",t.justifyContent="center",t.alignItems="center",e}(),t=function(){const e=function(e){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width",e),t.setAttribute("height",e),t}(Pp),{style:t}=e;return t.transition="opacity 0.3s",t.opacity="0",e}(),n=function(e,t){const n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t),n.setAttribute("width",e),n.setAttribute("height",e),n}(Pp,Lp);return t.appendChild(n),e.appendChild(t),{get container(){return e},get svg(){return t},set imageUrl(e){n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",null!=e?e:Lp)},set imageSize(e){const i=null!=e?e:Pp;t.setAttribute("width",i),t.setAttribute("height",i),n.setAttribute("width",i),n.setAttribute("height",i)},set visible(t){e.style.visibility=t?"visible":"hidden"},set opacity(e){t.style.opacity=e},set transform(e){t.style.transform=e}}}();return t.appendChild(a.container),{get root(){return t},get canvasWrapper(){return i},get loading(){return r},get prompt(){return a},set canvasVisible(e){i.visible=e},set posterVisible(e){n.style.visibility=e?"visible":"hidden"},loadPoster:e=>{n.style.backgroundImage=e?`url(${e})`:""}}}var Fp,Op,kp,Gp;class Hp extends HTMLElement{constructor(){super(),Fp.add(this),Op.set(this,void 0),kp.set(this,void 0),E(this,Op,function(){let e,t,n,i,r,a,s,o,l,c,h,A,u,d,p,f,g,m,v,E,b,C,_,I,x,y,w,M,S,B,T,R,D,Q,U=()=>{},L=()=>{},P=()=>{},N=()=>{},F=()=>{},O=()=>{},k=()=>{},G=()=>{},H=()=>{},z=()=>{},V=()=>{},W=()=>{},q=()=>{},j=()=>{},Y=()=>{},X=()=>{},K=()=>{},J=()=>{},Z=()=>{},$=()=>{},ee=()=>{},te=()=>{},ne=()=>{},ie=()=>{},re=()=>{},ae=()=>{},se=()=>{},oe=()=>{},le=()=>{},ce=()=>{},he=()=>{},Ae=()=>{},ue=()=>{},de=()=>{};function pe(){e=!1,t=!1,n=null,i=null,r=null,a=null,s=null,o=null,l=null,c=null,h=null,A=null,u=null,d=null,p=!1,f=!0,g=null,m=null,v=null,E=null,b=null,C=!0,_=null,I=null,x=!1,y=!1,w=null,M=null,S=null,B=null,T=null,R=null,D=null,Q=null}return pe(),{get initialized(){return e},set initialized(t){const n=t!==e;e=t,t||pe(),n&&(null==U||U(e))},set onInitializedChange(e){U=e},get paused(){return t},set paused(e){const n=e!==t;t=e,n&&(null==L||L(t))},set onPausedChange(e){L=e},get posterUrl(){return n},set posterUrl(e){const t=e!==n;n=e,t&&(null==P||P(e))},set onPosterUrlChange(e){P=e},set glbUrl(e){const t=e!==i;i=e,t&&(null==N||N(i))},set onGlbUrlChange(e){N=e},set envUrl(e){const t=e!==r;r=e,t&&(null==F||F(r))},set onEnvUrlChange(e){F=e},set diamondEnvUrl(e){const t=e!==a;a=e,t&&(null==O||O(a))},set onDiamondEnvUrlChange(e){O=e},set envRotation(e){const t=e!==s;s=e,t&&(null==k||k(s))},set onEnvRotationChange(e){k=e},set toneMapping(e){const t=e!==o;o=e,t&&(null==G||G(o))},set onToneMappingChange(e){G=e},set toneMappingExposure(e){const t=e!==l;l=e,t&&(null==H||H(l))},set onToneMappingExposureChange(e){H=e},set bloomEnabled(e){const t=e!==c;c=e,t&&(null==z||z(c))},set onBloomEnabledChange(e){z=e},set bloomStrength(e){const t=e!==h;h=e,t&&(null==V||V(h))},set onBloomStrengthChange(e){V=e},set bloomRadius(e){const t=e!==A;A=e,t&&(null==W||W(A))},set onBloomRadiusChange(e){W=e},set bloomThreshold(e){const t=e!==u;u=e,t&&(null==q||q(u))},set onBloomThresholdChange(e){q=e},set category(e){const t=e!==d;d=e,t&&(null==j||j(d))},set onCategoryChange(e){j=e},get glbLocal(){return p},set glbLocal(e){const t=e!==p;p=e,t&&(null==Y||Y(p))},set onGlbLocalChange(e){Y=e},set interactive(e){const t=e!==f;f=e,t&&(null==X||X(f))},set onInteractiveChange(e){X=e},set onModelLoaded(e){const t=e!==g;g=e,t&&(null==K||K(g))},set onOnModelLoadedChange(e){K=e},set onRendered(e){const t=e!==m;m=e,t&&(null==J||J(m))},set onOnRenderedChange(e){J=e},set onInteracted(e){const t=e!==v;v=e,t&&(null==Z||Z(v))},set onOnInteractedChange(e){Z=e},get onError(){return E},set onError(e){const t=e!==E;E=e,t&&(null==$||$(E))},set onOnErrorChange(e){$=e},set touchAction(e){const t=e!==b;b=e,t&&(null==ee||ee(b))},set onTouchActionChange(e){ee=e},set zoomEnabled(e){const t=e!==C;C=e,t&&(null==te||te(C))},set onZoomEnabledChange(e){te=e},set minZoom(e){const t=e!==_;_=e,t&&(null==ne||ne(_))},set onMinZoomChange(e){ne=e},set maxZoom(e){const t=e!==I;I=e,t&&(null==ie||ie(I))},set onMaxZoomChange(e){ie=e},set preserveCameraOnReload(e){const t=e!==x;x=e,t&&(null==re||re(x))},set onPreserveCameraOnReloadChange(e){re=e},set alwaysTransparentBackground(e){const t=e!==y;y=e,t&&(null==ae||ae(y))},set onAlwaysTransparentBackgroundChange(e){ae=e},set defaultFov(e){const t=e!==w;w=e,t&&(null==se||se(w))},set onDefaultFovChange(e){se=e},set fovMultiplier(e){const t=e!==M;M=e,t&&(null==oe||oe(M))},set onFovMultiplierChange(e){oe=e},set defaultCameraPositions(e){const t=e!==S;S=e,t&&(null==le||le(S))},set onDefaultCameraPositionsChange(e){le=e},set interactionPromptUrl(e){const t=e!==B;B=e,t&&(null==ce||ce(B))},set onInteractionPromptUrlChange(e){ce=e},set interactionPromptSize(e){const t=e!==T;T=e,t&&(null==he||he(T))},set onInteractionPromptSizeChange(e){he=e},set animation(e){const t=e!==R;R=e,t&&(null==Ae||Ae(R))},set onAnimationChange(e){Ae=e},set nonLiveRendering(e){const t=e!==D;D=e,t&&(null==ue||ue(D))},set onNonLiveRenderingChange(e){ue=e},set baseUrl(e){const t=e!==Q;Q=e,t&&(null==de||de(Q))},set onBaseUrlChange(e){de=e}}}());const e=Np(v(this,Op,"f"));E(this,kp,gp(v(this,Op,"f"),e)),this.attachShadow({mode:"open"}).appendChild(e.root)}connectedCallback(){v(this,Op,"f").initialized=!0}disconnectedCallback(){v(this,Op,"f").initialized=!1}attributeChangedCallback(e,t,n){var i,r;if(v(this,Op,"f").initialized)if("paused"===e)v(this,Op,"f").paused=zp(n);else if("poster-url"===e)v(this,Op,"f").posterUrl=n;else if("glb-url"===e)v(this,Op,"f").glbUrl=function(e){if(null==e?void 0:e.includes("|")){const[t,n]=e.split("|",2);return{left:t,right:n}}return e}(n);else if("env-url"===e)v(this,Op,"f").envUrl=n;else if("diamond-env-url"===e)v(this,Op,"f").diamondEnvUrl=n;else if("env-rotation"===e)v(this,Op,"f").envRotation=Vp(n);else if("tone-mapping"===e)v(this,Op,"f").toneMapping=(r=i=n,Ic.includes(r)?i:null);else if("tone-mapping-exposure"===e)v(this,Op,"f").toneMappingExposure=Vp(n);else if("bloom-enabled"===e)v(this,Op,"f").bloomEnabled=zp(n);else if("bloom-strength"===e)v(this,Op,"f").bloomStrength=Vp(n);else if("bloom-radius"===e)v(this,Op,"f").bloomRadius=Vp(n);else if("bloom-threshold"===e)v(this,Op,"f").bloomThreshold=Vp(n);else if("category"===e)v(this,Op,"f").category=function(e){return yc(e)?e:null}(n);else if("glb-local"===e)v(this,Op,"f").glbLocal=function(e){if(null==e?void 0:e.includes("|")){const[t,n]=e.split("|",2);return{left:"true"===t,right:"true"===n}}return zp(e)}(n);else if("interactivity-disabled"===e)v(this,Op,"f").interactive=!zp(n);else if("touch-action"===e)v(this,Op,"f").touchAction=function(e){return function(e){return xc.includes(e)}(e)?e:null}(n);else if("zoom-disabled"===e)v(this,Op,"f").zoomEnabled=!zp(n);else if("min-zoom"===e)v(this,Op,"f").minZoom=Vp(n);else if("max-zoom"===e)v(this,Op,"f").maxZoom=Vp(n);else if("preserve-camera-on-reload"===e)v(this,Op,"f").preserveCameraOnReload=zp(n);else if("always-transparent-background"===e)v(this,Op,"f").alwaysTransparentBackground=zp(n);else if("default-fov"===e)v(this,Op,"f").defaultFov=Vp(n);else if("fov-multiplier"===e)v(this,Op,"f").fovMultiplier=Vp(n);else if("interaction-prompt-url"===e)v(this,Op,"f").interactionPromptUrl=n;else if("interaction-prompt-size"===e)v(this,Op,"f").interactionPromptSize=n;else if("non-live-rendering"===e)v(this,Op,"f").nonLiveRendering=zp(n);else{if("base-url"!==e)throw new Error(`Unknown attribute: ${e} (changed from '${t}' to '${n}')`);v(this,Op,"f").baseUrl=n}}set paused(e){v(this,Fp,"m",Gp).call(this,"paused",e?"":null)}set posterUrl(e){v(this,Fp,"m",Gp).call(this,"poster-url",e)}set glbUrl(e){v(this,Fp,"m",Gp).call(this,"glb-url","string"==typeof e||null==e?e:`${e.left}|${e.right}`)}set envUrl(e){v(this,Fp,"m",Gp).call(this,"env-url",e)}set diamondEnvUrl(e){v(this,Fp,"m",Gp).call(this,"diamond-env-url",e)}set envRotation(e){v(this,Fp,"m",Gp).call(this,"env-rotation",null!=e?`${e}`:null)}set toneMapping(e){v(this,Fp,"m",Gp).call(this,"tone-mapping",e)}set toneMappingExposure(e){v(this,Fp,"m",Gp).call(this,"tone-mapping-exposure",`${e}`)}set bloomEnabled(e){v(this,Fp,"m",Gp).call(this,"bloom-enabled",e?"":null)}set bloomStrength(e){v(this,Fp,"m",Gp).call(this,"bloom-strength",null!=e?`${e}`:null)}set bloomRadius(e){v(this,Fp,"m",Gp).call(this,"bloom-radius",null!=e?`${e}`:null)}set bloomThreshold(e){v(this,Fp,"m",Gp).call(this,"bloom-threshold",null!=e?`${e}`:null)}set category(e){v(this,Fp,"m",Gp).call(this,"category",e)}set animation(e){v(this,Op,"f").animation=e}set glbLocal(e){v(this,Fp,"m",Gp).call(this,"glb-local","boolean"==typeof e||null==e?e?"":null:`${e.left}|${e.right}`)}set interactivityDisabled(e){v(this,Fp,"m",Gp).call(this,"interactivity-disabled",e?"":null)}set touchAction(e){v(this,Fp,"m",Gp).call(this,"touch-action",e)}set zoomDisabled(e){v(this,Fp,"m",Gp).call(this,"zoom-disabled",e?"":null)}set minZoom(e){v(this,Fp,"m",Gp).call(this,"min-zoom",null!=e?`${e}`:null)}set maxZoom(e){v(this,Fp,"m",Gp).call(this,"max-zoom",null!=e?`${e}`:null)}set preserveCameraOnReload(e){v(this,Fp,"m",Gp).call(this,"preserve-camera-on-reload",e?"":null)}set alwaysTransparentBackground(e){v(this,Fp,"m",Gp).call(this,"always-transparent-background",e?"":null)}set defaultFov(e){v(this,Fp,"m",Gp).call(this,"default-fov",`${e}`)}set fovMultiplier(e){v(this,Fp,"m",Gp).call(this,"fov-multiplier",`${e}`)}set defaultCameraPositions(e){v(this,Op,"f").defaultCameraPositions=e}set interactionPromptUrl(e){v(this,Fp,"m",Gp).call(this,"interaction-prompt-url",e)}set interactionPromptSize(e){v(this,Fp,"m",Gp).call(this,"interaction-prompt-size",e)}set nonLiveRendering(e){v(this,Fp,"m",Gp).call(this,"non-live-rendering",e?"":null)}set baseUrl(e){v(this,Fp,"m",Gp).call(this,"base-url",e)}set onModelLoaded(e){v(this,Op,"f").onModelLoaded=e}set onRendered(e){v(this,Op,"f").onRendered=e}set onInteracted(e){v(this,Op,"f").onInteracted=e}set onError(e){v(this,Op,"f").onError=e}render(e){v(this,kp,"f").render(e)}flushChanges(){return v(this,kp,"f").flushChanges()}}function zp(e){return null!=e}function Vp(e){return null==e?null:Number.parseFloat(e)}if(Op=new WeakMap,kp=new WeakMap,Fp=new WeakSet,Gp=function(e,t){null==t?this.removeAttribute(e):this.setAttribute(e,t)},Hp.observedAttributes=["paused","poster-url","glb-url","env-url","diamond-env-url","env-rotation","tone-mapping","tone-mapping-exposure","category","glb-local","interactivity-disabled","touch-action","zoom-disabled","min-zoom","max-zoom","preserve-camera-on-reload","always-transparent-background","default-fov","fov-multiplier","interaction-prompt-url","interaction-prompt-size","bloom-enabled","bloom-strength","bloom-radius","bloom-threshold","non-live-rendering","base-url"],null==window)throw new Error("window is not defined. ShopAR 3D only works in a browser environment.");const{customElements:Wp}=window;try{Wp.define("shopar-3d",Hp)}catch(Sd){console.error(Sd)}const qp=["demo.deepar.ai","dbeochk72stb2.cloudfront.net","d1q93hnxt3ps3w.cloudfront.net","dj5e08oeu5ym4.cloudfront.net"];function jp(e){if(null==e||"string"!=typeof e)throw new Error(`Invalid url: ${e}.`);let t;try{t=new URL(e)}catch(t){throw new Error(`Invalid url: ${e}. ${t.message}`)}if("https:"!==t.protocol)throw new Error(`Invalid url: ${e}.`);if(!function(e){return qp.includes(e)}(t.hostname))throw new Error(`Invalid url: ${e}.`);return t.toString()}function Yp(e){return a(this,void 0,void 0,function*(){return yield g(()=>a(this,void 0,void 0,function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin?${new URLSearchParams(e)}`).catch(e=>{throw new Xp(`API unavailable: ${o(e)}`)});if(!t.ok)throw new Xp("API response not OK.",t.status);const n=t.headers.get("content-length");if(n&&parseInt(n)>1048576)throw new Xp("API response too large.");try{return function(e){const t=Object.assign({},e);if(t.category&&!_c.includes(t.category))throw new Error(`Invalid response category: ${e.category}`);if(t.arToneMapping&&!Ic.includes(t.arToneMapping))throw new Error(`Invalid response tone mapping: ${e.arToneMapping}`);if(t.previewToneMapping&&!Ic.includes(t.previewToneMapping))throw new Error(`Invalid response tone mapping: ${e.previewToneMapping}`);return t.arUrl=t.arUrl?jp(t.arUrl):void 0,t.arEnvUrl=t.arEnvUrl?jp(t.arEnvUrl):void 0,t.arDiamondEnvUrl=t.arDiamondEnvUrl?jp(t.arDiamondEnvUrl):void 0,t.arPromptImage=t.arPromptImage?jp(t.arPromptImage):void 0,t.previewUrl=t.previewUrl?jp(t.previewUrl):void 0,t.previewEnvUrl=t.previewEnvUrl?jp(t.previewEnvUrl):void 0,t.previewDiamondEnvUrl=t.previewDiamondEnvUrl?jp(t.previewDiamondEnvUrl):void 0,t.previewPosterUrl=t.previewPosterUrl?jp(t.previewPosterUrl):void 0,t}(yield t.json())}catch(e){throw new Xp(`API returned invalid body: ${o(e)}`)}}))})}class Xp extends Error{constructor(e,t){super(e),this.name="ApiError",this.status=t}}function Kp(e){return e*(180/Math.PI)}function Jp(e){return Math.round(100*e)/100}const Zp=["Glasses","Shoes","Watches","Bracelets","Scarves","Hats","Necklaces"],$p=["Shoes"];const ef={};const tf="1.0.0-alpha.7";let nf=`https://cdn.jsdelivr.net/npm/shopar-plugin@${tf}/dist`;const rf=e=>{null!=e&&(nf=e.endsWith("/")?e.substring(0,e.length-1):e)},af=()=>nf;function sf(e,t){return a(this,void 0,void 0,function*(){if("function"!=typeof importScripts){if("function"==typeof window.define&&window.define.amd&&"function"==typeof window.require)return new Promise(n=>{window.require([e],e=>{window[t]=e,n()},()=>{n()})});{const t=document.createElement("script");return t.setAttribute("src",e),t.setAttribute("crossorigin","anonymous"),new Promise(e=>{t.addEventListener("load",()=>e(),!1),t.addEventListener("error",()=>e(),!1),document.body.appendChild(t)})}}importScripts(e.toString())})}let of;function lf(e,t){let n=!0;return{qrPaused:()=>n,qrDraw:(i,r)=>a(this,void 0,void 0,function*(){!function(){a(this,void 0,void 0,function*(){null==of&&(of=sf(`${af()}/shopar-qr.js`,"ShopAR__QR"))})}(),yield of;const s=`https://ar.shopar.ai/${tf.includes("alpha")?"qr-alpha":"qr"}/?${new URLSearchParams({a:i,s:r,h:location.href})}`,o=yield window.ShopAR__QR.toDataURL(s),l=new Promise((e,n)=>{t.onload=e,t.onerror=n});t.src=o,yield l,n=!1,e.style.display=""}),qrPause:()=>a(this,void 0,void 0,function*(){n=!0,e.style.display="none"})}}const cf={"loading.ar":"Loading Try On...","loading.3d":"Loading 3D...","prompt.ar.shoes":void 0,"prompt.ar.glasses":void 0,"prompt.ar.watches":void 0,"prompt.ar.bracelets":void 0,"prompt.ar.scarves":void 0,"prompt.ar.hats":void 0,"prompt.ar.necklaces":void 0},hf=Object.keys(cf);const Af="--shopar";function uf(e){return`var(${e.var}, ${e.default})`}const df={padding:{var:`${Af}-btn-padding`,default:"0.5rem 0.75rem"},gap:{var:`${Af}-btn-gap`,default:"0.25rem"},border:{var:`${Af}-btn-border`,default:"1px solid #dddddd"},borderRadius:{var:`${Af}-btn-border-radius`,default:"calc(infinity * 1px)"},bg:{var:`${Af}-btn-bg`,default:"#ffffff"},hoverBg:{var:`${Af}-btn-hover-bg`,default:"#f5f5f5"}};function pf(e,t,n){const i=document.createElement("button");i.type="button",i.appendChild(n);{const t=document.createElement("span");t.textContent=e,i.appendChild(t)}i.ariaLabel=t;const r=i.style;r.display="none",r.pointerEvents="auto",r.padding=uf(df.padding),r.justifyContent="center",r.alignItems="center",r.gap=uf(df.gap),r.backgroundColor=uf(df.bg),r.border=uf(df.border),r.borderRadius=uf(df.borderRadius),r.cursor="pointer";const a=uf(df.bg),s=uf(df.hoverBg);return i.addEventListener("mouseenter",()=>{r.backgroundColor=s}),i.addEventListener("mouseleave",()=>{r.backgroundColor=a}),i}const ff={paddingBottom:{var:`${Af}-btn-container-padding-bottom`,default:"2rem"},gap:{var:`${Af}-btn-container-gap`,default:"0.5rem"}};const gf={bg:{var:`${Af}-ar-prompt-bg`,default:"#1e293bb2"},gap:{var:`${Af}-ar-prompt-gap`,default:"1rem"},textColor:{var:`${Af}-ar-prompt-text-color`,default:"white"},imgMaxWidth:{var:`${Af}-ar-prompt-img-max-width`,default:"80%"},imgMaxHeight:{var:`${Af}-ar-prompt-img-max-height`,default:"50%"}};const mf={containerDisplay:{var:`${Af}-ar-loading-container-display`,default:"flex"},containerBg:{var:`${Af}-ar-loading-container-bg`,default:"#ffffff"},containerGap:{var:`${Af}-ar-loading-container-gap`,default:"1rem"},barWidth:{var:`${Af}-ar-loading-bar-width`,default:"80%"},barHeight:{var:`${Af}-ar-loading-bar-height`,default:"0.5rem"},barRadius:{var:`${Af}-ar-loading-bar-radius`,default:"calc(infinity * 1px)"},barFg:{var:`${Af}-ar-loading-bar-fg`,default:"linear-gradient(90deg, #773cd8, #5fb9ec)"},barBg:{var:`${Af}-ar-loading-bar-bg`,default:"#e5e7eb"}};const vf={bg:{var:`${Af}-qr-bg`,default:"#ffffff"}};const Ef={bg:{var:`${Af}-3d-bg`,default:"#ffffff"}};function bf(e){var t,n;const i=document.createElementNS("http://www.w3.org/2000/svg","svg");return i.setAttribute("width",null!==(t=e.getAttribute("width"))&&void 0!==t?t:"1rem"),i.setAttribute("height",null!==(n=e.getAttribute("height"))&&void 0!==n?n:"1rem"),i.appendChild(e),i}function Cf(e,t){const n=document.createElementNS("http://www.w3.org/2000/svg","image");return n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href","data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22/%3E"),n.setAttribute("width",e),n.setAttribute("height",e),n}var _f;function If(){const e=function(){const e=document.createElement("div");e.id="shopar-main";const t=e.style;return t.position="absolute",t.top="0",t.bottom="0",t.left="0",t.right="0",t.pointerEvents="none",e}(),t=function(){const e=document.createElement("div");return e.style.textAlign="center",e}(),n=function(){const e=new Image;e.draggable=!1;const t=e.style;return t.maxWidth="100%",t.maxHeight="100%",e}(),i=function(e,t){const n=document.createElement("div"),i=n.style;i.position="absolute",i.top="0",i.left="0",i.width="100%",i.height="100%",i.display="none",i.pointerEvents="auto",i.userSelect="none";const r=document.createElement("div"),a=r.style;a.position="relative",a.top="0",a.left="0",a.width="100%",a.height="100%",a.display="flex",a.flexDirection="column",a.justifyContent="center",a.alignItems="center",a.background=uf(vf.bg),n.appendChild(r),r.appendChild(e);const s=document.createElement("div");return s.appendChild(t),r.appendChild(s),n}(t,n);e.appendChild(i);const r=function(){const e=document.createElement("div"),t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.display="none",t.pointerEvents="auto",e}();e.appendChild(r);const a=function(){const e=document.createElement("shopar-3d"),{style:t}=e;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.pointerEvents="auto",t.display="none",t.background=uf(Ef.bg),e}();e.appendChild(a);const s=function(){const e=document.createElement("div");return e.style.textAlign="center",e.style.color=uf(gf.textColor),e}(),o=function(){const e=new Image,{style:t}=e;return t.maxWidth=uf(gf.imgMaxWidth),t.maxHeight=uf(gf.imgMaxHeight),t.objectFit="contain",e}(),l=function(e,t){const n=document.createElement("div"),{style:i}=n;return i.position="absolute",i.width="100%",i.height="100%",i.opacity="0",i.display="flex",i.flexDirection="column",i.justifyContent="center",i.alignItems="center",i.gap=uf(gf.gap),i.backgroundColor=uf(gf.bg),i.transition="0.3s ease-in-out opacity",n.appendChild(e),n.appendChild(t),n}(s,o);e.appendChild(l);const c=function(){const e=document.createElement("div"),t=e.style;return t.position="absolute",t.top="0",t.left="0",t.width="100%",t.height="100%",t.pointerEvents="auto",t.userSelect="none",t.display=uf(mf.containerDisplay),t.flexDirection="column",t.justifyContent="center",t.alignItems="center",t.gap=uf(mf.containerGap),t.backgroundColor=uf(mf.containerBg),e}(),h=function(e){const t=document.createElement("div");return t.textContent=e,t.style.textAlign="center",t}(cf["loading.ar"]);c.appendChild(h);const A=function(){const e=document.createElement("div"),t=e.style;return t.position="relative",t.overflow="hidden",t.width=uf(mf.barWidth),t.height=uf(mf.barHeight),t.backgroundColor=uf(mf.barBg),t.borderRadius=uf(mf.barRadius),e}(),u=function(){const e=document.createElement("div"),t=e.style;return t.height="100%",t.width="0%",t.background=uf(mf.barFg),t.borderRadius=uf(mf.barRadius),t.transition="width 0.05s ease-out",e}(),d=function(){const e=document.createElement("div");return e.textContent="0%",e.style.textAlign="center",e}();A.appendChild(u),c.appendChild(A),c.appendChild(d),e.appendChild(c);const p=function(){const e=document.createElement("div");return e.style.textAlign="center",e}(),f=function(e){const t=document.createElement("div"),n=t.style;n.position="absolute",n.width="100%",n.height="100%",n.display="none",n.pointerEvents="auto",n.userSelect="none";const i=document.createElement("div"),r=i.style;return r.position="absolute",r.width="100%",r.height="100%",r.backgroundColor="#ffffff",r.display="flex",r.flexDirection="column",r.justifyContent="center",r.alignItems="center",t.appendChild(i),i.appendChild(e),t}(p);e.appendChild(f);const g=function(){const e=document.createElement("div");e.role="group",e.ariaLabel="Preview type chooser";const{style:t}=e;return t.display="none",t.position="absolute",t.width="100%",t.bottom="0",t.paddingBottom=uf(ff.paddingBottom),t.justifyContent="center",t.gap=uf(ff.gap),e}();e.appendChild(g);const m=Cf("1.75rem"),v=pf("Try-on","Launch ShopAR virtual try-on",bf(m));g.appendChild(v);const E=Cf("1.75rem"),b=pf("3D","Launch ShopAR 3D preview",bf(E));g.appendChild(b);const C=Cf("1.75rem"),_=pf("Close","Close ShopAR view",bf(C));g.append(_);let I,x,y=_f.None,w=!1,M=!1,S=!1,B=!1;function T(){u.style.width="100%",d.textContent="100%",c.style.visibility="hidden",u.style.width="0%",d.textContent="0%"}return{setTargetElement:function(t){t.style.position="relative",t.appendChild(e)},getQRTarget:function(){return i},getQRImage:function(){return n},getDeepARTarget:function(){return r},getDeepARPrompt:function(){return l},getThreeTarget:function(){return a},customizeDeepARPrompt:function(e,t){s.textContent=e,o.src=t},customizeCameraError:function(e){p.textContent=null!=e?e:"Please reload page and allow camera access to continue"},customizeQRPrompt:function(e){t.textContent=null!=e?e:"Scan on mobile or tablet to try on"},setVisibilityParameters:function(e,t,n,i,r,a){var s;w=e,M=t,S=n,B=i,I=r,x=a,yf(g,w),yf(v,w&&(S||M)&&y===_f.None),yf(b,w&&B&&y===_f.None),yf(_,w&&y!==_f.None),T(),w||""===(s=f).style.display&&xf(s,!1)},getUIState:function(){return y},setUIState:function(e){y=e,y===_f.None?(T(),w&&(xf(f,!1),yf(_,!1),(M||S)&&yf(v,!0),B&&yf(b,!0))):y===_f.QR||y===_f.AR?w&&(xf(f,!1),yf(v,!1),yf(b,B&&"AR"===x),yf(_,"AR"!==x)):y===_f.Preview&&w&&(xf(f,!1),yf(v,(M||S)&&"3D"===x),yf(b,!1),yf(_,"3D"!==x))},setDefaultUIActions:function(e,t,n){w&&((M||S)&&(!function(e){const t={Glasses:"glasses.svg",Shoes:"shoe.svg",Watches:"watch.svg",Bracelets:"watch.svg",Scarves:"glasses.svg",Hats:"glasses.svg",Necklaces:"glasses.svg"},n=null!=e&&t[e]||t.Glasses,i=`${af()}/img/icons/${n}`;m.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",i)}(I),v.onclick=e),B&&(E.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",`${af()}/img/icons/cube.svg`),b.onclick=t),C.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",`${af()}/img/icons/close.svg`),_.onclick=n)},startDeepARLoading:function(){u.style.width="0%",c.style.visibility="visible"},stopDeepARLoading:T,updateDeepARLoadingProgress:function(e){u.style.width=`${e}%`,d.textContent=`${Math.floor(e)}%`},showCameraError:function(){w&&xf(f,!0)}}}function xf(e,t){e.style.display=t?"":"none"}function yf(e,t){e.style.display=t?"flex":"none"}!function(e){e[e.None=0]="None",e[e.QR=1]="QR",e[e.AR=2]="AR",e[e.Preview=3]="Preview"}(_f||(_f={}));const wf=new Map;function Mf(e){let t=wf.get(e);return null==t?(t=function(){let e=0,t=null,n=null,i=!0;const r=()=>(null==t&&(t=If()),t);return{getSetupId:()=>e,incrementSetupId_:()=>e++,getUI_:()=>t,findUI:r,findQR:()=>{if(null==n){const{getQRTarget:e,getQRImage:t}=r();n=lf(e(),t())}return n},isInteractive:()=>i,setInteractive:e=>{i=e,null!=(null==t?void 0:t.getThreeTarget())&&(t.getThreeTarget().interactivityDisabled=!e)}}}(),wf.set(e,t)):t.incrementSetupId_(),t}function Sf(e){for(const t of wf.values()){if(t===e)continue;const n=t.getUI_();if(null==n)continue;const{getUIState:i,setUIState:r}=n;i()===_f.AR&&r(_f.None)}}const Bf=[];for(let e=0;e<256;++e)Bf.push((e+256).toString(16).slice(1));let Tf;const Rf=new Uint8Array(16);var Df={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Qf(e,t,n){const i=(e=e||{}).random??e.rng?.()??function(){if(!Tf){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Tf=crypto.getRandomValues.bind(crypto)}return Tf(Rf)}();if(i.length<16)throw new Error("Random bytes length must be >= 16");return i[6]=15&i[6]|64,i[8]=63&i[8]|128,function(e,t=0){return(Bf[e[t+0]]+Bf[e[t+1]]+Bf[e[t+2]]+Bf[e[t+3]]+"-"+Bf[e[t+4]]+Bf[e[t+5]]+"-"+Bf[e[t+6]]+Bf[e[t+7]]+"-"+Bf[e[t+8]]+Bf[e[t+9]]+"-"+Bf[e[t+10]]+Bf[e[t+11]]+Bf[e[t+12]]+Bf[e[t+13]]+Bf[e[t+14]]+Bf[e[t+15]]).toLowerCase()}(i)}function Uf(e,t,n){return Df.randomUUID&&!e?Df.randomUUID():Qf(e)}function Lf(){let e=!1,t=0,n=0;return{get dirty(){return e},clearDirty(){e=!1},get engagementMs(){return Math.round(t)},interact(i){const r=i-n;n=i,r<200&&(t+=r,e=!0)}}}function Pf(){let e,t,n=0,i=0,r=2e3;return{set debounceDurationMs(e){r=null!=e?e:2e3},set onDebouncedEngagement(e){t=e},interact(a){const s=a-i;i=a,s<200&&(n+=s),e&&clearTimeout(e),e=setTimeout(()=>{n>0&&t&&(t(Math.round(n)),n=0,i=0),e=void 0},r)},flush(){e&&(clearTimeout(e),e=void 0,n>0&&t&&(t(Math.round(n)),n=0,i=0))}}}const Nf="qrLaunch",Ff="arLaunch",Of="previewLaunch";let kf,Gf,Hf=!1;const zf=window.navigator.userAgent||"no user agent",Vf=[];function Wf(){null==kf&&(Gf=Uf(),kf=sf(`${af()}/shopar-analytics.js`,"ShopAR__analytics"),kf.then(()=>{Hf=!0,window.ShopAR__analytics.initializeImpl(),Vf.forEach(e=>e())}))}function qf(e){Hf?e():Vf.push(e)}const jf=.1,Yf="function"==typeof Float32Array;function Xf(e,t,n,i){if(!(0<=e&&e<=1&&0<=n&&n<=1))throw new Error("bezier x values must be in [0, 1] range");if(e===t&&n===i)return tg;const r=Yf?new Float32Array(11):new Array(11);for(let t=0;t<11;++t)r[t]=$f(t*jf,e,n);function a(t){let i=0,a=1;for(;10!==a&&r[a]<=t;++a)i+=jf;--a;const s=i+(t-r[a])/(r[a+1]-r[a])*jf,o=eg(s,e,n);return o>=.001?function(e,t,n,i){for(let r=0;r<4;++r){const r=eg(t,n,i);if(0===r)return t;t-=($f(t,n,i)-e)/r}return t}(t,s,e,n):0===o?s:function(e,t,n,i,r){let a,s,o=0;do{s=t+(n-t)/2,a=$f(s,i,r)-e,a>0?n=s:t=s}while(Math.abs(a)>1e-7&&++o<10);return s}(t,i,i+jf,e,n)}return function(e){return 0===e||1===e?e:$f(a(e),t,i)}}function Kf(e,t){return 1-3*t+3*e}function Jf(e,t){return 3*t-6*e}function Zf(e){return 3*e}function $f(e,t,n){return((Kf(t,n)*e+Jf(t,n))*e+Zf(t))*e}function eg(e,t,n){return 3*Kf(t,n)*e*e+2*Jf(t,n)*e+Zf(t)}function tg(e){return e}function ng(e){if("hold"===e.type)return()=>0;if("bezier"===e.type){const t=Xf(e.x1,e.y1,e.x2,e.y2);return e=>t(e)}throw new Error(`Unknown interpolation: ${e}`)}function ig(e){if(e.length<2)throw new Error("Expected at least two key frames.");const t=e[e.length-1].time,n=[...e].sort((e,t)=>e.time-t.time).map(({time:e,value:t,interpolation:n})=>({time:e,value:t,interpolate:ng(n)}));let i=0,r=n[0].value;return{reset:()=>{i=0},update:e=>{for(i+=e;i>=t;)i-=t;for(let e=0;e<n.length-1;e++){const t=n[e],a=n[e+1];if(i>=t.time&&i<a.time){const e=t.interpolate((i-t.time)/(a.time-t.time));r=t.value+e*(a.value-t.value)}}},get:()=>r}}const rg="time",ag="interpolation",sg="pitch",og=[rg,"yaw",sg,"fov",ag],lg="s",cg="ms",hg=Math.PI/180,Ag="ease-in-out",ug="cubic-bezier(";function dg(e){if("string"==typeof e)return function(e){const[t,...n]=function(e){return e.split(/\r?\n/).map(e=>function(e){const t=e.indexOf("#");return(-1!==t?e.substring(0,t):e).trim()}(e)).filter(e=>""!==e)}(e);if(null==t)throw new Error("Header missing.");const i=function(e){const t=[];for(let n=0;n<e.length;n++){const i=e[n];if(!og.includes(i))throw new Error(`Invalid token in header: '${i}'.`);if(t.includes(i))throw new Error(`Duplicate token in header: '${i}'.`);t.push(i)}if(!t.includes(rg))throw new Error(`Missing required token: '${rg}'.`);return t}(t.split(/\s+/)),r={};if(n.length<2)throw new Error("Expected at least two key frames.");for(const e of n){const{theta:t,phi:n,fov:a}=pg(i,e);null!=t&&(null==r.theta&&(r.theta=[]),r.theta.push(t)),null!=n&&(null==r.phi&&(r.phi=[]),r.phi.push(n)),null!=a&&(null==r.fov&&(r.fov=[]),r.fov.push(a))}if(0===Object.values(r).length)throw new Error("At least one parameter should be animated.");return r}(e);if(Array.isArray(e))return function(e){var t;const n={};if(e.length<2)throw new Error("Expected at least two key frames.");for(const i of e){const{time:e,pitch:r,yaw:a,fov:s}=i;if(null==e)throw new Error("Time missing.");const o=gg(null!==(t=i.interpolation)&&void 0!==t?t:Ag);null!=a&&(null==n.theta&&(n.theta=[]),n.theta.push({time:e,value:a*hg,interpolation:o})),null!=r&&(null==n.phi&&(n.phi=[]),n.phi.push({time:e,value:r*hg,interpolation:o})),null!=s&&(null==n.fov&&(n.fov=[]),n.fov.push({time:e,value:s*hg,interpolation:o}))}if(0===Object.values(n).length)throw new Error("At least one parameter should be animated.");if(Object.values(n).every(t=>t.length!==e.length))throw new Error("All parameters should have the same key frame count.");return n}(e);throw new Error("Expected string or key frame config array.")}function pg(e,t){const n=t.match(/[^()\s]+(\(.*?\))?/g);if(null==n||n.length<e.length)throw new Error(`Missing data for fields: '${e.filter(e=>!(null==n?void 0:n.includes(e))).join(", ")}'.`);if(n.length>e.length)throw new Error(`Excess data: '${n.filter(t=>!e.includes(t)).join(", ")}'.`);const i=e.indexOf(rg),r=function(e){if(e.endsWith(cg))return vg(e.substring(0,e.length-2));if(e.endsWith(lg))return 1e3*vg(e.substring(0,e.length-1));return vg(e)}(n[i]),a=e.indexOf(ag),s=gg(-1===a?Ag:n[a]),o={};for(let t=0;t<n.length;t++){if(t===i||t===a)continue;const l=e[t],c=n[t];switch(l){case"yaw":o.theta={time:r,value:fg(c),interpolation:s};break;case sg:o.phi={time:r,value:fg(c),interpolation:s};break;case"fov":o.fov={time:r,value:fg(c),interpolation:s};break;default:throw new Error(`Unhandled value for header '${l}'.`)}}return o}function fg(e){return e.endsWith("deg")?vg(e.substring(0,e.length-3))*hg:e.endsWith("rad")?vg(e.substring(0,e.length-3)):vg(e)*hg}function gg(e){if("hold"===e)return{type:"hold"};if("linear"===e)return mg(0,0,1,1);if("sine"===e)return mg(.37,0,.63,1);if("sine-in"===e)return mg(.12,0,.39,0);if("sine-out"===e)return mg(.61,1,.88,1);if("ease"===e)return mg(.25,.1,.25,1);if("ease-in"===e)return mg(.42,0,1,1);if("ease-out"===e)return mg(0,0,.58,1);if("ease-in-out"===e)return mg(.42,0,.58,1);if(e.startsWith(ug)&&e.endsWith(")")){const t=e.substring(13,e.length-1).split(/\s*,\s*/);if(4!==t.length)throw new Error(`Expected 4 parameters for the Bezier curve, but got '${t}'.`);return{type:"bezier",x1:vg(t[0]),y1:vg(t[1]),x2:vg(t[2]),y2:vg(t[3])}}throw new Error(`Expected an interpolation token, but found: ${e}`)}function mg(e,t,n,i){return{type:"bezier",x1:e,y1:t,x2:n,y2:i}}function vg(e){const t=Number.parseFloat(e);if(Number.isNaN(t))throw new Error(`Expected a numeric value, but got: ${e}`);return t}var Eg="undefined"!=typeof Float32Array?Float32Array:Array;function bg(){var e=new Eg(16);return Eg!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function Cg(e,t){var n=t[0],i=t[1],r=t[2],a=t[3],s=t[4],o=t[5],l=t[6],c=t[7],h=t[8],A=t[9],u=t[10],d=t[11],p=t[12],f=t[13],g=t[14],m=t[15],v=n*o-i*s,E=n*l-r*s,b=n*c-a*s,C=i*l-r*o,_=i*c-a*o,I=r*c-a*l,x=h*f-A*p,y=h*g-u*p,w=h*m-d*p,M=A*g-u*f,S=A*m-d*f,B=u*m-d*g,T=v*B-E*S+b*M+C*w-_*y+I*x;return T?(T=1/T,e[0]=(o*B-l*S+c*M)*T,e[1]=(r*S-i*B-a*M)*T,e[2]=(f*I-g*_+m*C)*T,e[3]=(u*_-A*I-d*C)*T,e[4]=(l*w-s*B-c*y)*T,e[5]=(n*B-r*w+a*y)*T,e[6]=(g*b-p*I-m*E)*T,e[7]=(h*I-u*b+d*E)*T,e[8]=(s*S-o*w+c*x)*T,e[9]=(i*w-n*S-a*x)*T,e[10]=(p*_-f*b+m*v)*T,e[11]=(A*b-h*_-d*v)*T,e[12]=(o*y-s*M-l*x)*T,e[13]=(n*M-i*y+r*x)*T,e[14]=(f*E-p*C-g*v)*T,e[15]=(h*C-A*E+u*v)*T,e):null}function _g(e,t,n){var i=t[0],r=t[1],a=t[2],s=t[3],o=t[4],l=t[5],c=t[6],h=t[7],A=t[8],u=t[9],d=t[10],p=t[11],f=t[12],g=t[13],m=t[14],v=t[15],E=n[0],b=n[1],C=n[2],_=n[3];return e[0]=E*i+b*o+C*A+_*f,e[1]=E*r+b*l+C*u+_*g,e[2]=E*a+b*c+C*d+_*m,e[3]=E*s+b*h+C*p+_*v,E=n[4],b=n[5],C=n[6],_=n[7],e[4]=E*i+b*o+C*A+_*f,e[5]=E*r+b*l+C*u+_*g,e[6]=E*a+b*c+C*d+_*m,e[7]=E*s+b*h+C*p+_*v,E=n[8],b=n[9],C=n[10],_=n[11],e[8]=E*i+b*o+C*A+_*f,e[9]=E*r+b*l+C*u+_*g,e[10]=E*a+b*c+C*d+_*m,e[11]=E*s+b*h+C*p+_*v,E=n[12],b=n[13],C=n[14],_=n[15],e[12]=E*i+b*o+C*A+_*f,e[13]=E*r+b*l+C*u+_*g,e[14]=E*a+b*c+C*d+_*m,e[15]=E*s+b*h+C*p+_*v,e}function Ig(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function xg(e,t){var n=t[0],i=t[1],r=t[2],a=t[4],s=t[5],o=t[6],l=t[8],c=t[9],h=t[10];return e[0]=Math.hypot(n,i,r),e[1]=Math.hypot(a,s,o),e[2]=Math.hypot(l,c,h),e}function yg(e,t){var n=new Eg(3);xg(n,t);var i=1/n[0],r=1/n[1],a=1/n[2],s=t[0]*i,o=t[1]*r,l=t[2]*a,c=t[4]*i,h=t[5]*r,A=t[6]*a,u=t[8]*i,d=t[9]*r,p=t[10]*a,f=s+h+p,g=0;return f>0?(g=2*Math.sqrt(f+1),e[3]=.25*g,e[0]=(A-d)/g,e[1]=(u-l)/g,e[2]=(o-c)/g):s>h&&s>p?(g=2*Math.sqrt(1+s-h-p),e[3]=(A-d)/g,e[0]=.25*g,e[1]=(o+c)/g,e[2]=(u+l)/g):h>p?(g=2*Math.sqrt(1+h-s-p),e[3]=(u-l)/g,e[0]=(o+c)/g,e[1]=.25*g,e[2]=(A+d)/g):(g=2*Math.sqrt(1+p-s-h),e[3]=(o-c)/g,e[0]=(u+l)/g,e[1]=(A+d)/g,e[2]=.25*g),e}function wg(){var e=new Eg(3);return Eg!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Mg(e,t,n){var i=new Eg(3);return i[0]=e,i[1]=t,i[2]=n,i}function Sg(e,t){var n=t[0]-e[0],i=t[1]-e[1],r=t[2]-e[2];return Math.hypot(n,i,r)}function Bg(e,t,n){var i=t[0],r=t[1],a=t[2],s=n[3]*i+n[7]*r+n[11]*a+n[15];return s=s||1,e[0]=(n[0]*i+n[4]*r+n[8]*a+n[12])/s,e[1]=(n[1]*i+n[5]*r+n[9]*a+n[13])/s,e[2]=(n[2]*i+n[6]*r+n[10]*a+n[14])/s,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});function Tg(){var e=new Eg(4);return Eg!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}wg(),function(){var e,t=(e=new Eg(4),Eg!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();var Rg;wg(),Mg(1,0,0),Mg(0,1,0),Tg(),Tg(),Rg=new Eg(9),Eg!=Float32Array&&(Rg[1]=0,Rg[2]=0,Rg[3]=0,Rg[5]=0,Rg[6]=0,Rg[7]=0),Rg[0]=1,Rg[4]=1,Rg[8]=1;async function Dg(){const e=await async function(){const e=await fetch("data:application/octet-stream;base64,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");return await function(e={}){var t,n,i,r,a,s=e,o=new Promise((e,n)=>{t=e}),l={1076:e=>{const t=[e,Date.now()],n=t.length-2,r=["addEventListener","alert","atob","blur","btoa","cancelAnimationFrame","localStorage","location","locationbar","hash","hasOwnProperty","host","hostname","href","requestAnimationFrame","navigator","userAgent"],a=[2,12,7,1],s=window[r[r[a[a[a.length-1]]+2].length-a[t.length]+1]][r[Math.pow(a[n],r[a.length].length)]]||"no user agent",o=c(32);for(let e=0;e<32;++e)i[o+e]=s.charCodeAt(e%s.length);return o},1870:e=>{var t,n=function(){var e;try{e=Function('return (function() {}.constructor("return this")( ));')()}catch(t){e=window}return e}(),r=Date.now();for(var a in n)if(8==a.length&&110==a.charCodeAt(7)&&105==a.charCodeAt(5)&&97==a.charCodeAt(3)&&108==a.charCodeAt(0)){r=a,t=e;break}for(var s in n[r])if(8==s.length&&97==s.charCodeAt(5)&&104==s.charCodeAt(0)){t=s;break}const o=n[r][t]||"no hostname",l=c(32);for(let e=0;e<32;++e)i[l+e]=o.charCodeAt(e%o.length);return l}};s.noExitRuntime;var c,h=[],A=(e,t,s)=>{var o=((e,t)=>{var s;for(h.length=0;s=i[e++];){var o=105!=s;t+=(o&=112!=s)&&t%8?4:0,h.push(112==s?r[t>>2]:105==s?n[t>>2]:a[t>>3]),t+=o?8:4}return h})(t,s);return l[e](...o)},u={a:{a:(e,t,n)=>A(e,t,n),c:()=>Date.now(),b:e=>{i.length,function(){throw"OOM"}()}}};return WebAssembly.instantiate(s.wasm,u).then(e=>{var o,l=e.instance.exports;s._magic=l.f,s._free=l.g,s._malloc=c=l.i,o=l.d.buffer,s.HEAPU8=i=new Uint8Array(o),n=new Int32Array(o),r=new Uint32Array(o),a=new Float64Array(o),function(e){e.e()}(l),t(s)}),o}({wasm:await e.arrayBuffer()})}();return function(t){const n=e._malloc(32);for(let i=0;i<t.size()&&i<32;i++)e.HEAPU8[n+i]=t.get(i);const i=e._malloc(64);e._magic(n,i);const r=new Uint8Array(64);for(let t=0;t<64;++t)r[t]=e.HEAPU8[i+t];return e._free(n),e._free(i),r}}let Qg,Ug,Lg,Pg,Ng,Fg,Og=!1,kg=null,Gg=[],Hg=[];function zg(e){return a(this,void 0,void 0,function*(){Og=!1;const{ShopAR__TrueScale:t}=window;yield t.initialize(`${af()}/wasm/mediapipe`,e),kg&&clearInterval(kg);const n=[],i=[];kg=setInterval(()=>a(this,void 0,void 0,function*(){if(Og)return;const{error:e,faceWidth:r,ipd:a,translation:s,rotation:o}=yield t.predict(performance.now());Og||(null!=s&&null!=o&&function(e){for(let t of Gg)t(e)}({translation:s,rotation:o}),null==e&&(n.push(r),i.push(a),n.length<10||(n.shift(),i.shift(),function(e,t){for(let n of Hg)n({faceWidth:e,IPD:t})}(Wg(n),Wg(i)))))}),200)})}function Vg(){Hg=[],Gg=[],Og=!0}function Wg(e){let t=0;const n=e.length;for(let i=0;i<n;i++)t+=e[i];return t/n}let qg=null;const jg=new Set;let Yg,Xg,Kg,Jg,Zg,$g,em=!1;function tm(){null==Qg&&(Qg=sf(`${af()}/shopar-deepar.js`,"ShopAR__DeepAR"))}function nm(){null==Ug&&(Ug=sf(`${af()}/shopar-true-scale.js`,"ShopAR__TrueScale"))}function im(e){return a(this,void 0,void 0,function*(){const{licenseKey:t,truescaleUsecase:n,onProgress:i,effectUrl:r,effectOptions:s}=e;return s&&null==s.envmap&&(s.envmap=`${af()}/deepar/default_envmap.webp`),Zg=n,null==Yg&&(Yg=(()=>a(this,void 0,void 0,function*(){em=!1;const e=function(e){var t;const n={Glasses:"user",Shoes:"environment",Watches:"environment",Bracelets:"environment",Hats:"user",Scarves:"user",Necklaces:"user"};return null==e?"user":null!==(t=n[e])&&void 0!==t?t:"user"}(Ng);Lg=yield window.ShopAR__DeepAR.deepar.initialize({licenseKey:t||"your_license_key_goes_here",previewElement:Fg,effect:r,effectOptions:s,rootPath:`${af()}/deepar`,additionalOptions:{hint:$g,cameraConfig:{facingMode:e},pixelRatio:Math.min(window.devicePixelRatio,2),onVerify:yield Dg()},onProgress:i}),Lg.setWatchTicking("Watches"===Ng),"Glasses"===Ng&&(yield Ug,Pg=Lg.getVideoElement(),zg(Pg),"DetectionLoop"!==Zg&&_m(e=>{Jg=e.faceWidth})),em=!0,dm(),Fg.style.display=""}))()),Yg})}function rm(e,t){t=null!=t?t:function(e){const t={Glasses:["rigidFaceTrackingInit","faceInit"],Shoes:["footInit"],Watches:["wristInit"],Bracelets:["wristInit"],Hats:["rigidFaceTrackingInit","faceInit"],Scarves:["rigidFaceTrackingInit","faceInit"],Necklaces:["rigidFaceTrackingInit","faceInit"]};return null==e?void 0:t[e]}(e),e===Ng&&function(e,t){return e===t||null!=e&&null!=t&&e.length===t.length&&e.every(e=>t.find(t=>e===t))&&t.every(t=>e.find(e=>e===t))}(t,$g)||(Ng=e,$g=t)}function am(e){pm(),e!==Fg&&(Fg=e,null!=Lg&&Lg.changePreviewElement(Fg,Math.min(window.devicePixelRatio,2)))}function sm(e){qg=e}function om(e){Lg.callbacks.onFaceTracked=t=>{if(t.some(e=>e.detected)){if(Jg){const e=137/(Jg+5);Lg.changeParameterVector("GLASSES","","scale",e,e,e,0),Lg.changeParameterVector("shopar_glasses","","scale",e,e,e,0),function(e){const t=[-8.362421,4.549,-9.275],n=[8.362421,4.549,-9.275];try{const i=Lg.getTransformationBetween("face_position","temples"),r=bm(i,"temple_left","temple_left_outer","temple_tip_outer_left",n,e).map(gm),a=bm(i,"temple_right","temple_right_outer","temple_tip_outer_right",t,e).map(gm);Lg.changeParameterVector("temple_left","","rotation",r[0],r[1],r[2],0),Lg.changeParameterVector("temple_right","","rotation",a[0],a[1],a[2],0)}catch(e){return}}(e),Vg(),Jg=null}e(),fm("Glasses")}},Lg.callbacks.onFeetTracked=(t,n)=>{(t.detected||n.detected)&&(e(),fm("Shoes"))},Lg.callbacks.onWristTracked=t=>{t.detected&&(e(),fm("Watches"))}}function lm(e,t,n){return a(this,void 0,void 0,function*(){return null!=Xg&&Kg===n||(yield Xg,t.trackingInit={face:(null==$g?void 0:$g.includes("rigidFaceTrackingInit"))||(null==$g?void 0:$g.includes("faceInit")),foot:null==$g?void 0:$g.includes("footInit"),wrist:null==$g?void 0:$g.includes("wristInit")},null==t.envmap&&(t.envmap=`${af()}/deepar/default_envmap.webp`),Xg=Lg.switchEffect(e,t),Lg.setWatchTicking("Watches"===Ng),Kg=n,dm(),Fg.style.display=""),Xg})}function cm(e,t){null!=e&&null!=t&&(Lg.setToneMapping(e),Lg.setExposure(t))}function hm(e,t,n,i){Lg.setBloomEnabled(!!e),null!=t&&Lg.setBloomStrength(t),null!=n&&Lg.setBloomRadius(n),null!=i&&Lg.setBloomThreshold(i)}function Am(){null!=Lg&&(Vg(),null!=Pg&&null!=Pg.srcObject&&Pg.srcObject instanceof MediaStream&&(Pg.srcObject.getTracks().forEach(e=>e.stop()),Pg=null),Lg.shutdown(),pm(),em=!1,Lg=null,Yg=null,Fg.style.display="none")}function um(){return em}function dm(){null!=qg&&(null==Ng||jg.has(Ng)||(qg.style.visibility="visible",qg.style.opacity="1"))}function pm(){null!=qg&&(qg.style.visibility="hidden",qg.style.opacity="0")}function fm(e){null!=qg&&(jg.has(e)||(jg.add(e),qg.style.opacity="0"))}function gm(e){return 180*e/Math.PI}function mm(e,t){let n=t[0],i=t[1],r=t[2],a=t[3],s=n*n,o=i*i,l=r*r;return e[0]=Math.atan2(2*(a*n+i*r),1-2*(s+o)),e[1]=-Math.PI/2+2*Math.atan2(Math.sqrt(1+2*(a*i-n*r)),Math.sqrt(1-2*(a*i-n*r))),e[2]=Math.atan2(2*(a*r+n*i),1-2*(o+l)),e}function vm(e,t,n){const i=Cg(bg(),e),r=function(e,t){var n=Math.sin(t),i=Math.cos(t);return e[0]=i,e[1]=0,e[2]=-n,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=n,e[9]=0,e[10]=i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}(bg(),-n),a=_g(bg(),i,r),s=_g(bg(),a,e),o=_g(bg(),s,t),l=yg(Tg(),o);return mm(wg(),l)}function Em(e,t){let n=Lg.getTransformationBetween("face_position",t);const i=mm(wg(),yg(Tg(),n)).map(gm);n=function(e,t,n,i){var r=t[0],a=t[1],s=t[2],o=t[3],l=r+r,c=a+a,h=s+s,A=r*l,u=r*c,d=r*h,p=a*c,f=a*h,g=s*h,m=o*l,v=o*c,E=o*h,b=i[0],C=i[1],_=i[2];return e[0]=(1-(p+g))*b,e[1]=(u+E)*b,e[2]=(d-v)*b,e[3]=0,e[4]=(u-E)*C,e[5]=(1-(A+g))*C,e[6]=(f+m)*C,e[7]=0,e[8]=(d+v)*_,e[9]=(f-m)*_,e[10]=(1-(A+p))*_,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}(bg(),function(e,t,n,i){var r=.5*Math.PI/180;t*=r,n*=r,i*=r;var a=Math.sin(t),s=Math.cos(t),o=Math.sin(n),l=Math.cos(n),c=Math.sin(i),h=Math.cos(i);return e[0]=a*l*h-s*o*c,e[1]=s*o*h+a*l*c,e[2]=s*l*c-a*o*h,e[3]=s*l*h+a*o*c,e}(Tg(),i[0],0,i[2]),Ig(wg(),n),xg(wg(),n));const r=Cg(bg(),e);return _g(bg(),r,n)}function bm(e,t,n,i,r,a){let s=Em(e,t);const o=_g(bg(),e,s),l=Bg(wg(),Ig(wg(),o),function(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}(bg(),[a,a,a])),c=Math.atan2(r[0]-l[0],Math.abs(r[2]-l[2]));let h;try{h=Lg.getTransformationBetween(t,n)}catch(t){return vm(e,s,c)}const A=_g(bg(),o,h),u=Mg(l[0],r[1],r[2]),d=Bg(wg(),u,Cg(bg(),A));let p=Lg.getClosestPointOnMesh(n,d);try{const e=Lg.getClosestPointOnMesh(i,d);Sg(d,e)<Sg(d,p)&&(p=e)}catch(e){}const f=Bg(wg(),p,A);return vm(e,s,c-Math.atan2(f[0]-l[0],Math.abs(f[2]-l[2])))}function Cm(e){!function(e){Gg.push(e)}(e)}function _m(e){!function(e){Hg.push(e)}(e)}var Im;function xm(){return[Im.Android,Im.iOS,Im.Tablet].includes(function(){if("undefined"!=typeof window&&window.navigator){const e=window.navigator.userAgent,t=window.navigator.platform||"",n=["Macintosh","MacIntel","MacPPC","Mac68K"],i=["Win32","Win64","Windows","WinCE"],r=["iPhone","iPod","iPad"],a="ontouchstart"in window||navigator.maxTouchPoints>0;return-1!==r.indexOf(t)?Im.iOS:-1!==n.indexOf(t)?a?Im.Tablet:Im.MacOS:-1!==i.indexOf(t)?Im.Windows:/Android/.test(e)?Im.Android:/Linux/.test(t)?Im.Linux:a?Im.Tablet:Im.Unknown}return Im.Unknown}())}function ym(e,t){if(null==e)throw new Error(`'${t}' not specified.`)}function wm(e,t){if("boolean"!=typeof e)throw new Error(`'${t}' must be a boolean.`)}function Mm(e,t){if("number"!=typeof e)throw new Error(`'${t}' must be a number.`)}function Sm(e,t,n,i){if("number"!=typeof e)throw new Error(`'${t}' must be a number.`);if(e<n)throw new Error(`'${t}' must be greater than ${n}.`);if(e>i)throw new Error(`'${t}' must be less than ${i}.`)}function Bm(e,t){if("string"!=typeof e)throw new Error(`'${t}' must be a string.`)}function Tm(e,t,n){if("string"!=typeof e)throw new Error(`'${t}' must be a string.`);if(!n.includes(e))throw new Error(`'${t}' must be ${n.join("' or '")}.`)}function Rm(e,t){if(!(e instanceof HTMLElement))throw new Error(`'${t}' must be an HTMLElement.`)}function Dm(e,t){if("function"!=typeof e)throw new Error(`'${t}' must be a function.`)}function Qm(t){const{apiKey:n,sku:i,targetElement:r,initialState:a,initialAnimation:s,baseUrl:o,defaultUI:l,interactive:c,touchAction:h,zoomEnabled:A,minZoom:u,maxZoom:d,alwaysTransparentBackground:p,strings:f,debounceAREngagementMs:g,onDebouncedAREngagement:m,debounce3DEngagementMs:v,onDebounced3DEngagement:E}=t;Um(n),function(e){ym(e,"sku"),Bm(e,"sku"),function(e){if(0===e.length||e.length>100||!/^[\p{L}0-9 ./_-]+$/u.test(e))throw new Error("Invalid 'sku'.")}(e)}(i),ym(r,"targetElement"),Rm(r,"targetElement"),null!=a&&Tm(a,"initialState",e),null!=s&&function(e,t){if("string"!=typeof e&&!Array.isArray(e))throw new Error(`'${t}' must be a string or array.`)}(s,"initialAnimation"),null!=o&&Bm(o,"baseUrl"),null!=l&&wm(l,"defaultUI"),null!=c&&wm(c,"interactive"),null!=h&&Tm(h,"touchAction",xc),null!=A&&wm(A,"zoomEnabled"),null!=u&&Sm(u,"minZoom",.1,1),null!=d&&Sm(d,"maxZoom",1,1/0),null!=p&&wm(p,"alwaysTransparentBackground"),null!=f&&function(e,t,n){for(const i of n){const n=e[i];if(null!=n&&"string"!=typeof n)throw new Error(`Value for key '${i}' in '${t}' must be a string or undefined.`)}}(f,"strings",hf),null!=g&&Mm(g,"debounceAREngagementMs"),null!=m&&Dm(m,"onDebouncedAREngagement"),null!=v&&Mm(v,"debounce3DEngagementMs"),null!=E&&Dm(E,"onDebounced3DEngagement")}function Um(e){ym(e,"apiKey"),Bm(e,"apiKey"),function(e){if(!function(e){return 24===e.length&&/^[0-9a-fA-F]{24}$/.test(e)}(e))throw new Error("Invalid 'apiKey'.")}(e)}!function(e){e[e.Unknown=0]="Unknown",e[e.Android=1]="Android",e[e.iOS=2]="iOS",e[e.Tablet=3]="Tablet",e[e.MacOS=4]="MacOS",e[e.Windows=5]="Windows",e[e.Linux=6]="Linux"}(Im||(Im={}));let Lm=!1;function Pm(e){return a(this,void 0,void 0,function*(){!function(e){const{apiKey:t,targetElement:n}=e;Um(t),ym(n,"targetElement"),Rm(n,"targetElement")}(e);const{targetElement:t}=e;rf(e.baseUrl),Wf();const{trackEvent:n}=function(e){const t=performance.now(),n=Uf();return{trackEvent:(i,r={})=>{r=Object.assign(Object.assign({},r),{userAgent:zf,hostname:window.location.hostname,href:window.location.href,pluginVersion:tf,sessionId:Gf,setupId:n,timeSinceSetup:performance.now()-t,apiKey:e}),qf(()=>{window.ShopAR__analytics.trackEventImpl(i,r)})}}}(e.apiKey);n("visionSetup");const i=yield function(e){return a(this,void 0,void 0,function*(){return yield g(()=>a(this,void 0,void 0,function*(){const t=yield fetch(`https://dashboard.shopar.ai/plugin/vision?${new URLSearchParams({apiKey:e,sid:d()})}`).catch(e=>{throw new Xp(`API unavailable: ${o(e)}`)});if(!t.ok)throw new Xp("API response not OK.",t.status);const n=t.headers.get("content-length");if(n&&parseInt(n)>1048576)throw new Xp("API response too large.");try{return yield t.json()}catch(e){throw new Xp(`API returned invalid body: ${o(e)}`)}}))})}(e.apiKey);n("visionApiResponse",i);const{arKey:r}=i,l=Mf(t),{getSetupId:c,findUI:h}=l,A=c();tm(),nm();const{setTargetElement:u,getDeepARTarget:p,setVisibilityParameters:f,getUIState:m,setUIState:v,startDeepARLoading:E,stopDeepARLoading:b,showCameraError:C}=h();if(m()!=_f.None)throw Error("UI state is not None, this is weird..");v(_f.AR),u(t),f(!1,!1,!0,!1,void 0,void 0),E(),yield Qg,Nm(c(),A);try{n("visionArLaunch"),rm("Glasses",["faceInit"]),am(p()),yield im({licenseKey:r,truescaleUsecase:"DetectionLoop"}),Nm(c(),A),Nm(c(),A)}catch(e){const t=o(e);throw n("visionArLaunchFailure",{errorName:s(e),errorMessage:t}),C(),new Error(`AR failed: ${t}`)}finally{b()}return Lm=!0,{registerFacePoseListener:e=>{Lm&&(n("registerFacePoseListener"),Cm(e))},registerFaceMeasurementListener:e=>{Lm&&(n("registerFaceMeasurementListener"),_m(e))},switchEffect:e=>a(this,void 0,void 0,function*(){Lm&&(n("switchEffect",{arUrl:e}),function(e){Lg.switchEffect(e)}(e))}),clearEffect:()=>{Lm&&(n("clearEffect"),Lg.clearEffect())},close:()=>{if(Lm){if(Lm=!1,n("visionClose"),m()!==_f.AR)throw new Error("AR not launched.");v(_f.None)}}}})}function Nm(e,t){if(e!==t)throw new Error("Setup cancelled. Please ensure that setup is only called once.")}function Fm(e){return a(this,void 0,void 0,function*(){var t,c,h,A;Qm(e);const{apiKey:u,sku:p,targetElement:f,initialState:g,initialAnimation:m}=e,v=e.touchAction,E=null==e.zoomEnabled||e.zoomEnabled,b=e.minZoom,C=e.maxZoom,_=!0===e.alwaysTransparentBackground;!function(e){const t=getComputedStyle(e);if(!["static","relative"].includes(t.position))throw new Error(`Invalid targetElement's position. Expected 'static' or 'relative', but found '${t.position}'.`)}(f),rf(e.baseUrl),function(e){if(null!=e)for(const t of Object.keys(e)){if(!Object.prototype.hasOwnProperty.call(cf,t)){console.warn(`String for key '${t}' will be ignored.`);continue}const n=e[t];null!=n&&(cf[t]=n)}}(e.strings);const I=null!=m?dg(m):null,x=null!=(null==I?void 0:I.theta)?ig(I.theta):null,y=null!=(null==I?void 0:I.phi)?ig(I.phi):null,w=null!=(null==I?void 0:I.fov)?ig(I.fov):null,M=function(e){const t=function(e){const{apiKey:t,sku:n,yaw:i,pitch:r,fov:a,forcedTransparency:s}=e,o=[];return o.push(`apiKey=${t}`),o.push(`sku=${n}`),null!=i&&o.push(`yaw=${i}`),null!=r&&o.push(`pitch=${r}`),null!=a&&o.push(`fov=${a}`),null!=s&&o.push(`forcedTransparency=${s}`),o.join("&")}(e);return null==ef[t]&&(ef[t]=Yp(e).catch(e=>{throw delete ef[t],e})),ef[t]}(function(e,t,n,i,r,a){return Object.assign(Object.assign(Object.assign(Object.assign({apiKey:e,sku:t,sid:d(),initialFov:"16"},null!=n&&{yaw:`${Jp(Kp(n))}`}),null!=i&&{pitch:`${Jp(Kp(i))}`}),null!=r&&{fov:`${Jp(Kp(r))}`}),a&&{forcedTransparency:`${a}`})}(u,p,null==x?void 0:x.get(),null==y?void 0:y.get(),null==w?void 0:w.get(),_)),S=Mf(f),{getSetupId:B,findUI:T,findQR:R,isInteractive:D,setInteractive:Q}=S,U=B();Wf();const{prepareEvent:L,submitEvent:P,trackEvent:N,arInteracted:F,previewInteracted:O,setDebounceAREngagementMs:k,setOnDebouncedAREngagement:G,setDebouncePreviewEngagementMs:H,setOnDebouncedPreviewEngagement:z,flushEngagementCallbacks:V}=function(e,t){const n=performance.now(),i=Uf(),r=Lf(),a=Lf(),s=Pf(),o=Pf();window.setInterval(()=>{if(r.dirty||a.dirty){const e=r.engagementMs,t=a.engagementMs,n=e+t;r.clearDirty(),a.clearDirty(),h("heartbeat",{engagementTotal:n,engagementAR:e,engagement3D:t})}},1e3);const l=(r,a={})=>({name:r,props:a=Object.assign(Object.assign({},a),{userAgent:zf,hostname:window.location.hostname,href:window.location.href,pluginVersion:tf,sessionId:Gf,setupId:i,timeSinceSetup:performance.now()-n,sku:e,apiKey:t})}),c=({name:e,props:t})=>{qf(()=>{window.ShopAR__analytics.trackEventImpl(e,t)})},h=(e,t={})=>{c(l(e,t))};return{prepareEvent:l,submitEvent:c,trackEvent:h,arInteracted:()=>{const e=performance.now();r.interact(e),s.interact(e)},previewInteracted:()=>{const e=performance.now();a.interact(e),o.interact(e)},setDebounceAREngagementMs:e=>{s.debounceDurationMs=e},setOnDebouncedAREngagement:e=>{s.onDebouncedEngagement=e},setDebouncePreviewEngagementMs:e=>{o.debounceDurationMs=e},setOnDebouncedPreviewEngagement:e=>{o.onDebouncedEngagement=e},flushEngagementCallbacks:()=>{s.flush(),o.flush()}}}(p,u),W=L("setup");let q;k(e.debounceAREngagementMs),G(e.onDebouncedAREngagement),H(e.debounce3DEngagementMs),z(e.onDebounced3DEngagement);try{q=yield M}catch(e){const t=o(e);throw N("apiError",{errorName:s(e),errorMessage:t,errorStatusCode:e instanceof Xp?e.status:void 0}),new Error(`API error: ${t}`)}Om(B(),U);const{category:j,arUrl:Y,arEnvUrl:X,arDiamondEnvUrl:K,arToneMapping:J,arToneMappingExposure:Z,arBloomEnabled:$,arBloomStrength:ee,arBloomRadius:te,arBloomThreshold:ne,arKey:ie,arPromptEnabled:re,arPromptText:ae,arPromptImage:se,previewUrl:oe,previewEnvUrl:le,previewDiamondEnvUrl:ce,previewToneMapping:he,previewToneMappingExposure:Ae,previewBloomEnabled:ue,previewBloomStrength:de,previewBloomRadius:pe,previewBloomThreshold:fe,previewPosterUrl:ge,cameraErrorText:me,qrPromptText:ve}=q;var Ee;null!=Y||null!=oe?(P(W),N("apiResponse",q)):(N("apiResponseFailure",q),Ee="SKU not found (or both 3D and AR disabled).",console.error(`ShopAR Plugin: ${Ee}`));const be=null!=Y&&function(e){return null!=e&&Zp.includes(e)}(j),Ce=null==(null===(t=e._internalOptions)||void 0===t?void 0:t.qrEnabled)||(null===(c=e._internalOptions)||void 0===c?void 0:c.qrEnabled),_e=be&&function(e){return null!=e&&$p.includes(e)}(j),Ie=Ce&&_e&&!xm(),xe=be&&!Ie,ye=null!=oe;Om(B(),U);const{setTargetElement:we,getDeepARTarget:Me,getDeepARPrompt:Se,getThreeTarget:Be,customizeDeepARPrompt:Te,customizeCameraError:Re,customizeQRPrompt:De,setVisibilityParameters:Qe,getUIState:Ue,setUIState:Le,setDefaultUIActions:Pe,startDeepARLoading:Ne,stopDeepARLoading:Fe,showCameraError:Oe,updateDeepARLoadingProgress:ke}=T();we(f);Qe(null==e.defaultUI||e.defaultUI,Ie,xe,ye,j,g),Te(null!==(A=null!==(h=function(e){switch(e){case"Glasses":return cf["prompt.ar.glasses"];case"Shoes":return cf["prompt.ar.shoes"];case"Watches":return cf["prompt.ar.watches"];case"Bracelets":return cf["prompt.ar.bracelets"];case"Scarves":return cf["prompt.ar.scarves"];case"Hats":return cf["prompt.ar.hats"];case"Necklaces":return cf["prompt.ar.necklaces"];default:return}}(j))&&void 0!==h?h:ae)&&void 0!==A?A:"",null!=se?se:""),Re(me),De(ve);const Ge=Be();Ge.baseUrl=`${af()}/3d`,Ge.posterUrl=null!=ge?ge:null,function(e,t){const n=e.parentNode;if(null==n)throw new Error("Parent node missing.");new MutationObserver(n=>{for(const i of n)for(const n of i.removedNodes)if(n===e)return void t()}).observe(n,{childList:!0})}(f,()=>{V(),Ue()!==_f.QR||He()||Ve(),Ue()===_f.AR&&um()&&Am(),Ue()===_f.Preview&&(Ge.paused=!0),Le(_f.None),Ge.remove(),function(e){wf.delete(e)}(f)});const{qrPaused:He,qrDraw:ze,qrPause:Ve}=R(),We=null==e.interactive||e.interactive;Ge.interactivityDisabled=!We;let qe=0;if(Ue()===_f.QR){if(!He())if(Ie){N(Nf);try{yield ze(u,p)}catch(e){const t=o(e);throw new Error(`QR failed: ${t}`)}}else Ve(),Le(_f.None)}else if(Ue()===_f.AR){if(um())if(xe&&!Lm){N(Ff),Ne(),tm(),"Glasses"===j&&nm(),Sf(S),am(Me()),rm(j),sm(re?Se():null);const e=e=>{ke(e.loaded/e.total*100)};yield lm(Y,{envmap:X,diamondEnvMap:K,onProgress:e},`${Y}${X}${K}`),cm(J,Z),hm($,ee,te,ne),om(F),Om(B(),U),Fe()}else Am(),Le(_f.None)}else Ue()===_f.Preview&&(ye?(N(Of),yield customElements.whenDefined("shopar-3d"),Ge.posterUrl=null!=ge?ge:null,Ge.glbUrl=oe,Ge.envUrl=null!=le?le:`${af()}/env/default.hdr`,Ge.diamondEnvUrl=null!=ce?ce:null,Ge.category=null!=j?j:null,Ge.touchAction=null!=v?v:null,Ge.zoomDisabled=!E,Ge.minZoom=null!=b?b:null,Ge.maxZoom=null!=C?C:null,Ge.alwaysTransparentBackground=_,Ge.toneMapping=null!=he?he:"ACES",Ge.toneMappingExposure=null!=Ae?Ae:1,Ge.bloomEnabled=null!=ue?ue:null,Ge.bloomStrength=null!=de?de:null,Ge.bloomRadius=null!=pe?pe:null,Ge.bloomThreshold=null!=fe?fe:null,Ge.onInteracted=O,Ge.animation=null!=m?m:null,Ge.paused=!1,Ge.style.display="",yield Ge.flushChanges()):(Ge.posterUrl=null,Ge.glbUrl=null,Ge.envUrl=null,Ge.diamondEnvUrl=null,Ge.bloomEnabled=null,Ge.paused=!0,Ge.style.display="none",Le(_f.None)));const je=()=>a(this,void 0,void 0,function*(){if(Ie)try{N(Nf);const e=++qe;if(Ue()===_f.Preview&&(Ge.paused=!0,Ge.style.display="none"),Le(_f.QR),yield ze(u,p),qe!==e)return;return void Om(B(),U)}catch(e){const t=o(e);throw N("qrLaunchFailure",{errorName:s(e),errorMessage:t}),new Error(`QR failed: ${t}`)}if(!xe)throw new i("Model does not have AR enabled.");try{N(Ff);const e=++qe;if(Ue()===_f.Preview&&(Ge.paused=!0,Ge.style.display="none"),Sf(S),Le(_f.AR),tm(),"Glasses"===j&&nm(),Ne(),yield Qg,qe!==e)return;Om(B(),U),rm(j),am(Me()),sm(re?Se():null);const t=e=>{ke(e.loaded/e.total*100)};if(um())yield lm(Y,{envmap:X,diamondEnvMap:K,onProgress:t},`${Y}${X}${K}`);else{if(yield im({licenseKey:ie,effectUrl:Y,effectOptions:{envmap:X,diamondEnvMap:K},onProgress:t}),qe!==e)return;Om(B(),U)}if(cm(J,Z),hm($,ee,te,ne),om(F),qe!==e)return;if(Om(B(),U),qe!==e)return;Om(B(),U)}catch(e){const t=s(e),n=o(e);if(N("arLaunchFailure",{errorName:t,errorMessage:n}),Oe(),"CameraPermissionDeniedError"===t)throw new r(n);throw new i(n)}finally{Fe()}}),Ye=()=>a(this,void 0,void 0,function*(){if(!ye)throw new n("Model does not have 3D enabled.");try{N(Of),Ue()===_f.AR&&(Am(),Ve()),Le(_f.Preview),yield customElements.whenDefined("shopar-3d"),Ge.posterUrl=null!=ge?ge:null,Ge.glbUrl=oe,Ge.envUrl=null!=le?le:`${af()}/env/default.hdr`,Ge.diamondEnvUrl=null!=ce?ce:null,Ge.category=null!=j?j:null,Ge.touchAction=null!=v?v:null,Ge.zoomDisabled=!E,Ge.minZoom=null!=b?b:null,Ge.maxZoom=null!=C?C:null,Ge.alwaysTransparentBackground=_,Ge.toneMapping=null!=he?he:"ACES",Ge.toneMappingExposure=null!=Ae?Ae:1,Ge.bloomEnabled=null!=ue?ue:null,Ge.bloomStrength=null!=de?de:null,Ge.bloomRadius=null!=pe?pe:null,Ge.bloomThreshold=null!=fe?fe:null,Ge.onInteracted=O,Ge.animation=null!=m?m:null,Ge.paused=!1,Ge.style.display="",yield Ge.flushChanges()}catch(e){const t=o(e);throw N("previewLaunchFailure",{errorName:s(e),errorMessage:t}),new n(t)}}),Xe=()=>a(this,void 0,void 0,function*(){Ue()!==_f.None&&("AR"!==g||Ue()!==_f.AR&&Ue()!==_f.QR)&&("3D"===g&&Ue()===_f.Preview||(++qe,V(),Ue()===_f.QR||Ue()===_f.AR?(Am(),Ve()):Ue()===_f.Preview&&(Ge.paused=!0,Ge.style.display="none"),Le(_f.None),"AR"!==g?"3D"!==g||(yield Ye()):yield je()))});return Pe(l("launchAR",je),l("launch3D",Ye),l("close",Xe)),"AR"===g?(yield je(),Om(B(),U)):"3D"===g&&(yield Ye(),Om(B(),U)),Lm=!1,{launchAR:be?l("launchAR",je):void 0,launch3D:ye?l("launch3D",Ye):void 0,closeAR:be?l("closeAR",()=>a(this,void 0,void 0,function*(){Ue()!==_f.AR&&Ue()!==_f.QR||"AR"!==g&&(++qe,V(),Am(),Ve(),Le(_f.None),"3D"!==g||(yield Ye()))})):void 0,close3D:ye?l("close3D",()=>a(this,void 0,void 0,function*(){Ue()===_f.Preview&&"3D"!==g&&(++qe,V(),Ge.paused=!0,Ge.style.display="none",Le(_f.None),"AR"!==g||(yield je()))})):void 0,close:be||ye?l("close",Xe):void 0,isInteractive:()=>D(),setInteractive:e=>Q(e)}})}function Om(e,t){if(e!==t)throw new Error("Setup cancelled. Please ensure that setup is only called once.")}const km={setup:function(e){return a(this,void 0,void 0,function*(){return l("visionSetup",()=>Pm(e))()})}},Gm={setup:function(e){return a(this,void 0,void 0,function*(){return l("setup",()=>Fm(e))()})},version:tf};export{r as CameraPermissionDeniedError,n as Launch3DError,i as LaunchARError,e as PREVIEW_STATES,t as PluginError,Gm as plugin,km as vision};
|