parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c=0;i--)r[i]===t&&r.pop()}dispatchEvent(e,t){const r=this[i].listeners.get(e)||[],n=[];for(let i=0;i0?(r=2*Math.sqrt(i+1),e[3]=.25*r,e[0]=(t[6]-t[9])/r,e[1]=(t[8]-t[2])/r,e[2]=(t[1]-t[4])/r):t[0]>t[5]&&t[0]>t[10]?(r=2*Math.sqrt(1+t[0]-t[5]-t[10]),e[3]=(t[6]-t[9])/r,e[0]=.25*r,e[1]=(t[1]+t[4])/r,e[2]=(t[8]+t[2])/r):t[5]>t[10]?(r=2*Math.sqrt(1+t[5]-t[0]-t[10]),e[3]=(t[8]-t[2])/r,e[0]=(t[1]+t[4])/r,e[1]=.25*r,e[2]=(t[6]+t[9])/r):(r=2*Math.sqrt(1+t[10]-t[0]-t[5]),e[3]=(t[1]-t[4])/r,e[0]=(t[8]+t[2])/r,e[1]=(t[6]+t[9])/r,e[2]=.25*r),e}function f(e,t,i,r,n){let s,a=1/Math.tan(t/2);return e[0]=a/i,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=n&&n!==1/0?(s=1/(r-n),e[10]=(n+r)*s,e[14]=2*n*r*s):(e[10]=-1,e[14]=-2*r),e}function m(){let e=new s(3);return s!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function g(e){var t=new s(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function v(e){let t=e[0],i=e[1],r=e[2];return Math.sqrt(t*t+i*i+r*r)}function w(e,t,i){let r=new s(3);return r[0]=e,r[1]=t,r[2]=i,r}function y(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function b(e,t,i){return e[0]=t[0]+i[0],e[1]=t[1]+i[1],e[2]=t[2]+i[2],e}function E(e,t,i){return e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function S(e,t){let i=t[0],r=t[1],n=t[2],s=i*i+r*r+n*n;return s>0&&(s=1/Math.sqrt(s),e[0]=t[0]*s,e[1]=t[1]*s,e[2]=t[2]*s),e}function M(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function x(e,t,i){let r=t[0],n=t[1],s=t[2],a=i[0],o=i[1],l=i[2];return e[0]=n*l-s*o,e[1]=s*a-r*l,e[2]=r*o-n*a,e}function _(e,t,i){let r=i[0],n=i[1],s=i[2],a=i[3],o=t[0],l=t[1],A=t[2],h=n*A-s*l,c=s*o-r*A,d=r*l-n*o,u=n*d-s*c,p=s*h-r*d,f=r*c-n*h,m=2*a;return h*=m,c*=m,d*=m,u*=2,p*=2,f*=2,e[0]=o+h+u,e[1]=l+c+p,e[2]=A+d+f,e}function F(e,t){let i=w(e[0],e[1],e[2]),r=w(t[0],t[1],t[2]);S(i,i),S(r,r);let n=M(i,r);return n>1?0:n<-1?Math.PI:Math.acos(n)}const R=v,T=function(){let e=m();return function(t,i,r,n,s,a){let o,l;for(i||(i=3),r||(r=0),l=n?Math.min(n*i+r,t.length):t.length,o=r;o0&&(a=1/Math.sqrt(a),e[0]=i*a,e[1]=r*a,e[2]=n*a,e[3]=s*a),e}const O=function(){let e=P();return function(t,i,r,n,s,a){let o,l;for(i||(i=4),r||(r=0),l=n?Math.min(n*i+r,t.length):t.length,o=r;on?(s=Math.acos(a),o=Math.sin(s),l=Math.sin((1-r)*s)/o,A=Math.sin(r*s)/o):(l=1-r,A=r),e[0]=l*h+A*p,e[1]=l*c+A*f,e[2]=l*d+A*m,e[3]=l*u+A*g,e}function z(e,t){let i=t[0],r=t[1],n=t[2],s=t[3],a=i*i+r*r+n*n+s*s,o=a?1/a:0;return e[0]=-i*o,e[1]=-r*o,e[2]=-n*o,e[3]=s*o,e}function V(e,t){let i,r=t[0]+t[4]+t[8];if(r>0)i=Math.sqrt(r+1),e[3]=.5*i,i=.5/i,e[0]=(t[5]-t[7])*i,e[1]=(t[6]-t[2])*i,e[2]=(t[1]-t[3])*i;else{let r=0;t[4]>t[0]&&(r=1),t[8]>t[3*r+r]&&(r=2);let n=(r+1)%3,s=(r+2)%3;i=Math.sqrt(t[3*r+r]-t[3*n+n]-t[3*s+s]+1),e[r]=.5*i,i=.5/i,e[3]=(t[3*n+s]-t[3*s+n])*i,e[n]=(t[3*n+r]+t[3*r+n])*i,e[s]=(t[3*s+r]+t[3*r+s])*i}return e}function U(e,t,i,r){let n=.5*Math.PI/180;t*=n,i*=n,r*=n;let s=Math.sin(t),a=Math.cos(t),o=Math.sin(i),l=Math.cos(i),A=Math.sin(r),h=Math.cos(r);return e[0]=s*l*h-a*o*A,e[1]=a*o*h+s*l*A,e[2]=a*l*A-s*o*h,e[3]=a*l*h+s*o*A,e}const H=C,X=D,W=I,j=L,q=function(){let e=m(),t=w(1,0,0),i=w(0,1,0);return function(r,n,s){let a=M(n,s);return a<-.999999?(x(e,t,n),R(e)<1e-6&&x(e,i,n),S(e,e),G(r,e,Math.PI),r):a>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(x(e,n,s),r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=1+a,j(r,r))}}(),Y=function(){let e=N(),t=N();return function(i,r,n,s,a,o){return k(e,r,a,o),k(t,n,s,o),k(i,e,t,2*o*(1-o)),i}}(),Z=function(){let e=B();return function(t,i,r,n){return e[0]=r[0],e[3]=r[1],e[6]=r[2],e[1]=n[0],e[4]=n[1],e[7]=n[2],e[2]=-i[0],e[5]=-i[1],e[8]=-i[2],j(t,V(t,e))}}(),J=Symbol("@@webxr-polyfill/XRRigidTransform");class K{constructor(){if(this[J]={matrix:null,position:null,orientation:null,inverse:null},0===arguments.length)this[J].matrix=A(new Float32Array(16));else if(1===arguments.length)arguments[0]instanceof Float32Array?this[J].matrix=arguments[0]:(this[J].position=this._getPoint(arguments[0]),this[J].orientation=DOMPointReadOnly.fromPoint({x:0,y:0,z:0,w:1}));else{if(2!==arguments.length)throw new Error("Too many arguments!");this[J].position=this._getPoint(arguments[0]),this[J].orientation=this._getPoint(arguments[1])}if(this[J].matrix){let e=m();u(e,this[J].matrix),this[J].position=DOMPointReadOnly.fromPoint({x:e[0],y:e[1],z:e[2]});let t=N();p(t,this[J].matrix),this[J].orientation=DOMPointReadOnly.fromPoint({x:t[0],y:t[1],z:t[2],w:t[3]})}else this[J].matrix=A(new Float32Array(16)),d(this[J].matrix,X(this[J].orientation.x,this[J].orientation.y,this[J].orientation.z,this[J].orientation.w),w(this[J].position.x,this[J].position.y,this[J].position.z))}_getPoint(e){return e instanceof DOMPointReadOnly?e:DOMPointReadOnly.fromPoint(e)}get matrix(){return this[J].matrix}get position(){return this[J].position}get orientation(){return this[J].orientation}get inverse(){if(null===this[J].inverse){let e=A(new Float32Array(16));h(e,this[J].matrix),this[J].inverse=new K(e),this[J].inverse[J].inverse=this}return this[J].inverse}}const $=Symbol("@@webxr-polyfill/XRSpace");class ee{constructor(e=null,t=null){this[$]={specialType:e,inputSource:t,baseMatrix:null,inverseBaseMatrix:null,lastFrameId:-1}}get _specialType(){return this[$].specialType}get _inputSource(){return this[$].inputSource}_ensurePoseUpdated(e,t){t!=this[$].lastFrameId&&(this[$].lastFrameId=t,this._onPoseUpdate(e))}_onPoseUpdate(e){"viewer"==this[$].specialType&&(this._baseMatrix=e.getBasePoseMatrix())}set _baseMatrix(e){this[$].baseMatrix=e,this[$].inverseBaseMatrix=null}get _baseMatrix(){return this[$].baseMatrix||this[$].inverseBaseMatrix&&(this[$].baseMatrix=new Float32Array(16),h(this[$].baseMatrix,this[$].inverseBaseMatrix)),this[$].baseMatrix}set _inverseBaseMatrix(e){this[$].inverseBaseMatrix=e,this[$].baseMatrix=null}get _inverseBaseMatrix(){return this[$].inverseBaseMatrix||this[$].baseMatrix&&(this[$].inverseBaseMatrix=new Float32Array(16),h(this[$].inverseBaseMatrix,this[$].baseMatrix)),this[$].inverseBaseMatrix}_getSpaceRelativeTransform(e){if(!this._inverseBaseMatrix||!e._baseMatrix)return null;let t=new Float32Array(16);return c(t,this._inverseBaseMatrix,e._baseMatrix),new K(t)}}const te=1.6,ie=Symbol("@@webxr-polyfill/XRReferenceSpace"),re=["viewer","local","local-floor","bounded-floor","unbounded"];function ne(e){return"bounded-floor"===e||"local-floor"===e}class se extends ee{constructor(e,t=null){if(!re.includes(e))throw new Error(`XRReferenceSpaceType must be one of ${re}`);if(super(e),"bounded-floor"===e&&!t)throw new Error("XRReferenceSpace cannot use 'bounded-floor' type if the platform does not provide the floor level");ne(e)&&!t&&((t=A(new Float32Array(16)))[13]=te),this._inverseBaseMatrix=t||A(new Float32Array(16)),this[ie]={type:e,transform:t,originOffset:A(new Float32Array(16))}}_transformBasePoseMatrix(e,t){c(e,this._inverseBaseMatrix,t)}_originOffsetMatrix(){return this[ie].originOffset}_adjustForOriginOffset(e){let t=new Float32Array(16);h(t,this[ie].originOffset),c(e,t,e)}_getSpaceRelativeTransform(e){let t=super._getSpaceRelativeTransform(e);return this._adjustForOriginOffset(t.matrix),new XRRigidTransform(t.matrix)}getOffsetReferenceSpace(e){let t=new se(this[ie].type,this[ie].transform,this[ie].bounds);return c(t[ie].originOffset,this[ie].originOffset,e.matrix),t}}const ae=Symbol("@@webxr-polyfill/XR"),oe=["inline","immersive-vr","immersive-ar"],le={inline:{requiredFeatures:["viewer"],optionalFeatures:[]},"immersive-vr":{requiredFeatures:["viewer","local"],optionalFeatures:[]},"immersive-ar":{requiredFeatures:["viewer","local"],optionalFeatures:[]}},Ae="Polyfill Error: Must call navigator.xr.isSessionSupported() with any XRSessionMode\nor navigator.xr.requestSession('inline') prior to requesting an immersive\nsession. This is a limitation specific to the WebXR Polyfill and does not apply\nto native implementations of the API.";class he extends r{constructor(e){super(),this[ae]={device:null,devicePromise:e,immersiveSession:null,inlineSessions:new Set},e.then(e=>{this[ae].device=e})}async isSessionSupported(e){return this[ae].device||await this[ae].devicePromise,"inline"!=e?Promise.resolve(this[ae].device.isSessionSupported(e)):Promise.resolve(!0)}async requestSession(e,t){if(!this[ae].device){if("inline"!=e)throw new Error(Ae);await this[ae].devicePromise}if(!oe.includes(e))throw new TypeError(`The provided value '${e}' is not a valid enum value of type XRSessionMode`);const i=le[e],r=i.requiredFeatures.concat(t&&t.requiredFeatures?t.requiredFeatures:[]),n=i.optionalFeatures.concat(t&&t.optionalFeatures?t.optionalFeatures:[]),s=new Set;let a=!1;for(let h of r)this[ae].device.isFeatureSupported(h)?s.add(h):(console.error(`The required feature '${h}' is not supported`),a=!0);if(a)throw new DOMException("Session does not support some required features","NotSupportedError");for(let h of n)this[ae].device.isFeatureSupported(h)?s.add(h):console.log(`The optional feature '${h}' is not supported`);const o=await this[ae].device.requestSession(e,s),l=new XRSession(this[ae].device,e,o);"inline"==e?this[ae].inlineSessions.add(l):this[ae].immersiveSession=l;const A=()=>{"inline"==e?this[ae].inlineSessions.delete(l):this[ae].immersiveSession=null,l.removeEventListener("end",A)};return l.addEventListener("end",A),l}}let ce;if("performance"in t==!1){let e=Date.now();ce=(()=>Date.now()-e)}else ce=(()=>performance.now());var de=ce;const ue=Symbol("@@webxr-polyfill/XRPose");class pe{constructor(e,t){this[ue]={transform:e,emulatedPosition:t}}get transform(){return this[ue].transform}get emulatedPosition(){return this[ue].emulatedPosition}}const fe=Symbol("@@webxr-polyfill/XRViewerPose");class me extends pe{constructor(e,t,i=!1){super(e,i),this[fe]={views:t}}get views(){return this[fe].views}}const ge=Symbol("@@webxr-polyfill/XRViewport");class ve{constructor(e){this[ge]={target:e}}get x(){return this[ge].target.x}get y(){return this[ge].target.y}get width(){return this[ge].target.width}get height(){return this[ge].target.height}}const we=["left","right","none"],ye=Symbol("@@webxr-polyfill/XRView");class be{constructor(e,t,i,r){if(!we.includes(i))throw new Error(`XREye must be one of: ${we}`);const n=Object.create(null),s=new ve(n);this[ye]={device:e,eye:i,viewport:s,temp:n,sessionId:r,transform:t}}get eye(){return this[ye].eye}get projectionMatrix(){return this[ye].device.getProjectionMatrix(this.eye)}get transform(){return this[ye].transform}_getViewport(e){if(this[ye].device.getViewport(this[ye].sessionId,this.eye,e,this[ye].temp))return this[ye].viewport}}const Ee=Symbol("@@webxr-polyfill/XRFrame"),Se="XRFrame access outside the callback that produced it is invalid.",Me="getViewerPose can only be called on XRFrame objects passed to XRSession.requestAnimationFrame callbacks.";let xe=0;class _e{constructor(e,t,i){this[Ee]={id:++xe,active:!1,animationFrame:!1,device:e,session:t,sessionId:i}}get session(){return this[Ee].session}getViewerPose(e){if(!this[Ee].animationFrame)throw new DOMException(Me,"InvalidStateError");if(!this[Ee].active)throw new DOMException(Se,"InvalidStateError");const t=this[Ee].device,i=this[Ee].session;i[ze].viewerSpace._ensurePoseUpdated(t,this[Ee].id),e._ensurePoseUpdated(t,this[Ee].id);let r=e._getSpaceRelativeTransform(i[ze].viewerSpace);const n=[];for(let s of i[ze].viewSpaces){s._ensurePoseUpdated(t,this[Ee].id);let i=e._getSpaceRelativeTransform(s),r=new be(t,i,s.eye,this[Ee].sessionId);n.push(r)}return new me(r,n,!1)}getPose(e,t){if(!this[Ee].active)throw new DOMException(Se,"InvalidStateError");const i=this[Ee].device;if("target-ray"===e._specialType||"grip"===e._specialType)return i.getInputPose(e._inputSource,t,e._specialType);{e._ensurePoseUpdated(i,this[Ee].id),t._ensurePoseUpdated(i,this[Ee].id);let r=t._getSpaceRelativeTransform(e);return r?new XRPose(r,!1):null}}}const Fe=Symbol("@@webxr-polyfill/XRRenderState"),Re=Object.freeze({depthNear:.1,depthFar:1e3,inlineVerticalFieldOfView:null,baseLayer:null});class Te{constructor(e={}){const t=Object.assign({},Re,e);this[Fe]={config:t}}get depthNear(){return this[Fe].config.depthNear}get depthFar(){return this[Fe].config.depthFar}get inlineVerticalFieldOfView(){return this[Fe].config.inlineVerticalFieldOfView}get baseLayer(){return this[Fe].config.baseLayer}}const Be=Symbol("@@webxr-polyfill/polyfilled-xr-compatible"),Pe=Symbol("@@webxr-polyfill/xr-compatible"),Ce=Symbol("@@webxr-polyfill/XRWebGLLayer"),De=Object.freeze({antialias:!0,depth:!1,stencil:!1,alpha:!0,multiview:!1,ignoreDepthValues:!1,framebufferScaleFactor:1});class Ie{constructor(e,t,i={}){const r=Object.assign({},De,i);if(!(e instanceof Ue))throw new Error("session must be a XRSession");if(e.ended)throw new Error("InvalidStateError");if(t[Be]&&!0!==t[Pe])throw new Error("InvalidStateError");const n=t.getParameter(t.FRAMEBUFFER_BINDING);this[Ce]={context:t,config:r,framebuffer:n,session:e}}get context(){return this[Ce].context}get antialias(){return this[Ce].config.antialias}get ignoreDepthValues(){return!0}get framebuffer(){return this[Ce].framebuffer}get framebufferWidth(){return this[Ce].context.drawingBufferWidth}get framebufferHeight(){return this[Ce].context.drawingBufferHeight}get _session(){return this[Ce].session}getViewport(e){return e._getViewport(this)}static getNativeFramebufferScaleFactor(e){if(!e)throw new TypeError("getNativeFramebufferScaleFactor must be passed a session.");return e[ze].ended?0:1}}const Le=Symbol("@@webxr-polyfill/XRInputSourceEvent");class Oe extends Event{constructor(e,t){super(e,t),this[Le]={frame:t.frame,inputSource:t.inputSource},Object.setPrototypeOf(this,Oe.prototype)}get frame(){return this[Le].frame}get inputSource(){return this[Le].inputSource}}const Ne=Symbol("@@webxr-polyfill/XRSessionEvent");class Ge extends Event{constructor(e,t){super(e,t),this[Ne]={session:t.session},Object.setPrototypeOf(this,Ge.prototype)}get session(){return this[Ne].session}}const Qe=Symbol("@@webxr-polyfill/XRInputSourcesChangeEvent");class ke extends Event{constructor(e,t){super(e,t),this[Qe]={session:t.session,added:t.added,removed:t.removed},Object.setPrototypeOf(this,ke.prototype)}get session(){return this[Qe].session}get added(){return this[Qe].added}get removed(){return this[Qe].removed}}const ze=Symbol("@@webxr-polyfill/XRSession");class Ve extends ee{constructor(e){super(e)}get eye(){return this._specialType}_onPoseUpdate(e){this._inverseBaseMatrix=e.getBaseViewMatrix(this._specialType)}}class Ue extends r{constructor(e,t,i){super();let r="inline"!=t,n=new Te({inlineVerticalFieldOfView:r?null:.5*Math.PI});this[ze]={device:e,mode:t,immersive:r,ended:!1,suspended:!1,frameCallbacks:[],currentFrameCallbacks:null,frameHandle:0,deviceFrameHandle:null,id:i,activeRenderState:n,pendingRenderState:null,viewerSpace:new se("viewer"),viewSpaces:[],currentInputSources:[]},r?this[ze].viewSpaces.push(new Ve("left"),new Ve("right")):this[ze].viewSpaces.push(new Ve("none")),this[ze].onDeviceFrame=(()=>{if(this[ze].ended||this[ze].suspended)return;if(this[ze].deviceFrameHandle=null,this[ze].startDeviceFrameLoop(),null!==this[ze].pendingRenderState&&(this[ze].activeRenderState=new Te(this[ze].pendingRenderState),this[ze].pendingRenderState=null,this[ze].activeRenderState.baseLayer&&this[ze].device.onBaseLayerSet(this[ze].id,this[ze].activeRenderState.baseLayer)),null===this[ze].activeRenderState.baseLayer)return;const t=new _e(e,this,this[ze].id),i=this[ze].currentFrameCallbacks=this[ze].frameCallbacks;this[ze].frameCallbacks=[],t[Ee].active=!0,t[Ee].animationFrame=!0,this[ze].device.onFrameStart(this[ze].id,this[ze].activeRenderState),this._checkInputSourcesChange();const r=de();for(let e=0;e{null===this[ze].deviceFrameHandle&&(this[ze].deviceFrameHandle=this[ze].device.requestAnimationFrame(this[ze].onDeviceFrame))}),this[ze].stopDeviceFrameLoop=(()=>{const e=this[ze].deviceFrameHandle;null!==e&&(this[ze].device.cancelAnimationFrame(e),this[ze].deviceFrameHandle=null)}),this[ze].onPresentationEnd=(t=>{if(t!==this[ze].id)return this[ze].suspended=!1,this[ze].startDeviceFrameLoop(),void this.dispatchEvent("focus",{session:this});this[ze].ended=!0,this[ze].stopDeviceFrameLoop(),e.removeEventListener("@@webxr-polyfill/vr-present-end",this[ze].onPresentationEnd),e.removeEventListener("@@webxr-polyfill/vr-present-start",this[ze].onPresentationStart),e.removeEventListener("@@webxr-polyfill/input-select-start",this[ze].onSelectStart),e.removeEventListener("@@webxr-polyfill/input-select-end",this[ze].onSelectEnd),this.dispatchEvent("end",new Ge("end",{session:this}))}),e.addEventListener("@@webxr-polyfill/vr-present-end",this[ze].onPresentationEnd),this[ze].onPresentationStart=(e=>{e!==this[ze].id&&(this[ze].suspended=!0,this[ze].stopDeviceFrameLoop(),this.dispatchEvent("blur",{session:this}))}),e.addEventListener("@@webxr-polyfill/vr-present-start",this[ze].onPresentationStart),this[ze].onSelectStart=(e=>{e.sessionId===this[ze].id&&this[ze].dispatchInputSourceEvent("selectstart",e.inputSource)}),e.addEventListener("@@webxr-polyfill/input-select-start",this[ze].onSelectStart),this[ze].onSelectEnd=(e=>{e.sessionId===this[ze].id&&(this[ze].dispatchInputSourceEvent("selectend",e.inputSource),this[ze].dispatchInputSourceEvent("select",e.inputSource))}),e.addEventListener("@@webxr-polyfill/input-select-end",this[ze].onSelectEnd),this[ze].onSqueezeStart=(e=>{e.sessionId===this[ze].id&&this[ze].dispatchInputSourceEvent("squeezestart",e.inputSource)}),e.addEventListener("@@webxr-polyfill/input-squeeze-start",this[ze].onSqueezeStart),this[ze].onSqueezeEnd=(e=>{e.sessionId===this[ze].id&&(this[ze].dispatchInputSourceEvent("squeezeend",e.inputSource),this[ze].dispatchInputSourceEvent("squeeze",e.inputSource))}),e.addEventListener("@@webxr-polyfill/input-squeeze-end",this[ze].onSqueezeEnd),this[ze].dispatchInputSourceEvent=((t,i)=>{const r=new _e(e,this,this[ze].id),n=new Oe(t,{frame:r,inputSource:i});r[Ee].active=!0,this.dispatchEvent(t,n),r[Ee].active=!1}),this[ze].startDeviceFrameLoop(),this.onblur=void 0,this.onfocus=void 0,this.onresetpose=void 0,this.onend=void 0,this.onselect=void 0,this.onselectstart=void 0,this.onselectend=void 0}get renderState(){return this[ze].activeRenderState}get environmentBlendMode(){return this[ze].device.environmentBlendMode||"opaque"}async requestReferenceSpace(e){if(this[ze].ended)return;if(!re.includes(e))throw new TypeError(`XRReferenceSpaceType must be one of ${re}`);if(!this[ze].device.doesSessionSupportReferenceSpace(this[ze].id,e))throw new DOMException(`The ${e} reference space is not supported by this session.`,"NotSupportedError");if("viewer"===e)return this[ze].viewerSpace;let t=await this[ze].device.requestFrameOfReferenceTransform(e);if("bounded-floor"===e){if(!t)throw new DOMException(`${e} XRReferenceSpace not supported by this device.`,"NotSupportedError");if(!this[ze].device.requestStageBounds())throw new DOMException(`${e} XRReferenceSpace not supported by this device.`,"NotSupportedError");throw new DOMException(`The WebXR polyfill does not support the ${e} reference space yet.`,"NotSupportedError")}return new se(e,t)}requestAnimationFrame(e){if(this[ze].ended)return;const t=++this[ze].frameHandle;return this[ze].frameCallbacks.push({handle:t,callback:e,cancelled:!1}),t}cancelAnimationFrame(e){let t=this[ze].frameCallbacks,i=t.findIndex(t=>t&&t.handle===e);i>-1&&(t[i].cancelled=!0,t.splice(i,1)),(t=this[ze].currentFrameCallbacks)&&(i=t.findIndex(t=>t&&t.handle===e))>-1&&(t[i].cancelled=!0)}get inputSources(){return this[ze].device.getInputSources()}async end(){if(!this[ze].ended)return this[ze].immersive&&(this[ze].ended=!0,this[ze].device.removeEventListener("@@webxr-polyfill/vr-present-start",this[ze].onPresentationStart),this[ze].device.removeEventListener("@@webxr-polyfill/vr-present-end",this[ze].onPresentationEnd),this[ze].device.removeEventListener("@@webxr-polyfill/input-select-start",this[ze].onSelectStart),this[ze].device.removeEventListener("@@webxr-polyfill/input-select-end",this[ze].onSelectEnd),this.dispatchEvent("end",new Ge("end",{session:this}))),this[ze].stopDeviceFrameLoop(),this[ze].device.endSession(this[ze].id)}updateRenderState(e){if(this[ze].ended){throw new Error("Can't call updateRenderState on an XRSession that has already ended.")}if(e.baseLayer&&e.baseLayer._session!==this){throw new Error("Called updateRenderState with a base layer that was created by a different session.")}if(null!==e.inlineVerticalFieldOfView&&void 0!==e.inlineVerticalFieldOfView){if(this[ze].immersive){throw new Error("inlineVerticalFieldOfView must not be set for an XRRenderState passed to updateRenderState for an immersive session.")}e.inlineVerticalFieldOfView=Math.min(3.13,Math.max(.01,e.inlineVerticalFieldOfView))}if(null===this[ze].pendingRenderState){const e=this[ze].activeRenderState;this[ze].pendingRenderState={depthNear:e.depthNear,depthFar:e.depthFar,inlineVerticalFieldOfView:e.inlineVerticalFieldOfView,baseLayer:e.baseLayer}}Object.assign(this[ze].pendingRenderState,e)}_checkInputSourcesChange(){const e=[],t=[],i=this.inputSources,r=this[ze].currentInputSources;for(const n of i)r.includes(n)||e.push(n);for(const n of r)i.includes(n)||t.push(n);(e.length>0||t.length>0)&&this.dispatchEvent("inputsourceschange",new ke("inputsourceschange",{session:this,added:e,removed:t})),this[ze].currentInputSources.length=0;for(const n of i)this[ze].currentInputSources.push(n)}}const He=Symbol("@@webxr-polyfill/XRInputSource");class Xe{constructor(e){this[He]={impl:e,gripSpace:new ee("grip",this),targetRaySpace:new ee("target-ray",this)}}get handedness(){return this[He].impl.handedness}get targetRayMode(){return this[He].impl.targetRayMode}get gripSpace(){let e=this[He].impl.targetRayMode;return"gaze"===e||"screen"===e?null:this[He].gripSpace}get targetRaySpace(){return this[He].targetRaySpace}get profiles(){return this[He].impl.profiles}get gamepad(){return this[He].impl.gamepad}}const We=Symbol("@@webxr-polyfill/XRReferenceSpaceEvent");class je extends Event{constructor(e,t){super(e,t),this[We]={referenceSpace:t.referenceSpace,transform:t.transform||null},Object.setPrototypeOf(this,je.prototype)}get referenceSpace(){return this[We].referenceSpace}get transform(){return this[We].transform}}var qe={XRSystem:he,XRSession:Ue,XRSessionEvent:Ge,XRFrame:_e,XRView:be,XRViewport:ve,XRViewerPose:me,XRWebGLLayer:Ie,XRSpace:ee,XRReferenceSpace:se,XRReferenceSpaceEvent:je,XRInputSource:Xe,XRInputSourceEvent:Oe,XRInputSourcesChangeEvent:ke,XRRenderState:Te,XRRigidTransform:K,XRPose:pe};const Ye=e=>"function"!=typeof e.prototype.makeXRCompatible&&(e.prototype.makeXRCompatible=function(){return this[Pe]=!0,Promise.resolve()},!0),Ze=e=>{const t=e.prototype.getContext;e.prototype.getContext=function(e,i){const r=t.call(this,e,i);return r&&(r[Be]=!0,i&&"xrCompatible"in i&&(r[Pe]=i.xrCompatible)),r}},Je=e=>!(!e.ImageBitmapRenderingContext||!e.createImageBitmap),Ke=e=>{var t=!1;return function(e){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4)))&&(t=!0)}(e.navigator.userAgent||e.navigator.vendor||e.opera),t},$e=e=>{e.style.display="block",e.style.position="absolute",e.style.width=e.style.height="1px",e.style.top=e.style.left="0px"};var et="undefined"!=typeof window?window:void 0!==e?e:"undefined"!=typeof self?self:{};function tt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function it(e,t){return e(t={exports:{}},t.exports),t.exports}var rt=it(function(e,t){e.exports=function(){var e,t,i,r=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var i=0;ie.TEXTURE31){console.error("TEXTURE_BINDING_2D or TEXTURE_BINDING_CUBE_MAP must be followed by a valid texture unit"),r.push(null,null);break}n||(n=e.getParameter(e.ACTIVE_TEXTURE)),e.activeTexture(o),r.push(e.getParameter(a),null);break;case e.ACTIVE_TEXTURE:n=e.getParameter(e.ACTIVE_TEXTURE),r.push(null);break;default:r.push(e.getParameter(a))}}i(e);for(var s=0;se.TEXTURE31)break;e.activeTexture(o),e.bindTexture(e.TEXTURE_2D,l);break;case e.TEXTURE_BINDING_CUBE_MAP:var o=t[++s];if(oe.TEXTURE31)break;e.activeTexture(o),e.bindTexture(e.TEXTURE_CUBE_MAP,l);break;case e.VIEWPORT:e.viewport(l[0],l[1],l[2],l[3]);break;case e.BLEND:case e.CULL_FACE:case e.DEPTH_TEST:case e.SCISSOR_TEST:case e.STENCIL_TEST:l?e.enable(a):e.disable(a);break;default:console.log("No GL restore behavior for 0x"+a.toString(16))}n&&e.activeTexture(n)}}else i(e)},T=["attribute vec2 position;","attribute vec3 texCoord;","varying vec2 vTexCoord;","uniform vec4 viewportOffsetScale[2];","void main() {"," vec4 viewport = viewportOffsetScale[int(texCoord.z)];"," vTexCoord = (texCoord.xy * viewport.zw) + viewport.xy;"," gl_Position = vec4( position, 1.0, 1.0 );","}"].join("\n"),B=["precision mediump float;","uniform sampler2D diffuse;","varying vec2 vTexCoord;","void main() {"," gl_FragColor = texture2D(diffuse, vTexCoord);","}"].join("\n");function P(e,t,i,r){this.gl=e,this.cardboardUI=t,this.bufferScale=i,this.dirtySubmitFrameBindings=r,this.ctxAttribs=e.getContextAttributes(),this.instanceExt=e.getExtension("ANGLE_instanced_arrays"),this.meshWidth=20,this.meshHeight=20,this.bufferWidth=e.drawingBufferWidth,this.bufferHeight=e.drawingBufferHeight,this.realBindFramebuffer=e.bindFramebuffer,this.realEnable=e.enable,this.realDisable=e.disable,this.realColorMask=e.colorMask,this.realClearColor=e.clearColor,this.realViewport=e.viewport,o()||(this.realCanvasWidth=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"width"),this.realCanvasHeight=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"height")),this.isPatched=!1,this.lastBoundFramebuffer=null,this.cullFace=!1,this.depthTest=!1,this.blend=!1,this.scissorTest=!1,this.stencilTest=!1,this.viewport=[0,0,0,0],this.colorMask=[!0,!0,!0,!0],this.clearColor=[0,0,0,0],this.attribs={position:0,texCoord:1},this.program=w(e,T,B,this.attribs),this.uniforms=y(e,this.program),this.viewportOffsetScale=new Float32Array(8),this.setTextureBounds(),this.vertexBuffer=e.createBuffer(),this.indexBuffer=e.createBuffer(),this.indexCount=0,this.renderTarget=e.createTexture(),this.framebuffer=e.createFramebuffer(),this.depthStencilBuffer=null,this.depthBuffer=null,this.stencilBuffer=null,this.ctxAttribs.depth&&this.ctxAttribs.stencil?this.depthStencilBuffer=e.createRenderbuffer():this.ctxAttribs.depth?this.depthBuffer=e.createRenderbuffer():this.ctxAttribs.stencil&&(this.stencilBuffer=e.createRenderbuffer()),this.patch(),this.onResize()}P.prototype.destroy=function(){var e=this.gl;this.unpatch(),e.deleteProgram(this.program),e.deleteBuffer(this.vertexBuffer),e.deleteBuffer(this.indexBuffer),e.deleteTexture(this.renderTarget),e.deleteFramebuffer(this.framebuffer),this.depthStencilBuffer&&e.deleteRenderbuffer(this.depthStencilBuffer),this.depthBuffer&&e.deleteRenderbuffer(this.depthBuffer),this.stencilBuffer&&e.deleteRenderbuffer(this.stencilBuffer),this.cardboardUI&&this.cardboardUI.destroy()},P.prototype.onResize=function(){var e=this.gl,t=this,i=[e.RENDERBUFFER_BINDING,e.TEXTURE_BINDING_2D,e.TEXTURE0];R(e,i,function(e){t.realBindFramebuffer.call(e,e.FRAMEBUFFER,null),t.scissorTest&&t.realDisable.call(e,e.SCISSOR_TEST),t.realColorMask.call(e,!0,!0,!0,!0),t.realViewport.call(e,0,0,e.drawingBufferWidth,e.drawingBufferHeight),t.realClearColor.call(e,0,0,0,1),e.clear(e.COLOR_BUFFER_BIT),t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.framebuffer),e.bindTexture(e.TEXTURE_2D,t.renderTarget),e.texImage2D(e.TEXTURE_2D,0,t.ctxAttribs.alpha?e.RGBA:e.RGB,t.bufferWidth,t.bufferHeight,0,t.ctxAttribs.alpha?e.RGBA:e.RGB,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t.renderTarget,0),t.ctxAttribs.depth&&t.ctxAttribs.stencil?(e.bindRenderbuffer(e.RENDERBUFFER,t.depthStencilBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t.depthStencilBuffer)):t.ctxAttribs.depth?(e.bindRenderbuffer(e.RENDERBUFFER,t.depthBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t.depthBuffer)):t.ctxAttribs.stencil&&(e.bindRenderbuffer(e.RENDERBUFFER,t.stencilBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.STENCIL_INDEX8,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.STENCIL_ATTACHMENT,e.RENDERBUFFER,t.stencilBuffer)),!e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer incomplete!"),t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.lastBoundFramebuffer),t.scissorTest&&t.realEnable.call(e,e.SCISSOR_TEST),t.realColorMask.apply(e,t.colorMask),t.realViewport.apply(e,t.viewport),t.realClearColor.apply(e,t.clearColor)}),this.cardboardUI&&this.cardboardUI.onResize()},P.prototype.patch=function(){if(!this.isPatched){var e=this,t=this.gl.canvas,i=this.gl;o()||(t.width=m()*this.bufferScale,t.height=g()*this.bufferScale,Object.defineProperty(t,"width",{configurable:!0,enumerable:!0,get:function(){return e.bufferWidth},set:function(i){e.bufferWidth=i,e.realCanvasWidth.set.call(t,i),e.onResize()}}),Object.defineProperty(t,"height",{configurable:!0,enumerable:!0,get:function(){return e.bufferHeight},set:function(i){e.bufferHeight=i,e.realCanvasHeight.set.call(t,i),e.onResize()}})),this.lastBoundFramebuffer=i.getParameter(i.FRAMEBUFFER_BINDING),null==this.lastBoundFramebuffer&&(this.lastBoundFramebuffer=this.framebuffer,this.gl.bindFramebuffer(i.FRAMEBUFFER,this.framebuffer)),this.gl.bindFramebuffer=function(t,r){e.lastBoundFramebuffer=r||e.framebuffer,e.realBindFramebuffer.call(i,t,e.lastBoundFramebuffer)},this.cullFace=i.getParameter(i.CULL_FACE),this.depthTest=i.getParameter(i.DEPTH_TEST),this.blend=i.getParameter(i.BLEND),this.scissorTest=i.getParameter(i.SCISSOR_TEST),this.stencilTest=i.getParameter(i.STENCIL_TEST),i.enable=function(t){switch(t){case i.CULL_FACE:e.cullFace=!0;break;case i.DEPTH_TEST:e.depthTest=!0;break;case i.BLEND:e.blend=!0;break;case i.SCISSOR_TEST:e.scissorTest=!0;break;case i.STENCIL_TEST:e.stencilTest=!0}e.realEnable.call(i,t)},i.disable=function(t){switch(t){case i.CULL_FACE:e.cullFace=!1;break;case i.DEPTH_TEST:e.depthTest=!1;break;case i.BLEND:e.blend=!1;break;case i.SCISSOR_TEST:e.scissorTest=!1;break;case i.STENCIL_TEST:e.stencilTest=!1}e.realDisable.call(i,t)},this.colorMask=i.getParameter(i.COLOR_WRITEMASK),i.colorMask=function(t,r,n,s){e.colorMask[0]=t,e.colorMask[1]=r,e.colorMask[2]=n,e.colorMask[3]=s,e.realColorMask.call(i,t,r,n,s)},this.clearColor=i.getParameter(i.COLOR_CLEAR_VALUE),i.clearColor=function(t,r,n,s){e.clearColor[0]=t,e.clearColor[1]=r,e.clearColor[2]=n,e.clearColor[3]=s,e.realClearColor.call(i,t,r,n,s)},this.viewport=i.getParameter(i.VIEWPORT),i.viewport=function(t,r,n,s){e.viewport[0]=t,e.viewport[1]=r,e.viewport[2]=n,e.viewport[3]=s,e.realViewport.call(i,t,r,n,s)},this.isPatched=!0,S(t)}},P.prototype.unpatch=function(){if(this.isPatched){var e=this.gl,t=this.gl.canvas;o()||(Object.defineProperty(t,"width",this.realCanvasWidth),Object.defineProperty(t,"height",this.realCanvasHeight)),t.width=this.bufferWidth,t.height=this.bufferHeight,e.bindFramebuffer=this.realBindFramebuffer,e.enable=this.realEnable,e.disable=this.realDisable,e.colorMask=this.realColorMask,e.clearColor=this.realClearColor,e.viewport=this.realViewport,this.lastBoundFramebuffer==this.framebuffer&&e.bindFramebuffer(e.FRAMEBUFFER,null),this.isPatched=!1,setTimeout(function(){S(t)},1)}},P.prototype.setTextureBounds=function(e,t){e||(e=[0,0,.5,1]),t||(t=[.5,0,.5,1]),this.viewportOffsetScale[0]=e[0],this.viewportOffsetScale[1]=e[1],this.viewportOffsetScale[2]=e[2],this.viewportOffsetScale[3]=e[3],this.viewportOffsetScale[4]=t[0],this.viewportOffsetScale[5]=t[1],this.viewportOffsetScale[6]=t[2],this.viewportOffsetScale[7]=t[3]},P.prototype.submitFrame=function(){var e=this.gl,t=this,i=[];if(this.dirtySubmitFrameBindings||i.push(e.CURRENT_PROGRAM,e.ARRAY_BUFFER_BINDING,e.ELEMENT_ARRAY_BUFFER_BINDING,e.TEXTURE_BINDING_2D,e.TEXTURE0),R(e,i,function(e){t.realBindFramebuffer.call(e,e.FRAMEBUFFER,null);var i=0,r=0;t.instanceExt&&(i=e.getVertexAttrib(t.attribs.position,t.instanceExt.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE),r=e.getVertexAttrib(t.attribs.texCoord,t.instanceExt.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE)),t.cullFace&&t.realDisable.call(e,e.CULL_FACE),t.depthTest&&t.realDisable.call(e,e.DEPTH_TEST),t.blend&&t.realDisable.call(e,e.BLEND),t.scissorTest&&t.realDisable.call(e,e.SCISSOR_TEST),t.stencilTest&&t.realDisable.call(e,e.STENCIL_TEST),t.realColorMask.call(e,!0,!0,!0,!0),t.realViewport.call(e,0,0,e.drawingBufferWidth,e.drawingBufferHeight),(t.ctxAttribs.alpha||o())&&(t.realClearColor.call(e,0,0,0,1),e.clear(e.COLOR_BUFFER_BIT)),e.useProgram(t.program),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t.indexBuffer),e.bindBuffer(e.ARRAY_BUFFER,t.vertexBuffer),e.enableVertexAttribArray(t.attribs.position),e.enableVertexAttribArray(t.attribs.texCoord),e.vertexAttribPointer(t.attribs.position,2,e.FLOAT,!1,20,0),e.vertexAttribPointer(t.attribs.texCoord,3,e.FLOAT,!1,20,8),t.instanceExt&&(0!=i&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.position,0),0!=r&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.texCoord,0)),e.activeTexture(e.TEXTURE0),e.uniform1i(t.uniforms.diffuse,0),e.bindTexture(e.TEXTURE_2D,t.renderTarget),e.uniform4fv(t.uniforms.viewportOffsetScale,t.viewportOffsetScale),e.drawElements(e.TRIANGLES,t.indexCount,e.UNSIGNED_SHORT,0),t.cardboardUI&&t.cardboardUI.renderNoState(),t.realBindFramebuffer.call(t.gl,e.FRAMEBUFFER,t.framebuffer),t.ctxAttribs.preserveDrawingBuffer||(t.realClearColor.call(e,0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)),t.dirtySubmitFrameBindings||t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.lastBoundFramebuffer),t.cullFace&&t.realEnable.call(e,e.CULL_FACE),t.depthTest&&t.realEnable.call(e,e.DEPTH_TEST),t.blend&&t.realEnable.call(e,e.BLEND),t.scissorTest&&t.realEnable.call(e,e.SCISSOR_TEST),t.stencilTest&&t.realEnable.call(e,e.STENCIL_TEST),t.realColorMask.apply(e,t.colorMask),t.realViewport.apply(e,t.viewport),!t.ctxAttribs.alpha&&t.ctxAttribs.preserveDrawingBuffer||t.realClearColor.apply(e,t.clearColor),t.instanceExt&&(0!=i&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.position,i),0!=r&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.texCoord,r))}),o()){var r=e.canvas;r.width==t.bufferWidth&&r.height==t.bufferHeight||(t.bufferWidth=r.width,t.bufferHeight=r.height,t.onResize())}},P.prototype.updateDeviceInfo=function(e){var t=this.gl,i=this,r=[t.ARRAY_BUFFER_BINDING,t.ELEMENT_ARRAY_BUFFER_BINDING];R(t,r,function(t){var r=i.computeMeshVertices_(i.meshWidth,i.meshHeight,e);if(t.bindBuffer(t.ARRAY_BUFFER,i.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,r,t.STATIC_DRAW),!i.indexCount){var n=i.computeMeshIndices_(i.meshWidth,i.meshHeight);t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,i.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,n,t.STATIC_DRAW),i.indexCount=n.length}})},P.prototype.computeMeshVertices_=function(e,t,i){for(var r=new Float32Array(2*e*t*5),n=i.getLeftEyeVisibleTanAngles(),s=i.getLeftEyeNoLensTanAngles(),o=i.getLeftEyeVisibleScreenRect(s),l=0,A=0;A<2;A++){for(var h=0;hn-42&&r.clientXi.clientHeight-42?e(r):r.clientX<42&&r.clientY<42&&t(r)},i.addEventListener("click",this.listener,!1)},O.prototype.onResize=function(){var e=this.gl,t=this,i=[e.ARRAY_BUFFER_BINDING];R(e,i,function(e){var i=[],r=e.drawingBufferWidth/2,n=Math.max(screen.width,screen.height)*window.devicePixelRatio,s=e.drawingBufferWidth/n,a=s*window.devicePixelRatio,o=4*a/2,l=42*a,A=28*a/2,h=14*a;function c(e,t){var n=(90-e)*I,s=Math.cos(n),a=Math.sin(n);i.push(L*s*A+r,L*a*A+A),i.push(t*s*A+r,t*a*A+A)}i.push(r-o,l),i.push(r-o,e.drawingBufferHeight),i.push(r+o,l),i.push(r+o,e.drawingBufferHeight),t.gearOffset=i.length/2;for(var d=0;d<=6;d++){var u=60*d;c(u,1),c(u+12,1),c(u+20,.75),c(u+40,.75),c(u+48,1)}function p(t,r){i.push(h+t,e.drawingBufferHeight-h-r)}t.gearVertexCount=i.length/2-t.gearOffset,t.arrowOffset=i.length/2;var f=o/Math.sin(45*I);p(0,A),p(A,0),p(A+f,f),p(f,A+f),p(f,A-f),p(0,A),p(A,2*A),p(A+f,2*A-f),p(f,A-f),p(0,A),p(f,A-o),p(28*a,A-o),p(f,A+o),p(28*a,A+o),t.arrowVertexCount=i.length/2-t.arrowOffset,e.bindBuffer(e.ARRAY_BUFFER,t.vertexBuffer),e.bufferData(e.ARRAY_BUFFER,new Float32Array(i),e.STATIC_DRAW)})},O.prototype.render=function(){var e=this.gl,t=this,i=[e.CULL_FACE,e.DEPTH_TEST,e.BLEND,e.SCISSOR_TEST,e.STENCIL_TEST,e.COLOR_WRITEMASK,e.VIEWPORT,e.CURRENT_PROGRAM,e.ARRAY_BUFFER_BINDING];R(e,i,function(e){e.disable(e.CULL_FACE),e.disable(e.DEPTH_TEST),e.disable(e.BLEND),e.disable(e.SCISSOR_TEST),e.disable(e.STENCIL_TEST),e.colorMask(!0,!0,!0,!0),e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight),t.renderNoState()})},O.prototype.renderNoState=function(){var e,t,i,r,n,s,a,o,l,A,h=this.gl;h.useProgram(this.program),h.bindBuffer(h.ARRAY_BUFFER,this.vertexBuffer),h.enableVertexAttribArray(this.attribs.position),h.vertexAttribPointer(this.attribs.position,2,h.FLOAT,!1,8,0),h.uniform4f(this.uniforms.color,1,1,1,1),e=this.projMat,t=0,i=h.drawingBufferWidth,r=0,n=h.drawingBufferHeight,o=1/(t-i),l=1/(r-n),A=1/((s=.1)-(a=1024)),e[0]=-2*o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*A,e[11]=0,e[12]=(t+i)*o,e[13]=(n+r)*l,e[14]=(a+s)*A,e[15]=1,h.uniformMatrix4fv(this.uniforms.projectionMat,!1,this.projMat),h.drawArrays(h.TRIANGLE_STRIP,0,4),h.drawArrays(h.TRIANGLE_STRIP,this.gearOffset,this.gearVertexCount),h.drawArrays(h.TRIANGLE_STRIP,this.arrowOffset,this.arrowVertexCount)},N.prototype.distortInverse=function(e){for(var t=0,i=1,r=e-this.distort(t);Math.abs(i-t)>1e-4;){var n=e-this.distort(i),s=i-n*((i-t)/(n-r));t=i,i=s,r=n}return i},N.prototype.distort=function(e){for(var t=e*e,i=0,r=0;r=1)return this.w=s,this.x=i,this.y=r,this.z=n,this;var o=Math.acos(a),l=Math.sqrt(1-a*a);if(Math.abs(l)<.001)return this.w=.5*(s+this.w),this.x=.5*(i+this.x),this.y=.5*(r+this.y),this.z=.5*(n+this.z),this;var A=Math.sin((1-t)*o)/l,h=Math.sin(t*o)/l;return this.w=s*A+this.w*h,this.x=i*A+this.x*h,this.y=r*A+this.y*h,this.z=n*A+this.z*h,this},setFromUnitVectors:function(e,t){return void 0===z&&(z=new k),(V=e.dot(t)+1)<1e-6?(V=0,Math.abs(e.x)>Math.abs(e.z)?z.set(-e.y,e.x,0):z.set(0,-e.z,e.y)):z.crossVectors(e,t),this.x=z.x,this.y=z.y,this.z=z.z,this.w=V,this.normalize(),this}};var X=new H({widthMeters:.11,heightMeters:.062,bevelMeters:.004}),W=new H({widthMeters:.1038,heightMeters:.0584,bevelMeters:.004}),j={CardboardV1:new Y({id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]}),CardboardV2:new Y({id:"CardboardV2",label:"Cardboard I/O 2015",fov:60,interLensDistance:.064,baselineLensDistance:.035,screenLensDistance:.039,distortionCoefficients:[.34,.55],inverseCoefficients:[-.33836704,-.18162185,.862655,-1.2462051,1.0560602,-.58208317,.21609078,-.05444823,.009177956,-.0009904169,6183535e-11,-16981803e-13]})};function q(e,t){this.viewer=j.CardboardV2,this.updateDeviceParams(e),this.distortion=new N(this.viewer.distortionCoefficients);for(var i=0;i=200&&i.status<=299?(r.dpdb=JSON.parse(i.response),r.recalculateDeviceParams_()):console.error("Error loading online DPDB!")}),i.send()}}function K(e){this.xdpi=e.xdpi,this.ydpi=e.ydpi,this.bevelMm=e.bevelMm}function $(e,t){this.set(e,t)}function ee(e,t){this.kFilter=e,this.isDebug=t,this.currentAccelMeasurement=new $,this.currentGyroMeasurement=new $,this.previousGyroMeasurement=new $,o()?this.filterQ=new U(-1,0,0,1):this.filterQ=new U(1,0,0,1),this.previousFilterQ=new U,this.previousFilterQ.copy(this.filterQ),this.accelQ=new U,this.isOrientationInitialized=!1,this.estimatedGravity=new k,this.measuredGravity=new k,this.gyroIntegralQ=new U}function te(e,t){this.predictionTimeS=e,this.isDebug=t,this.previousQ=new U,this.previousTimestampS=null,this.deltaQ=new U,this.outQ=new U}function ie(e,t,i,r){this.yawOnly=i,this.accelerometer=new k,this.gyroscope=new k,this.filter=new ee(e,r),this.posePredictor=new te(t,r),this.isFirefoxAndroid=h(),this.isIOS=o();var n=c();this.isDeviceMotionInRadians=!this.isIOS&&n&&n<66,this.isWithoutDeviceMotion=u()||d(),this.filterToWorldQ=new U,o()?this.filterToWorldQ.setFromAxisAngle(new k(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new k(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new U,this.worldToScreenQ=new U,this.originalPoseAdjustQ=new U,this.originalPoseAdjustQ.setFromAxisAngle(new k(0,0,1),-window.orientation*Math.PI/180),this.setScreenTransform_(),f()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new U,this.orientationOut_=new Float32Array(4),this.start()}J.prototype.getDeviceParams=function(){return this.deviceParams},J.prototype.recalculateDeviceParams_=function(){var e=this.calcDeviceParams_();e?(this.deviceParams=e,this.onDeviceParamsUpdated&&this.onDeviceParamsUpdated(this.deviceParams)):console.error("Failed to recalculate device parameters.")},J.prototype.calcDeviceParams_=function(){var e=this.dpdb;if(!e)return console.error("DPDB not available."),null;if(1!=e.format)return console.error("DPDB has unexpected format version."),null;if(!e.devices||!e.devices.length)return console.error("DPDB does not have a devices section."),null;var t=navigator.userAgent||navigator.vendor||window.opera,i=m(),r=g();if(!e.devices)return console.error("DPDB has no devices section."),null;for(var n=0;n1)&&this.run_(),this.previousGyroMeasurement.copy(this.currentGyroMeasurement)},ee.prototype.run_=function(){if(!this.isOrientationInitialized)return this.accelQ=this.accelToQuaternion_(this.currentAccelMeasurement.sample),this.previousFilterQ.copy(this.accelQ),void(this.isOrientationInitialized=!0);var e=this.currentGyroMeasurement.timestampS-this.previousGyroMeasurement.timestampS,t=this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample,e);this.gyroIntegralQ.multiply(t),this.filterQ.copy(this.previousFilterQ),this.filterQ.multiply(t);var i=new U;i.copy(this.filterQ),i.inverse(),this.estimatedGravity.set(0,0,-1),this.estimatedGravity.applyQuaternion(i),this.estimatedGravity.normalize(),this.measuredGravity.copy(this.currentAccelMeasurement.sample),this.measuredGravity.normalize();var r,n=new U;n.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),n.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",Q*((r=n).w>1?(console.warn("getQuaternionAngle: w > 1"),0):2*Math.acos(r.w)),this.estimatedGravity.x.toFixed(1),this.estimatedGravity.y.toFixed(1),this.estimatedGravity.z.toFixed(1),this.measuredGravity.x.toFixed(1),this.measuredGravity.y.toFixed(1),this.measuredGravity.z.toFixed(1));var s=new U;s.copy(this.filterQ),s.multiply(n),this.filterQ.slerp(s,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},ee.prototype.getOrientation=function(){return this.filterQ},ee.prototype.accelToQuaternion_=function(e){var t=new k;t.copy(e),t.normalize();var i=new U;return i.setFromUnitVectors(new k(0,0,-1),t),i.inverse(),i},ee.prototype.gyroToQuaternionDelta_=function(e,t){var i=new U,r=new k;return r.copy(e),r.normalize(),i.setFromAxisAngle(r,e.length()*t),i},te.prototype.getPrediction=function(e,t,i){if(!this.previousTimestampS)return this.previousQ.copy(e),this.previousTimestampS=i,e;var r=new k;r.copy(t),r.normalize();var n=t.length();if(n<20*G)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(Q*n).toFixed(1)),this.outQ.copy(e),this.previousQ.copy(e),this.outQ;var s=n*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(r,s),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(e),this.previousTimestampS=i,this.outQ},ie.prototype.getPosition=function(){return null},ie.prototype.getOrientation=function(){var e=void 0;if(this.isWithoutDeviceMotion&&this._deviceOrientationQ){this.deviceOrientationFixQ=this.deviceOrientationFixQ||(r=(new U).setFromAxisAngle(new k(0,0,-1),0),n=new U,-90===window.orientation?n.setFromAxisAngle(new k(0,1,0),Math.PI/-2):n.setFromAxisAngle(new k(0,1,0),Math.PI/2),r.multiply(n)),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||((i=new U).setFromAxisAngle(new k(1,0,0),-Math.PI/2),i),e=this._deviceOrientationQ;var t=new U;return t.copy(e),t.multiply(this.deviceOrientationFilterToWorldQ),t.multiply(this.resetQ),t.multiply(this.worldToScreenQ),t.multiplyQuaternions(this.deviceOrientationFixQ,t),this.yawOnly&&(t.x=0,t.z=0,t.normalize()),this.orientationOut_[0]=t.x,this.orientationOut_[1]=t.y,this.orientationOut_[2]=t.z,this.orientationOut_[3]=t.w,this.orientationOut_}var i,r,n,s=this.filter.getOrientation();e=this.posePredictor.getPrediction(s,this.gyroscope,this.previousTimestampS);var t=new U;return t.copy(this.filterToWorldQ),t.multiply(this.resetQ),t.multiply(e),t.multiply(this.worldToScreenQ),this.yawOnly&&(t.x=0,t.z=0,t.normalize()),this.orientationOut_[0]=t.x,this.orientationOut_[1]=t.y,this.orientationOut_[2]=t.z,this.orientationOut_[3]=t.w,this.orientationOut_},ie.prototype.resetPose=function(){this.resetQ.copy(this.filter.getOrientation()),this.resetQ.x=0,this.resetQ.y=0,this.resetQ.z*=-1,this.resetQ.normalize(),f()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},ie.prototype.onDeviceOrientation_=function(e){this._deviceOrientationQ=this._deviceOrientationQ||new U;var t=e.alpha,i=e.beta,r=e.gamma;t=(t||0)*Math.PI/180,i=(i||0)*Math.PI/180,r=(r||0)*Math.PI/180,this._deviceOrientationQ.setFromEulerYXZ(i,t,-r)},ie.prototype.onDeviceMotion_=function(e){this.updateDeviceMotion_(e)},ie.prototype.updateDeviceMotion_=function(e){var t=e.accelerationIncludingGravity,i=e.rotationRate,r=e.timeStamp/1e3,n=r-this.previousTimestampS;return n<0?(_("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),void(this.previousTimestampS=r)):n<=.001||n>1?(_("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),void(this.previousTimestampS=r)):(this.accelerometer.set(-t.x,-t.y,-t.z),i&&(p()?this.gyroscope.set(-i.beta,i.alpha,i.gamma):this.gyroscope.set(i.alpha,i.beta,i.gamma),this.isDeviceMotionInRadians||this.gyroscope.multiplyScalar(Math.PI/180),this.filter.addGyroMeasurement(this.gyroscope,r)),this.filter.addAccelMeasurement(this.accelerometer,r),void(this.previousTimestampS=r))},ie.prototype.onOrientationChange_=function(e){this.setScreenTransform_()},ie.prototype.onMessage_=function(e){var t=e.data;if(t&&t.type){var i=t.type.toLowerCase();"devicemotion"===i&&this.updateDeviceMotion_(t.deviceMotionEvent)}},ie.prototype.setScreenTransform_=function(){switch(this.worldToScreenQ.set(0,0,0,1),window.orientation){case 0:break;case 90:this.worldToScreenQ.setFromAxisAngle(new k(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new k(0,0,1),Math.PI/2)}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},ie.prototype.start=function(){var e,t,i;this.onDeviceMotionCallback_=this.onDeviceMotion_.bind(this),this.onOrientationChangeCallback_=this.onOrientationChange_.bind(this),this.onMessageCallback_=this.onMessage_.bind(this),this.onDeviceOrientationCallback_=this.onDeviceOrientation_.bind(this),o()&&(e=window.self!==window.top,t=x(document.referrer),i=x(window.location.href),e&&t!==i)&&window.addEventListener("message",this.onMessageCallback_),window.addEventListener("orientationchange",this.onOrientationChangeCallback_),this.isWithoutDeviceMotion?window.addEventListener("deviceorientation",this.onDeviceOrientationCallback_):window.addEventListener("devicemotion",this.onDeviceMotionCallback_)},ie.prototype.stop=function(){window.removeEventListener("devicemotion",this.onDeviceMotionCallback_),window.removeEventListener("deviceorientation",this.onDeviceOrientationCallback_),window.removeEventListener("orientationchange",this.onOrientationChangeCallback_),window.removeEventListener("message",this.onMessageCallback_)};var re=new k(1,0,0),ne=new k(0,0,1),se=new U;se.setFromAxisAngle(re,-Math.PI/2),se.multiply((new U).setFromAxisAngle(ne,Math.PI/2));var ae=function(){function e(t){r(this,e),this.config=t,this.sensor=null,this.fusionSensor=null,this._out=new Float32Array(4),this.api=null,this.errors=[],this._sensorQ=new U,this._outQ=new U,this._onSensorRead=this._onSensorRead.bind(this),this._onSensorError=this._onSensorError.bind(this),this.init()}return n(e,[{key:"init",value:function(){var e=null;try{(e=new RelativeOrientationSensor({frequency:60,referenceFrame:"screen"})).addEventListener("error",this._onSensorError)}catch(t){this.errors.push(t),"SecurityError"===t.name?(console.error("Cannot construct sensors due to the Feature Policy"),console.warn('Attempting to fall back using "devicemotion"; however this will fail in the future without correct permissions.'),this.useDeviceMotion()):"ReferenceError"===t.name?this.useDeviceMotion():console.error(t)}e&&(this.api="sensor",this.sensor=e,this.sensor.addEventListener("reading",this._onSensorRead),this.sensor.start())}},{key:"useDeviceMotion",value:function(){this.api="devicemotion",this.fusionSensor=new ie(this.config.K_FILTER,this.config.PREDICTION_TIME_S,this.config.YAW_ONLY,this.config.DEBUG),this.sensor&&(this.sensor.removeEventListener("reading",this._onSensorRead),this.sensor.removeEventListener("error",this._onSensorError),this.sensor=null)}},{key:"getOrientation",value:function(){if(this.fusionSensor)return this.fusionSensor.getOrientation();if(!this.sensor||!this.sensor.quaternion)return this._out[0]=this._out[1]=this._out[2]=0,this._out[3]=1,this._out;var e=this.sensor.quaternion;this._sensorQ.set(e[0],e[1],e[2],e[3]);var t=this._outQ;return t.copy(se),t.multiply(this._sensorQ),this.config.YAW_ONLY&&(t.x=t.z=0,t.normalize()),this._out[0]=t.x,this._out[1]=t.y,this._out[2]=t.z,this._out[3]=t.w,this._out}},{key:"_onSensorError",value:function(e){this.errors.push(e.error),"NotAllowedError"===e.error.name?console.error("Permission to access sensor was denied"):"NotReadableError"===e.error.name?console.error("Sensor could not be read"):console.error(e.error),this.useDeviceMotion()}},{key:"_onSensorRead",value:function(){}}]),e}();function oe(){this.loadIcon_();var e=document.createElement("div"),t=e.style;t.position="fixed",t.top=0,t.right=0,t.bottom=0,t.left=0,t.backgroundColor="gray",t.fontFamily="sans-serif",t.zIndex=1e6;var i=document.createElement("img");i.src=this.icon;var t=i.style;t.marginLeft="25%",t.marginTop="25%",t.width="50%",e.appendChild(i);var r=document.createElement("div"),t=r.style;t.textAlign="center",t.fontSize="16px",t.lineHeight="24px",t.margin="24px 25%",t.width="50%",r.innerHTML="Place your phone into your Cardboard viewer.",e.appendChild(r);var n=document.createElement("div"),t=n.style;t.backgroundColor="#CFD8DC",t.position="fixed",t.bottom=0,t.width="100%",t.height="48px",t.padding="14px 24px",t.boxSizing="border-box",t.color="#656A6B",e.appendChild(n);var s=document.createElement("div");s.style.float="left",s.innerHTML="No Cardboard viewer?";var a=document.createElement("a");a.href="https://www.google.com/get/cardboard/get-cardboard/",a.innerHTML="get one",a.target="_blank";var t=a.style;t.float="right",t.fontWeight=600,t.textTransform="uppercase",t.borderLeft="1px solid gray",t.paddingLeft="24px",t.textDecoration="none",t.color="#656A6B",n.appendChild(s),n.appendChild(a),this.overlay=e,this.text=r,this.hide()}oe.prototype.show=function(e){e||this.overlay.parentElement?e&&(this.overlay.parentElement&&this.overlay.parentElement!=e&&this.overlay.parentElement.removeChild(this.overlay),e.appendChild(this.overlay)):document.body.appendChild(this.overlay),this.overlay.style.display="block";var t=this.overlay.querySelector("img"),i=t.style;f()?(i.width="20%",i.marginLeft="40%",i.marginTop="3%"):(i.width="50%",i.marginLeft="25%",i.marginTop="25%")},oe.prototype.hide=function(){this.overlay.style.display="none"},oe.prototype.showTemporarily=function(e,t){this.show(t),this.timer=setTimeout(this.hide.bind(this),e)},oe.prototype.disableShowTemporarily=function(){clearTimeout(this.timer)},oe.prototype.update=function(){this.disableShowTemporarily(),!f()&&b()?this.show():this.hide()},oe.prototype.loadIcon_=function(){this.icon="data:image/svg+xml,"+encodeURIComponent("")};var le="CardboardV1",Ae="WEBVR_CARDBOARD_VIEWER";function he(e){try{this.selectedKey=localStorage.getItem(Ae)}catch(t){console.error("Failed to load viewer profile: %s",t)}this.selectedKey||(this.selectedKey=e||le),this.dialog=this.createDialog_(q.Viewers),this.root=null,this.onChangeCallbacks_=[]}he.prototype.show=function(e){this.root=e,e.appendChild(this.dialog);var t=this.dialog.querySelector("#"+this.selectedKey);t.checked=!0,this.dialog.style.display="block"},he.prototype.hide=function(){this.root&&this.root.contains(this.dialog)&&this.root.removeChild(this.dialog),this.dialog.style.display="none"},he.prototype.getCurrentViewer=function(){return q.Viewers[this.selectedKey]},he.prototype.getSelectedKey_=function(){var e=this.dialog.querySelector("input[name=field]:checked");return e?e.id:null},he.prototype.onChange=function(e){this.onChangeCallbacks_.push(e)},he.prototype.fireOnChange_=function(e){for(var t=0;t.5&&(this.noSleepVideo.currentTime=Math.random())}.bind(this)))}return r(e,[{key:"enable",value:function(){s?(this.disable(),this.noSleepTimer=window.setInterval(function(){window.location.href="/",window.setTimeout(window.stop,0)},15e3)):this.noSleepVideo.play()}},{key:"disable",value:function(){s?this.noSleepTimer&&(window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause()}}]),e}();e.exports=a},function(e,t,i){e.exports="data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQADQGgcIQADQGgcAAAACQGeYUQn/wALKCEAA0BoHAAAAAkBnmNEJ/8ACykhAANAaBwhAANAaBwAAAANQZpoNExDP/6plgAMuSEAA0BoHAAAAAtBnoZFESwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBnqVEJ/8ACykhAANAaBwAAAAJAZ6nRCf/AAsoIQADQGgcIQADQGgcAAAADUGarDRMQz/+qZYADLghAANAaBwAAAALQZ7KRRUsK/8ACPkhAANAaBwAAAAJAZ7pRCf/AAsoIQADQGgcIQADQGgcAAAACQGe60Qn/wALKCEAA0BoHAAAAA1BmvA0TEM//qmWAAy5IQADQGgcIQADQGgcAAAAC0GfDkUVLCv/AAj5IQADQGgcAAAACQGfLUQn/wALKSEAA0BoHCEAA0BoHAAAAAkBny9EJ/8ACyghAANAaBwAAAANQZs0NExDP/6plgAMuCEAA0BoHAAAAAtBn1JFFSwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBn3FEJ/8ACyghAANAaBwAAAAJAZ9zRCf/AAsoIQADQGgcIQADQGgcAAAADUGbeDRMQz/+qZYADLkhAANAaBwAAAALQZ+WRRUsK/8ACPghAANAaBwhAANAaBwAAAAJAZ+1RCf/AAspIQADQGgcAAAACQGft0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bm7w0TEM//qmWAAy4IQADQGgcAAAAC0Gf2kUVLCv/AAj5IQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHAAAAAkBn/tEJ/8ACykhAANAaBwAAAANQZvgNExDP/6plgAMuSEAA0BoHCEAA0BoHAAAAAtBnh5FFSwr/wAI+CEAA0BoHAAAAAkBnj1EJ/8ACyghAANAaBwhAANAaBwAAAAJAZ4/RCf/AAspIQADQGgcAAAADUGaJDRMQz/+qZYADLghAANAaBwAAAALQZ5CRRUsK/8ACPkhAANAaBwhAANAaBwAAAAJAZ5hRCf/AAsoIQADQGgcAAAACQGeY0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bmmg0TEM//qmWAAy5IQADQGgcAAAAC0GehkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGepUQn/wALKSEAA0BoHAAAAAkBnqdEJ/8ACyghAANAaBwAAAANQZqsNExDP/6plgAMuCEAA0BoHCEAA0BoHAAAAAtBnspFFSwr/wAI+SEAA0BoHAAAAAkBnulEJ/8ACyghAANAaBwhAANAaBwAAAAJAZ7rRCf/AAsoIQADQGgcAAAADUGa8DRMQz/+qZYADLkhAANAaBwhAANAaBwAAAALQZ8ORRUsK/8ACPkhAANAaBwAAAAJAZ8tRCf/AAspIQADQGgcIQADQGgcAAAACQGfL0Qn/wALKCEAA0BoHAAAAA1BmzQ0TEM//qmWAAy4IQADQGgcAAAAC0GfUkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGfcUQn/wALKCEAA0BoHAAAAAkBn3NEJ/8ACyghAANAaBwhAANAaBwAAAANQZt4NExC//6plgAMuSEAA0BoHAAAAAtBn5ZFFSwr/wAI+CEAA0BoHCEAA0BoHAAAAAkBn7VEJ/8ACykhAANAaBwAAAAJAZ+3RCf/AAspIQADQGgcAAAADUGbuzRMQn/+nhAAYsAhAANAaBwhAANAaBwAAAAJQZ/aQhP/AAspIQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHAAACiFtb292AAAAbG12aGQAAAAA1YCCX9WAgl8AAAPoAAAH/AABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAGGlvZHMAAAAAEICAgAcAT////v7/AAAF+XRyYWsAAABcdGtoZAAAAAPVgIJf1YCCXwAAAAEAAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAygAAAMoAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAB9AAABdwAAEAAAAABXFtZGlhAAAAIG1kaGQAAAAA1YCCX9WAgl8AAV+QAAK/IFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAUcbWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAE3HN0YmwAAACYc3RzZAAAAAAAAAABAAAAiGF2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAygDKAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAyYXZjQwFNQCj/4QAbZ01AKOyho3ySTUBAQFAAAAMAEAAr8gDxgxlgAQAEaO+G8gAAABhzdHRzAAAAAAAAAAEAAAA8AAALuAAAABRzdHNzAAAAAAAAAAEAAAABAAAB8GN0dHMAAAAAAAAAPAAAAAEAABdwAAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAAC7gAAAAAQAAF3AAAAABAAAAAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAEEc3RzegAAAAAAAAAAAAAAPAAAAzQAAAAQAAAADQAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAANAAAADQAAAQBzdGNvAAAAAAAAADwAAAAwAAADZAAAA3QAAAONAAADoAAAA7kAAAPQAAAD6wAAA/4AAAQXAAAELgAABEMAAARcAAAEbwAABIwAAAShAAAEugAABM0AAATkAAAE/wAABRIAAAUrAAAFQgAABV0AAAVwAAAFiQAABaAAAAW1AAAFzgAABeEAAAX+AAAGEwAABiwAAAY/AAAGVgAABnEAAAaEAAAGnQAABrQAAAbPAAAG4gAABvUAAAcSAAAHJwAAB0AAAAdTAAAHcAAAB4UAAAeeAAAHsQAAB8gAAAfjAAAH9gAACA8AAAgmAAAIQQAACFQAAAhnAAAIhAAACJcAAAMsdHJhawAAAFx0a2hkAAAAA9WAgl/VgIJfAAAAAgAAAAAAAAf8AAAAAAAAAAAAAAABAQAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAACsm1kaWEAAAAgbWRoZAAAAADVgIJf1YCCXwAArEQAAWAAVcQAAAAAACdoZGxyAAAAAAAAAABzb3VuAAAAAAAAAAAAAAAAU3RlcmVvAAAAAmNtaW5mAAAAEHNtaGQAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAidzdGJsAAAAZ3N0c2QAAAAAAAAAAQAAAFdtcDRhAAAAAAAAAAEAAAAAAAAAAAACABAAAAAArEQAAAAAADNlc2RzAAAAAAOAgIAiAAIABICAgBRAFQAAAAADDUAAAAAABYCAgAISEAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAABYAAAEAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAUc3RzegAAAAAAAAAGAAAAWAAAAXBzdGNvAAAAAAAAAFgAAAOBAAADhwAAA5oAAAOtAAADswAAA8oAAAPfAAAD5QAAA/gAAAQLAAAEEQAABCgAAAQ9AAAEUAAABFYAAARpAAAEgAAABIYAAASbAAAErgAABLQAAATHAAAE3gAABPMAAAT5AAAFDAAABR8AAAUlAAAFPAAABVEAAAVXAAAFagAABX0AAAWDAAAFmgAABa8AAAXCAAAFyAAABdsAAAXyAAAF+AAABg0AAAYgAAAGJgAABjkAAAZQAAAGZQAABmsAAAZ+AAAGkQAABpcAAAauAAAGwwAABskAAAbcAAAG7wAABwYAAAcMAAAHIQAABzQAAAc6AAAHTQAAB2QAAAdqAAAHfwAAB5IAAAeYAAAHqwAAB8IAAAfXAAAH3QAAB/AAAAgDAAAICQAACCAAAAg1AAAIOwAACE4AAAhhAAAIeAAACH4AAAiRAAAIpAAACKoAAAiwAAAItgAACLwAAAjCAAAAFnVkdGEAAAAObmFtZVN0ZXJlbwAAAHB1ZHRhAAAAaG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAAO2lsc3QAAAAzqXRvbwAAACtkYXRhAAAAAQAAAABIYW5kQnJha2UgMC4xMC4yIDIwMTUwNjExMDA="}])},e.exports=i()}(de={exports:{}},de.exports),(ce=de.exports)&&ce.__esModule&&Object.prototype.hasOwnProperty.call(ce,"default")?ce.default:ce),pe=1e3,fe=[0,0,.5,1],me=[.5,0,.5,1],ge=window.requestAnimationFrame,ve=window.cancelAnimationFrame;function we(e){Object.defineProperties(this,{hasPosition:{writable:!1,enumerable:!0,value:e.hasPosition},hasExternalDisplay:{writable:!1,enumerable:!0,value:e.hasExternalDisplay},canPresent:{writable:!1,enumerable:!0,value:e.canPresent},maxLayers:{writable:!1,enumerable:!0,value:e.maxLayers},hasOrientation:{enumerable:!0,get:function(){return F("VRDisplayCapabilities.prototype.hasOrientation","VRDisplay.prototype.getFrameData"),e.hasOrientation}}})}function ye(e){var t=!("wakelock"in(e=e||{}))||e.wakelock;this.isPolyfilled=!0,this.displayId=pe++,this.displayName="",this.depthNear=.01,this.depthFar=1e4,this.isPresenting=!1,Object.defineProperty(this,"isConnected",{get:function(){return F("VRDisplay.prototype.isConnected","VRDisplayCapabilities.prototype.hasExternalDisplay"),!1}}),this.capabilities=new we({hasPosition:!1,hasOrientation:!1,hasExternalDisplay:!1,canPresent:!1,maxLayers:1}),this.stageParameters=null,this.waitingForPresent_=!1,this.layer_=null,this.originalParent_=null,this.fullscreenElement_=null,this.fullscreenWrapper_=null,this.fullscreenElementCachedStyle_=null,this.fullscreenEventTarget_=null,this.fullscreenChangeHandler_=null,this.fullscreenErrorHandler_=null,t&&b()&&(this.wakelock_=new ue)}ye.prototype.getFrameData=function(e){return M(e,this._getPose(),this)},ye.prototype.getPose=function(){return F("VRDisplay.prototype.getPose","VRDisplay.prototype.getFrameData"),this._getPose()},ye.prototype.resetPose=function(){return F("VRDisplay.prototype.resetPose"),this._resetPose()},ye.prototype.getImmediatePose=function(){return F("VRDisplay.prototype.getImmediatePose","VRDisplay.prototype.getFrameData"),this._getPose()},ye.prototype.requestAnimationFrame=function(e){return ge(e)},ye.prototype.cancelAnimationFrame=function(e){return ve(e)},ye.prototype.wrapForFullscreen=function(e){if(o())return e;if(!this.fullscreenWrapper_){this.fullscreenWrapper_=document.createElement("div");var t=["height: "+Math.min(screen.height,screen.width)+"px !important","top: 0 !important","left: 0 !important","right: 0 !important","border: 0","margin: 0","padding: 0","z-index: 999999 !important","position: fixed"];this.fullscreenWrapper_.setAttribute("style",t.join("; ")+";"),this.fullscreenWrapper_.classList.add("webvr-polyfill-fullscreen-wrapper")}if(this.fullscreenElement_==e)return this.fullscreenWrapper_;if(this.fullscreenElement_&&(this.originalParent_?this.originalParent_.appendChild(this.fullscreenElement_):this.fullscreenElement_.parentElement.removeChild(this.fullscreenElement_)),this.fullscreenElement_=e,this.originalParent_=e.parentElement,this.originalParent_||document.body.appendChild(e),!this.fullscreenWrapper_.parentElement){var i=this.fullscreenElement_.parentElement;i.insertBefore(this.fullscreenWrapper_,this.fullscreenElement_),i.removeChild(this.fullscreenElement_)}this.fullscreenWrapper_.insertBefore(this.fullscreenElement_,this.fullscreenWrapper_.firstChild),this.fullscreenElementCachedStyle_=this.fullscreenElement_.getAttribute("style");var r=this;return function(){if(r.fullscreenElement_){var e=["position: absolute","top: 0","left: 0","width: "+Math.max(screen.width,screen.height)+"px","height: "+Math.min(screen.height,screen.width)+"px","border: 0","margin: 0","padding: 0"];r.fullscreenElement_.setAttribute("style",e.join("; ")+";")}}(),this.fullscreenWrapper_},ye.prototype.removeFullscreenWrapper=function(){if(this.fullscreenElement_){var e=this.fullscreenElement_;this.fullscreenElementCachedStyle_?e.setAttribute("style",this.fullscreenElementCachedStyle_):e.removeAttribute("style"),this.fullscreenElement_=null,this.fullscreenElementCachedStyle_=null;var t=this.fullscreenWrapper_.parentElement;return this.fullscreenWrapper_.removeChild(e),this.originalParent_===t?t.insertBefore(e,this.fullscreenWrapper_):this.originalParent_&&this.originalParent_.appendChild(e),t.removeChild(this.fullscreenWrapper_),e}},ye.prototype.requestPresent=function(e){var t=this.isPresenting,i=this;return e instanceof Array||(F("VRDisplay.prototype.requestPresent with non-array argument","an array of VRLayers as the first argument"),e=[e]),new Promise(function(r,n){if(i.capabilities.canPresent)if(0==e.length||e.length>i.capabilities.maxLayers)n(new Error("Invalid number of layers."));else{var s=e[0];if(s.source){var a=s.leftBounds||fe,A=s.rightBounds||me;if(t){var h=i.layer_;h.source!==s.source&&(h.source=s.source);for(var c=0;c<4;c++)h.leftBounds[c]=a[c],h.rightBounds[c]=A[c];return i.wrapForFullscreen(i.layer_.source),i.updatePresent_(),void r()}if(i.layer_={predistorted:s.predistorted,source:s.source,leftBounds:a.slice(0),rightBounds:A.slice(0)},i.waitingForPresent_=!1,i.layer_&&i.layer_.source){var d=i.wrapForFullscreen(i.layer_.source);i.addFullscreenListeners_(d,function(){var e=document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement;i.isPresenting=d===e,i.isPresenting?(screen.orientation&&screen.orientation.lock&&screen.orientation.lock("landscape-primary").catch(function(e){console.error("screen.orientation.lock() failed due to",e.message)}),i.waitingForPresent_=!1,i.beginPresent_(),r()):(screen.orientation&&screen.orientation.unlock&&screen.orientation.unlock(),i.removeFullscreenWrapper(),i.disableWakeLock(),i.endPresent_(),i.removeFullscreenListeners_()),i.fireVRDisplayPresentChange_()},function(){i.waitingForPresent_&&(i.removeFullscreenWrapper(),i.removeFullscreenListeners_(),i.disableWakeLock(),i.waitingForPresent_=!1,i.isPresenting=!1,n(new Error("Unable to present.")))}),function(e){if(l())return!1;if(e.requestFullscreen)e.requestFullscreen();else if(e.webkitRequestFullscreen)e.webkitRequestFullscreen();else if(e.mozRequestFullScreen)e.mozRequestFullScreen();else{if(!e.msRequestFullscreen)return!1;e.msRequestFullscreen()}return!0}(d)?(i.enableWakeLock(),i.waitingForPresent_=!0):(o()||l())&&(i.enableWakeLock(),i.isPresenting=!0,i.beginPresent_(),i.fireVRDisplayPresentChange_(),r())}i.waitingForPresent_||o()||(v(),n(new Error("Unable to present.")))}else r()}else n(new Error("VRDisplay is not capable of presenting."))})},ye.prototype.exitPresent=function(){var e=this.isPresenting,t=this;return this.isPresenting=!1,this.layer_=null,this.disableWakeLock(),new Promise(function(i,r){e?(!v()&&o()&&(t.endPresent_(),t.fireVRDisplayPresentChange_()),l()&&(t.removeFullscreenWrapper(),t.removeFullscreenListeners_(),t.endPresent_(),t.fireVRDisplayPresentChange_()),i()):r(new Error("Was not presenting to VRDisplay."))})},ye.prototype.getLayers=function(){return this.layer_?[this.layer_]:[]},ye.prototype.fireVRDisplayPresentChange_=function(){var e=new CustomEvent("vrdisplaypresentchange",{detail:{display:this}});window.dispatchEvent(e)},ye.prototype.fireVRDisplayConnect_=function(){var e=new CustomEvent("vrdisplayconnect",{detail:{display:this}});window.dispatchEvent(e)},ye.prototype.addFullscreenListeners_=function(e,t,i){this.removeFullscreenListeners_(),this.fullscreenEventTarget_=e,this.fullscreenChangeHandler_=t,this.fullscreenErrorHandler_=i,t&&(document.fullscreenEnabled?e.addEventListener("fullscreenchange",t,!1):document.webkitFullscreenEnabled?e.addEventListener("webkitfullscreenchange",t,!1):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenchange",t,!1):document.msFullscreenEnabled&&e.addEventListener("msfullscreenchange",t,!1)),i&&(document.fullscreenEnabled?e.addEventListener("fullscreenerror",i,!1):document.webkitFullscreenEnabled?e.addEventListener("webkitfullscreenerror",i,!1):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenerror",i,!1):document.msFullscreenEnabled&&e.addEventListener("msfullscreenerror",i,!1))},ye.prototype.removeFullscreenListeners_=function(){if(this.fullscreenEventTarget_){var e=this.fullscreenEventTarget_;if(this.fullscreenChangeHandler_){var t=this.fullscreenChangeHandler_;e.removeEventListener("fullscreenchange",t,!1),e.removeEventListener("webkitfullscreenchange",t,!1),document.removeEventListener("mozfullscreenchange",t,!1),e.removeEventListener("msfullscreenchange",t,!1)}if(this.fullscreenErrorHandler_){var i=this.fullscreenErrorHandler_;e.removeEventListener("fullscreenerror",i,!1),e.removeEventListener("webkitfullscreenerror",i,!1),document.removeEventListener("mozfullscreenerror",i,!1),e.removeEventListener("msfullscreenerror",i,!1)}this.fullscreenEventTarget_=null,this.fullscreenChangeHandler_=null,this.fullscreenErrorHandler_=null}},ye.prototype.enableWakeLock=function(){this.wakelock_&&this.wakelock_.enable()},ye.prototype.disableWakeLock=function(){this.wakelock_&&this.wakelock_.disable()},ye.prototype.beginPresent_=function(){},ye.prototype.endPresent_=function(){},ye.prototype.submitFrame=function(e){},ye.prototype.getEyeParameters=function(e){return null};var be={ADDITIONAL_VIEWERS:[],DEFAULT_VIEWER:"",MOBILE_WAKE_LOCK:!0,DEBUG:!1,DPDB_URL:"https://dpdb.webvr.rocks/dpdb.json",K_FILTER:.98,PREDICTION_TIME_S:.04,CARDBOARD_UI_DISABLED:!1,ROTATE_INSTRUCTIONS_DISABLED:!1,YAW_ONLY:!1,BUFFER_SCALE:.5,DIRTY_SUBMIT_FRAME_BINDINGS:!1},Ee={LEFT:"left",RIGHT:"right"};function Se(e){var t=E({},be);e=E(t,e||{}),ye.call(this,{wakelock:e.MOBILE_WAKE_LOCK}),this.config=e,this.displayName="Cardboard VRDisplay",this.capabilities=new we({hasPosition:!1,hasOrientation:!0,hasExternalDisplay:!1,canPresent:!0,maxLayers:1}),this.stageParameters=null,this.bufferScale_=this.config.BUFFER_SCALE,this.poseSensor_=new ae(this.config),this.distorter_=null,this.cardboardUI_=null,this.dpdb_=new J(this.config.DPDB_URL,this.onDeviceParamsUpdated_.bind(this)),this.deviceInfo_=new q(this.dpdb_.getDeviceParams(),e.ADDITIONAL_VIEWERS),this.viewerSelector_=new he(e.DEFAULT_VIEWER),this.viewerSelector_.onChange(this.onViewerChanged_.bind(this)),this.deviceInfo_.setViewer(this.viewerSelector_.getCurrentViewer()),this.config.ROTATE_INSTRUCTIONS_DISABLED||(this.rotateInstructions_=new oe),o()&&window.addEventListener("resize",this.onResize_.bind(this))}return Se.prototype=Object.create(ye.prototype),Se.prototype._getPose=function(){return{position:null,orientation:this.poseSensor_.getOrientation(),linearVelocity:null,linearAcceleration:null,angularVelocity:null,angularAcceleration:null}},Se.prototype._resetPose=function(){this.poseSensor_.resetPose&&this.poseSensor_.resetPose()},Se.prototype._getFieldOfView=function(e){var t;if(e==Ee.LEFT)t=this.deviceInfo_.getFieldOfViewLeftEye();else{if(e!=Ee.RIGHT)return console.error("Invalid eye provided: %s",e),null;t=this.deviceInfo_.getFieldOfViewRightEye()}return t},Se.prototype._getEyeOffset=function(e){var t;if(e==Ee.LEFT)t=[.5*-this.deviceInfo_.viewer.interLensDistance,0,0];else{if(e!=Ee.RIGHT)return console.error("Invalid eye provided: %s",e),null;t=[.5*this.deviceInfo_.viewer.interLensDistance,0,0]}return t},Se.prototype.getEyeParameters=function(e){var t=this._getEyeOffset(e),i=this._getFieldOfView(e),r={offset:t,renderWidth:.5*this.deviceInfo_.device.width*this.bufferScale_,renderHeight:this.deviceInfo_.device.height*this.bufferScale_};return Object.defineProperty(r,"fieldOfView",{enumerable:!0,get:function(){return F("VRFieldOfView","VRFrameData's projection matrices"),i}}),r},Se.prototype.onDeviceParamsUpdated_=function(e){this.config.DEBUG&&console.log("DPDB reported that device params were updated."),this.deviceInfo_.updateDeviceParams(e),this.distorter_&&this.distorter_.updateDeviceInfo(this.deviceInfo_)},Se.prototype.updateBounds_=function(){this.layer_&&this.distorter_&&(this.layer_.leftBounds||this.layer_.rightBounds)&&this.distorter_.setTextureBounds(this.layer_.leftBounds,this.layer_.rightBounds)},Se.prototype.beginPresent_=function(){var e=this.layer_.source.getContext("webgl");e||(e=this.layer_.source.getContext("experimental-webgl")),e||(e=this.layer_.source.getContext("webgl2")),e&&(this.layer_.predistorted?this.config.CARDBOARD_UI_DISABLED||(e.canvas.width=m()*this.bufferScale_,e.canvas.height=g()*this.bufferScale_,this.cardboardUI_=new O(e)):(this.config.CARDBOARD_UI_DISABLED||(this.cardboardUI_=new O(e)),this.distorter_=new P(e,this.cardboardUI_,this.config.BUFFER_SCALE,this.config.DIRTY_SUBMIT_FRAME_BINDINGS),this.distorter_.updateDeviceInfo(this.deviceInfo_)),this.cardboardUI_&&this.cardboardUI_.listen(function(e){this.viewerSelector_.show(this.layer_.source.parentElement),e.stopPropagation(),e.preventDefault()}.bind(this),function(e){this.exitPresent(),e.stopPropagation(),e.preventDefault()}.bind(this)),this.rotateInstructions_&&(f()&&b()?this.rotateInstructions_.showTemporarily(3e3,this.layer_.source.parentElement):this.rotateInstructions_.update()),this.orientationHandler=this.onOrientationChange_.bind(this),window.addEventListener("orientationchange",this.orientationHandler),this.vrdisplaypresentchangeHandler=this.updateBounds_.bind(this),window.addEventListener("vrdisplaypresentchange",this.vrdisplaypresentchangeHandler),this.fireVRDisplayDeviceParamsChange_())},Se.prototype.endPresent_=function(){this.distorter_&&(this.distorter_.destroy(),this.distorter_=null),this.cardboardUI_&&(this.cardboardUI_.destroy(),this.cardboardUI_=null),this.rotateInstructions_&&this.rotateInstructions_.hide(),this.viewerSelector_.hide(),window.removeEventListener("orientationchange",this.orientationHandler),window.removeEventListener("vrdisplaypresentchange",this.vrdisplaypresentchangeHandler)},Se.prototype.updatePresent_=function(){this.endPresent_(),this.beginPresent_()},Se.prototype.submitFrame=function(e){if(this.distorter_)this.updateBounds_(),this.distorter_.submitFrame();else if(this.cardboardUI_&&this.layer_){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2"));var i=t.canvas;i.width==this.lastWidth&&i.height==this.lastHeight||this.cardboardUI_.onResize(),this.lastWidth=i.width,this.lastHeight=i.height,this.cardboardUI_.render()}},Se.prototype.onOrientationChange_=function(e){this.viewerSelector_.hide(),this.rotateInstructions_&&this.rotateInstructions_.update(),this.onResize_()},Se.prototype.onResize_=function(e){if(this.layer_){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2")),t.canvas.setAttribute("style",["position: absolute","top: 0","left: 0","width: 100vw","height: 100vh","border: 0","margin: 0","padding: 0px","box-sizing: content-box"].join("; ")+";"),S(t.canvas)}},Se.prototype.onViewerChanged_=function(e){this.deviceInfo_.setViewer(e),this.distorter_&&this.distorter_.updateDeviceInfo(this.deviceInfo_),this.fireVRDisplayDeviceParamsChange_()},Se.prototype.fireVRDisplayDeviceParamsChange_=function(){var e=new CustomEvent("vrdisplaydeviceparamschange",{detail:{vrdisplay:this,deviceInfo:this.deviceInfo_}});window.dispatchEvent(e)},Se.VRFrameData=function(){this.leftProjectionMatrix=new Float32Array(16),this.leftViewMatrix=new Float32Array(16),this.rightProjectionMatrix=new Float32Array(16),this.rightViewMatrix=new Float32Array(16),this.pose=null},Se.VRDisplay=ye,Se}()}),nt=tt(rt);class st extends r{constructor(e){super(),this.global=e,this.onWindowResize=this.onWindowResize.bind(this),this.global.window.addEventListener("resize",this.onWindowResize),this.environmentBlendMode="opaque"}onBaseLayerSet(e,t){throw new Error("Not implemented")}isSessionSupported(e){throw new Error("Not implemented")}isFeatureSupported(e){throw new Error("Not implemented")}async requestSession(e,t){throw new Error("Not implemented")}requestAnimationFrame(e){throw new Error("Not implemented")}onFrameStart(e){throw new Error("Not implemented")}onFrameEnd(e){throw new Error("Not implemented")}doesSessionSupportReferenceSpace(e,t){throw new Error("Not implemented")}requestStageBounds(){throw new Error("Not implemented")}async requestFrameOfReferenceTransform(e,t){}cancelAnimationFrame(e){throw new Error("Not implemented")}endSession(e){throw new Error("Not implemented")}getViewport(e,t,i,r){throw new Error("Not implemented")}getProjectionMatrix(e){throw new Error("Not implemented")}getBasePoseMatrix(){throw new Error("Not implemented")}getBaseViewMatrix(e){throw new Error("Not implemented")}getInputSources(){throw new Error("Not implemented")}getInputPose(e,t,i){throw new Error("Not implemented")}onWindowResize(){this.onWindowResize()}}let at={mapping:"",profiles:["google-daydream","generic-trigger-touchpad"],buttons:{length:3,0:null,1:null,2:0}},ot={mapping:"xr-standard",profiles:["htc-vive-focus","generic-trigger-touchpad"],buttons:{length:3,0:1,1:null,2:0}},lt={mapping:"xr-standard",profiles:["oculus-go","generic-trigger-touchpad"],buttons:{length:3,0:1,1:null,2:0},gripTransform:{orientation:[.11*Math.PI,0,0,1]}},At={mapping:"xr-standard",displayProfiles:{"Oculus Quest":["oculus-touch-v2","oculus-touch","generic-trigger-squeeze-thumbstick"]},profiles:["oculus-touch","generic-trigger-squeeze-thumbstick"],axes:{length:4,0:null,1:null,2:0,3:1},buttons:{length:7,0:1,1:2,2:null,3:0,4:3,5:4,6:null},gripTransform:{position:[0,-.02,.04,1],orientation:[.11*Math.PI,0,0,1]}},ht={mapping:"xr-standard",profiles:["htc-vive","generic-trigger-squeeze-touchpad"],displayProfiles:{"HTC Vive":["htc-vive","generic-trigger-squeeze-touchpad"],"HTC Vive DVT":["htc-vive","generic-trigger-squeeze-touchpad"],"Valve Index":["valve-index","generic-trigger-squeeze-touchpad-thumbstick"]},buttons:{length:3,0:1,1:2,2:0},gripTransform:{position:[0,0,.05,1]},targetRayTransform:{orientation:[-.08*Math.PI,0,0,1]},userAgentOverrides:{Firefox:{axes:{invert:[1,3]}}}},ct={mapping:"xr-standard",profiles:["samsung-gearvr","generic-trigger-touchpad"],buttons:{length:3,0:1,1:null,2:0},gripTransform:{orientation:[.11*Math.PI,0,0,1]}},dt={mapping:"xr-standard",profiles:["samsung-odyssey","microsoft-mixed-reality","generic-trigger-squeeze-touchpad-thumbstick"],buttons:{length:4,0:1,1:0,2:2,3:4},gripTransform:{position:[0,-.02,.04,1],orientation:[.11*Math.PI,0,0,1]}},ut={mapping:"xr-standard",profiles:["microsoft-mixed-reality","generic-trigger-squeeze-touchpad-thumbstick"],buttons:{length:4,0:1,1:0,2:2,3:4},gripTransform:{position:[0,-.02,.04,1],orientation:[.11*Math.PI,0,0,1]}},pt={"Daydream Controller":at,"Gear VR Controller":ct,"HTC Vive Focus Controller":ot,"Oculus Go Controller":lt,"Oculus Touch (Right)":At,"Oculus Touch (Left)":At,"OpenVR Gamepad":ht,"Spatial Controller (Spatial Interaction Source) 045E-065A":ut,"Spatial Controller (Spatial Interaction Source) 045E-065D":dt,"Windows Mixed Reality (Right)":ut,"Windows Mixed Reality (Left)":ut};const ft=w(.155,-.465,-.15),mt=w(-.155,-.465,-.15),gt=w(0,0,-.25),vt=w(0,0,.05),wt=w(-.08,.14,.08),yt=.4,bt=.4,Et=.61,St=.175,Mt=.12,xt=.87,_t=180/Math.PI;function Ft(e,t,i){function r(e,t,i){return ei?i:e}var n=t[0]*t[0],s=t[1]*t[1],a=t[2]*t[2],o=t[3]*t[3];if("XYZ"===i)e[0]=Math.atan2(2*(t[0]*t[3]-t[1]*t[2]),o-n-s+a),e[1]=Math.asin(r(2*(t[0]*t[2]+t[1]*t[3]),-1,1)),e[2]=Math.atan2(2*(t[2]*t[3]-t[0]*t[1]),o+n-s-a);else if("YXZ"===i)e[0]=Math.asin(r(2*(t[0]*t[3]-t[1]*t[2]),-1,1)),e[1]=Math.atan2(2*(t[0]*t[2]+t[1]*t[3]),o-n-s+a),e[2]=Math.atan2(2*(t[0]*t[1]+t[2]*t[3]),o-n+s-a);else if("ZXY"===i)e[0]=Math.asin(r(2*(t[0]*t[3]+t[1]*t[2]),-1,1)),e[1]=Math.atan2(2*(t[1]*t[3]-t[2]*t[0]),o-n-s+a),e[2]=Math.atan2(2*(t[2]*t[3]-t[0]*t[1]),o-n+s-a);else if("ZYX"===i)e[0]=Math.atan2(2*(t[0]*t[3]+t[2]*t[1]),o-n-s+a),e[1]=Math.asin(r(2*(t[1]*t[3]-t[0]*t[2]),-1,1)),e[2]=Math.atan2(2*(t[0]*t[1]+t[2]*t[3]),o+n-s-a);else if("YZX"===i)e[0]=Math.atan2(2*(t[0]*t[3]-t[2]*t[1]),o-n+s-a),e[1]=Math.atan2(2*(t[1]*t[3]-t[0]*t[2]),o+n-s-a),e[2]=Math.asin(r(2*(t[0]*t[1]+t[2]*t[3]),-1,1));else{if("XZY"!==i)return void console.log("No order given for quaternion to euler conversion.");e[0]=Math.atan2(2*(t[0]*t[3]+t[1]*t[2]),o-n+s-a),e[1]=Math.atan2(2*(t[0]*t[2]+t[1]*t[3]),o+n-s-a),e[2]=Math.asin(r(2*(t[2]*t[3]-t[0]*t[1]),-1,1))}}class Rt{constructor(){this.hand="right",this.headElbowOffset=ft,this.controllerQ=N(),this.lastControllerQ=N(),this.headQ=N(),this.headPos=m(),this.elbowPos=m(),this.wristPos=m(),this.time=null,this.lastTime=null,this.rootQ=N(),this.position=m()}setHandedness(e){this.hand!=e&&(this.hand=e,"left"==this.hand?this.headElbowOffset=mt:this.headElbowOffset=ft)}update(e,t){this.time=de(),e&&(W(this.lastControllerQ,this.controllerQ),W(this.controllerQ,e)),t&&(u(this.headPos,t),p(this.headQ,t));let i=this.getHeadYawOrientation_(),r=this.quatAngle_(this.lastControllerQ,this.controllerQ);r/((this.time-this.lastTime)/1e3)>Et?k(this.rootQ,this.rootQ,i,Math.min(r/St,1)):W(this.rootQ,i);let n=w(0,0,-1);_(n,n,this.controllerQ);let s=M(n,[0,1,0]),a=this.clamp_((s-Mt)/xt,0,1),o=H(this.rootQ);z(o,o),Q(o,o,this.controllerQ);let l=this.elbowPos;y(l,this.headPos),b(l,l,this.headElbowOffset);let A=g(wt);E(A,A,a),b(l,l,A);let h=this.quatAngle_(o,N())*_t,c=(1-Math.pow(h/180,4))*(yt+(1-yt)*a*bt),d=N();k(d,d,o,c);let f=z(N(),d),m=H(o);Q(m,m,f);let v=this.wristPos;y(v,vt),_(v,v,d),b(v,v,gt),_(v,v,m),b(v,v,l);let S=g(wt);E(S,S,a),b(this.position,this.wristPos,S),_(this.position,this.position,this.rootQ),this.lastTime=this.time}getPosition(){return this.position}getHeadYawOrientation_(){let e=m();return Ft(e,this.headQ,"YXZ"),U(N(),0,e[1]*_t,0)}clamp_(e,t,i){return Math.min(Math.max(e,t),i)}quatAngle_(e,t){let i=[0,0,-1],r=[0,0,-1];return _(i,i,e),_(r,r,t),F(i,r)}}const Tt=Symbol("@@webxr-polyfill/XRRemappedGamepad"),Bt={pressed:!1,touched:!1,value:0};Object.freeze(Bt);class Pt{constructor(e,t,i){if(i||(i={}),i.userAgentOverrides)for(let o in i.userAgentOverrides)if(navigator.userAgent.includes(o)){let e=i.userAgentOverrides[o];for(let t in e)t in i?Object.assign(i[t],e[t]):i[t]=e[t];break}let r=new Array(i.axes&&i.axes.length?i.axes.length:e.axes.length),n=new Array(i.buttons&&i.buttons.length?i.buttons.length:e.buttons.length),s=null;if(i.gripTransform){let e=i.gripTransform.orientation||[0,0,0,1];d(s=o(),j(e,e),i.gripTransform.position||[0,0,0])}let a=null;if(i.targetRayTransform){let e=i.targetRayTransform.orientation||[0,0,0,1];d(a=o(),j(e,e),i.targetRayTransform.position||[0,0,0])}let l=i.profiles;i.displayProfiles&&t.displayName in i.displayProfiles&&(l=i.displayProfiles[t.displayName]),this[Tt]={gamepad:e,map:i,profiles:l||[e.id],mapping:i.mapping||e.mapping,axes:r,buttons:n,gripTransform:s,targetRayTransform:a},this._update()}_update(){let e=this[Tt].gamepad,t=this[Tt].map,i=this[Tt].axes;for(let n=0;n{Dt||this.global.document.body.contains(r)||(i.modifiedCanvasLayer=!0,this.global.document.body.appendChild(r),$e(r)),i.baseLayer=t})}else i.baseLayer=t}isSessionSupported(e){return"immersive-ar"!=e&&("immersive-vr"!=e||!1!==this.canPresent)}isFeatureSupported(e){switch(e){case"viewer":case"local":case"local-floor":return!0;case"bounded":case"unbounded":default:return!1}}async requestSession(e,t){if(!this.isSessionSupported(e))return Promise.reject();let i="immersive-vr"==e;if(i){const e=this.global.document.createElement("canvas");if(!Dt){e.getContext("webgl")}await this.display.requestPresent([{source:e,attributes:It}])}const r=new Nt(e,t,{renderContextType:this.HAS_BITMAP_SUPPORT?"bitmaprenderer":"2d"});return this.sessions.set(r.id,r),i&&(this.immersiveSession=r,this.dispatchEvent("@@webxr-polyfill/vr-present-start",r.id)),Promise.resolve(r.id)}requestAnimationFrame(e){return this.display.requestAnimationFrame(e)}getPrimaryButtonIndex(e){let t=0,i=e.id.toLowerCase();for(let r in Lt)if(i.includes(r)){t=Lt[r];break}return Math.min(t,e.buttons.length-1)}onFrameStart(e,t){this.display.depthNear=t.depthNear,this.display.depthFar=t.depthFar,this.display.getFrameData(this.frame);const i=this.sessions.get(e);if(i.immersive&&this.CAN_USE_GAMEPAD){let e=this.gamepadInputSources;this.gamepadInputSources={};let t=this.global.navigator.getGamepads();for(let r=0;r0){let t=e[r];if(t||(t=new Ct(this,this.display,this.getPrimaryButtonIndex(n))),t.updateFromGamepad(n),this.gamepadInputSources[r]=t,-1!=t.primaryButtonIndex){let e=n.buttons[t.primaryButtonIndex].pressed;e&&!t.primaryActionPressed?this.dispatchEvent("@@webxr-polyfill/input-select-start",{sessionId:i.id,inputSource:t.inputSource}):!e&&t.primaryActionPressed&&this.dispatchEvent("@@webxr-polyfill/input-select-end",{sessionId:i.id,inputSource:t.inputSource}),t.primaryActionPressed=e}if(-1!=t.primarySqueezeButtonIndex){let e=n.buttons[t.primarySqueezeButtonIndex].pressed;e&&!t.primarySqueezeActionPressed?this.dispatchEvent("@@webxr-polyfill/input-squeeze-start",{sessionId:i.id,inputSource:t.inputSource}):!e&&t.primarySqueezeActionPressed&&this.dispatchEvent("@@webxr-polyfill/input-squeeze-end",{sessionId:i.id,inputSource:t.inputSource}),t.primarySqueezeActionPressed=e}}}}if(!Dt&&!i.immersive&&i.baseLayer){const e=i.baseLayer.context.canvas;f(this.frame.leftProjectionMatrix,t.inlineVerticalFieldOfView,e.width/e.height,t.depthNear,t.depthFar)}}onFrameEnd(e){const t=this.sessions.get(e);if(!t.ended&&t.baseLayer){if(t.outputContext&&(!t.immersive||this.display.capabilities.hasExternalDisplay)){const e=t.immersive&&this.display.capabilities.hasExternalDisplay,i=t.baseLayer.context.canvas,r=e?i.width/2:i.width,n=i.height;if(!Dt){const e=t.outputContext.canvas,s=e.width,a=e.height,o=t.renderContext;this.HAS_BITMAP_SUPPORT?i.transferToImageBitmap?o.transferFromImageBitmap(i.transferToImageBitmap()):this.global.createImageBitmap(i,0,0,r,n,{resizeWidth:s,resizeHeight:a}).then(e=>o.transferFromImageBitmap(e)):o.drawImage(i,0,0,r,n,0,0,s,a)}}t.immersive&&t.baseLayer&&this.display.submitFrame()}}cancelAnimationFrame(e){this.display.cancelAnimationFrame(e)}async endSession(e){const t=this.sessions.get(e);if(!t.ended)return t.immersive?this.display.exitPresent():void(t.ended=!0)}doesSessionSupportReferenceSpace(e,t){const i=this.sessions.get(e);return!i.ended&&i.enabledFeatures.has(t)}requestStageBounds(){if(this.display.stageParameters){const e=this.display.stageParameters.sizeX,t=this.display.stageParameters.sizeZ,i=[];return i.push(-e/2),i.push(-t/2),i.push(e/2),i.push(-t/2),i.push(e/2),i.push(t/2),i.push(-e/2),i.push(t/2),i}return null}async requestFrameOfReferenceTransform(e,t){return("local-floor"===e||"bounded-floor"===e)&&this.display.stageParameters&&this.display.stageParameters.sittingToStandingTransform?this.display.stageParameters.sittingToStandingTransform:null}getProjectionMatrix(e){if("left"===e)return this.frame.leftProjectionMatrix;if("right"===e)return this.frame.rightProjectionMatrix;if("none"===e)return this.frame.leftProjectionMatrix;throw new Error("eye must be of type 'left' or 'right'")}getViewport(e,t,i,r){const n=this.sessions.get(e),{width:s,height:a}=i.context.canvas;if(!n.immersive)return r.x=r.y=0,r.width=s,r.height=a,!0;if("left"===t||"none"===t)r.x=0;else{if("right"!==t)return!1;r.x=s/2}return r.y=0,r.width=s/2,r.height=a,!0}getBasePoseMatrix(){let{position:e,orientation:t}=this.frame.pose;return e||t?(e||((e=this.tempVec3)[0]=e[1]=e[2]=0),d(this.baseModelMatrix,t,e),this.baseModelMatrix):this.baseModelMatrix}getBaseViewMatrix(e){if("left"===e||"none"===e)return this.frame.leftViewMatrix;if("right"===e)return this.frame.rightViewMatrix;throw new Error("eye must be of type 'left' or 'right'")}getInputSources(){let e=[];for(let t in this.gamepadInputSources)e.push(this.gamepadInputSources[t].inputSource);return e}getInputPose(e,t,i){if(!t)return null;for(let r in this.gamepadInputSources){let n=this.gamepadInputSources[r];if(n.inputSource===e)return n.getXRPose(t,i)}return null}onWindowResize(){}onVRDisplayPresentChange(e){this.display.isPresenting||this.sessions.forEach(e=>{if(e.immersive&&!e.ended){if(e.modifiedCanvasLayer){const t=e.baseLayer.context.canvas;document.body.removeChild(t),t.setAttribute("style","")}this.immersiveSession===e&&(this.immersiveSession=null),this.dispatchEvent("@@webxr-polyfill/vr-present-end",e.id)}})}}class Qt extends Gt{constructor(e,t){const i=new nt(t||{});super(e,i),this.display=i,this.frame={rightViewMatrix:new Float32Array(16),leftViewMatrix:new Float32Array(16),rightProjectionMatrix:new Float32Array(16),leftProjectionMatrix:new Float32Array(16),pose:null,timestamp:null}}}const kt=!1;let zt=0;class Vt{constructor(e,t){this.mode=e,this.enabledFeatures=t,this.ended=null,this.baseLayer=null,this.id=++zt}}class Ut extends st{constructor(e){super(e),this.sessions=new Map,this.projectionMatrix=o(),this.identityMatrix=o()}onBaseLayerSet(e,t){this.sessions.get(e).baseLayer=t}isSessionSupported(e){return"inline"==e}isFeatureSupported(e){switch(e){case"viewer":return!0;default:return!1}}async requestSession(e,t){if(!this.isSessionSupported(e))return Promise.reject();const i=new Vt(e,t);return this.sessions.set(i.id,i),Promise.resolve(i.id)}requestAnimationFrame(e){return window.requestAnimationFrame(e)}cancelAnimationFrame(e){window.cancelAnimationFrame(e)}onFrameStart(e,t){if(kt)return;const i=this.sessions.get(e);if(i.baseLayer){const e=i.baseLayer.context.canvas;f(this.projectionMatrix,t.inlineVerticalFieldOfView,e.width/e.height,t.depthNear,t.depthFar)}}onFrameEnd(e){}async endSession(e){this.sessions.get(e).ended=!0}doesSessionSupportReferenceSpace(e,t){const i=this.sessions.get(e);return!i.ended&&i.enabledFeatures.has(t)}requestStageBounds(){return null}async requestFrameOfReferenceTransform(e,t){return null}getProjectionMatrix(e){return this.projectionMatrix}getViewport(e,t,i,r){this.sessions.get(e);const{width:n,height:s}=i.context.canvas;return r.x=r.y=0,r.width=n,r.height=s,!0}getBasePoseMatrix(){return this.identityMatrix}getBaseViewMatrix(e){return this.identityMatrix}getInputSources(){return[]}getInputPose(e,t,i){return null}onWindowResize(){}}const Ht=async function(e){let t=null;if("getVRDisplays"in e.navigator)try{const r=await e.navigator.getVRDisplays();r&&r.length&&(t=new Gt(e,r[0]))}catch(i){}return t},Xt=async function(e,t){if(t.webvr){let t=await Ht(e);if(t)return t}let i=Ke(e);return i&&t.cardboard||!i&&t.allowCardboardOnDesktop?(e.VRFrameData||(e.VRFrameData=function(){this.rightViewMatrix=new Float32Array(16),this.leftViewMatrix=new Float32Array(16),this.rightProjectionMatrix=new Float32Array(16),this.leftProjectionMatrix=new Float32Array(16),this.pose=null}),new Qt(e,t.cardboardConfig)):new Ut(e)},Wt={global:t,webvr:!0,cardboard:!0,cardboardConfig:null,allowCardboardOnDesktop:!1},jt=["navigator","HTMLCanvasElement","WebGLRenderingContext"];class qt{constructor(e={}){this.config=Object.freeze(Object.assign({},Wt,e)),this.global=this.config.global,this.nativeWebXR="xr"in this.global.navigator,this.injected=!1,this.nativeWebXR?this._injectCompatibilityShims(this.global):this._injectPolyfill(this.global)}_injectPolyfill(e){if(!jt.every(t=>!!e[t]))throw new Error(`Global must have the following attributes : ${jt}`);for(const t of Object.keys(qe))void 0!==e[t]?console.warn(`${t} already defined on global.`):e[t]=qe[t];Ye(e.WebGLRenderingContext)&&(Ze(e.HTMLCanvasElement),e.OffscreenCanvas&&Ze(e.OffscreenCanvas),e.WebGL2RenderingContext&&Ye(e.WebGL2RenderingContext),window.isSecureContext||console.warn("WebXR Polyfill Warning:\nThis page is not running in a secure context (https:// or localhost)!\nThis means that although the page may be able to use the WebXR Polyfill it will\nnot be able to use native WebXR implementations, and as such will not be able to\naccess dedicated VR or AR hardware, and will not be able to take advantage of\nany performance improvements a native WebXR implementation may offer. Please\nhost this content on a secure origin for the best user experience.\n"));this.injected=!0,this._patchNavigatorXR()}_patchNavigatorXR(){let e=Xt(this.global,this.config);this.xr=new qe.XRSystem(e),Object.defineProperty(this.global.navigator,"xr",{value:this.xr,configurable:!0})}_injectCompatibilityShims(e){if(!jt.every(t=>!!e[t]))throw new Error(`Global must have the following attributes : ${jt}`);if(e.navigator.xr&&"supportsSession"in e.navigator.xr&&!("isSessionSupported"in e.navigator.xr)){let t=e.navigator.xr.supportsSession;e.navigator.xr.isSessionSupported=function(e){return t.call(this,e).then(()=>!0).catch(()=>!1)},e.navigator.xr.supportsSession=function(e){return console.warn("navigator.xr.supportsSession() is deprecated. Please call navigator.xr.isSessionSupported() instead and check the boolean value returned when the promise resolves."),t.call(this,e)}}}}var Yt=qt;exports.default=Yt; },{}],"PxDr":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setMatrixArrayType=e,exports.toRadian=s,exports.equals=n,exports.RANDOM=exports.ARRAY_TYPE=exports.EPSILON=void 0;var t=1e-6;exports.EPSILON=t;var r="undefined"!=typeof Float32Array?Float32Array:Array;exports.ARRAY_TYPE=r;var a=Math.random;function e(t){exports.ARRAY_TYPE=r=t}exports.RANDOM=a;var o=Math.PI/180;function s(t){return t*o}function n(r,a){return Math.abs(r-a)<=t*Math.max(1,Math.abs(r),Math.abs(a))}Math.hypot||(Math.hypot=function(){for(var t=0,r=arguments.length;r--;)t+=arguments[r]*arguments[r];return Math.sqrt(t)}); },{}],"hSOw":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.create=n,exports.clone=o,exports.copy=a,exports.identity=u,exports.fromValues=s,exports.set=i,exports.transpose=c,exports.invert=p,exports.adjoint=f,exports.determinant=x,exports.multiply=l,exports.rotate=M,exports.scale=h,exports.fromRotation=b,exports.fromScaling=v,exports.str=y,exports.frob=d,exports.LDU=m,exports.add=P,exports.subtract=O,exports.exactEquals=A,exports.equals=j,exports.multiplyScalar=E,exports.multiplyScalarAndAdd=R,exports.sub=exports.mul=void 0;var t=e(require("./common.js"));function r(){if("function"!=typeof WeakMap)return null;var t=new WeakMap;return r=function(){return t},t}function e(t){if(t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var e=r();if(e&&e.has(t))return e.get(t);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in t)if(Object.prototype.hasOwnProperty.call(t,a)){var u=o?Object.getOwnPropertyDescriptor(t,a):null;u&&(u.get||u.set)?Object.defineProperty(n,a,u):n[a]=t[a]}return n.default=t,e&&e.set(t,n),n}function n(){var r=new t.ARRAY_TYPE(4);return t.ARRAY_TYPE!=Float32Array&&(r[1]=0,r[2]=0),r[0]=1,r[3]=1,r}function o(r){var e=new t.ARRAY_TYPE(4);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e}function a(t,r){return t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],t}function u(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t}function s(r,e,n,o){var a=new t.ARRAY_TYPE(4);return a[0]=r,a[1]=e,a[2]=n,a[3]=o,a}function i(t,r,e,n,o){return t[0]=r,t[1]=e,t[2]=n,t[3]=o,t}function c(t,r){if(t===r){var e=r[1];t[1]=r[2],t[2]=e}else t[0]=r[0],t[1]=r[2],t[2]=r[1],t[3]=r[3];return t}function p(t,r){var e=r[0],n=r[1],o=r[2],a=r[3],u=e*a-o*n;return u?(u=1/u,t[0]=a*u,t[1]=-n*u,t[2]=-o*u,t[3]=e*u,t):null}function f(t,r){var e=r[0];return t[0]=r[3],t[1]=-r[1],t[2]=-r[2],t[3]=e,t}function x(t){return t[0]*t[3]-t[2]*t[1]}function l(t,r,e){var n=r[0],o=r[1],a=r[2],u=r[3],s=e[0],i=e[1],c=e[2],p=e[3];return t[0]=n*s+a*i,t[1]=o*s+u*i,t[2]=n*c+a*p,t[3]=o*c+u*p,t}function M(t,r,e){var n=r[0],o=r[1],a=r[2],u=r[3],s=Math.sin(e),i=Math.cos(e);return t[0]=n*i+a*s,t[1]=o*i+u*s,t[2]=n*-s+a*i,t[3]=o*-s+u*i,t}function h(t,r,e){var n=r[0],o=r[1],a=r[2],u=r[3],s=e[0],i=e[1];return t[0]=n*s,t[1]=o*s,t[2]=a*i,t[3]=u*i,t}function b(t,r){var e=Math.sin(r),n=Math.cos(r);return t[0]=n,t[1]=e,t[2]=-e,t[3]=n,t}function v(t,r){return t[0]=r[0],t[1]=0,t[2]=0,t[3]=r[1],t}function y(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}function d(t){return Math.hypot(t[0],t[1],t[2],t[3])}function m(t,r,e,n){return t[2]=n[2]/n[0],e[0]=n[0],e[1]=n[1],e[3]=n[3]-t[2]*e[1],[t,r,e]}function P(t,r,e){return t[0]=r[0]+e[0],t[1]=r[1]+e[1],t[2]=r[2]+e[2],t[3]=r[3]+e[3],t}function O(t,r,e){return t[0]=r[0]-e[0],t[1]=r[1]-e[1],t[2]=r[2]-e[2],t[3]=r[3]-e[3],t}function A(t,r){return t[0]===r[0]&&t[1]===r[1]&&t[2]===r[2]&&t[3]===r[3]}function j(r,e){var n=r[0],o=r[1],a=r[2],u=r[3],s=e[0],i=e[1],c=e[2],p=e[3];return Math.abs(n-s)<=t.EPSILON*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(o-i)<=t.EPSILON*Math.max(1,Math.abs(o),Math.abs(i))&&Math.abs(a-c)<=t.EPSILON*Math.max(1,Math.abs(a),Math.abs(c))&&Math.abs(u-p)<=t.EPSILON*Math.max(1,Math.abs(u),Math.abs(p))}function E(t,r,e){return t[0]=r[0]*e,t[1]=r[1]*e,t[2]=r[2]*e,t[3]=r[3]*e,t}function R(t,r,e,n){return t[0]=r[0]+e[0]*n,t[1]=r[1]+e[1]*n,t[2]=r[2]+e[2]*n,t[3]=r[3]+e[3]*n,t}var Y=l;exports.mul=Y;var _=O;exports.sub=_; },{"./common.js":"PxDr"}],"n7Ma":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.create=n,exports.clone=a,exports.copy=o,exports.identity=u,exports.fromValues=s,exports.set=i,exports.invert=c,exports.determinant=p,exports.multiply=f,exports.rotate=x,exports.scale=l,exports.translate=M,exports.fromRotation=h,exports.fromScaling=b,exports.fromTranslation=v,exports.str=m,exports.frob=y,exports.add=d,exports.subtract=P,exports.multiplyScalar=O,exports.multiplyScalarAndAdd=A,exports.exactEquals=E,exports.equals=R,exports.sub=exports.mul=void 0;var t=e(require("./common.js"));function r(){if("function"!=typeof WeakMap)return null;var t=new WeakMap;return r=function(){return t},t}function e(t){if(t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var e=r();if(e&&e.has(t))return e.get(t);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o)){var u=a?Object.getOwnPropertyDescriptor(t,o):null;u&&(u.get||u.set)?Object.defineProperty(n,o,u):n[o]=t[o]}return n.default=t,e&&e.set(t,n),n}function n(){var r=new t.ARRAY_TYPE(6);return t.ARRAY_TYPE!=Float32Array&&(r[1]=0,r[2]=0,r[4]=0,r[5]=0),r[0]=1,r[3]=1,r}function a(r){var e=new t.ARRAY_TYPE(6);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e}function o(t,r){return t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],t[4]=r[4],t[5]=r[5],t}function u(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function s(r,e,n,a,o,u){var s=new t.ARRAY_TYPE(6);return s[0]=r,s[1]=e,s[2]=n,s[3]=a,s[4]=o,s[5]=u,s}function i(t,r,e,n,a,o,u){return t[0]=r,t[1]=e,t[2]=n,t[3]=a,t[4]=o,t[5]=u,t}function c(t,r){var e=r[0],n=r[1],a=r[2],o=r[3],u=r[4],s=r[5],i=e*o-n*a;return i?(i=1/i,t[0]=o*i,t[1]=-n*i,t[2]=-a*i,t[3]=e*i,t[4]=(a*s-o*u)*i,t[5]=(n*u-e*s)*i,t):null}function p(t){return t[0]*t[3]-t[1]*t[2]}function f(t,r,e){var n=r[0],a=r[1],o=r[2],u=r[3],s=r[4],i=r[5],c=e[0],p=e[1],f=e[2],x=e[3],l=e[4],M=e[5];return t[0]=n*c+o*p,t[1]=a*c+u*p,t[2]=n*f+o*x,t[3]=a*f+u*x,t[4]=n*l+o*M+s,t[5]=a*l+u*M+i,t}function x(t,r,e){var n=r[0],a=r[1],o=r[2],u=r[3],s=r[4],i=r[5],c=Math.sin(e),p=Math.cos(e);return t[0]=n*p+o*c,t[1]=a*p+u*c,t[2]=n*-c+o*p,t[3]=a*-c+u*p,t[4]=s,t[5]=i,t}function l(t,r,e){var n=r[0],a=r[1],o=r[2],u=r[3],s=r[4],i=r[5],c=e[0],p=e[1];return t[0]=n*c,t[1]=a*c,t[2]=o*p,t[3]=u*p,t[4]=s,t[5]=i,t}function M(t,r,e){var n=r[0],a=r[1],o=r[2],u=r[3],s=r[4],i=r[5],c=e[0],p=e[1];return t[0]=n,t[1]=a,t[2]=o,t[3]=u,t[4]=n*c+o*p+s,t[5]=a*c+u*p+i,t}function h(t,r){var e=Math.sin(r),n=Math.cos(r);return t[0]=n,t[1]=e,t[2]=-e,t[3]=n,t[4]=0,t[5]=0,t}function b(t,r){return t[0]=r[0],t[1]=0,t[2]=0,t[3]=r[1],t[4]=0,t[5]=0,t}function v(t,r){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=r[0],t[5]=r[1],t}function m(t){return"mat2d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")"}function y(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],1)}function d(t,r,e){return t[0]=r[0]+e[0],t[1]=r[1]+e[1],t[2]=r[2]+e[2],t[3]=r[3]+e[3],t[4]=r[4]+e[4],t[5]=r[5]+e[5],t}function P(t,r,e){return t[0]=r[0]-e[0],t[1]=r[1]-e[1],t[2]=r[2]-e[2],t[3]=r[3]-e[3],t[4]=r[4]-e[4],t[5]=r[5]-e[5],t}function O(t,r,e){return t[0]=r[0]*e,t[1]=r[1]*e,t[2]=r[2]*e,t[3]=r[3]*e,t[4]=r[4]*e,t[5]=r[5]*e,t}function A(t,r,e,n){return t[0]=r[0]+e[0]*n,t[1]=r[1]+e[1]*n,t[2]=r[2]+e[2]*n,t[3]=r[3]+e[3]*n,t[4]=r[4]+e[4]*n,t[5]=r[5]+e[5]*n,t}function E(t,r){return t[0]===r[0]&&t[1]===r[1]&&t[2]===r[2]&&t[3]===r[3]&&t[4]===r[4]&&t[5]===r[5]}function R(r,e){var n=r[0],a=r[1],o=r[2],u=r[3],s=r[4],i=r[5],c=e[0],p=e[1],f=e[2],x=e[3],l=e[4],M=e[5];return Math.abs(n-c)<=t.EPSILON*Math.max(1,Math.abs(n),Math.abs(c))&&Math.abs(a-p)<=t.EPSILON*Math.max(1,Math.abs(a),Math.abs(p))&&Math.abs(o-f)<=t.EPSILON*Math.max(1,Math.abs(o),Math.abs(f))&&Math.abs(u-x)<=t.EPSILON*Math.max(1,Math.abs(u),Math.abs(x))&&Math.abs(s-l)<=t.EPSILON*Math.max(1,Math.abs(s),Math.abs(l))&&Math.abs(i-M)<=t.EPSILON*Math.max(1,Math.abs(i),Math.abs(M))}var S=f;exports.mul=S;var j=P;exports.sub=j; },{"./common.js":"PxDr"}],"SRDq":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.create=a,exports.fromMat4=e,exports.clone=o,exports.copy=u,exports.fromValues=s,exports.set=i,exports.identity=c,exports.transpose=f,exports.invert=p,exports.adjoint=M,exports.determinant=x,exports.multiply=h,exports.translate=b,exports.rotate=l,exports.scale=m,exports.fromTranslation=v,exports.fromRotation=P,exports.fromScaling=O,exports.fromMat2d=d,exports.fromQuat=y,exports.normalFromMat4=E,exports.projection=S,exports.str=A,exports.frob=j,exports.add=I,exports.subtract=L,exports.multiplyScalar=N,exports.multiplyScalarAndAdd=R,exports.exactEquals=Y,exports.equals=_,exports.sub=exports.mul=void 0;var t=n(require("./common.js"));function r(){if("function"!=typeof WeakMap)return null;var t=new WeakMap;return r=function(){return t},t}function n(t){if(t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var n=r();if(n&&n.has(t))return n.get(t);var a={},e=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o)){var u=e?Object.getOwnPropertyDescriptor(t,o):null;u&&(u.get||u.set)?Object.defineProperty(a,o,u):a[o]=t[o]}return a.default=t,n&&n.set(t,a),a}function a(){var r=new t.ARRAY_TYPE(9);return t.ARRAY_TYPE!=Float32Array&&(r[1]=0,r[2]=0,r[3]=0,r[5]=0,r[6]=0,r[7]=0),r[0]=1,r[4]=1,r[8]=1,r}function e(t,r){return t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[4],t[4]=r[5],t[5]=r[6],t[6]=r[8],t[7]=r[9],t[8]=r[10],t}function o(r){var n=new t.ARRAY_TYPE(9);return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],n}function u(t,r){return t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],t[4]=r[4],t[5]=r[5],t[6]=r[6],t[7]=r[7],t[8]=r[8],t}function s(r,n,a,e,o,u,s,i,c){var f=new t.ARRAY_TYPE(9);return f[0]=r,f[1]=n,f[2]=a,f[3]=e,f[4]=o,f[5]=u,f[6]=s,f[7]=i,f[8]=c,f}function i(t,r,n,a,e,o,u,s,i,c){return t[0]=r,t[1]=n,t[2]=a,t[3]=e,t[4]=o,t[5]=u,t[6]=s,t[7]=i,t[8]=c,t}function c(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function f(t,r){if(t===r){var n=r[1],a=r[2],e=r[5];t[1]=r[3],t[2]=r[6],t[3]=n,t[5]=r[7],t[6]=a,t[7]=e}else t[0]=r[0],t[1]=r[3],t[2]=r[6],t[3]=r[1],t[4]=r[4],t[5]=r[7],t[6]=r[2],t[7]=r[5],t[8]=r[8];return t}function p(t,r){var n=r[0],a=r[1],e=r[2],o=r[3],u=r[4],s=r[5],i=r[6],c=r[7],f=r[8],p=f*u-s*c,M=-f*o+s*i,x=c*o-u*i,h=n*p+a*M+e*x;return h?(h=1/h,t[0]=p*h,t[1]=(-f*a+e*c)*h,t[2]=(s*a-e*u)*h,t[3]=M*h,t[4]=(f*n-e*i)*h,t[5]=(-s*n+e*o)*h,t[6]=x*h,t[7]=(-c*n+a*i)*h,t[8]=(u*n-a*o)*h,t):null}function M(t,r){var n=r[0],a=r[1],e=r[2],o=r[3],u=r[4],s=r[5],i=r[6],c=r[7],f=r[8];return t[0]=u*f-s*c,t[1]=e*c-a*f,t[2]=a*s-e*u,t[3]=s*i-o*f,t[4]=n*f-e*i,t[5]=e*o-n*s,t[6]=o*c-u*i,t[7]=a*i-n*c,t[8]=n*u-a*o,t}function x(t){var r=t[0],n=t[1],a=t[2],e=t[3],o=t[4],u=t[5],s=t[6],i=t[7],c=t[8];return r*(c*o-u*i)+n*(-c*e+u*s)+a*(i*e-o*s)}function h(t,r,n){var a=r[0],e=r[1],o=r[2],u=r[3],s=r[4],i=r[5],c=r[6],f=r[7],p=r[8],M=n[0],x=n[1],h=n[2],b=n[3],l=n[4],m=n[5],v=n[6],P=n[7],O=n[8];return t[0]=M*a+x*u+h*c,t[1]=M*e+x*s+h*f,t[2]=M*o+x*i+h*p,t[3]=b*a+l*u+m*c,t[4]=b*e+l*s+m*f,t[5]=b*o+l*i+m*p,t[6]=v*a+P*u+O*c,t[7]=v*e+P*s+O*f,t[8]=v*o+P*i+O*p,t}function b(t,r,n){var a=r[0],e=r[1],o=r[2],u=r[3],s=r[4],i=r[5],c=r[6],f=r[7],p=r[8],M=n[0],x=n[1];return t[0]=a,t[1]=e,t[2]=o,t[3]=u,t[4]=s,t[5]=i,t[6]=M*a+x*u+c,t[7]=M*e+x*s+f,t[8]=M*o+x*i+p,t}function l(t,r,n){var a=r[0],e=r[1],o=r[2],u=r[3],s=r[4],i=r[5],c=r[6],f=r[7],p=r[8],M=Math.sin(n),x=Math.cos(n);return t[0]=x*a+M*u,t[1]=x*e+M*s,t[2]=x*o+M*i,t[3]=x*u-M*a,t[4]=x*s-M*e,t[5]=x*i-M*o,t[6]=c,t[7]=f,t[8]=p,t}function m(t,r,n){var a=n[0],e=n[1];return t[0]=a*r[0],t[1]=a*r[1],t[2]=a*r[2],t[3]=e*r[3],t[4]=e*r[4],t[5]=e*r[5],t[6]=r[6],t[7]=r[7],t[8]=r[8],t}function v(t,r){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=r[0],t[7]=r[1],t[8]=1,t}function P(t,r){var n=Math.sin(r),a=Math.cos(r);return t[0]=a,t[1]=n,t[2]=0,t[3]=-n,t[4]=a,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function O(t,r){return t[0]=r[0],t[1]=0,t[2]=0,t[3]=0,t[4]=r[1],t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function d(t,r){return t[0]=r[0],t[1]=r[1],t[2]=0,t[3]=r[2],t[4]=r[3],t[5]=0,t[6]=r[4],t[7]=r[5],t[8]=1,t}function y(t,r){var n=r[0],a=r[1],e=r[2],o=r[3],u=n+n,s=a+a,i=e+e,c=n*u,f=a*u,p=a*s,M=e*u,x=e*s,h=e*i,b=o*u,l=o*s,m=o*i;return t[0]=1-p-h,t[3]=f-m,t[6]=M+l,t[1]=f+m,t[4]=1-c-h,t[7]=x-b,t[2]=M-l,t[5]=x+b,t[8]=1-c-p,t}function E(t,r){var n=r[0],a=r[1],e=r[2],o=r[3],u=r[4],s=r[5],i=r[6],c=r[7],f=r[8],p=r[9],M=r[10],x=r[11],h=r[12],b=r[13],l=r[14],m=r[15],v=n*s-a*u,P=n*i-e*u,O=n*c-o*u,d=a*i-e*s,y=a*c-o*s,E=e*c-o*i,S=f*b-p*h,A=f*l-M*h,j=f*m-x*h,I=p*l-M*b,L=p*m-x*b,N=M*m-x*l,R=v*N-P*L+O*I+d*j-y*A+E*S;return R?(R=1/R,t[0]=(s*N-i*L+c*I)*R,t[1]=(i*j-u*N-c*A)*R,t[2]=(u*L-s*j+c*S)*R,t[3]=(e*L-a*N-o*I)*R,t[4]=(n*N-e*j+o*A)*R,t[5]=(a*j-n*L-o*S)*R,t[6]=(b*E-l*y+m*d)*R,t[7]=(l*O-h*E-m*P)*R,t[8]=(h*y-b*O+m*v)*R,t):null}function S(t,r,n){return t[0]=2/r,t[1]=0,t[2]=0,t[3]=0,t[4]=-2/n,t[5]=0,t[6]=-1,t[7]=1,t[8]=1,t}function A(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"}function j(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])}function I(t,r,n){return t[0]=r[0]+n[0],t[1]=r[1]+n[1],t[2]=r[2]+n[2],t[3]=r[3]+n[3],t[4]=r[4]+n[4],t[5]=r[5]+n[5],t[6]=r[6]+n[6],t[7]=r[7]+n[7],t[8]=r[8]+n[8],t}function L(t,r,n){return t[0]=r[0]-n[0],t[1]=r[1]-n[1],t[2]=r[2]-n[2],t[3]=r[3]-n[3],t[4]=r[4]-n[4],t[5]=r[5]-n[5],t[6]=r[6]-n[6],t[7]=r[7]-n[7],t[8]=r[8]-n[8],t}function N(t,r,n){return t[0]=r[0]*n,t[1]=r[1]*n,t[2]=r[2]*n,t[3]=r[3]*n,t[4]=r[4]*n,t[5]=r[5]*n,t[6]=r[6]*n,t[7]=r[7]*n,t[8]=r[8]*n,t}function R(t,r,n,a){return t[0]=r[0]+n[0]*a,t[1]=r[1]+n[1]*a,t[2]=r[2]+n[2]*a,t[3]=r[3]+n[3]*a,t[4]=r[4]+n[4]*a,t[5]=r[5]+n[5]*a,t[6]=r[6]+n[6]*a,t[7]=r[7]+n[7]*a,t[8]=r[8]+n[8]*a,t}function Y(t,r){return t[0]===r[0]&&t[1]===r[1]&&t[2]===r[2]&&t[3]===r[3]&&t[4]===r[4]&&t[5]===r[5]&&t[6]===r[6]&&t[7]===r[7]&&t[8]===r[8]}function _(r,n){var a=r[0],e=r[1],o=r[2],u=r[3],s=r[4],i=r[5],c=r[6],f=r[7],p=r[8],M=n[0],x=n[1],h=n[2],b=n[3],l=n[4],m=n[5],v=n[6],P=n[7],O=n[8];return Math.abs(a-M)<=t.EPSILON*Math.max(1,Math.abs(a),Math.abs(M))&&Math.abs(e-x)<=t.EPSILON*Math.max(1,Math.abs(e),Math.abs(x))&&Math.abs(o-h)<=t.EPSILON*Math.max(1,Math.abs(o),Math.abs(h))&&Math.abs(u-b)<=t.EPSILON*Math.max(1,Math.abs(u),Math.abs(b))&&Math.abs(s-l)<=t.EPSILON*Math.max(1,Math.abs(s),Math.abs(l))&&Math.abs(i-m)<=t.EPSILON*Math.max(1,Math.abs(i),Math.abs(m))&&Math.abs(c-v)<=t.EPSILON*Math.max(1,Math.abs(c),Math.abs(v))&&Math.abs(f-P)<=t.EPSILON*Math.max(1,Math.abs(f),Math.abs(P))&&Math.abs(p-O)<=t.EPSILON*Math.max(1,Math.abs(p),Math.abs(O))}var w=h;exports.mul=w;var g=L;exports.sub=g; },{"./common.js":"PxDr"}],"WdlT":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.create=n,exports.clone=e,exports.copy=o,exports.fromValues=s,exports.set=u,exports.identity=h,exports.transpose=M,exports.invert=i,exports.adjoint=c,exports.determinant=p,exports.multiply=f,exports.translate=x,exports.scale=b,exports.rotate=l,exports.rotateX=v,exports.rotateY=m,exports.rotateZ=P,exports.fromTranslation=O,exports.fromScaling=E,exports.fromRotation=S,exports.fromXRotation=y,exports.fromYRotation=I,exports.fromZRotation=L,exports.fromRotationTranslation=N,exports.fromQuat2=R,exports.getTranslation=d,exports.getScaling=g,exports.getRotation=A,exports.fromRotationTranslationScale=Y,exports.fromRotationTranslationScaleOrigin=T,exports.fromQuat=w,exports.frustum=_,exports.perspective=j,exports.perspectiveFromFieldOfView=q,exports.ortho=D,exports.lookAt=k,exports.targetTo=F,exports.str=Q,exports.frob=V,exports.add=W,exports.subtract=X,exports.multiplyScalar=Z,exports.multiplyScalarAndAdd=z,exports.exactEquals=B,exports.equals=C,exports.sub=exports.mul=void 0;var t=r(require("./common.js"));function a(){if("function"!=typeof WeakMap)return null;var t=new WeakMap;return a=function(){return t},t}function r(t){if(t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var r=a();if(r&&r.has(t))return r.get(t);var n={},e=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o)){var s=e?Object.getOwnPropertyDescriptor(t,o):null;s&&(s.get||s.set)?Object.defineProperty(n,o,s):n[o]=t[o]}return n.default=t,r&&r.set(t,n),n}function n(){var a=new t.ARRAY_TYPE(16);return t.ARRAY_TYPE!=Float32Array&&(a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[11]=0,a[12]=0,a[13]=0,a[14]=0),a[0]=1,a[5]=1,a[10]=1,a[15]=1,a}function e(a){var r=new t.ARRAY_TYPE(16);return r[0]=a[0],r[1]=a[1],r[2]=a[2],r[3]=a[3],r[4]=a[4],r[5]=a[5],r[6]=a[6],r[7]=a[7],r[8]=a[8],r[9]=a[9],r[10]=a[10],r[11]=a[11],r[12]=a[12],r[13]=a[13],r[14]=a[14],r[15]=a[15],r}function o(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[4]=a[4],t[5]=a[5],t[6]=a[6],t[7]=a[7],t[8]=a[8],t[9]=a[9],t[10]=a[10],t[11]=a[11],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15],t}function s(a,r,n,e,o,s,u,h,M,i,c,p,f,x,b,l){var v=new t.ARRAY_TYPE(16);return v[0]=a,v[1]=r,v[2]=n,v[3]=e,v[4]=o,v[5]=s,v[6]=u,v[7]=h,v[8]=M,v[9]=i,v[10]=c,v[11]=p,v[12]=f,v[13]=x,v[14]=b,v[15]=l,v}function u(t,a,r,n,e,o,s,u,h,M,i,c,p,f,x,b,l){return t[0]=a,t[1]=r,t[2]=n,t[3]=e,t[4]=o,t[5]=s,t[6]=u,t[7]=h,t[8]=M,t[9]=i,t[10]=c,t[11]=p,t[12]=f,t[13]=x,t[14]=b,t[15]=l,t}function h(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function M(t,a){if(t===a){var r=a[1],n=a[2],e=a[3],o=a[6],s=a[7],u=a[11];t[1]=a[4],t[2]=a[8],t[3]=a[12],t[4]=r,t[6]=a[9],t[7]=a[13],t[8]=n,t[9]=o,t[11]=a[14],t[12]=e,t[13]=s,t[14]=u}else t[0]=a[0],t[1]=a[4],t[2]=a[8],t[3]=a[12],t[4]=a[1],t[5]=a[5],t[6]=a[9],t[7]=a[13],t[8]=a[2],t[9]=a[6],t[10]=a[10],t[11]=a[14],t[12]=a[3],t[13]=a[7],t[14]=a[11],t[15]=a[15];return t}function i(t,a){var r=a[0],n=a[1],e=a[2],o=a[3],s=a[4],u=a[5],h=a[6],M=a[7],i=a[8],c=a[9],p=a[10],f=a[11],x=a[12],b=a[13],l=a[14],v=a[15],m=r*u-n*s,P=r*h-e*s,O=r*M-o*s,E=n*h-e*u,S=n*M-o*u,y=e*M-o*h,I=i*b-c*x,L=i*l-p*x,N=i*v-f*x,R=c*l-p*b,d=c*v-f*b,g=p*v-f*l,A=m*g-P*d+O*R+E*N-S*L+y*I;return A?(A=1/A,t[0]=(u*g-h*d+M*R)*A,t[1]=(e*d-n*g-o*R)*A,t[2]=(b*y-l*S+v*E)*A,t[3]=(p*S-c*y-f*E)*A,t[4]=(h*N-s*g-M*L)*A,t[5]=(r*g-e*N+o*L)*A,t[6]=(l*O-x*y-v*P)*A,t[7]=(i*y-p*O+f*P)*A,t[8]=(s*d-u*N+M*I)*A,t[9]=(n*N-r*d-o*I)*A,t[10]=(x*S-b*O+v*m)*A,t[11]=(c*O-i*S-f*m)*A,t[12]=(u*L-s*R-h*I)*A,t[13]=(r*R-n*L+e*I)*A,t[14]=(b*P-x*E-l*m)*A,t[15]=(i*E-c*P+p*m)*A,t):null}function c(t,a){var r=a[0],n=a[1],e=a[2],o=a[3],s=a[4],u=a[5],h=a[6],M=a[7],i=a[8],c=a[9],p=a[10],f=a[11],x=a[12],b=a[13],l=a[14],v=a[15];return t[0]=u*(p*v-f*l)-c*(h*v-M*l)+b*(h*f-M*p),t[1]=-(n*(p*v-f*l)-c*(e*v-o*l)+b*(e*f-o*p)),t[2]=n*(h*v-M*l)-u*(e*v-o*l)+b*(e*M-o*h),t[3]=-(n*(h*f-M*p)-u*(e*f-o*p)+c*(e*M-o*h)),t[4]=-(s*(p*v-f*l)-i*(h*v-M*l)+x*(h*f-M*p)),t[5]=r*(p*v-f*l)-i*(e*v-o*l)+x*(e*f-o*p),t[6]=-(r*(h*v-M*l)-s*(e*v-o*l)+x*(e*M-o*h)),t[7]=r*(h*f-M*p)-s*(e*f-o*p)+i*(e*M-o*h),t[8]=s*(c*v-f*b)-i*(u*v-M*b)+x*(u*f-M*c),t[9]=-(r*(c*v-f*b)-i*(n*v-o*b)+x*(n*f-o*c)),t[10]=r*(u*v-M*b)-s*(n*v-o*b)+x*(n*M-o*u),t[11]=-(r*(u*f-M*c)-s*(n*f-o*c)+i*(n*M-o*u)),t[12]=-(s*(c*l-p*b)-i*(u*l-h*b)+x*(u*p-h*c)),t[13]=r*(c*l-p*b)-i*(n*l-e*b)+x*(n*p-e*c),t[14]=-(r*(u*l-h*b)-s*(n*l-e*b)+x*(n*h-e*u)),t[15]=r*(u*p-h*c)-s*(n*p-e*c)+i*(n*h-e*u),t}function p(t){var a=t[0],r=t[1],n=t[2],e=t[3],o=t[4],s=t[5],u=t[6],h=t[7],M=t[8],i=t[9],c=t[10],p=t[11],f=t[12],x=t[13],b=t[14],l=t[15];return(a*s-r*o)*(c*l-p*b)-(a*u-n*o)*(i*l-p*x)+(a*h-e*o)*(i*b-c*x)+(r*u-n*s)*(M*l-p*f)-(r*h-e*s)*(M*b-c*f)+(n*h-e*u)*(M*x-i*f)}function f(t,a,r){var n=a[0],e=a[1],o=a[2],s=a[3],u=a[4],h=a[5],M=a[6],i=a[7],c=a[8],p=a[9],f=a[10],x=a[11],b=a[12],l=a[13],v=a[14],m=a[15],P=r[0],O=r[1],E=r[2],S=r[3];return t[0]=P*n+O*u+E*c+S*b,t[1]=P*e+O*h+E*p+S*l,t[2]=P*o+O*M+E*f+S*v,t[3]=P*s+O*i+E*x+S*m,P=r[4],O=r[5],E=r[6],S=r[7],t[4]=P*n+O*u+E*c+S*b,t[5]=P*e+O*h+E*p+S*l,t[6]=P*o+O*M+E*f+S*v,t[7]=P*s+O*i+E*x+S*m,P=r[8],O=r[9],E=r[10],S=r[11],t[8]=P*n+O*u+E*c+S*b,t[9]=P*e+O*h+E*p+S*l,t[10]=P*o+O*M+E*f+S*v,t[11]=P*s+O*i+E*x+S*m,P=r[12],O=r[13],E=r[14],S=r[15],t[12]=P*n+O*u+E*c+S*b,t[13]=P*e+O*h+E*p+S*l,t[14]=P*o+O*M+E*f+S*v,t[15]=P*s+O*i+E*x+S*m,t}function x(t,a,r){var n,e,o,s,u,h,M,i,c,p,f,x,b=r[0],l=r[1],v=r[2];return a===t?(t[12]=a[0]*b+a[4]*l+a[8]*v+a[12],t[13]=a[1]*b+a[5]*l+a[9]*v+a[13],t[14]=a[2]*b+a[6]*l+a[10]*v+a[14],t[15]=a[3]*b+a[7]*l+a[11]*v+a[15]):(n=a[0],e=a[1],o=a[2],s=a[3],u=a[4],h=a[5],M=a[6],i=a[7],c=a[8],p=a[9],f=a[10],x=a[11],t[0]=n,t[1]=e,t[2]=o,t[3]=s,t[4]=u,t[5]=h,t[6]=M,t[7]=i,t[8]=c,t[9]=p,t[10]=f,t[11]=x,t[12]=n*b+u*l+c*v+a[12],t[13]=e*b+h*l+p*v+a[13],t[14]=o*b+M*l+f*v+a[14],t[15]=s*b+i*l+x*v+a[15]),t}function b(t,a,r){var n=r[0],e=r[1],o=r[2];return t[0]=a[0]*n,t[1]=a[1]*n,t[2]=a[2]*n,t[3]=a[3]*n,t[4]=a[4]*e,t[5]=a[5]*e,t[6]=a[6]*e,t[7]=a[7]*e,t[8]=a[8]*o,t[9]=a[9]*o,t[10]=a[10]*o,t[11]=a[11]*o,t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15],t}function l(a,r,n,e){var o,s,u,h,M,i,c,p,f,x,b,l,v,m,P,O,E,S,y,I,L,N,R,d,g=e[0],A=e[1],Y=e[2],T=Math.hypot(g,A,Y);return T0?(n[0]=2*(h*u+c*e+M*s-i*o)/p,n[1]=2*(M*u+c*o+i*e-h*s)/p,n[2]=2*(i*u+c*s+h*o-M*e)/p):(n[0]=2*(h*u+c*e+M*s-i*o),n[1]=2*(M*u+c*o+i*e-h*s),n[2]=2*(i*u+c*s+h*o-M*e)),N(a,r,n),a}function d(t,a){return t[0]=a[12],t[1]=a[13],t[2]=a[14],t}function g(t,a){var r=a[0],n=a[1],e=a[2],o=a[4],s=a[5],u=a[6],h=a[8],M=a[9],i=a[10];return t[0]=Math.hypot(r,n,e),t[1]=Math.hypot(o,s,u),t[2]=Math.hypot(h,M,i),t}function A(a,r){var n=new t.ARRAY_TYPE(3);g(n,r);var e=1/n[0],o=1/n[1],s=1/n[2],u=r[0]*e,h=r[1]*o,M=r[2]*s,i=r[4]*e,c=r[5]*o,p=r[6]*s,f=r[8]*e,x=r[9]*o,b=r[10]*s,l=u+c+b,v=0;return l>0?(v=2*Math.sqrt(l+1),a[3]=.25*v,a[0]=(p-x)/v,a[1]=(f-M)/v,a[2]=(h-i)/v):u>c&&u>b?(v=2*Math.sqrt(1+u-c-b),a[3]=(p-x)/v,a[0]=.25*v,a[1]=(h+i)/v,a[2]=(f+M)/v):c>b?(v=2*Math.sqrt(1+c-u-b),a[3]=(f-M)/v,a[0]=(h+i)/v,a[1]=.25*v,a[2]=(p+x)/v):(v=2*Math.sqrt(1+b-u-c),a[3]=(h-i)/v,a[0]=(f+M)/v,a[1]=(p+x)/v,a[2]=.25*v),a}function Y(t,a,r,n){var e=a[0],o=a[1],s=a[2],u=a[3],h=e+e,M=o+o,i=s+s,c=e*h,p=e*M,f=e*i,x=o*M,b=o*i,l=s*i,v=u*h,m=u*M,P=u*i,O=n[0],E=n[1],S=n[2];return t[0]=(1-(x+l))*O,t[1]=(p+P)*O,t[2]=(f-m)*O,t[3]=0,t[4]=(p-P)*E,t[5]=(1-(c+l))*E,t[6]=(b+v)*E,t[7]=0,t[8]=(f+m)*S,t[9]=(b-v)*S,t[10]=(1-(c+x))*S,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function T(t,a,r,n,e){var o=a[0],s=a[1],u=a[2],h=a[3],M=o+o,i=s+s,c=u+u,p=o*M,f=o*i,x=o*c,b=s*i,l=s*c,v=u*c,m=h*M,P=h*i,O=h*c,E=n[0],S=n[1],y=n[2],I=e[0],L=e[1],N=e[2],R=(1-(b+v))*E,d=(f+O)*E,g=(x-P)*E,A=(f-O)*S,Y=(1-(p+v))*S,T=(l+m)*S,w=(x+P)*y,_=(l-m)*y,j=(1-(p+b))*y;return t[0]=R,t[1]=d,t[2]=g,t[3]=0,t[4]=A,t[5]=Y,t[6]=T,t[7]=0,t[8]=w,t[9]=_,t[10]=j,t[11]=0,t[12]=r[0]+I-(R*I+A*L+w*N),t[13]=r[1]+L-(d*I+Y*L+_*N),t[14]=r[2]+N-(g*I+T*L+j*N),t[15]=1,t}function w(t,a){var r=a[0],n=a[1],e=a[2],o=a[3],s=r+r,u=n+n,h=e+e,M=r*s,i=n*s,c=n*u,p=e*s,f=e*u,x=e*h,b=o*s,l=o*u,v=o*h;return t[0]=1-c-x,t[1]=i+v,t[2]=p-l,t[3]=0,t[4]=i-v,t[5]=1-M-x,t[6]=f+b,t[7]=0,t[8]=p+l,t[9]=f-b,t[10]=1-M-c,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function _(t,a,r,n,e,o,s){var u=1/(r-a),h=1/(e-n),M=1/(o-s);return t[0]=2*o*u,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*o*h,t[6]=0,t[7]=0,t[8]=(r+a)*u,t[9]=(e+n)*h,t[10]=(s+o)*M,t[11]=-1,t[12]=0,t[13]=0,t[14]=s*o*2*M,t[15]=0,t}function j(t,a,r,n,e){var o,s=1/Math.tan(a/2);return t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=e&&e!==1/0?(o=1/(n-e),t[10]=(e+n)*o,t[14]=2*e*n*o):(t[10]=-1,t[14]=-2*n),t}function q(t,a,r,n){var e=Math.tan(a.upDegrees*Math.PI/180),o=Math.tan(a.downDegrees*Math.PI/180),s=Math.tan(a.leftDegrees*Math.PI/180),u=Math.tan(a.rightDegrees*Math.PI/180),h=2/(s+u),M=2/(e+o);return t[0]=h,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=M,t[6]=0,t[7]=0,t[8]=-(s-u)*h*.5,t[9]=(e-o)*M*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t}function D(t,a,r,n,e,o,s){var u=1/(a-r),h=1/(n-e),M=1/(o-s);return t[0]=-2*u,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*h,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*M,t[11]=0,t[12]=(a+r)*u,t[13]=(e+n)*h,t[14]=(s+o)*M,t[15]=1,t}function k(a,r,n,e){var o,s,u,M,i,c,p,f,x,b,l=r[0],v=r[1],m=r[2],P=e[0],O=e[1],E=e[2],S=n[0],y=n[1],I=n[2];return Math.abs(l-S)0&&(i*=f=1/Math.sqrt(f),c*=f,p*=f);var x=h*p-M*c,b=M*i-u*p,l=u*c-h*i;return(f=x*x+b*b+l*l)>0&&(x*=f=1/Math.sqrt(f),b*=f,l*=f),t[0]=x,t[1]=b,t[2]=l,t[3]=0,t[4]=c*l-p*b,t[5]=p*x-i*l,t[6]=i*b-c*x,t[7]=0,t[8]=i,t[9]=c,t[10]=p,t[11]=0,t[12]=e,t[13]=o,t[14]=s,t[15]=1,t}function Q(t){return"mat4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"}function V(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15])}function W(t,a,r){return t[0]=a[0]+r[0],t[1]=a[1]+r[1],t[2]=a[2]+r[2],t[3]=a[3]+r[3],t[4]=a[4]+r[4],t[5]=a[5]+r[5],t[6]=a[6]+r[6],t[7]=a[7]+r[7],t[8]=a[8]+r[8],t[9]=a[9]+r[9],t[10]=a[10]+r[10],t[11]=a[11]+r[11],t[12]=a[12]+r[12],t[13]=a[13]+r[13],t[14]=a[14]+r[14],t[15]=a[15]+r[15],t}function X(t,a,r){return t[0]=a[0]-r[0],t[1]=a[1]-r[1],t[2]=a[2]-r[2],t[3]=a[3]-r[3],t[4]=a[4]-r[4],t[5]=a[5]-r[5],t[6]=a[6]-r[6],t[7]=a[7]-r[7],t[8]=a[8]-r[8],t[9]=a[9]-r[9],t[10]=a[10]-r[10],t[11]=a[11]-r[11],t[12]=a[12]-r[12],t[13]=a[13]-r[13],t[14]=a[14]-r[14],t[15]=a[15]-r[15],t}function Z(t,a,r){return t[0]=a[0]*r,t[1]=a[1]*r,t[2]=a[2]*r,t[3]=a[3]*r,t[4]=a[4]*r,t[5]=a[5]*r,t[6]=a[6]*r,t[7]=a[7]*r,t[8]=a[8]*r,t[9]=a[9]*r,t[10]=a[10]*r,t[11]=a[11]*r,t[12]=a[12]*r,t[13]=a[13]*r,t[14]=a[14]*r,t[15]=a[15]*r,t}function z(t,a,r,n){return t[0]=a[0]+r[0]*n,t[1]=a[1]+r[1]*n,t[2]=a[2]+r[2]*n,t[3]=a[3]+r[3]*n,t[4]=a[4]+r[4]*n,t[5]=a[5]+r[5]*n,t[6]=a[6]+r[6]*n,t[7]=a[7]+r[7]*n,t[8]=a[8]+r[8]*n,t[9]=a[9]+r[9]*n,t[10]=a[10]+r[10]*n,t[11]=a[11]+r[11]*n,t[12]=a[12]+r[12]*n,t[13]=a[13]+r[13]*n,t[14]=a[14]+r[14]*n,t[15]=a[15]+r[15]*n,t}function B(t,a){return t[0]===a[0]&&t[1]===a[1]&&t[2]===a[2]&&t[3]===a[3]&&t[4]===a[4]&&t[5]===a[5]&&t[6]===a[6]&&t[7]===a[7]&&t[8]===a[8]&&t[9]===a[9]&&t[10]===a[10]&&t[11]===a[11]&&t[12]===a[12]&&t[13]===a[13]&&t[14]===a[14]&&t[15]===a[15]}function C(a,r){var n=a[0],e=a[1],o=a[2],s=a[3],u=a[4],h=a[5],M=a[6],i=a[7],c=a[8],p=a[9],f=a[10],x=a[11],b=a[12],l=a[13],v=a[14],m=a[15],P=r[0],O=r[1],E=r[2],S=r[3],y=r[4],I=r[5],L=r[6],N=r[7],R=r[8],d=r[9],g=r[10],A=r[11],Y=r[12],T=r[13],w=r[14],_=r[15];return Math.abs(n-P)<=t.EPSILON*Math.max(1,Math.abs(n),Math.abs(P))&&Math.abs(e-O)<=t.EPSILON*Math.max(1,Math.abs(e),Math.abs(O))&&Math.abs(o-E)<=t.EPSILON*Math.max(1,Math.abs(o),Math.abs(E))&&Math.abs(s-S)<=t.EPSILON*Math.max(1,Math.abs(s),Math.abs(S))&&Math.abs(u-y)<=t.EPSILON*Math.max(1,Math.abs(u),Math.abs(y))&&Math.abs(h-I)<=t.EPSILON*Math.max(1,Math.abs(h),Math.abs(I))&&Math.abs(M-L)<=t.EPSILON*Math.max(1,Math.abs(M),Math.abs(L))&&Math.abs(i-N)<=t.EPSILON*Math.max(1,Math.abs(i),Math.abs(N))&&Math.abs(c-R)<=t.EPSILON*Math.max(1,Math.abs(c),Math.abs(R))&&Math.abs(p-d)<=t.EPSILON*Math.max(1,Math.abs(p),Math.abs(d))&&Math.abs(f-g)<=t.EPSILON*Math.max(1,Math.abs(f),Math.abs(g))&&Math.abs(x-A)<=t.EPSILON*Math.max(1,Math.abs(x),Math.abs(A))&&Math.abs(b-Y)<=t.EPSILON*Math.max(1,Math.abs(b),Math.abs(Y))&&Math.abs(l-T)<=t.EPSILON*Math.max(1,Math.abs(l),Math.abs(T))&&Math.abs(v-w)<=t.EPSILON*Math.max(1,Math.abs(v),Math.abs(w))&&Math.abs(m-_)<=t.EPSILON*Math.max(1,Math.abs(m),Math.abs(_))}var G=f;exports.mul=G;var H=X;exports.sub=H; },{"./common.js":"PxDr"}],"Ijz7":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.create=n,exports.clone=o,exports.length=a,exports.fromValues=s,exports.copy=u,exports.set=i,exports.add=c,exports.subtract=p,exports.multiply=f,exports.divide=x,exports.ceil=h,exports.floor=M,exports.min=v,exports.max=l,exports.round=d,exports.scale=m,exports.scaleAndAdd=b,exports.distance=y,exports.squaredDistance=O,exports.squaredLength=P,exports.negate=q,exports.inverse=A,exports.normalize=g,exports.dot=E,exports.cross=R,exports.lerp=Y,exports.hermite=j,exports.bezier=_,exports.random=w,exports.transformMat4=D,exports.transformMat3=L,exports.transformQuat=N,exports.rotateX=I,exports.rotateY=T,exports.rotateZ=z,exports.angle=S,exports.zero=k,exports.str=W,exports.exactEquals=F,exports.equals=Q,exports.forEach=exports.sqrLen=exports.len=exports.sqrDist=exports.dist=exports.div=exports.mul=exports.sub=void 0;var t=e(require("./common.js"));function r(){if("function"!=typeof WeakMap)return null;var t=new WeakMap;return r=function(){return t},t}function e(t){if(t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var e=r();if(e&&e.has(t))return e.get(t);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in t)if(Object.prototype.hasOwnProperty.call(t,a)){var s=o?Object.getOwnPropertyDescriptor(t,a):null;s&&(s.get||s.set)?Object.defineProperty(n,a,s):n[a]=t[a]}return n.default=t,e&&e.set(t,n),n}function n(){var r=new t.ARRAY_TYPE(3);return t.ARRAY_TYPE!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r}function o(r){var e=new t.ARRAY_TYPE(3);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e}function a(t){var r=t[0],e=t[1],n=t[2];return Math.hypot(r,e,n)}function s(r,e,n){var o=new t.ARRAY_TYPE(3);return o[0]=r,o[1]=e,o[2]=n,o}function u(t,r){return t[0]=r[0],t[1]=r[1],t[2]=r[2],t}function i(t,r,e,n){return t[0]=r,t[1]=e,t[2]=n,t}function c(t,r,e){return t[0]=r[0]+e[0],t[1]=r[1]+e[1],t[2]=r[2]+e[2],t}function p(t,r,e){return t[0]=r[0]-e[0],t[1]=r[1]-e[1],t[2]=r[2]-e[2],t}function f(t,r,e){return t[0]=r[0]*e[0],t[1]=r[1]*e[1],t[2]=r[2]*e[2],t}function x(t,r,e){return t[0]=r[0]/e[0],t[1]=r[1]/e[1],t[2]=r[2]/e[2],t}function h(t,r){return t[0]=Math.ceil(r[0]),t[1]=Math.ceil(r[1]),t[2]=Math.ceil(r[2]),t}function M(t,r){return t[0]=Math.floor(r[0]),t[1]=Math.floor(r[1]),t[2]=Math.floor(r[2]),t}function v(t,r,e){return t[0]=Math.min(r[0],e[0]),t[1]=Math.min(r[1],e[1]),t[2]=Math.min(r[2],e[2]),t}function l(t,r,e){return t[0]=Math.max(r[0],e[0]),t[1]=Math.max(r[1],e[1]),t[2]=Math.max(r[2],e[2]),t}function d(t,r){return t[0]=Math.round(r[0]),t[1]=Math.round(r[1]),t[2]=Math.round(r[2]),t}function m(t,r,e){return t[0]=r[0]*e,t[1]=r[1]*e,t[2]=r[2]*e,t}function b(t,r,e,n){return t[0]=r[0]+e[0]*n,t[1]=r[1]+e[1]*n,t[2]=r[2]+e[2]*n,t}function y(t,r){var e=r[0]-t[0],n=r[1]-t[1],o=r[2]-t[2];return Math.hypot(e,n,o)}function O(t,r){var e=r[0]-t[0],n=r[1]-t[1],o=r[2]-t[2];return e*e+n*n+o*o}function P(t){var r=t[0],e=t[1],n=t[2];return r*r+e*e+n*n}function q(t,r){return t[0]=-r[0],t[1]=-r[1],t[2]=-r[2],t}function A(t,r){return t[0]=1/r[0],t[1]=1/r[1],t[2]=1/r[2],t}function g(t,r){var e=r[0],n=r[1],o=r[2],a=e*e+n*n+o*o;return a>0&&(a=1/Math.sqrt(a)),t[0]=r[0]*a,t[1]=r[1]*a,t[2]=r[2]*a,t}function E(t,r){return t[0]*r[0]+t[1]*r[1]+t[2]*r[2]}function R(t,r,e){var n=r[0],o=r[1],a=r[2],s=e[0],u=e[1],i=e[2];return t[0]=o*i-a*u,t[1]=a*s-n*i,t[2]=n*u-o*s,t}function Y(t,r,e,n){var o=r[0],a=r[1],s=r[2];return t[0]=o+n*(e[0]-o),t[1]=a+n*(e[1]-a),t[2]=s+n*(e[2]-s),t}function j(t,r,e,n,o,a){var s=a*a,u=s*(2*a-3)+1,i=s*(a-2)+a,c=s*(a-1),p=s*(3-2*a);return t[0]=r[0]*u+e[0]*i+n[0]*c+o[0]*p,t[1]=r[1]*u+e[1]*i+n[1]*c+o[1]*p,t[2]=r[2]*u+e[2]*i+n[2]*c+o[2]*p,t}function _(t,r,e,n,o,a){var s=1-a,u=s*s,i=a*a,c=u*s,p=3*a*u,f=3*i*s,x=i*a;return t[0]=r[0]*c+e[0]*p+n[0]*f+o[0]*x,t[1]=r[1]*c+e[1]*p+n[1]*f+o[1]*x,t[2]=r[2]*c+e[2]*p+n[2]*f+o[2]*x,t}function w(r,e){e=e||1;var n=2*t.RANDOM()*Math.PI,o=2*t.RANDOM()-1,a=Math.sqrt(1-o*o)*e;return r[0]=Math.cos(n)*a,r[1]=Math.sin(n)*a,r[2]=o*e,r}function D(t,r,e){var n=r[0],o=r[1],a=r[2],s=e[3]*n+e[7]*o+e[11]*a+e[15];return s=s||1,t[0]=(e[0]*n+e[4]*o+e[8]*a+e[12])/s,t[1]=(e[1]*n+e[5]*o+e[9]*a+e[13])/s,t[2]=(e[2]*n+e[6]*o+e[10]*a+e[14])/s,t}function L(t,r,e){var n=r[0],o=r[1],a=r[2];return t[0]=n*e[0]+o*e[3]+a*e[6],t[1]=n*e[1]+o*e[4]+a*e[7],t[2]=n*e[2]+o*e[5]+a*e[8],t}function N(t,r,e){var n=e[0],o=e[1],a=e[2],s=e[3],u=r[0],i=r[1],c=r[2],p=o*c-a*i,f=a*u-n*c,x=n*i-o*u,h=o*x-a*f,M=a*p-n*x,v=n*f-o*p,l=2*s;return p*=l,f*=l,x*=l,h*=2,M*=2,v*=2,t[0]=u+p+h,t[1]=i+f+M,t[2]=c+x+v,t}function I(t,r,e,n){var o=[],a=[];return o[0]=r[0]-e[0],o[1]=r[1]-e[1],o[2]=r[2]-e[2],a[0]=o[0],a[1]=o[1]*Math.cos(n)-o[2]*Math.sin(n),a[2]=o[1]*Math.sin(n)+o[2]*Math.cos(n),t[0]=a[0]+e[0],t[1]=a[1]+e[1],t[2]=a[2]+e[2],t}function T(t,r,e,n){var o=[],a=[];return o[0]=r[0]-e[0],o[1]=r[1]-e[1],o[2]=r[2]-e[2],a[0]=o[2]*Math.sin(n)+o[0]*Math.cos(n),a[1]=o[1],a[2]=o[2]*Math.cos(n)-o[0]*Math.sin(n),t[0]=a[0]+e[0],t[1]=a[1]+e[1],t[2]=a[2]+e[2],t}function z(t,r,e,n){var o=[],a=[];return o[0]=r[0]-e[0],o[1]=r[1]-e[1],o[2]=r[2]-e[2],a[0]=o[0]*Math.cos(n)-o[1]*Math.sin(n),a[1]=o[0]*Math.sin(n)+o[1]*Math.cos(n),a[2]=o[2],t[0]=a[0]+e[0],t[1]=a[1]+e[1],t[2]=a[2]+e[2],t}function S(t,r){var e=t[0],n=t[1],o=t[2],a=r[0],s=r[1],u=r[2],i=Math.sqrt(e*e+n*n+o*o)*Math.sqrt(a*a+s*s+u*u),c=i&&E(t,r)/i;return Math.acos(Math.min(Math.max(c,-1),1))}function k(t){return t[0]=0,t[1]=0,t[2]=0,t}function W(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"}function F(t,r){return t[0]===r[0]&&t[1]===r[1]&&t[2]===r[2]}function Q(r,e){var n=r[0],o=r[1],a=r[2],s=e[0],u=e[1],i=e[2];return Math.abs(n-s)<=t.EPSILON*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(o-u)<=t.EPSILON*Math.max(1,Math.abs(o),Math.abs(u))&&Math.abs(a-i)<=t.EPSILON*Math.max(1,Math.abs(a),Math.abs(i))}var V=p;exports.sub=V;var X=f;exports.mul=X;var Z=x;exports.div=Z;var B=y;exports.dist=B;var C=O;exports.sqrDist=C;var G=a;exports.len=G;var H=P;exports.sqrLen=H;var J=function(){var t=n();return function(r,e,n,o,a,s){var u,i;for(e||(e=3),n||(n=0),i=o?Math.min(o*e+n,r.length):r.length,u=n;u0&&(u=1/Math.sqrt(u)),t[0]=e*u,t[1]=n*u,t[2]=o*u,t[3]=a*u,t}function E(t,r){return t[0]*r[0]+t[1]*r[1]+t[2]*r[2]+t[3]*r[3]}function g(t,r,e,n){var o=e[0]*n[1]-e[1]*n[0],a=e[0]*n[2]-e[2]*n[0],u=e[0]*n[3]-e[3]*n[0],s=e[1]*n[2]-e[2]*n[1],i=e[1]*n[3]-e[3]*n[1],c=e[2]*n[3]-e[3]*n[2],p=r[0],f=r[1],x=r[2],h=r[3];return t[0]=f*c-x*i+h*s,t[1]=-p*c+x*u-h*a,t[2]=p*i-f*u+h*o,t[3]=-p*s+f*a-x*o,t}function w(t,r,e,n){var o=r[0],a=r[1],u=r[2],s=r[3];return t[0]=o+n*(e[0]-o),t[1]=a+n*(e[1]-a),t[2]=u+n*(e[2]-u),t[3]=s+n*(e[3]-s),t}function D(r,e){var n,o,a,u,s,i;e=e||1;do{s=(n=2*t.RANDOM()-1)*n+(o=2*t.RANDOM()-1)*o}while(s>=1);do{i=(a=2*t.RANDOM()-1)*a+(u=2*t.RANDOM()-1)*u}while(i>=1);var c=Math.sqrt((1-s)/i);return r[0]=e*n,r[1]=e*o,r[2]=e*a*c,r[3]=e*u*c,r}function j(t,r,e){var n=r[0],o=r[1],a=r[2],u=r[3];return t[0]=e[0]*n+e[4]*o+e[8]*a+e[12]*u,t[1]=e[1]*n+e[5]*o+e[9]*a+e[13]*u,t[2]=e[2]*n+e[6]*o+e[10]*a+e[14]*u,t[3]=e[3]*n+e[7]*o+e[11]*a+e[15]*u,t}function N(t,r,e){var n=r[0],o=r[1],a=r[2],u=e[0],s=e[1],i=e[2],c=e[3],p=c*n+s*a-i*o,f=c*o+i*n-u*a,x=c*a+u*o-s*n,h=-u*n-s*o-i*a;return t[0]=p*c+h*-u+f*-i-x*-s,t[1]=f*c+h*-s+x*-u-p*-i,t[2]=x*c+h*-i+p*-s-f*-u,t[3]=r[3],t}function Y(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t}function _(t){return"vec4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}function L(t,r){return t[0]===r[0]&&t[1]===r[1]&&t[2]===r[2]&&t[3]===r[3]}function I(r,e){var n=r[0],o=r[1],a=r[2],u=r[3],s=e[0],i=e[1],c=e[2],p=e[3];return Math.abs(n-s)<=t.EPSILON*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(o-i)<=t.EPSILON*Math.max(1,Math.abs(o),Math.abs(i))&&Math.abs(a-c)<=t.EPSILON*Math.max(1,Math.abs(a),Math.abs(c))&&Math.abs(u-p)<=t.EPSILON*Math.max(1,Math.abs(u),Math.abs(p))}var S=c;exports.sub=S;var T=p;exports.mul=T;var k=f;exports.div=k;var z=b;exports.dist=z;var W=O;exports.sqrDist=W;var F=y;exports.len=F;var Q=A;exports.sqrLen=Q;var V=function(){var t=n();return function(r,e,n,o,a,u){var s,i;for(e||(e=4),n||(n=0),i=o?Math.min(o*e+n,r.length):r.length,s=n;st.EPSILON?(r[0]=e[0]/a,r[1]=e[1]/a,r[2]=e[2]/a):(r[0]=1,r[1]=0,r[2]=0),o}function i(t,r){var e=D(t,r);return Math.acos(2*e*e-1)}function x(t,r,e){var o=r[0],a=r[1],n=r[2],s=r[3],u=e[0],p=e[1],c=e[2],i=e[3];return t[0]=o*i+s*u+a*c-n*p,t[1]=a*i+s*p+n*u-o*c,t[2]=n*i+s*c+o*p-a*u,t[3]=s*i-o*u-a*p-n*c,t}function l(t,r,e){e*=.5;var o=r[0],a=r[1],n=r[2],s=r[3],u=Math.sin(e),p=Math.cos(e);return t[0]=o*p+s*u,t[1]=a*p+n*u,t[2]=n*p-a*u,t[3]=s*p-o*u,t}function f(t,r,e){e*=.5;var o=r[0],a=r[1],n=r[2],s=r[3],u=Math.sin(e),p=Math.cos(e);return t[0]=o*p-n*u,t[1]=a*p+s*u,t[2]=n*p+o*u,t[3]=s*p-a*u,t}function v(t,r,e){e*=.5;var o=r[0],a=r[1],n=r[2],s=r[3],u=Math.sin(e),p=Math.cos(e);return t[0]=o*p+a*u,t[1]=a*p-o*u,t[2]=n*p+s*u,t[3]=s*p-n*u,t}function h(t,r){var e=r[0],o=r[1],a=r[2];return t[0]=e,t[1]=o,t[2]=a,t[3]=Math.sqrt(Math.abs(1-e*e-o*o-a*a)),t}function M(t,r){var e=r[0],o=r[1],a=r[2],n=r[3],s=Math.sqrt(e*e+o*o+a*a),u=Math.exp(n),p=s>0?u*Math.sin(s)/s:0;return t[0]=e*p,t[1]=o*p,t[2]=a*p,t[3]=u*Math.cos(s),t}function q(t,r){var e=r[0],o=r[1],a=r[2],n=r[3],s=Math.sqrt(e*e+o*o+a*a),u=s>0?Math.atan2(s,n)/s:0;return t[0]=e*u,t[1]=o*u,t[2]=a*u,t[3]=.5*Math.log(e*e+o*o+a*a+n*n),t}function d(t,r,e){return q(t,r),_(t,t,e),M(t,t),t}function m(r,e,o,a){var n,s,u,p,c,i=e[0],x=e[1],l=e[2],f=e[3],v=o[0],h=o[1],M=o[2],q=o[3];return(s=i*v+x*h+l*M+f*q)<0&&(s=-s,v=-v,h=-h,M=-M,q=-q),1-s>t.EPSILON?(n=Math.acos(s),u=Math.sin(n),p=Math.sin((1-a)*n)/u,c=Math.sin(a*n)/u):(p=1-a,c=a),r[0]=p*i+c*v,r[1]=p*x+c*h,r[2]=p*l+c*M,r[3]=p*f+c*q,r}function g(r){var e=t.RANDOM(),o=t.RANDOM(),a=t.RANDOM(),n=Math.sqrt(1-e),s=Math.sqrt(e);return r[0]=n*Math.sin(2*Math.PI*o),r[1]=n*Math.cos(2*Math.PI*o),r[2]=s*Math.sin(2*Math.PI*a),r[3]=s*Math.cos(2*Math.PI*a),r}function y(t,r){var e=r[0],o=r[1],a=r[2],n=r[3],s=e*e+o*o+a*a+n*n,u=s?1/s:0;return t[0]=-e*u,t[1]=-o*u,t[2]=-a*u,t[3]=n*u,t}function P(t,r){return t[0]=-r[0],t[1]=-r[1],t[2]=-r[2],t[3]=r[3],t}function A(t,r){var e,o=r[0]+r[4]+r[8];if(o>0)e=Math.sqrt(o+1),t[3]=.5*e,e=.5/e,t[0]=(r[5]-r[7])*e,t[1]=(r[6]-r[2])*e,t[2]=(r[1]-r[3])*e;else{var a=0;r[4]>r[0]&&(a=1),r[8]>r[3*a+a]&&(a=2);var n=(a+1)%3,s=(a+2)%3;e=Math.sqrt(r[3*a+a]-r[3*n+n]-r[3*s+s]+1),t[a]=.5*e,e=.5/e,t[3]=(r[3*n+s]-r[3*s+n])*e,t[n]=(r[3*n+a]+r[3*a+n])*e,t[s]=(r[3*s+a]+r[3*a+s])*e}return t}function O(t,r,e,o){var a=.5*Math.PI/180;r*=a,e*=a,o*=a;var n=Math.sin(r),s=Math.cos(r),u=Math.sin(e),p=Math.cos(e),c=Math.sin(o),i=Math.cos(o);return t[0]=n*p*i-s*u*c,t[1]=s*u*i+n*p*c,t[2]=s*p*c-n*u*i,t[3]=s*p*i+n*u*c,t}function j(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}var b=o.clone;exports.clone=b;var E=o.fromValues;exports.fromValues=E;var I=o.copy;exports.copy=I;var L=o.set;exports.set=L;var R=o.add;exports.add=R;var w=x;exports.mul=w;var _=o.scale;exports.scale=_;var D=o.dot;exports.dot=D;var N=o.lerp;exports.lerp=N;var V=o.length;exports.length=V;var Y=V;exports.len=Y;var z=o.squaredLength;exports.squaredLength=z;var T=z;exports.sqrLen=T;var W=o.normalize;exports.normalize=W;var k=o.exactEquals;exports.exactEquals=k;var S=o.equals;exports.equals=S;var F=function(){var t=e.create(),r=e.fromValues(1,0,0),o=e.fromValues(0,1,0);return function(a,n,s){var u=e.dot(n,s);return u<-.999999?(e.cross(t,r,n),e.len(t)<1e-6&&e.cross(t,o,n),e.normalize(t,t),p(a,t,Math.PI),a):u>.999999?(a[0]=0,a[1]=0,a[2]=0,a[3]=1,a):(e.cross(t,n,s),a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=1+u,W(a,a))}}();exports.rotationTo=F;var X=function(){var t=s(),r=s();return function(e,o,a,n,s,u){return m(t,o,s,u),m(r,a,n,u),m(e,t,r,2*u*(1-u)),e}}();exports.sqlerp=X;var Z=function(){var t=r.create();return function(r,e,o,a){return t[0]=o[0],t[3]=o[1],t[6]=o[2],t[1]=a[0],t[4]=a[1],t[7]=a[2],t[2]=-e[0],t[5]=-e[1],t[8]=-e[2],W(r,A(r,t))}}();exports.setAxes=Z; },{"./common.js":"PxDr","./mat3.js":"SRDq","./vec3.js":"Ijz7","./vec4.js":"QGfo"}],"BYXr":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.create=o,exports.clone=s,exports.fromValues=u,exports.fromRotationTranslationValues=p,exports.fromRotationTranslation=i,exports.fromTranslation=c,exports.fromRotation=f,exports.fromMat4=x,exports.copy=h,exports.identity=l,exports.set=M,exports.getDual=b,exports.setDual=m,exports.getTranslation=d,exports.translate=R,exports.rotateX=y,exports.rotateY=O,exports.rotateZ=g,exports.rotateByQuatAppend=A,exports.rotateByQuatPrepend=E,exports.rotateAroundAxis=L,exports.add=Y,exports.multiply=q,exports.scale=T,exports.lerp=w,exports.invert=I,exports.conjugate=N,exports.normalize=Q,exports.str=V,exports.exactEquals=W,exports.equals=X,exports.sqrLen=exports.squaredLength=exports.len=exports.length=exports.dot=exports.mul=exports.setReal=exports.getReal=void 0;var t=n(require("./common.js")),r=n(require("./quat.js")),e=n(require("./mat4.js"));function a(){if("function"!=typeof WeakMap)return null;var t=new WeakMap;return a=function(){return t},t}function n(t){if(t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var r=a();if(r&&r.has(t))return r.get(t);var e={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o)){var s=n?Object.getOwnPropertyDescriptor(t,o):null;s&&(s.get||s.set)?Object.defineProperty(e,o,s):e[o]=t[o]}return e.default=t,r&&r.set(t,e),e}function o(){var r=new t.ARRAY_TYPE(8);return t.ARRAY_TYPE!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0),r[3]=1,r}function s(r){var e=new t.ARRAY_TYPE(8);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e}function u(r,e,a,n,o,s,u,p){var i=new t.ARRAY_TYPE(8);return i[0]=r,i[1]=e,i[2]=a,i[3]=n,i[4]=o,i[5]=s,i[6]=u,i[7]=p,i}function p(r,e,a,n,o,s,u){var p=new t.ARRAY_TYPE(8);p[0]=r,p[1]=e,p[2]=a,p[3]=n;var i=.5*o,c=.5*s,f=.5*u;return p[4]=i*n+c*a-f*e,p[5]=c*n+f*r-i*a,p[6]=f*n+i*e-c*r,p[7]=-i*r-c*e-f*a,p}function i(t,r,e){var a=.5*e[0],n=.5*e[1],o=.5*e[2],s=r[0],u=r[1],p=r[2],i=r[3];return t[0]=s,t[1]=u,t[2]=p,t[3]=i,t[4]=a*i+n*p-o*u,t[5]=n*i+o*s-a*p,t[6]=o*i+a*u-n*s,t[7]=-a*s-n*u-o*p,t}function c(t,r){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t[4]=.5*r[0],t[5]=.5*r[1],t[6]=.5*r[2],t[7]=0,t}function f(t,r){return t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],t[4]=0,t[5]=0,t[6]=0,t[7]=0,t}function x(a,n){var o=r.create();e.getRotation(o,n);var s=new t.ARRAY_TYPE(3);return e.getTranslation(s,n),i(a,o,s),a}function h(t,r){return t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],t[4]=r[4],t[5]=r[5],t[6]=r[6],t[7]=r[7],t}function l(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t}function M(t,r,e,a,n,o,s,u,p){return t[0]=r,t[1]=e,t[2]=a,t[3]=n,t[4]=o,t[5]=s,t[6]=u,t[7]=p,t}var v=r.copy;function b(t,r){return t[0]=r[4],t[1]=r[5],t[2]=r[6],t[3]=r[7],t}exports.getReal=v;var P=r.copy;function m(t,r){return t[4]=r[0],t[5]=r[1],t[6]=r[2],t[7]=r[3],t}function d(t,r){var e=r[4],a=r[5],n=r[6],o=r[7],s=-r[0],u=-r[1],p=-r[2],i=r[3];return t[0]=2*(e*i+o*s+a*p-n*u),t[1]=2*(a*i+o*u+n*s-e*p),t[2]=2*(n*i+o*p+e*u-a*s),t}function R(t,r,e){var a=r[0],n=r[1],o=r[2],s=r[3],u=.5*e[0],p=.5*e[1],i=.5*e[2],c=r[4],f=r[5],x=r[6],h=r[7];return t[0]=a,t[1]=n,t[2]=o,t[3]=s,t[4]=s*u+n*i-o*p+c,t[5]=s*p+o*u-a*i+f,t[6]=s*i+a*p-n*u+x,t[7]=-a*u-n*p-o*i+h,t}function y(t,e,a){var n=-e[0],o=-e[1],s=-e[2],u=e[3],p=e[4],i=e[5],c=e[6],f=e[7],x=p*u+f*n+i*s-c*o,h=i*u+f*o+c*n-p*s,l=c*u+f*s+p*o-i*n,M=f*u-p*n-i*o-c*s;return r.rotateX(t,e,a),n=t[0],o=t[1],s=t[2],u=t[3],t[4]=x*u+M*n+h*s-l*o,t[5]=h*u+M*o+l*n-x*s,t[6]=l*u+M*s+x*o-h*n,t[7]=M*u-x*n-h*o-l*s,t}function O(t,e,a){var n=-e[0],o=-e[1],s=-e[2],u=e[3],p=e[4],i=e[5],c=e[6],f=e[7],x=p*u+f*n+i*s-c*o,h=i*u+f*o+c*n-p*s,l=c*u+f*s+p*o-i*n,M=f*u-p*n-i*o-c*s;return r.rotateY(t,e,a),n=t[0],o=t[1],s=t[2],u=t[3],t[4]=x*u+M*n+h*s-l*o,t[5]=h*u+M*o+l*n-x*s,t[6]=l*u+M*s+x*o-h*n,t[7]=M*u-x*n-h*o-l*s,t}function g(t,e,a){var n=-e[0],o=-e[1],s=-e[2],u=e[3],p=e[4],i=e[5],c=e[6],f=e[7],x=p*u+f*n+i*s-c*o,h=i*u+f*o+c*n-p*s,l=c*u+f*s+p*o-i*n,M=f*u-p*n-i*o-c*s;return r.rotateZ(t,e,a),n=t[0],o=t[1],s=t[2],u=t[3],t[4]=x*u+M*n+h*s-l*o,t[5]=h*u+M*o+l*n-x*s,t[6]=l*u+M*s+x*o-h*n,t[7]=M*u-x*n-h*o-l*s,t}function A(t,r,e){var a=e[0],n=e[1],o=e[2],s=e[3],u=r[0],p=r[1],i=r[2],c=r[3];return t[0]=u*s+c*a+p*o-i*n,t[1]=p*s+c*n+i*a-u*o,t[2]=i*s+c*o+u*n-p*a,t[3]=c*s-u*a-p*n-i*o,u=r[4],p=r[5],i=r[6],c=r[7],t[4]=u*s+c*a+p*o-i*n,t[5]=p*s+c*n+i*a-u*o,t[6]=i*s+c*o+u*n-p*a,t[7]=c*s-u*a-p*n-i*o,t}function E(t,r,e){var a=r[0],n=r[1],o=r[2],s=r[3],u=e[0],p=e[1],i=e[2],c=e[3];return t[0]=a*c+s*u+n*i-o*p,t[1]=n*c+s*p+o*u-a*i,t[2]=o*c+s*i+a*p-n*u,t[3]=s*c-a*u-n*p-o*i,u=e[4],p=e[5],i=e[6],c=e[7],t[4]=a*c+s*u+n*i-o*p,t[5]=n*c+s*p+o*u-a*i,t[6]=o*c+s*i+a*p-n*u,t[7]=s*c-a*u-n*p-o*i,t}function L(r,e,a,n){if(Math.abs(n)0){e=Math.sqrt(e);var a=r[0]/e,n=r[1]/e,o=r[2]/e,s=r[3]/e,u=r[4],p=r[5],i=r[6],c=r[7],f=a*u+n*p+o*i+s*c;t[0]=a,t[1]=n,t[2]=o,t[3]=s,t[4]=(u-a*f)/e,t[5]=(p-n*f)/e,t[6]=(i-o*f)/e,t[7]=(c-s*f)/e}return t}function V(t){return"quat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+")"}function W(t,r){return t[0]===r[0]&&t[1]===r[1]&&t[2]===r[2]&&t[3]===r[3]&&t[4]===r[4]&&t[5]===r[5]&&t[6]===r[6]&&t[7]===r[7]}function X(r,e){var a=r[0],n=r[1],o=r[2],s=r[3],u=r[4],p=r[5],i=r[6],c=r[7],f=e[0],x=e[1],h=e[2],l=e[3],M=e[4],v=e[5],b=e[6],P=e[7];return Math.abs(a-f)<=t.EPSILON*Math.max(1,Math.abs(a),Math.abs(f))&&Math.abs(n-x)<=t.EPSILON*Math.max(1,Math.abs(n),Math.abs(x))&&Math.abs(o-h)<=t.EPSILON*Math.max(1,Math.abs(o),Math.abs(h))&&Math.abs(s-l)<=t.EPSILON*Math.max(1,Math.abs(s),Math.abs(l))&&Math.abs(u-M)<=t.EPSILON*Math.max(1,Math.abs(u),Math.abs(M))&&Math.abs(p-v)<=t.EPSILON*Math.max(1,Math.abs(p),Math.abs(v))&&Math.abs(i-b)<=t.EPSILON*Math.max(1,Math.abs(i),Math.abs(b))&&Math.abs(c-P)<=t.EPSILON*Math.max(1,Math.abs(c),Math.abs(P))}exports.sqrLen=B; },{"./common.js":"PxDr","./quat.js":"PXH2","./mat4.js":"WdlT"}],"cHtt":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.create=n,exports.clone=o,exports.fromValues=a,exports.copy=u,exports.set=s,exports.add=i,exports.subtract=c,exports.multiply=p,exports.divide=f,exports.ceil=x,exports.floor=h,exports.min=v,exports.max=M,exports.round=l,exports.scale=d,exports.scaleAndAdd=m,exports.distance=b,exports.squaredDistance=y,exports.length=P,exports.squaredLength=q,exports.negate=A,exports.inverse=O,exports.normalize=g,exports.dot=E,exports.cross=R,exports.lerp=j,exports.random=Y,exports.transformMat2=_,exports.transformMat2d=w,exports.transformMat3=D,exports.transformMat4=L,exports.rotate=T,exports.angle=I,exports.zero=N,exports.str=k,exports.exactEquals=z,exports.equals=S,exports.forEach=exports.sqrLen=exports.sqrDist=exports.dist=exports.div=exports.mul=exports.sub=exports.len=void 0;var t=e(require("./common.js"));function r(){if("function"!=typeof WeakMap)return null;var t=new WeakMap;return r=function(){return t},t}function e(t){if(t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var e=r();if(e&&e.has(t))return e.get(t);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in t)if(Object.prototype.hasOwnProperty.call(t,a)){var u=o?Object.getOwnPropertyDescriptor(t,a):null;u&&(u.get||u.set)?Object.defineProperty(n,a,u):n[a]=t[a]}return n.default=t,e&&e.set(t,n),n}function n(){var r=new t.ARRAY_TYPE(2);return t.ARRAY_TYPE!=Float32Array&&(r[0]=0,r[1]=0),r}function o(r){var e=new t.ARRAY_TYPE(2);return e[0]=r[0],e[1]=r[1],e}function a(r,e){var n=new t.ARRAY_TYPE(2);return n[0]=r,n[1]=e,n}function u(t,r){return t[0]=r[0],t[1]=r[1],t}function s(t,r,e){return t[0]=r,t[1]=e,t}function i(t,r,e){return t[0]=r[0]+e[0],t[1]=r[1]+e[1],t}function c(t,r,e){return t[0]=r[0]-e[0],t[1]=r[1]-e[1],t}function p(t,r,e){return t[0]=r[0]*e[0],t[1]=r[1]*e[1],t}function f(t,r,e){return t[0]=r[0]/e[0],t[1]=r[1]/e[1],t}function x(t,r){return t[0]=Math.ceil(r[0]),t[1]=Math.ceil(r[1]),t}function h(t,r){return t[0]=Math.floor(r[0]),t[1]=Math.floor(r[1]),t}function v(t,r,e){return t[0]=Math.min(r[0],e[0]),t[1]=Math.min(r[1],e[1]),t}function M(t,r,e){return t[0]=Math.max(r[0],e[0]),t[1]=Math.max(r[1],e[1]),t}function l(t,r){return t[0]=Math.round(r[0]),t[1]=Math.round(r[1]),t}function d(t,r,e){return t[0]=r[0]*e,t[1]=r[1]*e,t}function m(t,r,e,n){return t[0]=r[0]+e[0]*n,t[1]=r[1]+e[1]*n,t}function b(t,r){var e=r[0]-t[0],n=r[1]-t[1];return Math.hypot(e,n)}function y(t,r){var e=r[0]-t[0],n=r[1]-t[1];return e*e+n*n}function P(t){var r=t[0],e=t[1];return Math.hypot(r,e)}function q(t){var r=t[0],e=t[1];return r*r+e*e}function A(t,r){return t[0]=-r[0],t[1]=-r[1],t}function O(t,r){return t[0]=1/r[0],t[1]=1/r[1],t}function g(t,r){var e=r[0],n=r[1],o=e*e+n*n;return o>0&&(o=1/Math.sqrt(o)),t[0]=r[0]*o,t[1]=r[1]*o,t}function E(t,r){return t[0]*r[0]+t[1]*r[1]}function R(t,r,e){var n=r[0]*e[1]-r[1]*e[0];return t[0]=t[1]=0,t[2]=n,t}function j(t,r,e,n){var o=r[0],a=r[1];return t[0]=o+n*(e[0]-o),t[1]=a+n*(e[1]-a),t}function Y(r,e){e=e||1;var n=2*t.RANDOM()*Math.PI;return r[0]=Math.cos(n)*e,r[1]=Math.sin(n)*e,r}function _(t,r,e){var n=r[0],o=r[1];return t[0]=e[0]*n+e[2]*o,t[1]=e[1]*n+e[3]*o,t}function w(t,r,e){var n=r[0],o=r[1];return t[0]=e[0]*n+e[2]*o+e[4],t[1]=e[1]*n+e[3]*o+e[5],t}function D(t,r,e){var n=r[0],o=r[1];return t[0]=e[0]*n+e[3]*o+e[6],t[1]=e[1]*n+e[4]*o+e[7],t}function L(t,r,e){var n=r[0],o=r[1];return t[0]=e[0]*n+e[4]*o+e[12],t[1]=e[1]*n+e[5]*o+e[13],t}function T(t,r,e,n){var o=r[0]-e[0],a=r[1]-e[1],u=Math.sin(n),s=Math.cos(n);return t[0]=o*s-a*u+e[0],t[1]=o*u+a*s+e[1],t}function I(t,r){var e=t[0],n=t[1],o=r[0],a=r[1],u=Math.sqrt(e*e+n*n)*Math.sqrt(o*o+a*a),s=u&&(e*o+n*a)/u;return Math.acos(Math.min(Math.max(s,-1),1))}function N(t){return t[0]=0,t[1]=0,t}function k(t){return"vec2("+t[0]+", "+t[1]+")"}function z(t,r){return t[0]===r[0]&&t[1]===r[1]}function S(r,e){var n=r[0],o=r[1],a=e[0],u=e[1];return Math.abs(n-a)<=t.EPSILON*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(o-u)<=t.EPSILON*Math.max(1,Math.abs(o),Math.abs(u))}var W=P;exports.len=W;var F=c;exports.sub=F;var V=p;exports.mul=V;var B=f;exports.div=B;var C=b;exports.dist=C;var G=y;exports.sqrDist=G;var H=q;exports.sqrLen=H;var J=function(){var t=n();return function(r,e,n,o,a,u){var s,i;for(e||(e=2),n||(n=0),i=o?Math.min(o*e+n,r.length):r.length,s=n;sthis.__onXRButtonClick()),this.__forceDisabled=!1,this.__setDisabledAttribute(!0),this.setTitle(this.options.textXRNotFoundTitle)}generateInnerHTML(t,e){const n=e*this.logoScale;return``}createDefaultView(t){const e=t.height/3;t.injectCSS&&(this._WEBXR_UI_CSS_INJECTED[t.cssprefix]||(this.injectCSS(this.generateCSS(t,e)),this._WEBXR_UI_CSS_INJECTED[t.cssprefix]=!0));const n=document.createElement("div");return n.innerHTML=this.generateInnerHTML(t.cssprefix,e),n.firstChild}createXRIcon(t,e){const n=document.createElement("div");return n.innerHTML=generateXRIconString(t,e),n.firstChild}createNoXRIcon(t,e){const n=document.createElement("div");return n.innerHTML=generateNoXRIconString(t,e),n.firstChild}generateXRIconString(t,e){return`\n \n `}generateNoXRIconString(t,e){return`\n \n \n \n `}setDevice(t){return this.device=t,this.__updateButtonState(),this}setSession(t){return this.session=t,this.__updateButtonState(),this}setTitle(t){return this.domElement.title=t,this.ifChild(this.domElement,this.options.cssprefix,"title",e=>{t?(e.innerText=t,e.style.display="initial"):e.style.display="none"}),this}generateCSS(t,e=18){const{height:n}=t,i=t.background?t.background:t.color,s=t.cssprefix;let o;return`\n @font-face {\n font-family: 'Karla';\n font-style: normal;\n font-weight: 400;\n src: local('Karla'), local('Karla-Regular'),\n url(https://fonts.gstatic.com/s/karla/v5/31P4mP32i98D9CEnGyeX9Q.woff2) format('woff2');\n unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;\n }\n @font-face {\n font-family: 'Karla';\n font-style: normal;\n font-weight: 400;\n src: local('Karla'), local('Karla-Regular'),\n url(https://fonts.gstatic.com/s/karla/v5/Zi_e6rBgGqv33BWF8WTq8g.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,\n U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;\n }\n\n button.${s}-button {\n font-family: 'Karla', sans-serif;\n\n border: ${i} 2px solid;\n border-radius: ${o="round"==t.corners?t.height/2:"square"==t.corners?2:t.corners}px;\n box-sizing: border-box;\n background: ${t.background?t.background:"none"};\n\n height: ${n}px;\n min-width: ${9.6*e}px;\n display: inline-block;\n position: absolute;\n top: 5%;\n left: 15%;\n cursor: pointer;\n }\n\n button.${s}-button:focus {\n outline: none;\n }\n\n /*\n * Logo\n */\n\n .${s}-logo {\n width: ${n}px;\n height: ${n}px;\n position: absolute;\n top:0px;\n left:0px;\n width: ${n-4}px;\n height: ${n-4}px;\n }\n .${s}-svg {\n fill: ${t.color};\n margin-top: ${(n-e*this.logoScale)/2-2}px;\n margin-left: ${n/3}px;\n }\n .${s}-svg-error {\n fill: ${t.color};\n display:none;\n margin-top: ${(n-28/18*e*this.logoScale)/2-2}px;\n margin-left: ${n/3}px;\n }\n\n\n /*\n * Title\n */\n\n .${s}-title {\n color: ${t.color};\n position: relative;\n font-size: ${e}px;\n padding-left: ${1.05*n}px;\n padding-right: ${o-10<5?n/3:o-10}px;\n }\n\n /*\n * disabled\n */\n\n button.${s}-button[disabled=true] {\n opacity: ${t.disabledOpacity};\n }\n\n button.${s}-button[disabled=true] > .${s}-logo > .${s}-svg {\n display:none;\n }\n\n button.${s}-button[disabled=true] > .${s}-logo > .${s}-svg-error {\n display:initial;\n }\n `}injectCSS(t){const e=document.createElement("style");e.innerHTML=t;const n=document.getElementsByTagName("head")[0];n.insertBefore(e,n.firstChild)}ifChild(t,e,n,i){const s=t.querySelector(`.${e}-${n}`);s&&i(s)}setTooltip(t){return this.domElement.title=t,this}show(){return this.domElement.style.display=this.__defaultDisplayStyle,this}hide(){return this.domElement.style.display="none",this}enable(){return this.__setDisabledAttribute(!1),this.__forceDisabled=!1,this}disable(){return this.__setDisabledAttribute(!0),this.__forceDisabled=!0,this}remove(){this.domElement.parentElement&&this.domElement.parentElement.removeChild(this.domElement)}__setDisabledAttribute(t){t||this.__forceDisabled?this.domElement.setAttribute("disabled","true"):this.domElement.removeAttribute("disabled")}__onXRButtonClick(){this.session?this.options.onEndSession(this.session):this.device&&("undefined"!=typeof DeviceMotionEvent&&"function"==typeof DeviceMotionEvent.requestPermission&&DeviceMotionEvent.requestPermission().then(t=>{"granted"===t&&window.addEventListener("devicemotion",()=>{})}).catch(console.error),"undefined"!=typeof DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission&&DeviceOrientationEvent.requestPermission().then(t=>{"granted"===t&&window.addEventListener("deviceorientation",()=>{})}).catch(console.error),this.options.onRequestSession(this.device))}__updateButtonState(){this.session?(this.setTitle(this.options.textExitXRTitle),this.setTooltip("Exit XR presentation"),this.__setDisabledAttribute(!1)):this.device?(this.setTitle(this.options.textEnterXRTitle),this.setTooltip("Enter XR"),this.__setDisabledAttribute(!1)):(this.setTitle(this.options.textXRNotFoundTitle),this.setTooltip("No XR headset found."),this.__setDisabledAttribute(!0))}}exports.default=t; },{}],"OcXM":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;class t{constructor(t){this._inputSource=t,this._pose,this.gamepad=t.gamepad}get pose(){return this.updatePose(),this._pose.transform.matrix}get position(){this.updatePose();const t=this._pose.transform.position;return new p5.Vector(t.x,t.y,t.z)}updatePose(){this._pose=window.p5xr.instance.frame.getPose(this._inputSource.gripSpace,window.p5xr.instance.xrRefSpace)}get trigger(){return this.updateGamepad(),this.gamepad.buttons[0]}get grip(){return this.updateGamepad(),this.gamepad.buttons[1]}get touchpad(){return this.updateGamepad(),this.gamepad.buttons[2]}get thumbstick(){return this.updateGamepad(),this.gamepad.buttons[3]}get touchpad2D(){return this.updateGamepad(),new p5.Vector(this.gamepad.axes[0],this.gamepad.axes[1])}get thumbstick2D(){return this.updateGamepad(),new p5.Vector(this.gamepad.axes[2],this.gamepad.axes[3])}updateGamepad(){this.gamepad=this._inputSource.gamepad}}exports.default=t; },{}],"QKDM":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=s(require("./p5xrViewer")),t=s(require("./p5xrButton")),i=s(require("./p5xrInput"));function s(e){return e&&e.__esModule?e:{default:e}}class n{constructor(){this.xrDevice=null,this.xrButton=null,this.isVR=null,this.xrSession=null,this.xrRefSpace=null,this.xrViewerSpace=null,this.xrHitTestSource=null,this.frame=null,this.gl=null,this.curClearColor=color(255,255,255),this.viewer=new e.default}removeLoadingElement(){const e=document.getElementById(window._loadingScreenId);e&&e.parentNode.removeChild(e)}_updatexr(){const e=p5.instance._renderer;e.ambientLightColors.length=0,e.specularColors=[1,1,1],e.directionalLightDirections.length=0,e.directionalLightDiffuseColors.length=0,e.directionalLightSpecularColors.length=0,e.pointLightPositions.length=0,e.pointLightDiffuseColors.length=0,e.pointLightSpecularColors.length=0,e.spotLightPositions.length=0,e.spotLightDirections.length=0,e.spotLightDiffuseColors.length=0,e.spotLightSpecularColors.length=0,e.spotLightAngle.length=0,e.spotLightConc.length=0,e._enableLighting=!1,e._tint=[255,255,255,255]}_setupxr(){createCanvas(windowWidth,windowHeight,WEBGL),p5.instance._setupDone=!0}init(){p5.instance._incrementPreload(),this._setupxr(),this.removeLoadingElement(),this.xrButton=new t.default({onRequestSession:this.onXRButtonClicked.bind(this),onEndSession:this.onSessionEnded.bind(this),textEnterXRTitle:this.isVR?"ENTER VR":"ENTER AR"});let e=document.querySelector("header");e||(e=document.createElement("header"),document.querySelector("body").appendChild(e)),e.appendChild(this.xrButton.domElement),navigator.xr&&this.sessionCheck()}disableButton(){this.xrButton.setTitle("AR Unavailable"),this.xrButton.setTooltip("No XR headset found."),this.xrButton.__setDisabledAttribute(!0)}sessionCheck(){const e=window.injectedPolyfill?" with polyfill":" without polyfill";this.isVR?navigator.xr.isSessionSupported("immersive-vr").then(t=>{t?(console.log(`VR supported${e}`),this.xrButton.setDevice(!0),this.isImmersive=!0):(console.log("This device does not support immersive VR sessions."),this.isImmersive=!1),this.xrButton.setDevice(!0)}).catch(e=>{console.log(e.message)}):navigator.xr.isSessionSupported("immersive-ar").then(t=>{t?(console.log(`AR supported ${e}`),this.xrButton.setDevice(!0)):this.disableButton()})}onXRFrame(e,t){const i=this.xrSession=t.session;if(null===i||null===this.gl)return;i.requestAnimationFrame(this.onXRFrame.bind(this));let s=this.xrRefSpace;this.isVR&&!this.isImmersive&&(s=this.getAdjustedRefSpace(this.xrRefSpace));const n=t.getViewerPose(this.xrRefSpace),r=i.renderState.baseLayer;if(this.frame=t,n){this.viewer.pose=t.getViewerPose(s),this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,r.framebuffer),this.isVR&&this._clearVR();let e=0;for(const t of this.viewer.pose.views){this.viewer.view=t;const i=r.getViewport(this.viewer.view);this.gl.viewport(i.x,i.y,i.width,i.height),this._updateViewport(i),this._drawEye(e),e++}}}_updateViewport(e){p5.instance._renderer._viewport[0]=e.x,p5.instance._renderer._viewport[1]=e.y,p5.instance._renderer._viewport[2]=e.width,p5.instance._renderer._viewport[3]=e.height}_drawEye(e){const t=window,i=t.setup,s=t.draw,n=t.calculate;if(this.isVR?0===e&&"function"==typeof n&&n():scale(.01),p5.instance._renderer.isP3D){if("function"==typeof s){void 0===i&&t.scale(t._pixelDensity,t._pixelDensity),this._updatexr(),p5.instance._inUserDraw=!0;try{s()}finally{p5.instance._inUserDraw=!1}1!==e&&this.isImmersive||t._setProperty("frameCount",t.frameCount+1)}}else console.error("Sketch does not have 3D Renderer")}getXRInput(e){let t;return this.xrSession.inputSources.forEach(s=>{s.handedness==e&&(t=new i.default(s))}),t}onSessionEnded(){this.isVR||(this.xrHitTestSource.cancel(),this.xrHitTestSource=null),this.xrSession&&(this.xrSession.end(),this.xrSession=null);const e=document.getElementsByClassName("p5Canvas");for(;e.length>0;)e[0].parentNode.removeChild(e[0]);this.xrButton.session=null,this.xrButton.setTitle(this.isVR?"ENTER VR":"ENTER AR"),this.gl=null}printUnsupportedMessage(){console.warn("Your browser/hardware does not work with AR Mode currently. This is undergoing heavy development currently.You may be able to fix this by enabling WebXR flags in Chrome.")}remove(){this.xrButton&&this.xrButton.remove(),window.p5xr.instance=null}get instance(){return window.p5xr.instance}set instance(e){return window.p5xr.instance=e,window.p5xr.instance}}exports.default=n; },{"./p5xrViewer":"OW83","./p5xrButton":"Rl5r","./p5xrInput":"OcXM"}],"pooP":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("gl-matrix"),t=i(require("../core/p5xr"));function i(e){return e&&e.__esModule?e:{default:e}}class s extends t.default{constructor(){super(),this.isVR=!0,this.isImmersive=!0,this.lookYaw=0,this.lookPitch=0,this.LOOK_SPEED=.0025,this.primaryTouch=void 0,this.prevTouchX=void 0,this.prevTouchY=void 0}initVR(){this.init()}startSketch(e){this.xrSession=this.xrButton.session=e,this.canvas=p5.instance.canvas,this.canvas.style.visibility="visible",this.xrSession.addEventListener("end",this.onSessionEnded.bind(this)),"function"==typeof window.setup&&window.setup(),this.onRequestSession()}onXRButtonClicked(){this.isImmersive?(console.log("requesting session with mode: immersive-vr"),navigator.xr.requestSession("immersive-vr").then(this.startSketch.bind(this))):(console.log("requesting session with mode: non-immersive-vr"),this.xrButton.hide(),navigator.xr.requestSession("inline").then(this.startSketch.bind(this)))}onRequestSession(){this.xrButton.setTitle(this.isVR?"EXIT VR":"EXIT AR"),p5.instance._renderer._curCamera.cameraType="custom",this.gl=this.canvas.getContext("webgl",{xrCompatible:!0}),this.xrSession.updateRenderState({baseLayer:new XRWebGLLayer(this.xrSession,this.gl)});const e=this.isImmersive?"local":"viewer";this.xrSession.requestReferenceSpace(e).then(e=>{this.xrRefSpace=e,this.xrSession.requestAnimationFrame(this.onXRFrame.bind(this)),this.isImmersive||(this.xrSession.updateRenderState({inlineVerticalFieldOfView:Math.PI/180*90}),this.addInlineViewListeners(this.canvas))})}_clearVR(){null!==this.curClearColor&&(p5.instance.background(this.curClearColor),this.gl.clear(this.gl.DEPTH_BUFFER_BIT))}getAdjustedRefSpace(t){const i=e.quat.create();e.quat.rotateX(i,i,-this.lookPitch),e.quat.rotateY(i,i,-this.lookYaw);const s=new XRRigidTransform({x:0,y:0,z:0},{x:i[0],y:i[1],z:i[2],w:i[3]});return t.getOffsetReferenceSpace(s)}rotateView(e,t){this.lookYaw+=e*this.LOOK_SPEED,this.lookPitch+=t*this.LOOK_SPEED,this.lookPitch<.5*-Math.PI&&(this.lookPitch=.5*-Math.PI),this.lookPitch>.5*Math.PI&&(this.lookPitch=.5*Math.PI)}addInlineViewListeners(e){this.canvas.addEventListener("mousemove",e=>{e.buttons&&this.rotateView(e.movementX,e.movementY)}),this.canvas.addEventListener("touchstart",e=>{if(void 0===this.primaryTouch){const t=e.changedTouches[0];this.primaryTouch=t.identifier,this.prevTouchX=t.pageX,this.prevTouchY=t.pageY}}),e.addEventListener("touchend",e=>{for(const t of e.changedTouches)this.primaryTouch===t.identifier&&(this.primaryTouch=void 0,this.rotateView(t.pageX-this.prevTouchX,t.pageY-this.prevTouchY))}),e.addEventListener("touchcancel",e=>{for(const t of e.changedTouches)this.primaryTouch===t.identifier&&(this.primaryTouch=void 0)}),e.addEventListener("touchmove",e=>{for(const t of e.changedTouches)this.primaryTouch===t.identifier&&(this.rotateView(t.pageX-this.prevTouchX,t.pageY-this.prevTouchY),this.prevTouchX=t.pageX,this.prevTouchY=t.pageY)})}}exports.default=s; },{"gl-matrix":"CPlc","../core/p5xr":"QKDM"}],"NyZf":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;class s{constructor(s,t,i){this.position={x:100*s,y:100*t,z:100*i}}dispose(){}isTracking(){}isStopped(){}transform(){translate(this.position.x,this.position.y,this.position.z)}}exports.default=s; },{}],"lmQh":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=s(require("../core/p5xr")),t=s(require("./ARAnchor"));function s(e){return e&&e.__esModule?e:{default:e}}class r extends e.default{constructor(){super(),this.canvas=null}startSketch(e){this.xrSession=this.xrButton.session=e,this.xrSession.addEventListener("end",this.onSessionEnded),"function"==typeof touchStarted&&this.xrSession.addEventListener("select",touchStarted),this.canvas=p5.instance.canvas,p5.instance._renderer._curCamera.cameraType="custom",this.onRequestSession(),p5.instance._decrementPreload()}onSelect(e){const t=window.mousePressed;"function"==typeof t&&t()}detectHit(e){if(null==e)return console.warn("You must pass the touchStarted event to detectHit."),null;if(!this.xrSession)return null;e.clientY,window.innerHeight,e.clientX,window.innerWidth;if(this.xrHitTestSource&&this.viewer.pose&&this.frame){const e=this.frame.getHitTestResults(this.xrHitTestSource);if(e.length>0){const t=e[0].getPose(this.xrRefSpace);return createVector(t.transform.position.x,t.transform.position.y,t.transform.position.z)}}}createAnchor(e){return null==e?null:new t.default(e.x,e.y,e.z)}onXRButtonClicked(e){window.injectedPolyfill?console.log("ARCORE mode is not supported with a polyfill. Try using a more recent browser version"):(navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia,navigator.xr.requestSession("immersive-ar",{requiredFeatures:["local","hit-test"]}).then(e=>{this.startSketch(e)},e=>{console.log(`${e} unable to request an immersive-ar session.`)}))}onRequestSession(){this.gl=this.canvas.getContext("webgl",{xrCompatible:!0}),this.gl.makeXRCompatible().then(()=>{this.xrSession.updateRenderState({baseLayer:new XRWebGLLayer(this.xrSession,this.gl)})}),this.xrSession.requestReferenceSpace("viewer").then(e=>{this.xrViewerSpace=e,this.xrSession.requestHitTestSource({space:this.xrViewerSpace}).then(e=>{this.xrHitTestSource=e})}),this.xrSession.requestReferenceSpace("local").then(e=>{this.xrRefSpace=e,this.xrSession.requestAnimationFrame(this.onXRFrame.bind(this))})}}exports.default=r; },{"../core/p5xr":"QKDM","./ARAnchor":"NyZf"}],"NyeQ":[function(require,module,exports) { "use strict";var i=t(require("./p5xrViewer"));function t(i){return i&&i.__esModule?i:{default:i}}i.default.prototype.getRayFromScreen=function(i,t){const n={origin:new p5.Vector(0,0,0),direction:new p5.Vector};let r=this.poseMatrix.copy();r.transpose(r),r=r.mat4,n.origin.x=r[3],n.origin.y=r[7],n.origin.z=r[11];let e=this.initialMVMatrix.copy();e.transpose(e),e=e.mat4;const o=n.origin.copy();n.origin.x=e[0]*o.x+e[1]*o.y+e[2]*o.z+e[3],n.origin.y=e[4]*o.x+e[5]*o.y+e[6]*o.z+e[7],n.origin.z=e[8]*o.x+e[9]*o.y+e[10]*o.z+e[11];const c=new p5.Vector(i,t,-1);let p=new p5.Matrix;p.invert(this.leftPMatrix.copy()),p.transpose(p),p=p.mat4;const a=c.copy();c.x=p[0]*a.x+p[1]*a.y+p[2]*a.z,c.y=p[4]*a.x+p[5]*a.y+p[6]*a.z,c.normalize();const y=new p5.Vector(i,t,-1);let s=new p5.Matrix;s.invert(this.rightPMatrix.copy()),s.transpose(s),s=s.mat4;const x=y.copy();return y.x=s[0]*x.x+s[1]*x.y+s[2]*x.z,y.y=s[4]*x.x+s[5]*x.y+s[6]*x.z,y.normalize(),n.direction=p5.Vector.add(c,y).normalize(),n},p5.prototype.intersectsSphere=function(){const i=arguments[0];let t={origin:null,direction:null};if(2===arguments.length&&arguments[1].hasOwnProperty("origin"))t.origin=arguments[1].origin.copy(),t.direction=arguments[1].direction.copy();else{const i=arguments[1]||0,n=arguments[2]||0;t=p5xr.instance.viewer.getRayFromScreen(i,n)}if(null===t)return!1;let n=p5.instance._renderer.uMVMatrix.copy();n.transpose(n),n=n.mat4;const r=new p5.Vector(0,0,0);if(r.x=n[3],r.y=n[7],r.z=n[11],p5.Vector.sub(t.origin,r).mag()<=i)return!0;if(p5.Vector.dot(p5.Vector.sub(r,t.origin),t.direction)<0)return!1;const e=p5.Vector.sub(t.origin,r),o=2*p5.Vector.dot(t.direction,e);return o*o-4*(p5.Vector.mag(e)*p5.Vector.mag(e)-i*i)>=0},p5.prototype.intersectsBox=function(){const i=arguments[0];let t,n,r={origin:null,direction:null};arguments[arguments.length-1].hasOwnProperty("origin")?(r.origin=arguments[arguments.length-1].origin.copy(),r.direction=arguments[arguments.length-1].direction.copy(),t=arguments.length>2?arguments[1]:i,n=arguments.length>3?arguments[2]:t):5===arguments.length?(r=p5xr.instance.viewer.getRayFromScreen(arguments[3],arguments[4]),t=arguments[1],n=arguments[2]):(r=p5xr.instance.viewer.getRayFromScreen(0,0),t=arguments.length>1?arguments[1]:i,n=arguments.length>2?arguments[2]:t);let e=p5.instance._renderer.uMVMatrix.copy();e.transpose(e),e.invert(e),e=e.mat4;const o=r.origin.copy();r.origin.x=e[0]*o.x+e[1]*o.y+e[2]*o.z+e[3],r.origin.y=e[4]*o.x+e[5]*o.y+e[6]*o.z+e[7],r.origin.z=e[8]*o.x+e[9]*o.y+e[10]*o.z+e[11];const c=r.direction.copy();r.direction.x=e[0]*c.x+e[1]*c.y+e[2]*c.z,r.direction.y=e[4]*c.x+e[5]*c.y+e[6]*c.z,r.direction.z=e[8]*c.x+e[9]*c.y+e[10]*c.z,r.direction.normalize();const p=new p5.Vector(-.5*i,-.5*t,-.5*n),a=new p5.Vector(.5*i,.5*t,.5*n),y=(p.x-r.origin.x)/r.direction.x,s=(a.x-r.origin.x)/r.direction.x,x=(p.y-r.origin.y)/r.direction.y,g=(a.y-r.origin.y)/r.direction.y,l=(p.z-r.origin.z)/r.direction.z,d=(a.z-r.origin.z)/r.direction.z,z=Math.max(Math.max(Math.min(y,s),Math.min(x,g)),Math.min(l,d)),u=Math.min(Math.min(Math.max(y,s),Math.max(x,g)),Math.max(l,d));return!(u<0||z>u)},p5.prototype.intersectsPlane=function(){let i={origin:null,direction:null};arguments[0].hasOwnProperty("origin")?(i.origin=arguments[0].origin.copy(),i.direction=arguments[0].direction.copy()):i=p5xr.instance.viewer.getRayFromScreen(arguments[0],arguments[1]);let t=p5.instance._renderer.uMVMatrix.copy();t.transpose(t),t.invert(t),t=t.mat4;const n=i.origin.copy();i.origin.x=t[0]*n.x+t[1]*n.y+t[2]*n.z+t[3],i.origin.y=t[4]*n.x+t[5]*n.y+t[6]*n.z+t[7],i.origin.z=t[8]*n.x+t[9]*n.y+t[10]*n.z+t[11];const r=i.direction.copy();i.direction.x=t[0]*r.x+t[1]*r.y+t[2]*r.z,i.direction.y=t[4]*r.x+t[5]*r.y+t[6]*r.z,i.direction.z=t[8]*r.x+t[9]*r.y+t[10]*r.z,i.direction.normalize();const e=new p5.Vector(0,0,1),o=new p5.Vector(0,0,0),c=p5.Vector.sub(o,i.origin),p=Math.abs(p5.Vector.dot(i.direction,e));if(0===p)return null;const a=Math.abs(p5.Vector.dot(c,e)/p),y=p5.Vector.add(i.origin,i.direction.copy().setMag(a));return createVector(y.x,y.y)},p5.prototype.generateRay=function(i,t,n,r,e,o){const c=new p5.Vector(i,t,n);let p=new p5.Vector(r,e,o);(p=p5.Vector.sub(p,c)).normalize();let a=p5.instance._renderer.uMVMatrix.copy();a.transpose(a),a=a.mat4;const y=c.copy();c.x=a[0]*y.x+a[1]*y.y+a[2]*y.z+a[3],c.y=a[4]*y.x+a[5]*y.y+a[6]*y.z+a[7],c.z=a[8]*y.x+a[9]*y.y+a[10]*y.z+a[11];const s=p.copy();return p.x=a[0]*s.x+a[1]*s.y+a[2]*s.z,p.y=a[4]*s.x+a[5]*s.y+a[6]*s.z,p.z=a[8]*s.x+a[9]*s.y+a[10]*s.z,p.normalize(),{origin:c,direction:p}}; },{"./p5xrViewer":"OW83"}],"A2T1":[function(require,module,exports) { "use strict";var e=r(require("webxr-polyfill")),n=r(require("./p5xr/p5vr/p5vr")),t=r(require("./p5xr/p5ar/p5ar"));function r(e){return e&&e.__esModule?e:{default:e}}function o(){"xr"in navigator==!1?(window.injectedPolyfill=!0,window.polyfill=new e.default):window.injectedPolyfill=!1}require("./p5xr/core/raycasting"),window.p5xr={instance:null},o(),p5.prototype.createVRCanvas=function(){noLoop(),p5xr.instance=new n.default,p5xr.instance.initVR()},p5.prototype.createARCanvas=function(){noLoop(),p5xr.instance=new t.default,p5xr.instance.init()},p5.prototype.setVRBackgroundColor=function(e,n,t){p5xr.instance.curClearColor=color(e,n,t)},p5.prototype.surroundTexture=function(e){push(),texture(e),rotateX(PI),scale(-1,1,1),sphere(300,60,40),pop()},p5.prototype.createAnchor=function(e){if(!p5xr.instance.isVR)return p5xr.instance.createAnchor(e)},p5.prototype.detectHit=function(e){if(!p5xr.instance.isVR)return p5xr.instance.detectHit(e)},p5.prototype.getXRInput=function(e){if(0!==p5xr.instance.xrSession.inputSources.length)return p5xr.instance.getXRInput(e)}; },{"webxr-polyfill":"LEBx","./p5xr/p5vr/p5vr":"pooP","./p5xr/p5ar/p5ar":"lmQh","./p5xr/core/raycasting":"NyeQ"}]},{},["A2T1"], null)