MCPcopy Index your code
hub / github.com/plotly/plotly.py / te

Function te

js/lib/mimeExtension.js:2617–2617  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2615 gl_FragColor.a *= opacity;
2616 }
2617 `,uniforms:{range:a.prop("range"),lineWidth:a.prop("lineWidth"),capSize:a.prop("capSize"),opacity:a.prop("opacity"),scale:a.prop("scale"),translate:a.prop("translate"),scaleFract:a.prop("scaleFract"),translateFract:a.prop("translateFract"),viewport:(y,f)=>[f.viewport.x,f.viewport.y,y.viewportWidth,y.viewportHeight]},attributes:{color:{buffer:T,offset:(y,f)=>f.offset*4,divisor:1},position:{buffer:m,offset:(y,f)=>f.offset*8,divisor:1},positionFract:{buffer:d,offset:(y,f)=>f.offset*8,divisor:1},error:{buffer:l,offset:(y,f)=>f.offset*16,divisor:1},direction:{buffer:_,stride:24,offset:0},lineOffset:{buffer:_,stride:24,offset:8},capOffset:{buffer:_,stride:24,offset:16}},primitive:"triangles",blend:{enable:!0,color:[0,0,0,0],equation:{rgb:"add",alpha:"add"},func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},depth:{enable:!1},scissor:{enable:!0,box:a.prop("viewport")},viewport:a.prop("viewport"),stencil:!1,instances:a.prop("count"),count:i.length}),e(M,{update:v,draw:g,destroy:u,regl:a,gl:h,canvas:h.canvas,groups:A}),M;function M(y){y?v(y):y===null&&u(),g()}function g(y){if(typeof y=="number")return b(y);y&&!Array.isArray(y)&&(y=[y]),a._refresh(),A.forEach((f,R)=>{if(f){if(y&&(y[R]?f.draw=!0:f.draw=!1),!f.draw){f.draw=!0;return}b(R)}})}function b(y){typeof y=="number"&&(y=A[y]),y!=null&&y&&y.count&&y.color&&y.opacity&&y.positions&&y.positions.length>1&&(y.scaleRatio=[y.scale[0]*y.viewport.width,y.scale[1]*y.viewport.height],c(y),y.after&&y.after(y))}function v(y){if(!y)return;y.length!=null?typeof y[0]=="number"&&(y=[{positions:y}]):Array.isArray(y)||(y=[y]);let f=0,R=0;if(M.groups=A=y.map((F,N)=>{let B=A[N];if(F)typeof F=="function"?F={after:F}:typeof F[0]=="number"&&(F={positions:F});else return B;return F=E(F,{color:"color colors fill",capSize:"capSize cap capsize cap-size",lineWidth:"lineWidth line-width width line thickness",opacity:"opacity alpha",range:"range dataBox",viewport:"viewport viewBox",errors:"errors error",positions:"positions position data points"}),B||(A[N]=B={id:N,scale:null,translate:null,scaleFract:null,translateFract:null,draw:!0},F=e({},w,F)),S(B,F,[{lineWidth:I=>+I*.5,capSize:I=>+I*.5,opacity:parseFloat,errors:I=>(I=t(I),R+=I.length,I),positions:(I,U)=>(I=t(I,"float64"),U.count=Math.floor(I.length/2),U.bounds=p(I,2),U.offset=f,f+=U.count,I)},{color:(I,U)=>{let O=U.count;if(I||(I="transparent"),!Array.isArray(I)||typeof I[0]=="number"){let J=I;I=Array(O);for(let se=0;se<O;se++)I[se]=J}if(I.length<O)throw Error("Not enough colors");let X=new Uint8Array(O*4);for(let J=0;J<O;J++){let se=x(I[J],"uint8");X.set(se,J*4)}return X},range:(I,U,O)=>{let X=U.bounds;return I||(I=X),U.scale=[1/(I[2]-I[0]),1/(I[3]-I[1])],U.translate=[-I[0],-I[1]],U.scaleFract=o(U.scale),U.translateFract=o(U.translate),I},viewport:I=>{let U;return Array.isArray(I)?U={x:I[0],y:I[1],width:I[2]-I[0],height:I[3]-I[1]}:I?(U={x:I.x||I.left||0,y:I.y||I.top||0},I.right?U.width=I.right-U.x:U.width=I.w||I.width||0,I.bottom?U.height=I.bottom-U.y:U.height=I.h||I.height||0):U={x:0,y:0,width:h.drawingBufferWidth,height:h.drawingBufferHeight},U}}]),B}),f||R){let F=A.reduce((U,O,X)=>U+(O?O.count:0),0),N=new Float64Array(F*2),B=new Uint8Array(F*4),I=new Float32Array(F*4);A.forEach((U,O)=>{if(!U)return;let{positions:X,count:J,offset:se,color:le,errors:ce}=U;J&&(B.set(le,se*4),I.set(ce,se*4),N.set(X,se*2))});var L=r(N);m(L);var z=o(N,L);d(z),T(B),l(I)}}function u(){m.destroy(),d.destroy(),T.destroy(),l.destroy(),_.destroy()}}}}),O8=De({"node_modules/unquote/index.js"(Y,H){var p=/[\'\"]/;H.exports=function(S){return S?(p.test(S.charAt(0))&&(S=S.substr(1)),p.test(S.charAt(S.length-1))&&(S=S.substr(0,S.length-1)),S):""}}}),N5=De({"node_modules/css-global-keywords/index.json"(Y,H){H.exports=["inherit","initial","unset"]}}),U5=De({"node_modules/css-system-font-keywords/index.json"(Y,H){H.exports=["caption","icon","menu","message-box","small-caption","status-bar"]}}),j5=De({"node_modules/css-font-weight-keywords/index.json"(Y,H){H.exports=["normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900"]}}),V5=De({"node_modules/css-font-style-keywords/index.json"(Y,H){H.exports=["normal","italic","oblique"]}}),q5=De({"node_modules/css-font-stretch-keywords/index.json"(Y,H){H.exports=["normal","condensed","semi-condensed","extra-condensed","ultra-condensed","expanded","semi-expanded","extra-expanded","ultra-expanded"]}}),N8=De({"node_modules/parenthesis/index.js"(Y,H){"use strict";function p(E,e){if(typeof E!="string")return[E];var t=[E];typeof e=="string"||Array.isArray(e)?e={brackets:e}:e||(e={});var r=e.brackets?Array.isArray(e.brackets)?e.brackets:[e.brackets]:["{}","[]","()"],o=e.escape||"___",i=!!e.flat;r.forEach(function(s){var h=new RegExp(["\\",s[0],"[^\\",s[0],"\\",s[1],"]*\\",s[1]].join("")),c=[];function m(d,T,l){var _=t.push(d.slice(s[0].length,-s[1].length))-1;return c.push(_),o+_+o}t.forEach(function(d,T){for(var l,_=0;d!=l;)if(l=d,d=d.replace(h,m),_++>1e4)throw Error("References have circular dependency. Please, check them.");t[T]=d}),c=c.reverse(),t=t.map(function(d){return c.forEach(function(T){d=d.replace(new RegExp("(\\"+o+T+"\\"+o+")","g"),s[0]+"$1"+s[1])}),d})});var n=new RegExp("\\"+o+"([0-9]+)\\"+o);function a(s,h,c){for(var m=[],d,T=0;d=n.exec(s);){if(T++>1e4)throw Error("Circular references in parenthesis");m.push(s.slice(0,d.index)),m.push(a(h[d[1]],h)),s=s.slice(d.index+d[0].length)}return m.push(s),m}return i?t:a(t[0],t)}function x(E,e){if(e&&e.flat){var t=e&&e.escape||"___",r=E[0],o;if(!r)return"";for(var i=new RegExp("\\"+t+"([0-9]+)\\"+t),n=0;r!=o;){if(n++>1e4)throw Error("Circular references in "+E);o=r,r=r.replace(i,a)}return r}return E.reduce(function s(h,c){return Array.isArray(c)&&(c=c.reduce(s,"")),h+c},"");function a(s,h){if(E[h]==null)throw Error("Reference "+h+"is undefined");return E[h]}}function S(E,e){return Array.isArray(E)?x(E,e):p(E,e)}S.parse=p,S.stringify=x,H.exports=S}}),U8=De({"node_modules/string-split-by/index.js"(Y,H){"use strict";var p=N8();H.exports=function(S,E,e){if(S==null)throw Error("First argument should be a string");if(E==null)throw Error("Separator should be a string or a RegExp");e?(typeof e=="string"||Array.isArray(e))&&(e={ignore:e}):e={},e.escape==null&&(e.escape=!0),e.ignore==null?e.ignore=["[]","()","{}","<>",'""',"''","``","\u201C\u201D","\xAB\xBB"]:(typeof e.ignore=="string"&&(e.ignore=[e.ignore]),e.ignore=e.ignore.map(function(h){return h.length===1&&(h=h+h),h}));var t=p.parse(S,{flat:!0,brackets:e.ignore}),r=t[0],o=r.split(E);if(e.escape){for(var i=[],n=0;n<o.length;n++){var a=o[n],s=o[n+1];a[a.length-1]==="\\"&&a[a.length-2]!=="\\"?(i.push(a+E+s),n++):i.push(a)}o=i}for(var n=0;n<o.length;n++)t[0]=o[n],o[n]=p.stringify(t,{flat:!0});return o}}}),j8=De({"node_modules/css-font-size-keywords/index.json"(Y,H){H.exports=["xx-small","x-small","small","medium","large","x-large","xx-large","larger","smaller"]}}),H5=De({"node_modules/css-font/lib/util.js"(Y,H){"use strict";var p=j8();H.exports={isSize:function(S){return/^[\d\.]/.test(S)||S.indexOf("/")!==-1||p.indexOf(S)!==-1}}}}),V8=De({"node_modules/css-font/parse.js"(Y,H){"use strict";var p=O8(),x=N5(),S=U5(),E=j5(),e=V5(),t=q5(),r=U8(),o=H5().isSize;H.exports=n;var i=n.cache={};function n(s){if(typeof s!="string")throw new Error("Font argument must be a string.");if(i[s])return i[s];if(s==="")throw new Error("Cannot parse an empty string.");if(S.indexOf(s)!==-1)return i[s]={system:s};for(var h={style:"normal",variant:"normal",weight:"normal",stretch:"normal",lineHeight:"normal",size:"1rem",family:["serif"]},c=r(s,/\s+/),m;m=c.shift();){if(x.indexOf(m)!==-1)return["style","variant","weight","stretch"].forEach(function(T){h[T]=m}),i[s]=h;if(e.indexOf(m)!==-1){h.style=m;continue}if(m==="normal"||m==="small-caps"){h.variant=m;continue}if(t.indexOf(m)!==-1){h.stretch=m;continue}if(E.indexOf(m)!==-1){h.weight=m;continue}if(o(m)){var d=r(m,"/");if(h.size=d[0],d[1]!=null?h.lineHeight=a(d[1]):c[0]==="/"&&(c.shift(),h.lineHeight=a(c.shift())),!c.length)throw new Error("Missing required font-family.");return h.family=r(c.join(" "),/\s*,\s*/).map(p),i[s]=h}throw new Error("Unknown or unsupported font token: "+m)}throw new Error("Missing required font-size.")}function a(s){var h=parseFloat(s);return h.toString()===s?h:s}}}),G5=De({"node_modules/css-font/stringify.js"(Y,H){"use strict";var p=Nv(),x=H5().isSize,S=s(N5()),E=s(U5()),e=s(j5()),t=s(V5()),r=s(q5()),o={normal:1,"small-caps":1},i={serif:1,"sans-serif":1,monospace:1,cursive:1,fantasy:1,"system-ui":1},n={style:"normal",variant:"normal",weight:"normal",stretch:"normal",size:"1rem",lineHeight:"normal",family:"serif"};H.exports=function(c){if(c=p(c,{style:"style fontstyle fontStyle font-style slope distinction",variant:"variant font-variant fontVariant fontvariant var capitalization",weight:"weight w font-weight fontWeight fontweight",stretch:"stretch font-stretch fontStretch fontstretch width",size:"size s font-size fontSize fontsize height em emSize",lineHeight:"lh line-height lineHeight lineheight leading",family:"font family fontFamily font-family fontfamily type typeface face",system:"system reserved default global"}),c.system)return c.system&&a(c.system,E),c.system;if(a(c.style,t),a(c.variant,o),a(c.weight,e),a(c.stretch,r),c.size==null&&(c.size=n.size),typeof c.size=="number"&&(c.size+="px"),!x)throw Error("Bad size value `"+c.size+"`");c.family||(c.family=n.family),Array.isArray(c.family)&&(c.family.length||(c.family=[n.family]),c.family=c.family.map(function(d){return i[d]?d:'"'+d+'"'}).join(", "));var m=[];return m.push(c.style),c.variant!==c.style&&m.push(c.variant),c.weight!==c.variant&&c.weight!==c.style&&m.push(c.weight),c.stretch!==c.weight&&c.stretch!==c.variant&&c.stretch!==c.style&&m.push(c.stretch),m.push(c.size+(c.lineHeight==null||c.lineHeight==="normal"||c.lineHeight+""=="1"?"":"/"+c.lineHeight)),m.push(c.family),m.filter(Boolean).join(" ")};function a(h,c){if(h&&!c[h]&&!S[h])throw Error("Unknown keyword `"+h+"`");return h}function s(h){for(var c={},m=0;m<h.length;m++)c[h[m]]=1;return c}}}),q8=De({"node_modules/css-font/index.js"(Y,H){"use strict";H.exports={parse:V8(),stringify:G5()}}}),H8=De({"node_modules/regl/dist/regl.unchecked.js"(Y,H){(function(p,x){typeof Y=="object"&&typeof H<"u"?H.exports=x():p.createREGL=x()})(Y,function(){"use strict";var p=function(rt,Yt){for(var hr=Object.keys(Yt),li=0;li<hr.length;++li)rt[hr[li]]=Yt[hr[li]];return rt},x=0,S=0,E=5,e=6;function t(rt,Yt){this.id=x++,this.type=rt,this.data=Yt}function r(rt){return rt.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function o(rt){if(rt.length===0)return[];var Yt=rt.charAt(0),hr=rt.charAt(rt.length-1);if(rt.length>1&&Yt===hr&&(Yt==='"'||Yt==="'"))return['"'+r(rt.substr(1,rt.length-2))+'"'];var li=/\[(false|true|null|\d+|'[^']*'|"[^"]*")\]/.exec(rt);if(li)return o(rt.substr(0,li.index)).concat(o(li[1])).concat(o(rt.substr(li.index+li[0].length)));var Ci=rt.split(".");if(Ci.length===1)return['"'+r(rt)+'"'];for(var Ti=[],Mi=0;Mi<Ci.length;++Mi)Ti=Ti.concat(o(Ci[Mi]));return Ti}function i(rt){return"["+o(rt).join("][")+"]"}function n(rt,Yt){return new t(rt,i(Yt+""))}function a(rt){return typeof rt=="function"&&!rt._reglType||rt instanceof t}function s(rt,Yt){if(typeof rt=="function")return new t(S,rt);if(typeof rt=="number"||typeof rt=="boolean")return new t(E,rt);if(Array.isArray(rt))return new t(e,rt.map(function(hr,li){return s(hr,Yt+"["+li+"]")}));if(rt instanceof t)return rt}var h={DynamicVariable:t,define:n,isDynamic:a,unbox:s,accessor:i},c={next:typeof requestAnimationFrame=="function"?function(rt){return requestAnimationFrame(rt)}:function(rt){return setTimeout(rt,16)},cancel:typeof cancelAnimationFrame=="function"?function(rt){return cancelAnimationFrame(rt)}:clearTimeout},m=typeof performance<"u"&&performance.now?function(){return performance.now()}:function(){return+new Date};function d(){var rt={"":0},Yt=[""];return{id:function(hr){var li=rt[hr];return li||(li=rt[hr]=Yt.length,Yt.push(hr),li)},str:function(hr){return Yt[hr]}}}function T(rt,Yt,hr){var li=document.createElement("canvas");p(li.style,{border:0,margin:0,padding:0,top:0,left:0,width:"100%",height:"100%"}),rt.appendChild(li),rt===document.body&&(li.style.position="absolute",p(rt.style,{margin:0,padding:0}));function Ci(){var ia=window.innerWidth,ka=window.innerHeight;if(rt!==document.body){var Sa=li.getBoundingClientRect();ia=Sa.right-Sa.left,ka=Sa.bottom-Sa.top}li.width=hr*ia,li.height=hr*ka}var Ti;rt!==document.body&&typeof ResizeObserver=="function"?(Ti=new ResizeObserver(function(){setTimeout(Ci)}),Ti.observe(rt)):window.addEventListener("resize",Ci,!1);function Mi(){Ti?Ti.disconnect():window.removeEventListener("resize",Ci),rt.removeChild(li)}return Ci(),{canvas:li,onDestroy:Mi}}function l(rt,Yt){function hr(li){try{return rt.getContext(li,Yt)}catch{return null}}return hr("webgl")||hr("experimental-webgl")||hr("webgl-experimental")}function _(rt){return typeof rt.nodeName=="string"&&typeof rt.appendChild=="function"&&typeof rt.getBoundingClientRect=="function"}function w(rt){return typeof rt.drawArrays=="function"||typeof rt.drawElements=="function"}function A(rt){return typeof rt=="string"?rt.split():rt}function M(rt){return typeof rt=="string"?document.querySelector(rt):rt}function g(rt){var Yt=rt||{},hr,li,Ci,Ti,Mi={},ia=[],ka=[],Sa=typeof window>"u"?1:window.devicePixelRatio,va=!1,Fn={},Ha=function(ei){},Da=function(){};if(typeof Yt=="string"?hr=document.querySelector(Yt):typeof Yt=="object"&&(_(Yt)?hr=Yt:w(Yt)?(Ti=Yt,Ci=Ti.canvas):("gl"in Yt?Ti=Yt.gl:"canvas"in Yt?Ci=M(Yt.canvas):"container"in Yt&&(li=M(Yt.container)),"attributes"in Yt&&(Mi=Yt.attributes),"extensions"in Yt&&(ia=A(Yt.extensions)),"optionalExtensions"in Yt&&(ka=A(Yt.optionalExtensions)),"onDone"in Yt&&(Ha=Yt.onDone),"profile"in Yt&&(va=!!Yt.profile),"pixelRatio"in Yt&&(Sa=+Yt.pixelRatio),"cachedCode"in Yt&&(Fn=Yt.cachedCode))),hr&&(hr.nodeName.toLowerCase()==="canvas"?Ci=hr:li=hr),!Ti){if(!Ci){var Xi=T(li||document.body,Ha,Sa);if(!Xi)return null;Ci=Xi.canvas,Da=Xi.onDestroy}Mi.premultipliedAlpha===void 0&&(Mi.premultipliedAlpha=!0),Ti=l(Ci,Mi)}return Ti?{gl:Ti,canvas:Ci,container:li,extensions:ia,optionalExtensions:ka,pixelRatio:Sa,profile:va,cachedCode:Fn,onDone:Ha,onDestroy:Da}:(Da(),Ha("webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org"),null)}function b(rt,Yt){var hr={};function li(Mi){var ia=Mi.toLowerCase(),ka;try{ka=hr[ia]=rt.getExtension(ia)}catch{}return!!ka}for(var Ci=0;Ci<Yt.extensions.length;++Ci){var Ti=Yt.extensions[Ci];if(!li(Ti))return Yt.onDestroy(),Yt.onDone('"'+Ti+'" extension is not supported by the current WebGL context, try upgrading your system or a different browser'),null}return Yt.optionalExtensions.forEach(li),{extensions:hr,restore:function(){Object.keys(hr).forEach(function(Mi){if(hr[Mi]&&!li(Mi))throw new Error("(regl): error restoring extension "+Mi)})}}}function v(rt,Yt){for(var hr=Array(rt),li=0;li<rt;++li)hr[li]=Yt(li);return hr}var u=5120,y=5121,f=5122,R=5123,L=5124,z=5125,F=5126;function N(rt){for(var Yt=16;Yt<=1<<28;Yt*=16)if(rt<=Yt)return Yt;return 0}function B(rt){var Yt,hr;return Yt=(rt>65535)<<4,rt>>>=Yt,hr=(rt>255)<<3,rt>>>=hr,Yt|=hr,hr=(rt>15)<<2,rt>>>=hr,Yt|=hr,hr=(rt>3)<<1,rt>>>=hr,Yt|=hr,Yt|rt>>1}function I(){var rt=v(8,function(){return[]});function Yt(Ti){var Mi=N(Ti),ia=rt[B(Mi)>>2];return ia.length>0?ia.pop():new ArrayBuffer(Mi)}function hr(Ti){rt[B(Ti.byteLength)>>2].push(Ti)}function li(Ti,Mi){var ia=null;switch(Ti){case u:ia=new Int8Array(Yt(Mi),0,Mi);break;case y:ia=new Uint8Array(Yt(Mi),0,Mi);break;case f:ia=new Int16Array(Yt(2*Mi),0,Mi);break;case R:ia=new Uint16Array(Yt(2*Mi),0,Mi);break;case L:ia=new Int32Array(Yt(4*Mi),0,Mi);break;case z:ia=new Uint32Array(Yt(4*Mi),0,Mi);break;case F:ia=new Float32Array(Yt(4*Mi),0,Mi);break;default:return null}return ia.length!==Mi?ia.subarray(0,Mi):ia}function Ci(Ti){hr(Ti.buffer)}return{alloc:Yt,free:hr,allocType:li,freeType:Ci}}var U=I();U.zero=I();var O=3408,X=3410,J=3411,se=3412,le=3413,ce=3414,q=3415,Z=33901,ee=33902,V=3379,oe=3386,ie=34921,j=36347,Q=36348,re=35661,ue=35660,_e=34930,we=36349,Re=34076,ze=34024,Xe=7936,tt=7937,it=7938,et=35724,nt=34047,Ae=36063,me=34852,fe=3553,Be=34067,Qe=34069,at=33984,$e=6408,It=5126,Pt=5121,Vt=36160,Wt=36053,Cr=36064,yr=16384,qr=function(rt,Yt){var hr=1;Yt.ext_texture_filter_anisotropic&&(hr=rt.getParameter(nt));var li=1,Ci=1;Yt.webgl_draw_buffers&&(li=rt.getParameter(me),Ci=rt.getParameter(Ae));var Ti=!!Yt.oes_texture_float;if(Ti){var Mi=rt.createTexture();rt.bindTexture(fe,Mi),rt.texImage2D(fe,0,$e,1,1,0,$e,It,null);var ia=rt.createFramebuffer();if(rt.bindFramebuffer(Vt,ia),rt.framebufferTexture2D(Vt,Cr,fe,Mi,0),rt.bindTexture(fe,null),rt.checkFramebufferStatus(Vt)!==Wt)Ti=!1;else{rt.viewport(0,0,1,1),rt.clearColor(1,0,0,1),rt.clear(yr);var ka=U.allocType(It,4);rt.readPixels(0,0,1,1,$e,It,ka),rt.getError()?Ti=!1:(rt.deleteFramebuffer(ia),rt.deleteTexture(Mi),Ti=ka[0]===1),U.freeType(ka)}}var Sa=typeof navigator<"u"&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion)||/Edge/.test(navigator.userAgent)),va=!0;if(!Sa){var Fn=rt.createTexture(),Ha=U.allocType(Pt,36);rt.activeTexture(at),rt.bindTexture(Be,Fn),rt.texImage2D(Qe,0,$e,3,3,0,$e,Pt,Ha),U.freeType(Ha),rt.bindTexture(Be,null),rt.deleteTexture(Fn),va=!rt.getError()}return{colorBits:[rt.getParameter(X),rt.getParameter(J),rt.getParameter(se),rt.getParameter(le)],depthBits:rt.getParameter(ce),stencilBits:rt.getParameter(q),subpixelBits:rt.getParameter(O),extensions:Object.keys(Yt).filter(function(Da){return!!Yt[Da]}),maxAnisotropic:hr,maxDrawbuffers:li,maxColorAttachments:Ci,pointSizeDims:rt.getParameter(Z),lineWidthDims:rt.getParameter(ee),maxViewportDims:rt.getParameter(oe),maxCombinedTextureUnits:rt.getParameter(re),maxCubeMapSize:rt.getParameter(Re),maxRenderbufferSize:rt.getParameter(ze),maxTextureUnits:rt.getParameter(_e),maxTextureSize:rt.getParameter(V),maxAttributes:rt.getParameter(ie),maxVertexUniforms:rt.getParameter(j),maxVertexTextureUnits:rt.getParameter(ue),maxVaryingVectors:rt.getParameter(Q),maxFragmentUniforms:rt.getParameter(we),glsl:rt.getParameter(et),renderer:rt.getParameter(tt),vendor:rt.getParameter(Xe),version:rt.getParameter(it),readFloat:Ti,npotTextureCube:va}},Mr=function(rt){return rt instanceof Uint8Array||rt instanceof Uint16Array||rt instanceof Uint32Array||rt instanceof Int8Array||rt instanceof Int16Array||rt instanceof Int32Array||rt instanceof Float32Array||rt instanceof Float64Array||rt instanceof Uint8ClampedArray};function Dr(rt){return!!rt&&typeof rt=="object"&&Array.isArray(rt.shape)&&Array.isArray(rt.stride)&&typeof rt.offset=="number"&&rt.shape.length===rt.stride.length&&(Array.isArray(rt.data)||Mr(rt.data))}var xt=function(rt){return Object.keys(rt).map(function(Yt){return rt[Yt]})},Ne={shape:Me,flatten:ke};function Ye(rt,Yt,hr){for(var li=0;li<Yt;++li)hr[li]=rt[li]}function be(rt,Yt,hr,li){for(var Ci=0,Ti=0;Ti<Yt;++Ti)for(var Mi=rt[Ti],ia=0;ia<hr;++ia)li[Ci++]=Mi[ia]}function Ie(rt,Yt,hr,li,Ci,Ti){for(var Mi=Ti,ia=0;ia<Yt;++ia)for(var ka=rt[ia],Sa=0;Sa<hr;++Sa)for(var va=ka[Sa],Fn=0;Fn<li;++Fn)Ci[Mi++]=va[Fn]}function qe(rt,Yt,hr,li,Ci){for(var Ti=1,Mi=hr+1;Mi<Yt.length;++Mi)Ti*=Yt[Mi];var ia=Yt[hr];if(Yt.length-hr===4){var ka=Yt[hr+1],Sa=Yt[hr+2],va=Yt[hr+3];for(Mi=0;Mi<ia;++Mi)Ie(rt[Mi],ka,Sa,va,li,Ci),Ci+=Ti}else for(Mi=0;Mi<ia;++Mi)qe(rt[Mi],Yt,hr+1,li,Ci),Ci+=Ti}function ke(rt,Yt,hr,li){var Ci=1;if(Yt.length)for(var Ti=0;Ti<Yt.length;++Ti)Ci*=Yt[Ti];else Ci=0;var Mi=li||U.allocType(hr,Ci);switch(Yt.length){case 0:break;case 1:Ye(rt,Yt[0],Mi);break;case 2:be(rt,Yt[0],Yt[1],Mi);break;case 3:Ie(rt,Yt[0],Yt[1],Yt[2],Mi,0);break;default:qe(rt,Yt,0,Mi,0)}return Mi}function Me(rt){for(var Yt=[],hr=rt;hr.length;hr=hr[0])Yt.push(hr.length);return Yt}var Le={"[object Int8Array]":5120,"[object Int16Array]":5122,"[object Int32Array]":5124,"[object Uint8Array]":5121,"[object Uint8ClampedArray]":5121,"[object Uint16Array]":5123,"[object Uint32Array]":5125,"[object Float32Array]":5126,"[object Float64Array]":5121,"[object ArrayBuffer]":5121},ut=5120,lt=5122,gt=5124,kt=5121,nr=5123,ir=5125,tr=5126,Ir=5126,vi={int8:ut,int16:lt,int32:gt,uint8:kt,uint16:nr,uint32:ir,float:tr,float32:Ir},Vi=35048,Ui=35040,Ki={dynamic:Vi,stream:Ui,static:35044},ea=Ne.flatten,Bi=Ne.shape,_a=35044,Ca=35040,Kt=5121,zt=5126,Zt=[];Zt[5120]=1,Zt[5122]=2,Zt[5124]=4,Zt[5121]=1,Zt[5123]=2,Zt[5125]=4,Zt[5126]=4;function Jt(rt){return Le[Object.prototype.toString.call(rt)]|0}function Br(rt,Yt){for(var hr=0;hr<Yt.length;++hr)rt[hr]=Yt[hr]}function ri(rt,Yt,hr,li,Ci,Ti,Mi){for(var ia=0,ka=0;ka<hr;++ka)for(var Sa=0;Sa<li;++Sa)rt[ia++]=Yt[Ci*ka+Ti*Sa+Mi]}function ii(rt,Yt,hr,li){var Ci=0,Ti={};function Mi(ei){this.id=Ci++,this.buffer=rt.createBuffer(),this.type=ei,this.usage=_a,this.byteLength=0,this.dimension=1,this.dtype=Kt,this.persistentData=null,hr.profile&&(this.stats={size:0})}Mi.prototype.bind=function(){rt.bindBuffer(this.type,this.buffer)},Mi.prototype.destroy=function(){Ha(this)};var ia=[];function ka(ei,zi){var la=ia.pop();return la||(la=new Mi(ei)),la.bind(),Fn(la,zi,Ca,0,1,!1),la}function Sa(ei){ia.push(ei)}function va(ei,zi,la){ei.byteLength=zi.byteLength,rt.bufferData(ei.type,zi,la)}function Fn(ei,zi,la,ba,$i,Xa){var Oa;if(ei.usage=la,Array.isArray(zi)){if(ei.dtype=ba||zt,zi.length>0){var kn;if(Array.isArray(zi[0])){Oa=Bi(zi);for(var Qi=1,Yi=1;Yi<Oa.length;++Yi)Qi*=Oa[Yi];ei.dimension=Qi,kn=ea(zi,Oa,ei.dtype),va(ei,kn,la),Xa?ei.persistentData=kn:U.freeType(kn)}else if(typeof zi[0]=="number"){ei.dimension=$i;var ln=U.allocType(ei.dtype,zi.length);Br(ln,zi),va(ei,ln,la),Xa?ei.persistentData=ln:U.freeType(ln)}else Mr(zi[0])&&(ei.dimension=zi[0].length,ei.dtype=ba||Jt(zi[0])||zt,kn=ea(zi,[zi.length,zi[0].length],ei.dtype),va(ei,kn,la),Xa?ei.persistentData=kn:U.freeType(kn))}}else if(Mr(zi))ei.dtype=ba||Jt(zi),ei.dimension=$i,va(ei,zi,la),Xa&&(ei.persistentData=new Uint8Array(new Uint8Array(zi.buffer)));else if(Dr(zi)){Oa=zi.shape;var Va=zi.stride,La=zi.offset,Ea=0,on=0,Pn=0,Zn=0;Oa.length===1?(Ea=Oa[0],on=1,Pn=Va[0],Zn=0):Oa.length===2&&(Ea=Oa[0],on=Oa[1],Pn=Va[0],Zn=Va[1]),ei.dtype=ba||Jt(zi.data)||zt,ei.dimension=on;var ja=U.allocType(ei.dtype,Ea*on);ri(ja,zi.data,Ea,on,Pn,Zn,La),va(ei,ja,la),Xa?ei.persistentData=ja:U.freeType(ja)}else zi instanceof ArrayBuffer&&(ei.dtype=Kt,ei.dimension=$i,va(ei,zi,la),Xa&&(ei.persistentData=new Uint8Array(new Uint8Array(zi))))}function Ha(ei){Yt.bufferCount--,li(ei);var zi=ei.buffer;rt.deleteBuffer(zi),ei.buffer=null,delete Ti[ei.id]}function Da(ei,zi,la,ba){Yt.bufferCount++;var $i=new Mi(zi);Ti[$i.id]=$i;function Xa(Qi){var Yi=_a,ln=null,Va=0,La=0,Ea=1;return Array.isArray(Qi)||Mr(Qi)||Dr(Qi)||Qi instanceof ArrayBuffer?ln=Qi:typeof Qi=="number"?Va=Qi|0:Qi&&("data"in Qi&&(ln=Qi.data),"usage"in Qi&&(Yi=Ki[Qi.usage]),"type"in Qi&&(La=vi[Qi.type]),"dimension"in Qi&&(Ea=Qi.dimension|0),"length"in Qi&&(Va=Qi.length|0)),$i.bind(),ln?Fn($i,ln,Yi,La,Ea,ba):(Va&&rt.bufferData($i.type,Va,Yi),$i.dtype=La||Kt,$i.usage=Yi,$i.dimension=Ea,$i.byteLength=Va),hr.profile&&($i.stats.size=$i.byteLength*Zt[$i.dtype]),Xa}function Oa(Qi,Yi){rt.bufferSubData($i.type,Yi,Qi)}function kn(Qi,Yi){var ln=(Yi||0)|0,Va;if($i.bind(),Mr(Qi)||Qi instanceof ArrayBuffer)Oa(Qi,ln);else if(Array.isArray(Qi)){if(Qi.length>0){if(typeof Qi[0]=="number"){var La=U.allocType($i.dtype,Qi.length);Br(La,Qi),Oa(La,ln),U.freeType(La)}else if(Array.isArray(Qi[0])||Mr(Qi[0])){Va=Bi(Qi);var Ea=ea(Qi,Va,$i.dtype);Oa(Ea,ln),U.freeType(Ea)}}}else if(Dr(Qi)){Va=Qi.shape;var on=Qi.stride,Pn=0,Zn=0,ja=0,gn=0;Va.length===1?(Pn=Va[0],Zn=1,ja=on[0],gn=0):Va.length===2&&(Pn=Va[0],Zn=Va[1],ja=on[0],gn=on[1]);var Wn=Array.isArray(Qi.data)?$i.dtype:Jt(Qi.data),$n=U.allocType(Wn,Pn*Zn);ri($n,Qi.data,Pn,Zn,ja,gn,Qi.offset),Oa($n,ln),U.freeType($n)}return Xa}return la||Xa(ei),Xa._reglType="buffer",Xa._buffer=$i,Xa.subdata=kn,hr.profile&&(Xa.stats=$i.stats),Xa.destroy=function(){Ha($i)},Xa}function Xi(){xt(Ti).forEach(function(ei){ei.buffer=rt.createBuffer(),rt.bindBuffer(ei.type,ei.buffer),rt.bufferData(ei.type,ei.persistentData||ei.byteLength,ei.usage)})}return hr.profile&&(Yt.getTotalBufferSize=function(){var ei=0;return Object.keys(Ti).forEach(function(zi){ei+=Ti[zi].stats.size}),ei}),{create:Da,createStream:ka,destroyStream:Sa,clear:function(){xt(Ti).forEach(Ha),ia.forEach(Ha)},getBuffer:function(ei){return ei&&ei._buffer instanceof Mi?ei._buffer:null},restore:Xi,_initBuffer:Fn}}var di=0,Wi=0,oa=1,ra=1,ca=4,xa=4,ji={points:di,point:Wi,lines:oa,line:ra,triangles:ca,triangle:xa,"line loop":2,"line strip":3,"triangle strip":5,"triangle fan":6},pn=0,_n=1,En=4,bt=5120,st=5121,Nr=5122,Lr=5123,br=5124,Rr=5125,jr=34963,Wr=35040,yt=35044;function Xt(rt,Yt,hr,li){var Ci={},Ti=0,Mi={uint8:st,uint16:Lr};Yt.oes_element_index_uint&&(Mi.uint32=Rr);function ia(Xi){this.id=Ti++,Ci[this.id]=this,this.buffer=Xi,this.primType=En,this.vertCount=0,this.type=0}ia.prototype.bind=function(){this.buffer.bind()};var ka=[];function Sa(Xi){var ei=ka.pop();return ei||(ei=new ia(hr.create(null,jr,!0,!1)._buffer)),Fn(ei,Xi,Wr,-1,-1,0,0),ei}function va(Xi){ka.push(Xi)}function Fn(Xi,ei,zi,la,ba,$i,Xa){Xi.buffer.bind();var Oa;if(ei){var kn=Xa;!Xa&&(!Mr(ei)||Dr(ei)&&!Mr(ei.data))&&(kn=Yt.oes_element_index_uint?Rr:Lr),hr._initBuffer(Xi.buffer,ei,zi,kn,3)}else rt.bufferData(jr,$i,zi),Xi.buffer.dtype=Oa||st,Xi.buffer.usage=zi,Xi.buffer.dimension=3,Xi.buffer.byteLength=$i;if(Oa=Xa,!Xa){switch(Xi.buffer.dtype){case st:case bt:Oa=st;break;case Lr:case Nr:Oa=Lr;break;case Rr:case br:Oa=Rr;break;default:}Xi.buffer.dtype=Oa}Xi.type=Oa;var Qi=ba;Qi<0&&(Qi=Xi.buffer.byteLength,Oa===Lr?Qi>>=1:Oa===Rr&&(Qi>>=2)),Xi.vertCount=Qi;var Yi=la;if(la<0){Yi=En;var ln=Xi.buffer.dimension;ln===1&&(Yi=pn),ln===2&&(Yi=_n),ln===3&&(Yi=En)}Xi.primType=Yi}function Ha(Xi){li.elementsCount--,delete Ci[Xi.id],Xi.buffer.destroy(),Xi.buffer=null}function Da(Xi,ei){var zi=hr.create(null,jr,!0),la=new ia(zi._buffer);li.elementsCount++;function ba($i){if(!$i)zi(),la.primType=En,la.vertCount=0,la.type=st;else if(typeof $i=="number")zi($i),la.primType=En,la.vertCount=$i|0,la.type=st;else{var Xa=null,Oa=yt,kn=-1,Qi=-1,Yi=0,ln=0;Array.isArray($i)||Mr($i)||Dr($i)?Xa=$i:("data"in $i&&(Xa=$i.data),"usage"in $i&&(Oa=Ki[$i.usage]),"primitive"in $i&&(kn=ji[$i.primitive]),"count"in $i&&(Qi=$i.count|0),"type"in $i&&(ln=Mi[$i.type]),"length"in $i?Yi=$i.length|0:(Yi=Qi,ln===Lr||ln===Nr?Yi*=2:(ln===Rr||ln===br)&&(Yi*=4))),Fn(la,Xa,Oa,kn,Qi,Yi,ln)}return ba}return ba(Xi),ba._reglType="elements",ba._elements=la,ba.subdata=function($i,Xa){return zi.subdata($i,Xa),ba},ba.destroy=function(){Ha(la)},ba}return{create:Da,createStream:Sa,destroyStream:va,getElements:function(Xi){return typeof Xi=="function"&&Xi._elements instanceof ia?Xi._elements:null},clear:function(){xt(Ci).forEach(Ha)}}}var mr=new Float32Array(1),Or=new Uint32Array(mr.buffer),ki=5123;function Ni(rt){for(var Yt=U.allocType(ki,rt.length),hr=0;hr<rt.length;++hr)if(isNaN(rt[hr]))Yt[hr]=65535;else if(rt[hr]===1/0)Yt[hr]=31744;else if(rt[hr]===-1/0)Yt[hr]=64512;else{mr[0]=rt[hr];var li=Or[0],Ci=li>>>31<<15,Ti=(li<<1>>>24)-127,Mi=li>>13&1023;if(Ti<-24)Yt[hr]=Ci;else if(Ti<-14){var ia=-14-Ti;Yt[hr]=Ci+(Mi+1024>>ia)}else Ti>15?Yt[hr]=Ci+31744:Yt[hr]=Ci+(Ti+15<<10)+Mi}return Yt}function Si(rt){return Array.isArray(rt)||Mr(rt)}var fi=34467,Li=3553,Ia=34067,Fa=34069,un=6408,Bn=6406,Kn=6407,Gn=6409,eo=6410,Ao=32854,An=32855,Eo=36194,fs=32819,Ls=32820,ns=33635,uo=34042,ss=6402,xs=34041,el=35904,Ss=35906,Co=36193,ao=33776,co=33777,Ms=33778,Gs=33779,ul=35986,hs=35987,rn=34798,Xn=35840,tl=35841,zs=35842,so=35843,$s=36196,Ps=5121,nl=5123,yl=5125,On=5126,Ko=10242,jo=10243,Ys=10497,Tu=33071,Lo=33648,al=10240,kl=10241,Ns=9728,rl=9729,Es=9984,Us=9985,Zl=9986,pu=9987,kc=33170,Au=4352,Sf=4353,Gc=4354,Js=34046,yc=3317,Zc=37440,mu=37441,Vl=37443,lc=37444,Gu=33984,_l=[Es,Zl,Us,pu],Cl=[0,Gn,eo,Kn,un],Fs={};Fs[Gn]=Fs[Bn]=Fs[ss]=1,Fs[xs]=Fs[eo]=2,Fs[Kn]=Fs[el]=3,Fs[un]=Fs[Ss]=4;function ol(rt){return"[object "+rt+"]"}var uc=ol("HTMLCanvasElement"),Kl=ol("OffscreenCanvas"),Zu=ol("CanvasRenderingContext2D"),Sl=ol("ImageBitmap"),vh=ol("HTMLImageElement"),ws=ol("HTMLVideoElement"),ph=Object.keys(Le).concat([uc,Kl,Zu,Sl,vh,ws]),qs=[];qs[Ps]=1,qs[On]=4,qs[Co]=2,qs[nl]=2,qs[yl]=4;var xo=[];xo[Ao]=2,xo[An]=2,xo[Eo]=2,xo[xs]=4,xo[ao]=.5,xo[co]=.5,xo[Ms]=1,xo[Gs]=1,xo[ul]=.5,xo[hs]=1,xo[rn]=1,xo[Xn]=.5,xo[tl]=.25,xo[zs]=.5,xo[so]=.25,xo[$s]=.5;function Kc(rt){return Array.isArray(rt)&&(rt.length===0||typeof rt[0]=="number")}function Ku(rt){if(!Array.isArray(rt))return!1;var Yt=rt.length;return!(Yt===0||!Si(rt[0]))}function $l(rt){return Object.prototype.toString.call(rt)}function Mf(rt){return $l(rt)===uc}function Cc(rt){return $l(rt)===Kl}function uf(rt){return $l(rt)===Zu}function su(rt){return $l(rt)===Sl}function Wf(rt){return $l(rt)===vh}function Rf(rt){return $l(rt)===ws}function cf(rt){if(!rt)return!1;var Yt=$l(rt);return ph.indexOf(Yt)>=0?!0:Kc(rt)||Ku(rt)||Dr(rt)}function Wc(rt){return Le[Object.prototype.toString.call(rt)]|0}function Df(rt,Yt){var hr=Yt.length;switch(rt.type){case Ps:case nl:case yl:case On:var li=U.allocType(rt.type,hr);li.set(Yt),rt.data=li;break;case Co:rt.data=Ni(Yt);break;default:}}function zf(rt,Yt){return U.allocType(rt.type===Co?On:rt.type,Yt)}function $u(rt,Yt){rt.type===Co?(rt.data=Ni(Yt),U.freeType(Yt)):rt.data=Yt}function Ef(rt,Yt,hr,li,Ci,Ti){for(var Mi=rt.width,ia=rt.height,ka=rt.channels,Sa=Mi*ia*ka,va=zf(rt,Sa),Fn=0,Ha=0;Ha<ia;++Ha)for(var Da=0;Da<Mi;++Da)for(var Xi=0;Xi<ka;++Xi)va[Fn++]=Yt[hr*Da+li*Ha+Ci*Xi+Ti];$u(rt,va)}function cc(rt,Yt,hr,li,Ci,Ti){var Mi;if(typeof xo[rt]<"u"?Mi=xo[rt]:Mi=Fs[rt]*qs[Yt],Ti&&(Mi*=6),Ci){for(var ia=0,ka=hr;ka>=1;)ia+=Mi*ka*ka,ka/=2;return ia}else return Mi*hr*li}function $c(rt,Yt,hr,li,Ci,Ti,Mi){var ia={"don't care":Au,"dont care":Au,nice:Gc,fast:Sf},ka={repeat:Ys,clamp:Tu,mirror:Lo},Sa={nearest:Ns,linear:rl},va=p({mipmap:pu,"nearest mipmap nearest":Es,"linear mipmap nearest":Us,"nearest mipmap linear":Zl,"linear mipmap linear":pu},Sa),Fn={none:0,browser:lc},Ha={uint8:Ps,rgba4:fs,rgb565:ns,"rgb5 a1":Ls},Da={alpha:Bn,luminance:Gn,"luminance alpha":eo,rgb:Kn,rgba:un,rgba4:Ao,"rgb5 a1":An,rgb565:Eo},Xi={};Yt.ext_srgb&&(Da.srgb=el,Da.srgba=Ss),Yt.oes_texture_float&&(Ha.float32=Ha.float=On),Yt.oes_texture_half_float&&(Ha.float16=Ha["half float"]=Co),Yt.webgl_depth_texture&&(p(Da,{depth:ss,"depth stencil":xs}),p(Ha,{uint16:nl,uint32:yl,"depth stencil":uo})),Yt.webgl_compressed_texture_s3tc&&p(Xi,{"rgb s3tc dxt1":ao,"rgba s3tc dxt1":co,"rgba s3tc dxt3":Ms,"rgba s3tc dxt5":Gs}),Yt.webgl_compressed_texture_atc&&p(Xi,{"rgb atc":ul,"rgba atc explicit alpha":hs,"rgba atc interpolated alpha":rn}),Yt.webgl_compressed_texture_pvrtc&&p(Xi,{"rgb pvrtc 4bppv1":Xn,"rgb pvrtc 2bppv1":tl,"rgba pvrtc 4bppv1":zs,"rgba pvrtc 2bppv1":so}),Yt.webgl_compressed_texture_etc1&&(Xi["rgb etc1"]=$s);var ei=Array.prototype.slice.call(rt.getParameter(fi));Object.keys(Xi).forEach(function(Ce){var Ke=Xi[Ce];ei.indexOf(Ke)>=0&&(Da[Ce]=Ke)});var zi=Object.keys(Da);hr.textureFormats=zi;var la=[];Object.keys(Da).forEach(function(Ce){var Ke=Da[Ce];la[Ke]=Ce});var ba=[];Object.keys(Ha).forEach(function(Ce){var Ke=Ha[Ce];ba[Ke]=Ce});var $i=[];Object.keys(Sa).forEach(function(Ce){var Ke=Sa[Ce];$i[Ke]=Ce});var Xa=[];Object.keys(va).forEach(function(Ce){var Ke=va[Ce];Xa[Ke]=Ce});var Oa=[];Object.keys(ka).forEach(function(Ce){var Ke=ka[Ce];Oa[Ke]=Ce});var kn=zi.reduce(function(Ce,Ke){var pt=Da[Ke];return pt===Gn||pt===Bn||pt===Gn||pt===eo||pt===ss||pt===xs||Yt.ext_srgb&&(pt===el||pt===Ss)?Ce[pt]=pt:pt===An||Ke.indexOf("rgba")>=0?Ce[pt]=un:Ce[pt]=Kn,Ce},{});function Qi(){this.internalformat=un,this.format=un,this.type=Ps,this.compressed=!1,this.premultiplyAlpha=!1,this.flipY=!1,this.unpackAlignment=1,this.colorSpace=lc,this.width=0,this.height=0,this.channels=0}function Yi(Ce,Ke){Ce.internalformat=Ke.internalformat,Ce.format=Ke.format,Ce.type=Ke.type,Ce.compressed=Ke.compressed,Ce.premultiplyAlpha=Ke.premultiplyAlpha,Ce.flipY=Ke.flipY,Ce.unpackAlignment=Ke.unpackAlignment,Ce.colorSpace=Ke.colorSpace,Ce.width=Ke.width,Ce.height=Ke.height,Ce.channels=Ke.channels}function ln(Ce,Ke){if(!(typeof Ke!="object"||!Ke)){if("premultiplyAlpha"in Ke&&(Ce.premultiplyAlpha=Ke.premultiplyAlpha),"flipY"in Ke&&(Ce.flipY=Ke.flipY),"alignment"in Ke&&(Ce.unpackAlignment=Ke.alignment),"colorSpace"in Ke&&(Ce.colorSpace=Fn[Ke.colorSpace]),"type"in Ke){var pt=Ke.type;Ce.type=Ha[pt]}var Ut=Ce.width,Tr=Ce.height,Ur=Ce.channels,vr=!1;"shape"in Ke?(Ut=Ke.shape[0],Tr=Ke.shape[1],Ke.shape.length===3&&(Ur=Ke.shape[2],vr=!0)):("radius"in Ke&&(Ut=Tr=Ke.radius),"width"in Ke&&(Ut=Ke.width),"height"in Ke&&(Tr=Ke.height),"channels"in Ke&&(Ur=Ke.channels,vr=!0)),Ce.width=Ut|0,Ce.height=Tr|0,Ce.channels=Ur|0;var mt=!1;if("format"in Ke){var Et=Ke.format,Bt=Ce.internalformat=Da[Et];Ce.format=kn[Bt],Et in Ha&&("type"in Ke||(Ce.type=Ha[Et])),Et in Xi&&(Ce.compressed=!0),mt=!0}!vr&&mt?Ce.channels=Fs[Ce.format]:vr&&!mt&&Ce.channels!==Cl[Ce.format]&&(Ce.format=Ce.internalformat=Cl[Ce.channels])}}function Va(Ce){rt.pixelStorei(Zc,Ce.flipY),rt.pixelStorei(mu,Ce.premultiplyAlpha),rt.pixelStorei(Vl,Ce.colorSpace),rt.pixelStorei(yc,Ce.unpackAlignment)}function La(){Qi.call(this),this.xOffset=0,this.yOffset=0,this.data=null,this.needsFree=!1,this.element=null,this.needsCopy=!1}function Ea(Ce,Ke){var pt=null;if(cf(Ke)?pt=Ke:Ke&&(ln(Ce,Ke),"x"in Ke&&(Ce.xOffset=Ke.x|0),"y"in Ke&&(Ce.yOffset=Ke.y|0),cf(Ke.data)&&(pt=Ke.data)),Ke.copy){var Ut=Ci.viewportWidth,Tr=Ci.viewportHeight;Ce.width=Ce.width||Ut-Ce.xOffset,Ce.height=Ce.height||Tr-Ce.yOffset,Ce.needsCopy=!0}else if(!pt)Ce.width=Ce.width||1,Ce.height=Ce.height||1,Ce.channels=Ce.channels||4;else if(Mr(pt))Ce.channels=Ce.channels||4,Ce.data=pt,!("type"in Ke)&&Ce.type===Ps&&(Ce.type=Wc(pt));else if(Kc(pt))Ce.channels=Ce.channels||4,Df(Ce,pt),Ce.alignment=1,Ce.needsFree=!0;else if(Dr(pt)){var Ur=pt.data;!Array.isArray(Ur)&&Ce.type===Ps&&(Ce.type=Wc(Ur));var vr=pt.shape,mt=pt.stride,Et,Bt,or,dr,ur,pr;vr.length===3?(or=vr[2],pr=mt[2]):(or=1,pr=1),Et=vr[0],Bt=vr[1],dr=mt[0],ur=mt[1],Ce.alignment=1,Ce.width=Et,Ce.height=Bt,Ce.channels=or,Ce.format=Ce.internalformat=Cl[or],Ce.needsFree=!0,Ef(Ce,Ur,dr,ur,pr,pt.offset)}else if(Mf(pt)||Cc(pt)||uf(pt))Mf(pt)||Cc(pt)?Ce.element=pt:Ce.element=pt.canvas,Ce.width=Ce.element.width,Ce.height=Ce.element.height,Ce.channels=4;else if(su(pt))Ce.element=pt,Ce.width=pt.width,Ce.height=pt.height,Ce.channels=4;else if(Wf(pt))Ce.element=pt,Ce.width=pt.naturalWidth,Ce.height=pt.naturalHeight,Ce.channels=4;else if(Rf(pt))Ce.element=pt,Ce.width=pt.videoWidth,Ce.height=pt.videoHeight,Ce.channels=4;else if(Ku(pt)){var cr=Ce.width||pt[0].length,Gt=Ce.height||pt.length,lr=Ce.channels;Si(pt[0][0])?lr=lr||pt[0][0].length:lr=lr||1;for(var qt=Ne.shape(pt),zr=1,$r=0;$r<qt.length;++$r)zr*=qt[$r];var Ai=zf(Ce,zr);Ne.flatten(pt,qt,"",Ai),$u(Ce,Ai),Ce.alignment=1,Ce.width=cr,Ce.height=Gt,Ce.channels=lr,Ce.format=Ce.internalformat=Cl[lr],Ce.needsFree=!0}Ce.type===On||Ce.type}function on(Ce,Ke,pt){var Ut=Ce.element,Tr=Ce.data,Ur=Ce.internalformat,vr=Ce.format,mt=Ce.type,Et=Ce.width,Bt=Ce.height;Va(Ce),Ut?rt.texImage2D(Ke,pt,vr,vr,mt,Ut):Ce.compressed?rt.compressedTexImage2D(Ke,pt,Ur,Et,Bt,0,Tr):Ce.needsCopy?(li(),rt.copyTexImage2D(Ke,pt,vr,Ce.xOffset,Ce.yOffset,Et,Bt,0)):rt.texImage2D(Ke,pt,vr,Et,Bt,0,vr,mt,Tr||null)}function Pn(Ce,Ke,pt,Ut,Tr){var Ur=Ce.element,vr=Ce.data,mt=Ce.internalformat,Et=Ce.format,Bt=Ce.type,or=Ce.width,dr=Ce.height;Va(Ce),Ur?rt.texSubImage2D(Ke,Tr,pt,Ut,Et,Bt,Ur):Ce.compressed?rt.compressedTexSubImage2D(Ke,Tr,pt,Ut,mt,or,dr,vr):Ce.needsCopy?(li(),rt.copyTexSubImage2D(Ke,Tr,pt,Ut,Ce.xOffset,Ce.yOffset,or,dr)):rt.texSubImage2D(Ke,Tr,pt,Ut,or,dr,Et,Bt,vr)}var Zn=[];function ja(){return Zn.pop()||new La}function gn(Ce){Ce.needsFree&&U.freeType(Ce.data),La.call(Ce),Zn.push(Ce)}function Wn(){Qi.call(this),this.genMipmaps=!1,this.mipmapHint=Au,this.mipmask=0,this.images=Array(16)}function $n(Ce,Ke,pt){var Ut=Ce.images[0]=ja();Ce.mipmask=1,Ut.width=Ce.width=Ke,Ut.height=Ce.height=pt,Ut.channels=Ce.channels=4}function fo(Ce,Ke){var pt=null;if(cf(Ke))pt=Ce.images[0]=ja(),Yi(pt,Ce),Ea(pt,Ke),Ce.mipmask=1;else if(ln(Ce,Ke),Array.isArray(Ke.mipmap))for(var Ut=Ke.mipmap,Tr=0;Tr<Ut.length;++Tr)pt=Ce.images[Tr]=ja(),Yi(pt,Ce),pt.width>>=Tr,pt.height>>=Tr,Ea(pt,Ut[Tr]),Ce.mipmask|=1<<Tr;else pt=Ce.images[0]=ja(),Yi(pt,Ce),Ea(pt,Ke),Ce.mipmask=1;Yi(Ce,Ce.images[0]),Ce.compressed&&(Ce.internalformat===ao||Ce.internalformat===co||Ce.internalformat===Ms||Ce.internalformat)}function Ks(Ce,Ke){for(var pt=Ce.images,Ut=0;Ut<pt.length;++Ut){if(!pt[Ut])return;on(pt[Ut],Ke,Ut)}}var Rl=[];function Ro(){var Ce=Rl.pop()||new Wn;Qi.call(Ce),Ce.mipmask=0;for(var Ke=0;Ke<16;++Ke)Ce.images[Ke]=null;return Ce}function ru(Ce){for(var Ke=Ce.images,pt=0;pt<Ke.length;++pt)Ke[pt]&&gn(Ke[pt]),Ke[pt]=null;Rl.push(Ce)}function Cs(){this.minFilter=Ns,this.magFilter=Ns,this.wrapS=Tu,this.wrapT=Tu,this.anisotropic=1,this.genMipmaps=!1,this.mipmapHint=Au}function Ol(Ce,Ke){if("min"in Ke){var pt=Ke.min;Ce.minFilter=va[pt],_l.indexOf(Ce.minFilter)>=0&&!("faces"in Ke)&&(Ce.genMipmaps=!0)}if("mag"in Ke){var Ut=Ke.mag;Ce.magFilter=Sa[Ut]}var Tr=Ce.wrapS,Ur=Ce.wrapT;if("wrap"in Ke){var vr=Ke.wrap;typeof vr=="string"?Tr=Ur=ka[vr]:Array.isArray(vr)&&(Tr=ka[vr[0]],Ur=ka[vr[1]])}else{if("wrapS"in Ke){var mt=Ke.wrapS;Tr=ka[mt]}if("wrapT"in Ke){var Et=Ke.wrapT;Ur=ka[Et]}}if(Ce.wrapS=Tr,Ce.wrapT=Ur,"anisotropic"in Ke){var Bt=Ke.anisotropic;Ce.anisotropic=Ke.anisotropic}if("mipmap"in Ke){var or=!1;switch(typeof Ke.mipmap){case"string":Ce.mipmapHint=ia[Ke.mipmap],Ce.genMipmaps=!0,or=!0;break;case"boolean":or=Ce.genMipmaps=Ke.mipmap;break;case"object":Ce.genMipmaps=!1,or=!0;break;default:}or&&!("min"in Ke)&&(Ce.minFilter=Es)}}function Ul(Ce,Ke){rt.texParameteri(Ke,kl,Ce.minFilter),rt.texParameteri(Ke,al,Ce.magFilter),rt.texParameteri(Ke,Ko,Ce.wrapS),rt.texParameteri(Ke,jo,Ce.wrapT),Yt.ext_texture_filter_anisotropic&&rt.texParameteri(Ke,Js,Ce.anisotropic),Ce.genMipmaps&&(rt.hint(kc,Ce.mipmapHint),rt.generateMipmap(Ke))}var cu=0,il={},El=hr.maxTextureUnits,Dl=Array(El).map(function(){return null});function ho(Ce){Qi.call(this),this.mipmask=0,this.internalformat=un,this.id=cu++,this.refCount=1,this.target=Ce,this.texture=rt.createTexture(),this.unit=-1,this.bindCount=0,this.texInfo=new Cs,Mi.profile&&(this.stats={size:0})}function jl(Ce){rt.activeTexture(Gu),rt.bindTexture(Ce.target,Ce.texture)}function $o(){var Ce=Dl[0];Ce?rt.bindTexture(Ce.target,Ce.texture):rt.bindTexture(Li,null)}function ve(Ce){var Ke=Ce.texture,pt=Ce.unit,Ut=Ce.target;pt>=0&&(rt.activeTexture(Gu+pt),rt.bindTexture(Ut,null),Dl[pt]=null),rt.deleteTexture(Ke),Ce.texture=null,Ce.params=null,Ce.pixels=null,Ce.refCount=0,delete il[Ce.id],Ti.textureCount--}p(ho.prototype,{bind:function(){var Ce=this;Ce.bindCount+=1;var Ke=Ce.unit;if(Ke<0){for(var pt=0;pt<El;++pt){var Ut=Dl[pt];if(Ut){if(Ut.bindCount>0)continue;Ut.unit=-1}Dl[pt]=Ce,Ke=pt;break}Ke>=El,Mi.profile&&Ti.maxTextureUnits<Ke+1&&(Ti.maxTextureUnits=Ke+1),Ce.unit=Ke,rt.activeTexture(Gu+Ke),rt.bindTexture(Ce.target,Ce.texture)}return Ke},unbind:function(){this.bindCount-=1},decRef:function(){--this.refCount<=0&&ve(this)}});function K(Ce,Ke){var pt=new ho(Li);il[pt.id]=pt,Ti.textureCount++;function Ut(vr,mt){var Et=pt.texInfo;Cs.call(Et);var Bt=Ro();return typeof vr=="number"?typeof mt=="number"?$n(Bt,vr|0,mt|0):$n(Bt,vr|0,vr|0):vr?(Ol(Et,vr),fo(Bt,vr)):$n(Bt,1,1),Et.genMipmaps&&(Bt.mipmask=(Bt.width<<1)-1),pt.mipmask=Bt.mipmask,Yi(pt,Bt),pt.internalformat=Bt.internalformat,Ut.width=Bt.width,Ut.height=Bt.height,jl(pt),Ks(Bt,Li),Ul(Et,Li),$o(),ru(Bt),Mi.profile&&(pt.stats.size=cc(pt.internalformat,pt.type,Bt.width,Bt.height,Et.genMipmaps,!1)),Ut.format=la[pt.internalformat],Ut.type=ba[pt.type],Ut.mag=$i[Et.magFilter],Ut.min=Xa[Et.minFilter],Ut.wrapS=Oa[Et.wrapS],Ut.wrapT=Oa[Et.wrapT],Ut}function Tr(vr,mt,Et,Bt){var or=mt|0,dr=Et|0,ur=Bt|0,pr=ja();return Yi(pr,pt),pr.width=0,pr.height=0,Ea(pr,vr),pr.width=pr.width||(pt.width>>ur)-or,pr.height=pr.height||(pt.height>>ur)-dr,jl(pt),Pn(pr,Li,or,dr,ur),$o(),gn(pr),Ut}function Ur(vr,mt){var Et=vr|0,Bt=mt|0||Et;if(Et===pt.width&&Bt===pt.height)return Ut;Ut.width=pt.width=Et,Ut.height=pt.height=Bt,jl(pt);for(var or=0;pt.mipmask>>or;++or){var dr=Et>>or,ur=Bt>>or;if(!dr||!ur)break;rt.texImage2D(Li,or,pt.format,dr,ur,0,pt.format,pt.type,null)}return $o(),Mi.profile&&(pt.stats.size=cc(pt.internalformat,pt.type,Et,Bt,!1,!1)),Ut}return Ut(Ce,Ke),Ut.subimage=Tr,Ut.resize=Ur,Ut._reglType="texture2d",Ut._texture=pt,Mi.profile&&(Ut.stats=pt.stats),Ut.destroy=function(){pt.decRef()},Ut}function ge(Ce,Ke,pt,Ut,Tr,Ur){var vr=new ho(Ia);il[vr.id]=vr,Ti.cubeCount++;var mt=new Array(6);function Et(dr,ur,pr,cr,Gt,lr){var qt,zr=vr.texInfo;for(Cs.call(zr),qt=0;qt<6;++qt)mt[qt]=Ro();if(typeof dr=="number"||!dr){var $r=dr|0||1;for(qt=0;qt<6;++qt)$n(mt[qt],$r,$r)}else if(typeof dr=="object")if(ur)fo(mt[0],dr),fo(mt[1],ur),fo(mt[2],pr),fo(mt[3],cr),fo(mt[4],Gt),fo(mt[5],lr);else if(Ol(zr,dr),ln(vr,dr),"faces"in dr){var Ai=dr.faces;for(qt=0;qt<6;++qt)Yi(mt[qt],vr),fo(mt[qt],Ai[qt])}else for(qt=0;qt<6;++qt)fo(mt[qt],dr);for(Yi(vr,mt[0]),zr.genMipmaps?vr.mipmask=(mt[0].width<<1)-1:vr.mipmask=mt[0].mipmask,vr.internalformat=mt[0].internalformat,Et.width=mt[0].width,Et.height=mt[0].height,jl(vr),qt=0;qt<6;++qt)Ks(mt[qt],Fa+qt);for(Ul(zr,Ia),$o(),Mi.profile&&(vr.stats.size=cc(vr.internalformat,vr.type,Et.width,Et.height,zr.genMipmaps,!0)),Et.format=la[vr.internalformat],Et.type=ba[vr.type],Et.mag=$i[zr.magFilter],Et.min=Xa[zr.minFilter],Et.wrapS=Oa[zr.wrapS],Et.wrapT=Oa[zr.wrapT],qt=0;qt<6;++qt)ru(mt[qt]);return Et}function Bt(dr,ur,pr,cr,Gt){var lr=pr|0,qt=cr|0,zr=Gt|0,$r=ja();return Yi($r,vr),$r.width=0,$r.height=0,Ea($r,ur),$r.width=$r.width||(vr.width>>zr)-lr,$r.height=$r.height||(vr.height>>zr)-qt,jl(vr),Pn($r,Fa+dr,lr,qt,zr),$o(),gn($r),Et}function or(dr){var ur=dr|0;if(ur!==vr.width){Et.width=vr.width=ur,Et.height=vr.height=ur,jl(vr);for(var pr=0;pr<6;++pr)for(var cr=0;vr.mipmask>>cr;++cr)rt.texImage2D(Fa+pr,cr,vr.format,ur>>cr,ur>>cr,0,vr.format,vr.type,null);return $o(),Mi.profile&&(vr.stats.size=cc(vr.internalformat,vr.type,Et.width,Et.height,!1,!0)),Et}}return Et(Ce,Ke,pt,Ut,Tr,Ur),Et.subimage=Bt,Et.resize=or,Et._reglType="textureCube",Et._texture=vr,Mi.profile&&(Et.stats=vr.stats),Et.destroy=function(){vr.decRef()},Et}function te(){for(var Ce=0;Ce<El;++Ce)rt.activeTexture(Gu+Ce),rt.bindTexture(Li,null),Dl[Ce]=null;xt(il).forEach(ve),Ti.cubeCount=0,Ti.textureCount=0}Mi.profile&&(Ti.getTotalTextureSize=function(){var Ce=0;return Object.keys(il).forEach(function(Ke){Ce+=il[Ke].stats.size}),Ce});function pe(){for(var Ce=0;Ce<El;++Ce){var Ke=Dl[Ce];Ke&&(Ke.bindCount=0,Ke.unit=-1,Dl[Ce]=null)}xt(il).forEach(function(pt){pt.texture=rt.createTexture(),rt.bindTexture(pt.target,pt.texture);for(var Ut=0;Ut<32;++Ut)if(pt.mipmask&1<<Ut)if(pt.target===Li)rt.texImage2D(Li,Ut,pt.internalformat,pt.width>>Ut,pt.height>>Ut,0,pt.internalformat,pt.type,null);else for(var Tr=0;Tr<6;++Tr)rt.texImage2D(Fa+Tr,Ut,pt.internalformat,pt.width>>Ut,pt.height>>Ut,0,pt.internalformat,pt.type,null);Ul(pt.texInfo,pt.target)})}function He(){for(var Ce=0;Ce<El;++Ce){var Ke=Dl[Ce];Ke&&(Ke.bindCount=0,Ke.unit=-1,Dl[Ce]=null),rt.activeTexture(Gu+Ce),rt.bindTexture(Li,null),rt.bindTexture(Ia,null)}}return{create2D:K,createCube:ge,clear:te,getTexture:function(Ce){return null},restore:pe,refresh:He}}var lu=36161,Xc=32854,Lc=32855,sl=36194,kf=33189,ah=36168,Ff=34041,Jc=35907,Xf=34836,Fu=34842,Bf=34843,Ll=[];Ll[Xc]=2,Ll[Lc]=2,Ll[sl]=2,Ll[kf]=2,Ll[ah]=1,Ll[Ff]=4,Ll[Jc]=4,Ll[Xf]=16,Ll[Fu]=8,Ll[Bf]=6;function Bu(rt,Yt,hr){return Ll[rt]*Yt*hr}var Ic=function(rt,Yt,hr,li,Ci){var Ti={rgba4:Xc,rgb565:sl,"rgb5 a1":Lc,depth:kf,stencil:ah,"depth stencil":Ff};Yt.ext_srgb&&(Ti.srgba=Jc),Yt.ext_color_buffer_half_float&&(Ti.rgba16f=Fu,Ti.rgb16f=Bf),Yt.webgl_color_buffer_float&&(Ti.rgba32f=Xf);var Mi=[];Object.keys(Ti).forEach(function(Da){var Xi=Ti[Da];Mi[Xi]=Da});var ia=0,ka={};function Sa(Da){this.id=ia++,this.refCount=1,this.renderbuffer=Da,this.format=Xc,this.width=0,this.height=0,Ci.profile&&(this.stats={size:0})}Sa.prototype.decRef=function(){--this.refCount<=0&&va(this)};function va(Da){var Xi=Da.renderbuffer;rt.bindRenderbuffer(lu,null),rt.deleteRenderbuffer(Xi),Da.renderbuffer=null,Da.refCount=0,delete ka[Da.id],li.renderbufferCount--}function Fn(Da,Xi){var ei=new Sa(rt.createRenderbuffer());ka[ei.id]=ei,li.renderbufferCount++;function zi(ba,$i){var Xa=0,Oa=0,kn=Xc;if(typeof ba=="object"&&ba){var Qi=ba;if("shape"in Qi){var Yi=Qi.shape;Xa=Yi[0]|0,Oa=Yi[1]|0}else"radius"in Qi&&(Xa=Oa=Qi.radius|0),"width"in Qi&&(Xa=Qi.width|0),"height"in Qi&&(Oa=Qi.height|0);"format"in Qi&&(kn=Ti[Qi.format])}else typeof ba=="number"?(Xa=ba|0,typeof $i=="number"?Oa=$i|0:Oa=Xa):ba||(Xa=Oa=1);if(!(Xa===ei.width&&Oa===ei.height&&kn===ei.format))return zi.width=ei.width=Xa,zi.height=ei.height=Oa,ei.format=kn,rt.bindRenderbuffer(lu,ei.renderbuffer),rt.renderbufferStorage(lu,kn,Xa,Oa),Ci.profile&&(ei.stats.size=Bu(ei.format,ei.width,ei.height)),zi.format=Mi[ei.format],zi}function la(ba,$i){var Xa=ba|0,Oa=$i|0||Xa;return Xa===ei.width&&Oa===ei.height||(zi.width=ei.width=Xa,zi.height=ei.height=Oa,rt.bindRenderbuffer(lu,ei.renderbuffer),rt.renderbufferStorage(lu,ei.format,Xa,Oa),Ci.profile&&(ei.stats.size=Bu(ei.format,ei.width,ei.height))),zi}return zi(Da,Xi),zi.resize=la,zi._reglType="renderbuffer",zi._renderbuffer=ei,Ci.profile&&(zi.stats=ei.stats),zi.destroy=function(){ei.decRef()},zi}Ci.profile&&(li.getTotalRenderbufferSize=function(){var Da=0;return Object.keys(ka).forEach(function(Xi){Da+=ka[Xi].stats.size}),Da});function Ha(){xt(ka).forEach(function(Da){Da.renderbuffer=rt.createRenderbuffer(),rt.bindRenderbuffer(lu,Da.renderbuffer),rt.renderbufferStorage(lu,Da.format,Da.width,Da.height)}),rt.bindRenderbuffer(lu,null)}return{create:Fn,clear:function(){xt(ka).forEach(va)},restore:Ha}},xl=36160,_c=36161,Eu=3553,Iu=34069,Nl=36064,Of=36096,Yf=36128,Wu=33306,Pc=36053,xc=36193,_h=5121,ff=5126,yf=6407,Xu=6408,hf=[];hf[Xu]=4,hf[yf]=3;var hu=[];hu[_h]=1,hu[ff]=4,hu[xc]=2;function Qc(rt,Yt,hr,li,Ci,Ti){var Mi={cur:null,next:null,dirty:!1,setFBO:null},ia=["rgba"],ka=["rgba4","rgb565","rgb5 a1"];Yt.ext_srgb&&ka.push("srgba"),Yt.ext_color_buffer_half_float&&ka.push("rgba16f","rgb16f"),Yt.webgl_color_buffer_float&&ka.push("rgba32f");var Sa=["uint8"];Yt.oes_texture_half_float&&Sa.push("half float","float16"),Yt.oes_texture_float&&Sa.push("float","float32");function va(La,Ea,on){this.target=La,this.texture=Ea,this.renderbuffer=on;var Pn=0,Zn=0;Ea?(Pn=Ea.width,Zn=Ea.height):on&&(Pn=on.width,Zn=on.height),this.width=Pn,this.height=Zn}function Fn(La){La&&(La.texture&&La.texture._texture.decRef(),La.renderbuffer&&La.renderbuffer._renderbuffer.decRef())}function Ha(La,Ea,on){if(La)if(La.texture){var Pn=La.texture._texture,Zn=Math.max(1,Pn.width),ja=Math.max(1,Pn.height);Pn.refCount+=1}else{var gn=La.renderbuffer._renderbuffer;gn.refCount+=1}}function Da(La,Ea){Ea&&(Ea.texture?rt.framebufferTexture2D(xl,La,Ea.target,Ea.texture._texture.texture,0):rt.framebufferRenderbuffer(xl,La,_c,Ea.renderbuffer._renderbuffer.renderbuffer))}function Xi(La){var Ea=Eu,on=null,Pn=null,Zn=La;typeof La=="object"&&(Zn=La.data,"target"in La&&(Ea=La.target|0));var ja=Zn._reglType;return ja==="texture2d"||ja==="textureCube"?on=Zn:ja==="renderbuffer"&&(Pn=Zn,Ea=_c),new va(Ea,on,Pn)}function ei(La,Ea,on,Pn,Zn){if(on){var ja=li.create2D({width:La,height:Ea,format:Pn,type:Zn});return ja._texture.refCount=0,new va(Eu,ja,null)}else{var gn=Ci.create({width:La,height:Ea,format:Pn});return gn._renderbuffer.refCount=0,new va(_c,null,gn)}}function zi(La){return La&&(La.texture||La.renderbuffer)}function la(La,Ea,on){La&&(La.texture?La.texture.resize(Ea,on):La.renderbuffer&&La.renderbuffer.resize(Ea,on),La.width=Ea,La.height=on)}var ba=0,$i={};function Xa(){this.id=ba++,$i[this.id]=this,this.framebuffer=rt.createFramebuffer(),this.width=0,this.height=0,this.colorAttachments=[],this.depthAttachment=null,this.stencilAttachment=null,this.depthStencilAttachment=null}function Oa(La){La.colorAttachments.forEach(Fn),Fn(La.depthAttachment),Fn(La.stencilAttachment),Fn(La.depthStencilAttachment)}function kn(La){var Ea=La.framebuffer;rt.deleteFramebuffer(Ea),La.framebuffer=null,Ti.framebufferCount--,delete $i[La.id]}function Qi(La){var Ea;rt.bindFramebuffer(xl,La.framebuffer);var on=La.colorAttachments;for(Ea=0;Ea<on.length;++Ea)Da(Nl+Ea,on[Ea]);for(Ea=on.length;Ea<hr.maxColorAttachments;++Ea)rt.framebufferTexture2D(xl,Nl+Ea,Eu,null,0);rt.framebufferTexture2D(xl,Wu,Eu,null,0),rt.framebufferTexture2D(xl,Of,Eu,null,0),rt.framebufferTexture2D(xl,Yf,Eu,null,0),Da(Of,La.depthAttachment),Da(Yf,La.stencilAttachment),Da(Wu,La.depthStencilAttachment);var Pn=rt.checkFramebufferStatus(xl);rt.isContextLost(),rt.bindFramebuffer(xl,Mi.next?Mi.next.framebuffer:null),Mi.cur=Mi.next,rt.getError()}function Yi(La,Ea){var on=new Xa;Ti.framebufferCount++;function Pn(ja,gn){var Wn,$n=0,fo=0,Ks=!0,Rl=!0,Ro=null,ru=!0,Cs="rgba",Ol="uint8",Ul=1,cu=null,il=null,El=null,Dl=!1;if(typeof ja=="number")$n=ja|0,fo=gn|0||$n;else if(!ja)$n=fo=1;else{var ho=ja;if("shape"in ho){var jl=ho.shape;$n=jl[0],fo=jl[1]}else"radius"in ho&&($n=fo=ho.radius),"width"in ho&&($n=ho.width),"height"in ho&&(fo=ho.height);("color"in ho||"colors"in ho)&&(Ro=ho.color||ho.colors,Array.isArray(Ro)),Ro||("colorCount"in ho&&(Ul=ho.colorCount|0),"colorTexture"in ho&&(ru=!!ho.colorTexture,Cs="rgba4"),"colorType"in ho&&(Ol=ho.colorType,ru||(Ol==="half float"||Ol==="float16"?Cs="rgba16f":(Ol==="float"||Ol==="float32")&&(Cs="rgba32f"))),"colorFormat"in ho&&(Cs=ho.colorFormat,ia.indexOf(Cs)>=0?ru=!0:ka.indexOf(Cs)>=0&&(ru=!1))),("depthTexture"in ho||"depthStencilTexture"in ho)&&(Dl=!!(ho.depthTexture||ho.depthStencilTexture)),"depth"in ho&&(typeof ho.depth=="boolean"?Ks=ho.depth:(cu=ho.depth,Rl=!1)),"stencil"in ho&&(typeof ho.stencil=="boolean"?Rl=ho.stencil:(il=ho.stencil,Ks=!1)),"depthStencil"in ho&&(typeof ho.depthStencil=="boolean"?Ks=Rl=ho.depthStencil:(El=ho.depthStencil,Ks=!1,Rl=!1))}var $o=null,ve=null,K=null,ge=null;if(Array.isArray(Ro))$o=Ro.map(Xi);else if(Ro)$o=[Xi(Ro)];else for($o=new Array(Ul),Wn=0;Wn<Ul;++Wn)$o[Wn]=ei($n,fo,ru,Cs,Ol);$n=$n||$o[0].width,fo=fo||$o[0].height,cu?ve=Xi(cu):Ks&&!Rl&&(ve=ei($n,fo,Dl,"depth","uint32")),il?K=Xi(il):Rl&&!Ks&&(K=ei($n,fo,!1,"stencil","uint8")),El?ge=Xi(El):!cu&&!il&&Rl&&Ks&&(ge=ei($n,fo,Dl,"depth stencil","depth stencil"));var te=null;for(Wn=0;Wn<$o.length;++Wn)if(Ha($o[Wn],$n,fo),$o[Wn]&&$o[Wn].texture){var pe=hf[$o[Wn].texture._texture.format]*hu[$o[Wn].texture._texture.type];te===null&&(te=pe)}return Ha(ve,$n,fo),Ha(K,$n,fo),Ha(ge,$n,fo),Oa(on),on.width=$n,on.height=fo,on.colorAttachments=$o,on.depthAttachment=ve,on.stencilAttachment=K,on.depthStencilAttachment=ge,Pn.color=$o.map(zi),Pn.depth=zi(ve),Pn.stencil=zi(K),Pn.depthStencil=zi(ge),Pn.width=on.width,Pn.height=on.height,Qi(on),Pn}function Zn(ja,gn){var Wn=Math.max(ja|0,1),$n=Math.max(gn|0||Wn,1);if(Wn===on.width&&$n===on.height)return Pn;for(var fo=on.colorAttachments,Ks=0;Ks<fo.length;++Ks)la(fo[Ks],Wn,$n);return la(on.depthAttachment,Wn,$n),la(on.stencilAttachment,Wn,$n),la(on.depthStencilAttachment,Wn,$n),on.width=Pn.width=Wn,on.height=Pn.height=$n,Qi(on),Pn}return Pn(La,Ea),p(Pn,{resize:Zn,_reglType:"framebuffer",_framebuffer:on,destroy:function(){kn(on),Oa(on)},use:function(ja){Mi.setFBO({framebuffer:Pn},ja)}})}function ln(La){var Ea=Array(6);function on(Zn){var ja,gn={color:null},Wn=0,$n=null,fo="rgba",Ks="uint8",Rl=1;if(typeof Zn=="number")Wn=Zn|0;else if(!Zn)Wn=1;else{var Ro=Zn;if("shape"in Ro){var ru=Ro.shape;Wn=ru[0]}else"radius"in Ro&&(Wn=Ro.radius|0),"width"in Ro?(Wn=Ro.width|0,"height"in Ro):"height"in Ro&&(Wn=Ro.height|0);("color"in Ro||"colors"in Ro)&&($n=Ro.color||Ro.colors,Array.isArray($n)),$n||("colorCount"in Ro&&(Rl=Ro.colorCount|0),"colorType"in Ro&&(Ks=Ro.colorType),"colorFormat"in Ro&&(fo=Ro.colorFormat)),"depth"in Ro&&(gn.depth=Ro.depth),"stencil"in Ro&&(gn.stencil=Ro.stencil),"depthStencil"in Ro&&(gn.depthStencil=Ro.depthStencil)}var Cs;if($n)if(Array.isArray($n))for(Cs=[],ja=0;ja<$n.length;++ja)Cs[ja]=$n[ja];else Cs=[$n];else{Cs=Array(Rl);var Ol={radius:Wn,format:fo,type:Ks};for(ja=0;ja<Rl;++ja)Cs[ja]=li.createCube(Ol)}for(gn.color=Array(Cs.length),ja=0;ja<Cs.length;++ja){var Ul=Cs[ja];Wn=Wn||Ul.width,gn.color[ja]={target:Iu,data:Cs[ja]}}for(ja=0;ja<6;++ja){for(var cu=0;cu<Cs.length;++cu)gn.color[cu].target=Iu+ja;ja>0&&(gn.depth=Ea[0].depth,gn.stencil=Ea[0].stencil,gn.depthStencil=Ea[0].depthStencil),Ea[ja]?Ea[ja](gn):Ea[ja]=Yi(gn)}return p(on,{width:Wn,height:Wn,color:Cs})}function Pn(Zn){var ja,gn=Zn|0;if(gn===on.width)return on;var Wn=on.color;for(ja=0;ja<Wn.length;++ja)Wn[ja].resize(gn);for(ja=0;ja<6;++ja)Ea[ja].resize(gn);return on.width=on.height=gn,on}return on(La),p(on,{faces:Ea,resize:Pn,_reglType:"framebufferCube",destroy:function(){Ea.forEach(function(Zn){Zn.destroy()})}})}function Va(){Mi.cur=null,Mi.next=null,Mi.dirty=!0,xt($i).forEach(function(La){La.framebuffer=rt.createFramebuffer(),Qi(La)})}return p(Mi,{getFramebuffer:function(La){if(typeof La=="function"&&La._reglType==="framebuffer"){var Ea=La._framebuffer;if(Ea instanceof Xa)return Ea}return null},create:Yi,createCube:ln,clear:function(){xt($i).forEach(kn)},restore:Va})}var nh=5126,_f=34962,bl=34963;function ku(){this.state=0,this.x=0,this.y=0,this.z=0,this.w=0,this.buffer=null,this.size=0,this.normalized=!1,this.type=nh,this.offset=0,this.stride=0,this.divisor=0}function Ou(rt,Yt,hr,li,Ci,Ti,Mi){for(var ia=hr.maxAttributes,ka=new Array(ia),Sa=0;Sa<ia;++Sa)ka[Sa]=new ku;var va=0,Fn={},Ha={Record:ku,scope:{},state:ka,currentVAO:null,targetVAO:null,restore:Xi()?Oa:function(){},createVAO:kn,getVAO:zi,destroyBuffer:Da,setVAO:Xi()?la:ba,clear:Xi()?$i:function(){}};function Da(Qi){for(var Yi=0;Yi<ka.length;++Yi){var ln=ka[Yi];ln.buffer===Qi&&(rt.disableVertexAttribArray(Yi),ln.buffer=null)}}function Xi(){return Yt.oes_vertex_array_object}function ei(){return Yt.angle_instanced_arrays}function zi(Qi){return typeof Qi=="function"&&Qi._vao?Qi._vao:null}function la(Qi){if(Qi!==Ha.currentVAO){var Yi=Xi();Qi?Yi.bindVertexArrayOES(Qi.vao):Yi.bindVertexArrayOES(null),Ha.currentVAO=Qi}}function ba(Qi){if(Qi!==Ha.currentVAO){if(Qi)Qi.bindAttrs();else{for(var Yi=ei(),ln=0;ln<ka.length;++ln){var Va=ka[ln];Va.buffer?(rt.enableVertexAttribArray(ln),Va.buffer.bind(),rt.vertexAttribPointer(ln,Va.size,Va.type,Va.normalized,Va.stride,Va.offfset),Yi&&Va.divisor&&Yi.vertexAttribDivisorANGLE(ln,Va.divisor)):(rt.disableVertexAttribArray(ln),rt.vertexAttrib4f(ln,Va.x,Va.y,Va.z,Va.w))}Mi.elements?rt.bindBuffer(bl,Mi.elements.buffer.buffer):rt.bindBuffer(bl,null)}Ha.currentVAO=Qi}}function $i(){xt(Fn).forEach(function(Qi){Qi.destroy()})}function Xa(){this.id=++va,this.attributes=[],this.elements=null,this.ownsElements=!1,this.count=0,this.offset=0,this.instances=-1,this.primitive=4;var Qi=Xi();Qi?this.vao=Qi.createVertexArrayOES():this.vao=null,Fn[this.id]=this,this.buffers=[]}Xa.prototype.bindAttrs=function(){for(var Qi=ei(),Yi=this.attributes,ln=0;ln<Yi.length;++ln){var Va=Yi[ln];Va.buffer?(rt.enableVertexAttribArray(ln),rt.bindBuffer(_f,Va.buffer.buffer),rt.vertexAttribPointer(ln,Va.size,Va.type,Va.normalized,Va.stride,Va.offset),Qi&&Va.divisor&&Qi.vertexAttribDivisorANGLE(ln,Va.divisor)):(rt.disableVertexAttribArray(ln),rt.vertexAttrib4f(ln,Va.x,Va.y,Va.z,Va.w))}for(var La=Yi.length;La<ia;++La)rt.disableVertexAttribArray(La);var Ea=Ti.getElements(this.elements);Ea?rt.bindBuffer(bl,Ea.buffer.buffer):rt.bindBuffer(bl,null)},Xa.prototype.refresh=function(){var Qi=Xi();Qi&&(Qi.bindVertexArrayOES(this.vao),this.bindAttrs(),Ha.currentVAO=null,Qi.bindVertexArrayOES(null))},Xa.prototype.destroy=function(){if(this.vao){var Qi=Xi();this===Ha.currentVAO&&(Ha.currentVAO=null,Qi.bindVertexArrayOES(null)),Qi.deleteVertexArrayOES(this.vao),this.vao=null}this.ownsElements&&(this.elements.destroy(),this.elements=null,this.ownsElements=!1),Fn[this.id]&&(delete Fn[this.id],li.vaoCount-=1)};function Oa(){var Qi=Xi();Qi&&xt(Fn).forEach(function(Yi){Yi.refresh()})}function kn(Qi){var Yi=new Xa;li.vaoCount+=1;function ln(Va){var La;if(Array.isArray(Va))La=Va,Yi.elements&&Yi.ownsElements&&Yi.elements.destroy(),Yi.elements=null,Yi.ownsElements=!1,Yi.offset=0,Yi.count=0,Yi.instances=-1,Yi.primitive=4;else{if(Va.elements){var Ea=Va.elements;Yi.ownsElements?typeof Ea=="function"&&Ea._reglType==="elements"?(Yi.elements.destroy(),Yi.ownsElements=!1):(Yi.elements(Ea),Yi.ownsElements=!1):Ti.getElements(Va.elements)?(Yi.elements=Va.elements,Yi.ownsElements=!1):(Yi.elements=Ti.create(Va.elements),Yi.ownsElements=!0)}else Yi.elements=null,Yi.ownsElements=!1;La=Va.attributes,Yi.offset=0,Yi.count=-1,Yi.instances=-1,Yi.primitive=4,Yi.elements&&(Yi.count=Yi.elements._elements.vertCount,Yi.primitive=Yi.elements._elements.primType),"offset"in Va&&(Yi.offset=Va.offset|0),"count"in Va&&(Yi.count=Va.count|0),"instances"in Va&&(Yi.instances=Va.instances|0),"primitive"in Va&&(Yi.primitive=ji[Va.primitive])}var on={},Pn=Yi.attributes;Pn.length=La.length;for(var Zn=0;Zn<La.length;++Zn){var ja=La[Zn],gn=Pn[Zn]=new ku,Wn=ja.data||ja;if(Array.isArray(Wn)||Mr(Wn)||Dr(Wn)){var $n;Yi.buffers[Zn]&&($n=Yi.buffers[Zn],Mr(Wn)&&$n._buffer.byteLength>=Wn.byteLength?$n.subdata(Wn):($n.destroy(),Yi.buffers[Zn]=null)),Yi.buffers[Zn]||($n=Yi.buffers[Zn]=Ci.create(ja,_f,!1,!0)),gn.buffer=Ci.getBuffer($n),gn.size=gn.buffer.dimension|0,gn.normalized=!1,gn.type=gn.buffer.dtype,gn.offset=0,gn.stride=0,gn.divisor=0,gn.state=1,on[Zn]=1}else Ci.getBuffer(ja)?(gn.buffer=Ci.getBuffer(ja),gn.size=gn.buffer.dimension|0,gn.normalized=!1,gn.type=gn.buffer.dtype,gn.offset=0,gn.stride=0,gn.divisor=0,gn.state=1):Ci.getBuffer(ja.buffer)?(gn.buffer=Ci.getBuffer(ja.buffer),gn.size=(+ja.size||gn.buffer.dimension)|0,gn.normalized=!!ja.normalized||!1,"type"in ja?gn.type=vi[ja.type]:gn.type=gn.buffer.dtype,gn.offset=(ja.offset||0)|0,gn.stride=(ja.stride||0)|0,gn.divisor=(ja.divisor||0)|0,gn.state=1):"x"in ja&&(gn.x=+ja.x||0,gn.y=+ja.y||0,gn.z=+ja.z||0,gn.w=+ja.w||0,gn.state=2)}for(var fo=0;fo<Yi.buffers.length;++fo)!on[fo]&&Yi.buffers[fo]&&(Yi.buffers[fo].destroy(),Yi.buffers[fo]=null);return Yi.refresh(),ln}return ln.destroy=function(){for(var Va=0;Va<Yi.buffers.length;++Va)Yi.buffers[Va]&&Yi.buffers[Va].destroy();Yi.buffers.length=0,Yi.ownsElements&&(Yi.elements.destroy(),Yi.elements=null,Yi.ownsElements=!1),Yi.destroy()},ln._vao=Yi,ln._reglType="vao",ln(Qi)}return Ha}var Cf=35632,Ml=35633,df=35718,Rc=35721;function Ju(rt,Yt,hr,li){var Ci={},Ti={};function Mi(ei,zi,la,ba){this.name=ei,this.id=zi,this.location=la,this.info=ba}function ia(ei,zi){for(var la=0;la<ei.length;++la)if(ei[la].id===zi.id){ei[la].location=zi.location;return}ei.push(zi)}function ka(ei,zi,la){var ba=ei===Cf?Ci:Ti,$i=ba[zi];if(!$i){var Xa=Yt.str(zi);$i=rt.createShader(ei),rt.shaderSource($i,Xa),rt.compileShader($i),ba[zi]=$i}return $i}var Sa={},va=[],Fn=0;function Ha(ei,zi){this.id=Fn++,this.fragId=ei,this.vertId=zi,this.program=null,this.uniforms=[],this.attributes=[],this.refCount=1,li.profile&&(this.stats={uniformsCount:0,attributesCount:0})}function Da(ei,zi,la){var ba,$i,Xa=ka(Cf,ei.fragId),Oa=ka(Ml,ei.vertId),kn=ei.program=rt.createProgram();if(rt.attachShader(kn,Xa),rt.attachShader(kn,Oa),la)for(ba=0;ba<la.length;++ba){var Qi=la[ba];rt.bindAttribLocation(kn,Qi[0],Qi[1])}rt.linkProgram(kn);var Yi=rt.getProgramParameter(kn,df);li.profile&&(ei.stats.uniformsCount=Yi);var ln=ei.uniforms;for(ba=0;ba<Yi;++ba)if($i=rt.getActiveUniform(kn,ba),$i)if($i.size>1)for(var Va=0;Va<$i.size;++Va){var La=$i.name.replace("[0]","["+Va+"]");ia(ln,new Mi(La,Yt.id(La),rt.getUniformLocation(kn,La),$i))}else ia(ln,new Mi($i.name,Yt.id($i.name),rt.getUniformLocation(kn,$i.name),$i));var Ea=rt.getProgramParameter(kn,Rc);li.profile&&(ei.stats.attributesCount=Ea);var on=ei.attributes;for(ba=0;ba<Ea;++ba)$i=rt.getActiveAttrib(kn,ba),$i&&ia(on,new Mi($i.name,Yt.id($i.name),rt.getAttribLocation(kn,$i.name),$i))}li.profile&&(hr.getMaxUniformsCount=function(){var ei=0;return va.forEach(function(zi){zi.stats.uniformsCount>ei&&(ei=zi.stats.uniformsCount)}),ei},hr.getMaxAttributesCount=function(){var ei=0;return va.forEach(function(zi){zi.stats.attributesCount>ei&&(ei=zi.stats.attributesCount)}),ei});function Xi(){Ci={},Ti={};for(var ei=0;ei<va.length;++ei)Da(va[ei],null,va[ei].attributes.map(function(zi){return[zi.location,zi.name]}))}return{clear:function(){var ei=rt.deleteShader.bind(rt);xt(Ci).forEach(ei),Ci={},xt(Ti).forEach(ei),Ti={},va.forEach(function(zi){rt.deleteProgram(zi.program)}),va.length=0,Sa={},hr.shaderCount=0},program:function(ei,zi,la,ba){var $i=Sa[zi];$i||($i=Sa[zi]={});var Xa=$i[ei];if(Xa&&(Xa.refCount++,!ba))return Xa;var Oa=new Ha(zi,ei);return hr.shaderCount++,Da(Oa,la,ba),Xa||($i[ei]=Oa),va.push(Oa),p(Oa,{destroy:function(){if(Oa.refCount--,Oa.refCount<=0){rt.deleteProgram(Oa.program);var kn=va.indexOf(Oa);va.splice(kn,1),hr.shaderCount--}$i[Oa.vertId].refCount<=0&&(rt.deleteShader(Ti[Oa.vertId]),delete Ti[Oa.vertId],delete Sa[Oa.fragId][Oa.vertId]),Object.keys(Sa[Oa.fragId]).length||(rt.deleteShader(Ci[Oa.fragId]),delete Ci[Oa.fragId],delete Sa[Oa.fragId])}})},restore:Xi,shader:ka,frag:-1,vert:-1}}var xf=6408,Qu=5121,ef=3333,Lf=5126;function du(rt,Yt,hr,li,Ci,Ti,Mi){function ia(va){var Fn;Yt.next===null?Fn=Qu:Fn=Yt.next.colorAttachments[0].texture._texture.type;var Ha=0,Da=0,Xi=li.framebufferWidth,ei=li.framebufferHeight,zi=null;Mr(va)?zi=va:va&&(Ha=va.x|0,Da=va.y|0,Xi=(va.width||li.framebufferWidth-Ha)|0,ei=(va.height||li.framebufferHeight-Da)|0,zi=va.data||null),hr();var la=Xi*ei*4;return zi||(Fn===Qu?zi=new Uint8Array(la):Fn===Lf&&(zi=zi||new Float32Array(la))),rt.pixelStorei(ef,4),rt.readPixels(Ha,Da,Xi,ei,xf,Fn,zi),zi}function ka(va){var Fn;return Yt.setFBO({framebuffer:va.framebuffer},function(){Fn=ia(va)}),Fn}function Sa(va){return!va||!("framebuffer"in va)?ia(va):ka(va)}return Sa}var Nf=0,ec="";function Dc(rt){return Cu(bc(fc(rt)))}function bc(rt){return er(Na(Fc(rt),rt.length*8))}function Jl(rt,Yt){var hr=Fc(rt);hr.length>16&&(hr=Na(hr,rt.length*8));for(var li=Array(16),Ci=Array(16),Ti=0;Ti<16;Ti++)li[Ti]=hr[Ti]^909522486,Ci[Ti]=hr[Ti]^1549556828;var Mi=Na(li.concat(Fc(Yt)),512+Yt.length*8);return er(Na(Ci.concat(Mi),768))}function Cu(rt){for(var Yt=Nf?"0123456789ABCDEF":"0123456789abcdef",hr="",li,Ci=0;Ci<rt.length;Ci++)li=rt.charCodeAt(Ci),hr+=Yt.charAt(li>>>4&15)+Yt.charAt(li&15);return hr}function zc(rt){for(var Yt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",hr="",li=rt.length,Ci=0;Ci<li;Ci+=3)for(var Ti=rt.charCodeAt(Ci)<<16|(Ci+1<li?rt.charCodeAt(Ci+1)<<8:0)|(Ci+2<li?rt.charCodeAt(Ci+2):0),Mi=0;Mi<4;Mi++)Ci*8+Mi*6>rt.length*8?hr+=ec:hr+=Yt.charAt(Ti>>>6*(3-Mi)&63);return hr}function tf(rt,Yt){var hr=Yt.length,li=Array(),Ci,Ti,Mi,ia,ka=Array(Math.ceil(rt.length/2));for(Ci=0;Ci<ka.length;Ci++)ka[Ci]=rt.charCodeAt(Ci*2)<<8|rt.charCodeAt(Ci*2+1);for(;ka.length>0;){for(ia=Array(),Mi=0,Ci=0;Ci<ka.length;Ci++)Mi=(Mi<<16)+ka[Ci],Ti=Math.floor(Mi/hr),Mi-=Ti*hr,(ia.length>0||Ti>0)&&(ia[ia.length]=Ti);li[li.length]=Mi,ka=ia}var Sa="";for(Ci=li.length-1;Ci>=0;Ci--)Sa+=Yt.charAt(li[Ci]);var va=Math.ceil(rt.length*8/(Math.log(Yt.length)/Math.log(2)));for(Ci=Sa.length;Ci<va;Ci++)Sa=Yt[0]+Sa;return Sa}function fc(rt){for(var Yt="",hr=-1,li,Ci;++hr<rt.length;)li=rt.charCodeAt(hr),Ci=hr+1<rt.length?rt.charCodeAt(hr+1):0,55296<=li&&li<=56319&&56320<=Ci&&Ci<=57343&&(li=65536+((li&1023)<<10)+(Ci&1023),hr++),li<=127?Yt+=String.fromCharCode(li):li<=2047?Yt+=String.fromCharCode(192|li>>>6&31,128|li&63):li<=65535?Yt+=String.fromCharCode(224|li>>>12&15,128|li>>>6&63,128|li&63):li<=2097151&&(Yt+=String.fromCharCode(240|li>>>18&7,128|li>>>12&63,128|li>>>6&63,128|li&63));return Yt}function Fc(rt){for(var Yt=Array(rt.length>>2),hr=0;hr<Yt.length;hr++)Yt[hr]=0;for(var hr=0;hr<rt.length*8;hr+=8)Yt[hr>>5]|=(rt.charCodeAt(hr/8)&255)<<24-hr%32;return Yt}function er(rt){for(var Yt="",hr=0;hr<rt.length*32;hr+=8)Yt+=String.fromCharCode(rt[hr>>5]>>>24-hr%32&255);return Yt}function wr(rt,Yt){return rt>>>Yt|rt<<32-Yt}function ai(rt,Yt){return rt>>>Yt}function Jr(rt,Yt,hr){return rt&Yt^~rt&hr}function Fi(rt,Yt,hr){return rt&Yt^rt&hr^Yt&hr}function pa(rt){return wr(rt,2)^wr(rt,13)^wr(rt,22)}function Ba(rt){return wr(rt,6)^wr(rt,11)^wr(rt,25)}function an(rt){return wr(rt,7)^wr(rt,18)^ai(rt,3)}function hn(rt){return wr(rt,17)^wr(rt,19)^ai(rt,10)}var Ln=new Array(1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998);function Na(rt,Yt){var hr=new Array(1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225),li=new Array(64),Ci,Ti,Mi,ia,ka,Sa,va,Fn,Ha,Da,Xi,ei;for(rt[Yt>>5]|=128<<24-Yt%32,rt[(Yt+64>>9<<4)+15]=Yt,Ha=0;Ha<rt.length;Ha+=16){for(Ci=hr[0],Ti=hr[1],Mi=hr[2],ia=hr[3],ka=hr[4],Sa=hr[5],va=hr[6],Fn=hr[7],Da=0;Da<64;Da++)Da<16?li[Da]=rt[Da+Ha]:li[Da]=qa(qa(qa(hn(li[Da-2]),li[Da-7]),an(li[Da-15])),li[Da-16]),Xi=qa(qa(qa(qa(Fn,Ba(ka)),Jr(ka,Sa,va)),Ln[Da]),li[Da]),ei=qa(pa(Ci),Fi(Ci,Ti,Mi)),Fn=va,va=Sa,Sa=ka,ka=qa(ia,Xi),ia=Mi,Mi=Ti,Ti=Ci,Ci=qa(Xi,ei);hr[0]=qa(Ci,hr[0]),hr[1]=qa(Ti,hr[1]),hr[2]=qa(Mi,hr[2]),hr[3]=qa(ia,hr[3]),hr[4]=qa(ka,hr[4]),hr[5]=qa(Sa,hr[5]),hr[6]=qa(va,hr[6]),hr[7]=qa(Fn,hr[7])}return hr}function qa(rt,Yt){var hr=(rt&65535)+(Yt&65535),li=(rt>>16)+(Yt>>16)+(hr>>16);return li<<16|hr&65535}function Za(rt){return Array.prototype.slice.call(rt)}function Ta(rt){return Za(rt).join("")}function Hn(rt){var Yt=rt&&rt.cache,hr=0,li=[],Ci=[],Ti=[];function Mi(Xi,ei){var zi=ei&&ei.stable;if(!zi){for(var la=0;la<Ci.length;++la)if(Ci[la]===Xi&&!Ti[la])return li[la]}var ba="g"+hr++;return li.push(ba),Ci.push(Xi),Ti.push(zi),ba}function ia(){var Xi=[];function ei(){Xi.push.apply(Xi,Za(arguments))}var zi=[];function la(){var ba="v"+hr++;return zi.push(ba),arguments.length>0&&(Xi.push(ba,"="),Xi.push.apply(Xi,Za(arguments)),Xi.push(";")),ba}return p(ei,{def:la,toString:function(){return Ta([zi.length>0?"var "+zi.join(",")+";":"",Ta(Xi)])}})}function ka(){var Xi=ia(),ei=ia(),zi=Xi.toString,la=ei.toString;function ba($i,Xa){ei($i,Xa,"=",Xi.def($i,Xa),";")}return p(function(){Xi.apply(Xi,Za(arguments))},{def:Xi.def,entry:Xi,exit:ei,save:ba,set:function($i,Xa,Oa){ba($i,Xa),Xi($i,Xa,"=",Oa,";")},toString:function(){return zi()+la()}})}function Sa(){var Xi=Ta(arguments),ei=ka(),zi=ka(),la=ei.toString,ba=zi.toString;return p(ei,{then:function(){return ei.apply(ei,Za(arguments)),this},else:function(){return zi.apply(zi,Za(arguments)),this},toString:function(){var $i=ba();return $i&&($i="else{"+$i+"}"),Ta(["if(",Xi,"){",la(),"}",$i])}})}var va=ia(),Fn={};function Ha(Xi,ei){var zi=[];function la(){var kn="a"+zi.length;return zi.push(kn),kn}ei=ei||0;for(var ba=0;ba<ei;++ba)la();var $i=ka(),Xa=$i.toString,Oa=Fn[Xi]=p($i,{arg:la,toString:function(){return Ta(["function(",zi.join(),"){",Xa(),"}"])}});return Oa}function Da(){var Xi=['"use strict";',va,"return {"];Object.keys(Fn).forEach(function(ba){Xi.push('"',ba,'":',Fn[ba].toString(),",")}),Xi.push("}");var ei=Ta(Xi).replace(/;/g,`;
2618`).replace(/}/g,`}
2619`).replace(/{/g,`{
2620`),zi;if(Yt&&(zi=Dc(ei),Yt[zi]))return Yt[zi].apply(null,Ci);var la=Function.apply(null,li.concat(ei));return Yt&&(Yt[zi]=la),la.apply(null,Ci)}return{global:va,link:Mi,block:ia,proc:Ha,scope:ka,cond:Sa,compile:Da}}var go="xyzw".split(""),wo=5121,yo=1,Io=2,Vn=0,wn=1,Oo=2,ps=3,js=4,pl=5,Qs=6,hl="dither",Bs="blend.enable",Wl="blend.color",Il="blend.equation",wl="blend.func",io="depth.enable",Jo="depth.func",cl="depth.range",Zs="depth.mask",gu="colorMask",Nu="cull.enable",tc="cull.face",Bc="frontFace",Lu="lineWidth",Oc="polygonOffset.enable",Pu="polygonOffset.offset",wc="sample.alpha",Po="sample.enable",es="sample.coverage",Nc="stencil.enable",hc="stencil.mask",rc="stencil.func",Ue="stencil.opFront",P="stencil.opBack",ae="scissor.enable",xe="scissor.box",Te="viewport",Oe="profile",ht="framebuffer",Tt="vert",Ot="frag",Qt="elements",Ar="primitive",Sr="count",Kr="offset",oi="instances",Ge="vao",Ze="Width",ot="Height",dt=ht+Ze,Ct=ht+ot,wt=Te+Ze,Dt=Te+ot,fr="drawingBuffer",_r=fr+Ze,kr=fr+ot,Vr=[wl,Il,rc,Ue,P,es,Te,xe,Pu],Qr=34962,_i=34963,Pi=2884,qi=3042,ga=3024,Qa=2960,$a=2929,yn=3089,qn=32823,po=32926,to=32928,Vo=5126,bs=35664,Ho=35665,ds=35666,Is=5124,Tl=35667,dl=35668,ms=35669,gs=35670,ql=35671,uu=35672,Uu=35673,Su=35674,Fl=35675,yu=35676,dc=35678,Ql=35680,eu=4,de=1028,Fe=1029,Je=2304,vt=2305,_t=32775,At=32776,ar=519,Ft=7680,xr=0,Gr=1,Yr=32774,Ei=513,xi=36160,na=36064,ua={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},Di={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},Hi={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},ta={cw:Je,ccw:vt};function ya(rt){return Array.isArray(rt)||Mr(rt)||Dr(rt)}function da(rt){return rt.sort(function(Yt,hr){return Yt===Te?-1:hr===Te?1:Yt<hr?-1:1})}function Oi(rt,Yt,hr,li){this.thisDep=rt,this.contextDep=Yt,this.propDep=hr,this.append=li}function xn(rt){return rt&&!(rt.thisDep||rt.contextDep||rt.propDep)}function mn(rt){return new Oi(!1,!1,!1,rt)}function In(rt,Yt){var hr=rt.type;if(hr===Vn){var li=rt.data.length;return new Oi(!0,li>=1,li>=2,Yt)}else if(hr===js){var Ci=rt.data;return new Oi(Ci.thisDep,Ci.contextDep,Ci.propDep,Yt)}else{if(hr===pl)return new Oi(!1,!1,!1,Yt);if(hr===Qs){for(var Ti=!1,Mi=!1,ia=!1,ka=0;ka<rt.data.length;++ka){var Sa=rt.data[ka];if(Sa.type===wn)ia=!0;else if(Sa.type===Oo)Mi=!0;else if(Sa.type===ps)Ti=!0;else if(Sa.type===Vn){Ti=!0;var va=Sa.data;va>=1&&(Mi=!0),va>=2&&(ia=!0)}else Sa.type===js&&(Ti=Ti||Sa.data.thisDep,Mi=Mi||Sa.data.contextDep,ia=ia||Sa.data.propDep)}return new Oi(Ti,Mi,ia,Yt)}else return new Oi(hr===ps,hr===Oo,hr===wn,Yt)}}var Yn=new Oi(!1,!1,!1,function(){});function mo(rt,Yt,hr,li,Ci,Ti,Mi,ia,ka,Sa,va,Fn,Ha,Da,Xi,ei){var zi=Sa.Record,la={add:32774,subtract:32778,"reverse subtract":32779};hr.ext_blend_minmax&&(la.min=_t,la.max=At);var ba=hr.angle_instanced_arrays,$i=hr.webgl_draw_buffers,Xa=hr.oes_vertex_array_object,Oa={dirty:!0,profile:ei.profile},kn={},Qi=[],Yi={},ln={};function Va(mt){return mt.replace(".","_")}function La(mt,Et,Bt){var or=Va(mt);Qi.push(mt),kn[or]=Oa[or]=!!Bt,Yi[or]=Et}function Ea(mt,Et,Bt){var or=Va(mt);Qi.push(mt),Array.isArray(Bt)?(Oa[or]=Bt.slice(),kn[or]=Bt.slice()):Oa[or]=kn[or]=Bt,ln[or]=Et}function on(mt){return!!isNaN(mt)}La(hl,ga),La(Bs,qi),Ea(Wl,"blendColor",[0,0,0,0]),Ea(Il,"blendEquationSeparate",[Yr,Yr]),Ea(wl,"blendFuncSeparate",[Gr,xr,Gr,xr]),La(io,$a,!0),Ea(Jo,"depthFunc",Ei),Ea(cl,"depthRange",[0,1]),Ea(Zs,"depthMask",!0),Ea(gu,gu,[!0,!0,!0,!0]),La(Nu,Pi),Ea(tc,"cullFace",Fe),Ea(Bc,Bc,vt),Ea(Lu,Lu,1),La(Oc,qn),Ea(Pu,"polygonOffset",[0,0]),La(wc,po),La(Po,to),Ea(es,"sampleCoverage",[1,!1]),La(Nc,Qa),Ea(hc,"stencilMask",-1),Ea(rc,"stencilFunc",[ar,0,-1]),Ea(Ue,"stencilOpSeparate",[de,Ft,Ft,Ft]),Ea(P,"stencilOpSeparate",[Fe,Ft,Ft,Ft]),La(ae,yn),Ea(xe,"scissor",[0,0,rt.drawingBufferWidth,rt.drawingBufferHeight]),Ea(Te,Te,[0,0,rt.drawingBufferWidth,rt.drawingBufferHeight]);var Pn={gl:rt,context:Ha,strings:Yt,next:kn,current:Oa,draw:Fn,elements:Ti,buffer:Ci,shader:va,attributes:Sa.state,vao:Sa,uniforms:ka,framebuffer:ia,extensions:hr,timer:Da,isBufferArgs:ya},Zn={primTypes:ji,compareFuncs:Di,blendFuncs:ua,blendEquations:la,stencilOps:Hi,glTypes:vi,orientationType:ta};$i&&(Zn.backBuffer=[Fe],Zn.drawBuffer=v(li.maxDrawbuffers,function(mt){return mt===0?[0]:v(mt,function(Et){return na+Et})}));var ja=0;function gn(){var mt=Hn({cache:Xi}),Et=mt.link,Bt=mt.global;mt.id=ja++,mt.batchId="0";var or=Et(Pn),dr=mt.shared={props:"a0"};Object.keys(Pn).forEach(function(lr){dr[lr]=Bt.def(or,".",lr)});var ur=mt.next={},pr=mt.current={};Object.keys(ln).forEach(function(lr){Array.isArray(Oa[lr])&&(ur[lr]=Bt.def(dr.next,".",lr),pr[lr]=Bt.def(dr.current,".",lr))});var cr=mt.constants={};Object.keys(Zn).forEach(function(lr){cr[lr]=Bt.def(JSON.stringify(Zn[lr]))}),mt.invoke=function(lr,qt){switch(qt.type){case Vn:var zr=["this",dr.context,dr.props,mt.batchId];return lr.def(Et(qt.data),".call(",zr.slice(0,Math.max(qt.data.length+1,4)),")");case wn:return lr.def(dr.props,qt.data);case Oo:return lr.def(dr.context,qt.data);case ps:return lr.def("this",qt.data);case js:return qt.data.append(mt,lr),qt.data.ref;case pl:return qt.data.toString();case Qs:return qt.data.map(function($r){return mt.invoke(lr,$r)})}},mt.attribCache={};var Gt={};return mt.scopeAttrib=function(lr){var qt=Yt.id(lr);if(qt in Gt)return Gt[qt];var zr=Sa.scope[qt];zr||(zr=Sa.scope[qt]=new zi);var $r=Gt[qt]=Et(zr);return $r},mt}function Wn(mt){var Et=mt.static,Bt=mt.dynamic,or;if(Oe in Et){var dr=!!Et[Oe];or=mn(function(pr,cr){return dr}),or.enable=dr}else if(Oe in Bt){var ur=Bt[Oe];or=In(ur,function(pr,cr){return pr.invoke(cr,ur)})}return or}function $n(mt,Et){var Bt=mt.static,or=mt.dynamic;if(ht in Bt){var dr=Bt[ht];return dr?(dr=ia.getFramebuffer(dr),mn(function(pr,cr){var Gt=pr.link(dr),lr=pr.shared;cr.set(lr.framebuffer,".next",Gt);var qt=lr.context;return cr.set(qt,"."+dt,Gt+".width"),cr.set(qt,"."+Ct,Gt+".height"),Gt})):mn(function(pr,cr){var Gt=pr.shared;cr.set(Gt.framebuffer,".next","null");var lr=Gt.context;return cr.set(lr,"."+dt,lr+"."+_r),cr.set(lr,"."+Ct,lr+"."+kr),"null"})}else if(ht in or){var ur=or[ht];return In(ur,function(pr,cr){var Gt=pr.invoke(cr,ur),lr=pr.shared,qt=lr.framebuffer,zr=cr.def(qt,".getFramebuffer(",Gt,")");cr.set(qt,".next",zr);var $r=lr.context;return cr.set($r,"."+dt,zr+"?"+zr+".width:"+$r+"."+_r),cr.set($r,"."+Ct,zr+"?"+zr+".height:"+$r+"."+kr),zr})}else return null}function fo(mt,Et,Bt){var or=mt.static,dr=mt.dynamic;function ur(Gt){if(Gt in or){var lr=or[Gt],qt=!0,zr=lr.x|0,$r=lr.y|0,Ai,wa;return"width"in lr?Ai=lr.width|0:qt=!1,"height"in lr?wa=lr.height|0:qt=!1,new Oi(!qt&&Et&&Et.thisDep,!qt&&Et&&Et.contextDep,!qt&&Et&&Et.propDep,function(sn,Ga){var ma=sn.shared.context,Ma=Ai;"width"in lr||(Ma=Ga.def(ma,".",dt,"-",zr));var Pa=wa;return"height"in lr||(Pa=Ga.def(ma,".",Ct,"-",$r)),[zr,$r,Ma,Pa]})}else if(Gt in dr){var Ji=dr[Gt],fa=In(Ji,function(sn,Ga){var ma=sn.invoke(Ga,Ji),Ma=sn.shared.context,Pa=Ga.def(ma,".x|0"),Ka=Ga.def(ma,".y|0"),Sn=Ga.def('"width" in ',ma,"?",ma,".width|0:","(",Ma,".",dt,"-",Pa,")"),No=Ga.def('"height" in ',ma,"?",ma,".height|0:","(",Ma,".",Ct,"-",Ka,")");return[Pa,Ka,Sn,No]});return Et&&(fa.thisDep=fa.thisDep||Et.thisDep,fa.contextDep=fa.contextDep||Et.contextDep,fa.propDep=fa.propDep||Et.propDep),fa}else return Et?new Oi(Et.thisDep,Et.contextDep,Et.propDep,function(sn,Ga){var ma=sn.shared.context;return[0,0,Ga.def(ma,".",dt),Ga.def(ma,".",Ct)]}):null}var pr=ur(Te);if(pr){var cr=pr;pr=new Oi(pr.thisDep,pr.contextDep,pr.propDep,function(Gt,lr){var qt=cr.append(Gt,lr),zr=Gt.shared.context;return lr.set(zr,"."+wt,qt[2]),lr.set(zr,"."+Dt,qt[3]),qt})}return{viewport:pr,scissor_box:ur(xe)}}function Ks(mt,Et){var Bt=mt.static,or=typeof Bt[Ot]=="string"&&typeof Bt[Tt]=="string";if(or){if(Object.keys(Et.dynamic).length>0)return null;var dr=Et.static,ur=Object.keys(dr);if(ur.length>0&&typeof dr[ur[0]]=="number"){for(var pr=[],cr=0;cr<ur.length;++cr)pr.push([dr[ur[cr]]|0,ur[cr]]);return pr}}return null}function Rl(mt,Et,Bt){var or=mt.static,dr=mt.dynamic;function ur(qt){if(qt in or){var zr=Yt.id(or[qt]),$r=mn(function(){return zr});return $r.id=zr,$r}else if(qt in dr){var Ai=dr[qt];return In(Ai,function(wa,Ji){var fa=wa.invoke(Ji,Ai),sn=Ji.def(wa.shared.strings,".id(",fa,")");return sn})}return null}var pr=ur(Ot),cr=ur(Tt),Gt=null,lr;return xn(pr)&&xn(cr)?(Gt=va.program(cr.id,pr.id,null,Bt),lr=mn(function(qt,zr){return qt.link(Gt)})):lr=new Oi(pr&&pr.thisDep||cr&&cr.thisDep,pr&&pr.contextDep||cr&&cr.contextDep,pr&&pr.propDep||cr&&cr.propDep,function(qt,zr){var $r=qt.shared.shader,Ai;pr?Ai=pr.append(qt,zr):Ai=zr.def($r,".",Ot);var wa;cr?wa=cr.append(qt,zr):wa=zr.def($r,".",Tt);var Ji=$r+".program("+wa+","+Ai;return zr.def(Ji+")")}),{frag:pr,vert:cr,progVar:lr,program:Gt}}function Ro(mt,Et){var Bt=mt.static,or=mt.dynamic,dr={},ur=!1;function pr(){if(Ge in Bt){var Ga=Bt[Ge];return Ga!==null&&Sa.getVAO(Ga)===null&&(Ga=Sa.createVAO(Ga)),ur=!0,dr.vao=Ga,mn(function(Ma){var Pa=Sa.getVAO(Ga);return Pa?Ma.link(Pa):"null"})}else if(Ge in or){ur=!0;var ma=or[Ge];return In(ma,function(Ma,Pa){var Ka=Ma.invoke(Pa,ma);return Pa.def(Ma.shared.vao+".getVAO("+Ka+")")})}return null}var cr=pr(),Gt=!1;function lr(){if(Qt in Bt){var Ga=Bt[Qt];if(dr.elements=Ga,ya(Ga)){var ma=dr.elements=Ti.create(Ga,!0);Ga=Ti.getElements(ma),Gt=!0}else Ga&&(Ga=Ti.getElements(Ga),Gt=!0);var Ma=mn(function(Ka,Sn){if(Ga){var No=Ka.link(Ga);return Ka.ELEMENTS=No,No}return Ka.ELEMENTS=null,null});return Ma.value=Ga,Ma}else if(Qt in or){Gt=!0;var Pa=or[Qt];return In(Pa,function(Ka,Sn){var No=Ka.shared,os=No.isBufferArgs,Xs=No.elements,ts=Ka.invoke(Sn,Pa),Vs=Sn.def("null"),ll=Sn.def(os,"(",ts,")"),Mu=Ka.cond(ll).then(Vs,"=",Xs,".createStream(",ts,");").else(Vs,"=",Xs,".getElements(",ts,");");return Sn.entry(Mu),Sn.exit(Ka.cond(ll).then(Xs,".destroyStream(",Vs,");")),Ka.ELEMENTS=Vs,Vs})}else if(ur)return new Oi(cr.thisDep,cr.contextDep,cr.propDep,function(Ka,Sn){return Sn.def(Ka.shared.vao+".currentVAO?"+Ka.shared.elements+".getElements("+Ka.shared.vao+".currentVAO.elements):null")});return null}var qt=lr();function zr(){if(Ar in Bt){var Ga=Bt[Ar];return dr.primitive=Ga,mn(function(Ma,Pa){return ji[Ga]})}else if(Ar in or){var ma=or[Ar];return In(ma,function(Ma,Pa){var Ka=Ma.constants.primTypes,Sn=Ma.invoke(Pa,ma);return Pa.def(Ka,"[",Sn,"]")})}else{if(Gt)return xn(qt)?qt.value?mn(function(Ma,Pa){return Pa.def(Ma.ELEMENTS,".primType")}):mn(function(){return eu}):new Oi(qt.thisDep,qt.contextDep,qt.propDep,function(Ma,Pa){var Ka=Ma.ELEMENTS;return Pa.def(Ka,"?",Ka,".primType:",eu)});if(ur)return new Oi(cr.thisDep,cr.contextDep,cr.propDep,function(Ma,Pa){return Pa.def(Ma.shared.vao+".currentVAO?"+Ma.shared.vao+".currentVAO.primitive:"+eu)})}return null}function $r(Ga,ma){if(Ga in Bt){var Ma=Bt[Ga]|0;return ma?dr.offset=Ma:dr.instances=Ma,mn(function(Ka,Sn){return ma&&(Ka.OFFSET=Ma),Ma})}else if(Ga in or){var Pa=or[Ga];return In(Pa,function(Ka,Sn){var No=Ka.invoke(Sn,Pa);return ma&&(Ka.OFFSET=No),No})}else if(ma){if(Gt)return mn(function(Ka,Sn){return Ka.OFFSET=0,0});if(ur)return new Oi(cr.thisDep,cr.contextDep,cr.propDep,function(Ka,Sn){return Sn.def(Ka.shared.vao+".currentVAO?"+Ka.shared.vao+".currentVAO.offset:0")})}else if(ur)return new Oi(cr.thisDep,cr.contextDep,cr.propDep,function(Ka,Sn){return Sn.def(Ka.shared.vao+".currentVAO?"+Ka.shared.vao+".currentVAO.instances:-1")});return null}var Ai=$r(Kr,!0);function wa(){if(Sr in Bt){var Ga=Bt[Sr]|0;return dr.count=Ga,mn(function(){return Ga})}else if(Sr in or){var ma=or[Sr];return In(ma,function(Sn,No){var os=Sn.invoke(No,ma);return os})}else if(Gt)if(xn(qt)){if(qt)return Ai?new Oi(Ai.thisDep,Ai.contextDep,Ai.propDep,function(Sn,No){var os=No.def(Sn.ELEMENTS,".vertCount-",Sn.OFFSET);return os}):mn(function(Sn,No){return No.def(Sn.ELEMENTS,".vertCount")});var Ma=mn(function(){return-1});return Ma}else{var Pa=new Oi(qt.thisDep||Ai.thisDep,qt.contextDep||Ai.contextDep,qt.propDep||Ai.propDep,function(Sn,No){var os=Sn.ELEMENTS;return Sn.OFFSET?No.def(os,"?",os,".vertCount-",Sn.OFFSET,":-1"):No.def(os,"?",os,".vertCount:-1")});return Pa}else if(ur){var Ka=new Oi(cr.thisDep,cr.contextDep,cr.propDep,function(Sn,No){return No.def(Sn.shared.vao,".currentVAO?",Sn.shared.vao,".currentVAO.count:-1")});return Ka}return null}var Ji=zr(),fa=wa(),sn=$r(oi,!1);return{elements:qt,primitive:Ji,count:fa,instances:sn,offset:Ai,vao:cr,vaoActive:ur,elementsActive:Gt,static:dr}}function ru(mt,Et){var Bt=mt.static,or=mt.dynamic,dr={};return Qi.forEach(function(ur){var pr=Va(ur);function cr(Gt,lr){if(ur in Bt){var qt=Gt(Bt[ur]);dr[pr]=mn(function(){return qt})}else if(ur in or){var zr=or[ur];dr[pr]=In(zr,function($r,Ai){return lr($r,Ai,$r.invoke(Ai,zr))})}}switch(ur){case Nu:case Bs:case hl:case Nc:case io:case ae:case Oc:case wc:case Po:case Zs:return cr(function(Gt){return Gt},function(Gt,lr,qt){return qt});case Jo:return cr(function(Gt){return Di[Gt]},function(Gt,lr,qt){var zr=Gt.constants.compareFuncs;return lr.def(zr,"[",qt,"]")});case cl:return cr(function(Gt){return Gt},function(Gt,lr,qt){var zr=lr.def("+",qt,"[0]"),$r=lr.def("+",qt,"[1]");return[zr,$r]});case wl:return cr(function(Gt){var lr="srcRGB"in Gt?Gt.srcRGB:Gt.src,qt="srcAlpha"in Gt?Gt.srcAlpha:Gt.src,zr="dstRGB"in Gt?Gt.dstRGB:Gt.dst,$r="dstAlpha"in Gt?Gt.dstAlpha:Gt.dst;return[ua[lr],ua[zr],ua[qt],ua[$r]]},function(Gt,lr,qt){var zr=Gt.constants.blendFuncs;function $r(ma,Ma){var Pa=lr.def('"',ma,Ma,'" in ',qt,"?",qt,".",ma,Ma,":",qt,".",ma);return Pa}var Ai=$r("src","RGB"),wa=$r("dst","RGB"),Ji=lr.def(zr,"[",Ai,"]"),fa=lr.def(zr,"[",$r("src","Alpha"),"]"),sn=lr.def(zr,"[",wa,"]"),Ga=lr.def(zr,"[",$r("dst","Alpha"),"]");return[Ji,sn,fa,Ga]});case Il:return cr(function(Gt){if(typeof Gt=="string")return[la[Gt],la[Gt]];if(typeof Gt=="object")return[la[Gt.rgb],la[Gt.alpha]]},function(Gt,lr,qt){var zr=Gt.constants.blendEquations,$r=lr.def(),Ai=lr.def(),wa=Gt.cond("typeof ",qt,'==="string"');return wa.then($r,"=",Ai,"=",zr,"[",qt,"];"),wa.else($r,"=",zr,"[",qt,".rgb];",Ai,"=",zr,"[",qt,".alpha];"),lr(wa),[$r,Ai]});case Wl:return cr(function(Gt){return v(4,function(lr){return+Gt[lr]})},function(Gt,lr,qt){return v(4,function(zr){return lr.def("+",qt,"[",zr,"]")})});case hc:return cr(function(Gt){return Gt|0},function(Gt,lr,qt){return lr.def(qt,"|0")});case rc:return cr(function(Gt){var lr=Gt.cmp||"keep",qt=Gt.ref||0,zr="mask"in Gt?Gt.mask:-1;return[Di[lr],qt,zr]},function(Gt,lr,qt){var zr=Gt.constants.compareFuncs,$r=lr.def('"cmp" in ',qt,"?",zr,"[",qt,".cmp]",":",Ft),Ai=lr.def(qt,".ref|0"),wa=lr.def('"mask" in ',qt,"?",qt,".mask|0:-1");return[$r,Ai,wa]});case Ue:case P:return cr(function(Gt){var lr=Gt.fail||"keep",qt=Gt.zfail||"keep",zr=Gt.zpass||"keep";return[ur===P?Fe:de,Hi[lr],Hi[qt],Hi[zr]]},function(Gt,lr,qt){var zr=Gt.constants.stencilOps;function $r(Ai){return lr.def('"',Ai,'" in ',qt,"?",zr,"[",qt,".",Ai,"]:",Ft)}return[ur===P?Fe:de,$r("fail"),$r("zfail"),$r("zpass")]});case Pu:return cr(function(Gt){var lr=Gt.factor|0,qt=Gt.units|0;return[lr,qt]},function(Gt,lr,qt){var zr=lr.def(qt,".factor|0"),$r=lr.def(qt,".units|0");return[zr,$r]});case tc:return cr(function(Gt){var lr=0;return Gt==="front"?lr=de:Gt==="back"&&(lr=Fe),lr},function(Gt,lr,qt){return lr.def(qt,'==="front"?',de,":",Fe)});case Lu:return cr(function(Gt){return Gt},function(Gt,lr,qt){return qt});case Bc:return cr(function(Gt){return ta[Gt]},function(Gt,lr,qt){return lr.def(qt+'==="cw"?'+Je+":"+vt)});case gu:return cr(function(Gt){return Gt.map(function(lr){return!!lr})},function(Gt,lr,qt){return v(4,function(zr){return"!!"+qt+"["+zr+"]"})});case es:return cr(function(Gt){var lr="value"in Gt?Gt.value:1,qt=!!Gt.invert;return[lr,qt]},function(Gt,lr,qt){var zr=lr.def('"value" in ',qt,"?+",qt,".value:1"),$r=lr.def("!!",qt,".invert");return[zr,$r]})}}),dr}function Cs(mt,Et){var Bt=mt.static,or=mt.dynamic,dr={};return Object.keys(Bt).forEach(function(ur){var pr=Bt[ur],cr;if(typeof pr=="number"||typeof pr=="boolean")cr=mn(function(){return pr});else if(typeof pr=="function"){var Gt=pr._reglType;Gt==="texture2d"||Gt==="textureCube"?cr=mn(function(lr){return lr.link(pr)}):(Gt==="framebuffer"||Gt==="framebufferCube")&&(cr=mn(function(lr){return lr.link(pr.color[0])}))}else Si(pr)&&(cr=mn(function(lr){var qt=lr.global.def("[",v(pr.length,function(zr){return pr[zr]}),"]");return qt}));cr.value=pr,dr[ur]=cr}),Object.keys(or).forEach(function(ur){var pr=or[ur];dr[ur]=In(pr,function(cr,Gt){return cr.invoke(Gt,pr)})}),dr}function Ol(mt,Et){var Bt=mt.static,or=mt.dynamic,dr={};return Object.keys(Bt).forEach(function(ur){var pr=Bt[ur],cr=Yt.id(ur),Gt=new zi;if(ya(pr))Gt.state=yo,Gt.buffer=Ci.getBuffer(Ci.create(pr,Qr,!1,!0)),Gt.type=0;else{var lr=Ci.getBuffer(pr);if(lr)Gt.state=yo,Gt.buffer=lr,Gt.type=0;else if("constant"in pr){var qt=pr.constant;Gt.buffer="null",Gt.state=Io,typeof qt=="number"?Gt.x=qt:go.forEach(function(sn,Ga){Ga<qt.length&&(Gt[sn]=qt[Ga])})}else{ya(pr.buffer)?lr=Ci.getBuffer(Ci.create(pr.buffer,Qr,!1,!0)):lr=Ci.getBuffer(pr.buffer);var zr=pr.offset|0,$r=pr.stride|0,Ai=pr.size|0,wa=!!pr.normalized,Ji=0;"type"in pr&&(Ji=vi[pr.type]);var fa=pr.divisor|0;Gt.buffer=lr,Gt.state=yo,Gt.size=Ai,Gt.normalized=wa,Gt.type=Ji||lr.dtype,Gt.offset=zr,Gt.stride=$r,Gt.divisor=fa}}dr[ur]=mn(function(sn,Ga){var ma=sn.attribCache;if(cr in ma)return ma[cr];var Ma={isStream:!1};return Object.keys(Gt).forEach(function(Pa){Ma[Pa]=Gt[Pa]}),Gt.buffer&&(Ma.buffer=sn.link(Gt.buffer),Ma.type=Ma.type||Ma.buffer+".dtype"),ma[cr]=Ma,Ma})}),Object.keys(or).forEach(function(ur){var pr=or[ur];function cr(Gt,lr){var qt=Gt.invoke(lr,pr),zr=Gt.shared,$r=Gt.constants,Ai=zr.isBufferArgs,wa=zr.buffer,Ji={isStream:lr.def(!1)},fa=new zi;fa.state=yo,Object.keys(fa).forEach(function(Ma){Ji[Ma]=lr.def(""+fa[Ma])});var sn=Ji.buffer,Ga=Ji.type;lr("if(",Ai,"(",qt,")){",Ji.isStream,"=true;",sn,"=",wa,".createStream(",Qr,",",qt,");",Ga,"=",sn,".dtype;","}else{",sn,"=",wa,".getBuffer(",qt,");","if(",sn,"){",Ga,"=",sn,".dtype;",'}else if("constant" in ',qt,"){",Ji.state,"=",Io,";","if(typeof "+qt+'.constant === "number"){',Ji[go[0]],"=",qt,".constant;",go.slice(1).map(function(Ma){return Ji[Ma]}).join("="),"=0;","}else{",go.map(function(Ma,Pa){return Ji[Ma]+"="+qt+".constant.length>"+Pa+"?"+qt+".constant["+Pa+"]:0;"}).join(""),"}}else{","if(",Ai,"(",qt,".buffer)){",sn,"=",wa,".createStream(",Qr,",",qt,".buffer);","}else{",sn,"=",wa,".getBuffer(",qt,".buffer);","}",Ga,'="type" in ',qt,"?",$r.glTypes,"[",qt,".type]:",sn,".dtype;",Ji.normalized,"=!!",qt,".normalized;");function ma(Ma){lr(Ji[Ma],"=",qt,".",Ma,"|0;")}return ma("size"),ma("offset"),ma("stride"),ma("divisor"),lr("}}"),lr.exit("if(",Ji.isStream,"){",wa,".destroyStream(",sn,");","}"),Ji}dr[ur]=In(pr,cr)}),dr}function Ul(mt){var Et=mt.static,Bt=mt.dynamic,or={};return Object.keys(Et).forEach(function(dr){var ur=Et[dr];or[dr]=mn(function(pr,cr){return typeof ur=="number"||typeof ur=="boolean"?""+ur:pr.link(ur)})}),Object.keys(Bt).forEach(function(dr){var ur=Bt[dr];or[dr]=In(ur,function(pr,cr){return pr.invoke(cr,ur)})}),or}function cu(mt,Et,Bt,or,dr){var ur=mt.static,pr=mt.dynamic,cr=Ks(mt,Et),Gt=$n(mt,dr),lr=fo(mt,Gt,dr),qt=Ro(mt,dr),zr=ru(mt,dr),$r=Rl(mt,dr,cr);function Ai(ma){var Ma=lr[ma];Ma&&(zr[ma]=Ma)}Ai(Te),Ai(Va(xe));var wa=Object.keys(zr).length>0,Ji={framebuffer:Gt,draw:qt,shader:$r,state:zr,dirty:wa,scopeVAO:null,drawVAO:null,useVAO:!1,attributes:{}};if(Ji.profile=Wn(mt,dr),Ji.uniforms=Cs(Bt,dr),Ji.drawVAO=Ji.scopeVAO=qt.vao,!Ji.drawVAO&&$r.program&&!cr&&hr.angle_instanced_arrays&&qt.static.elements){var fa=!0,sn=$r.program.attributes.map(function(ma){var Ma=Et.static[ma];return fa=fa&&!!Ma,Ma});if(fa&&sn.length>0){var Ga=Sa.getVAO(Sa.createVAO({attributes:sn,elements:qt.static.elements}));Ji.drawVAO=new Oi(null,null,null,function(ma,Ma){return ma.link(Ga)}),Ji.useVAO=!0}}return cr?Ji.useVAO=!0:Ji.attributes=Ol(Et,dr),Ji.context=Ul(or,dr),Ji}function il(mt,Et,Bt){var or=mt.shared,dr=or.context,ur=mt.scope();Object.keys(Bt).forEach(function(pr){Et.save(dr,"."+pr);var cr=Bt[pr],Gt=cr.append(mt,Et);Array.isArray(Gt)?ur(dr,".",pr,"=[",Gt.join(),"];"):ur(dr,".",pr,"=",Gt,";")}),Et(ur)}function El(mt,Et,Bt,or){var dr=mt.shared,ur=dr.gl,pr=dr.framebuffer,cr;$i&&(cr=Et.def(dr.extensions,".webgl_draw_buffers"));var Gt=mt.constants,lr=Gt.drawBuffer,qt=Gt.backBuffer,zr;Bt?zr=Bt.append(mt,Et):zr=Et.def(pr,".next"),or||Et("if(",zr,"!==",pr,".cur){"),Et("if(",zr,"){",ur,".bindFramebuffer(",xi,",",zr,".framebuffer);"),$i&&Et(cr,".drawBuffersWEBGL(",lr,"[",zr,".colorAttachments.length]);"),Et("}else{",ur,".bindFramebuffer(",xi,",null);"),$i&&Et(cr,".drawBuffersWEBGL(",qt,");"),Et("}",pr,".cur=",zr,";"),or||Et("}")}function Dl(mt,Et,Bt){var or=mt.shared,dr=or.gl,ur=mt.current,pr=mt.next,cr=or.current,Gt=or.next,lr=mt.cond(cr,".dirty");Qi.forEach(function(qt){var zr=Va(qt);if(!(zr in Bt.state)){var $r,Ai;if(zr in pr){$r=pr[zr],Ai=ur[zr];var wa=v(Oa[zr].length,function(fa){return lr.def($r,"[",fa,"]")});lr(mt.cond(wa.map(function(fa,sn){return fa+"!=="+Ai+"["+sn+"]"}).join("||")).then(dr,".",ln[zr],"(",wa,");",wa.map(function(fa,sn){return Ai+"["+sn+"]="+fa}).join(";"),";"))}else{$r=lr.def(Gt,".",zr);var Ji=mt.cond($r,"!==",cr,".",zr);lr(Ji),zr in Yi?Ji(mt.cond($r).then(dr,".enable(",Yi[zr],");").else(dr,".disable(",Yi[zr],");"),cr,".",zr,"=",$r,";"):Ji(dr,".",ln[zr],"(",$r,");",cr,".",zr,"=",$r,";")}}}),Object.keys(Bt.state).length===0&&lr(cr,".dirty=false;"),Et(lr)}function ho(mt,Et,Bt,or){var dr=mt.shared,ur=mt.current,pr=dr.current,cr=dr.gl,Gt;da(Object.keys(Bt)).forEach(function(lr){var qt=Bt[lr];if(!(or&&!or(qt))){var zr=qt.append(mt,Et);if(Yi[lr]){var $r=Yi[lr];xn(qt)?(Gt=mt.link(zr,{stable:!0}),Et(mt.cond(Gt).then(cr,".enable(",$r,");").else(cr,".disable(",$r,");")),Et(pr,".",lr,"=",Gt,";")):(Et(mt.cond(zr).then(cr,".enable(",$r,");").else(cr,".disable(",$r,");")),Et(pr,".",lr,"=",zr,";"))}else if(Si(zr)){var Ai=ur[lr];Et(cr,".",ln[lr],"(",zr,");",zr.map(function(wa,Ji){return Ai+"["+Ji+"]="+wa}).join(";"),";")}else xn(qt)?(Gt=mt.link(zr,{stable:!0}),Et(cr,".",ln[lr],"(",Gt,");",pr,".",lr,"=",Gt,";")):Et(cr,".",ln[lr],"(",zr,");",pr,".",lr,"=",zr,";")}})}function jl(mt,Et){ba&&(mt.instancing=Et.def(mt.shared.extensions,".angle_instanced_arrays"))}function $o(mt,Et,Bt,or,dr){var ur=mt.shared,pr=mt.stats,cr=ur.current,Gt=ur.timer,lr=Bt.profile;function qt(){return typeof performance>"u"?"Date.now()":"performance.now()"}var zr,$r;function Ai(ma){zr=Et.def(),ma(zr,"=",qt(),";"),typeof dr=="string"?ma(pr,".count+=",dr,";"):ma(pr,".count++;"),Da&&(or?($r=Et.def(),ma($r,"=",Gt,".getNumPendingQueries();")):ma(Gt,".beginQuery(",pr,");"))}function wa(ma){ma(pr,".cpuTime+=",qt(),"-",zr,";"),Da&&(or?ma(Gt,".pushScopeStats(",$r,",",Gt,".getNumPendingQueries(),",pr,");"):ma(Gt,".endQuery();"))}function Ji(ma){var Ma=Et.def(cr,".profile");Et(cr,".profile=",ma,";"),Et.exit(cr,".profile=",Ma,";")}var fa;if(lr){if(xn(lr)){lr.enable?(Ai(Et),wa(Et.exit),Ji("true")):Ji("false");return}fa=lr.append(mt,Et),Ji(fa)}else fa=Et.def(cr,".profile");var sn=mt.block();Ai(sn),Et("if(",fa,"){",sn,"}");var Ga=mt.block();wa(Ga),Et.exit("if(",fa,"){",Ga,"}")}function ve(mt,Et,Bt,or,dr){var ur=mt.shared;function pr(Gt){switch(Gt){case bs:case Tl:case ql:return 2;case Ho:case dl:case uu:return 3;case ds:case ms:case Uu:return 4;default:return 1}}function cr(Gt,lr,qt){var zr=ur.gl,$r=Et.def(Gt,".location"),Ai=Et.def(ur.attributes,"[",$r,"]"),wa=qt.state,Ji=qt.buffer,fa=[qt.x,qt.y,qt.z,qt.w],sn=["buffer","normalized","offset","stride"];function Ga(){Et("if(!",Ai,".buffer){",zr,".enableVertexAttribArray(",$r,");}");var Ma=qt.type,Pa;if(qt.size?Pa=Et.def(qt.size,"||",lr):Pa=lr,Et("if(",Ai,".type!==",Ma,"||",Ai,".size!==",Pa,"||",sn.map(function(Sn){return Ai+"."+Sn+"!=="+qt[Sn]}).join("||"),"){",zr,".bindBuffer(",Qr,",",Ji,".buffer);",zr,".vertexAttribPointer(",[$r,Pa,Ma,qt.normalized,qt.stride,qt.offset],");",Ai,".type=",Ma,";",Ai,".size=",Pa,";",sn.map(function(Sn){return Ai+"."+Sn+"="+qt[Sn]+";"}).join(""),"}"),ba){var Ka=qt.divisor;Et("if(",Ai,".divisor!==",Ka,"){",mt.instancing,".vertexAttribDivisorANGLE(",[$r,Ka],");",Ai,".divisor=",Ka,";}")}}function ma(){Et("if(",Ai,".buffer){",zr,".disableVertexAttribArray(",$r,");",Ai,".buffer=null;","}if(",go.map(function(Ma,Pa){return Ai+"."+Ma+"!=="+fa[Pa]}).join("||"),"){",zr,".vertexAttrib4f(",$r,",",fa,");",go.map(function(Ma,Pa){return Ai+"."+Ma+"="+fa[Pa]+";"}).join(""),"}")}wa===yo?Ga():wa===Io?ma():(Et("if(",wa,"===",yo,"){"),Ga(),Et("}else{"),ma(),Et("}"))}or.forEach(function(Gt){var lr=Gt.name,qt=Bt.attributes[lr],zr;if(qt){if(!dr(qt))return;zr=qt.append(mt,Et)}else{if(!dr(Yn))return;var $r=mt.scopeAttrib(lr);zr={},Object.keys(new zi).forEach(function(Ai){zr[Ai]=Et.def($r,".",Ai)})}cr(mt.link(Gt),pr(Gt.info.type),zr)})}function K(mt,Et,Bt,or,dr,ur){for(var pr=mt.shared,cr=pr.gl,Gt,lr=0;lr<or.length;++lr){var qt=or[lr],zr=qt.name,$r=qt.info.type,Ai=Bt.uniforms[zr],wa=mt.link(qt),Ji=wa+".location",fa;if(Ai){if(!dr(Ai))continue;if(xn(Ai)){var sn=Ai.value;if($r===dc||$r===Ql){var Ga=mt.link(sn._texture||sn.color[0]._texture);Et(cr,".uniform1i(",Ji,",",Ga+".bind());"),Et.exit(Ga,".unbind();")}else if($r===Su||$r===Fl||$r===yu){var ma=mt.global.def("new Float32Array(["+Array.prototype.slice.call(sn)+"])"),Ma=2;$r===Fl?Ma=3:$r===yu&&(Ma=4),Et(cr,".uniformMatrix",Ma,"fv(",Ji,",false,",ma,");")}else{switch($r){case Vo:Gt="1f";break;case bs:Gt="2f";break;case Ho:Gt="3f";break;case ds:Gt="4f";break;case gs:Gt="1i";break;case Is:Gt="1i";break;case ql:Gt="2i";break;case Tl:Gt="2i";break;case uu:Gt="3i";break;case dl:Gt="3i";break;case Uu:Gt="4i";break;case ms:Gt="4i";break}Et(cr,".uniform",Gt,"(",Ji,",",Si(sn)?Array.prototype.slice.call(sn):sn,");")}continue}else fa=Ai.append(mt,Et)}else{if(!dr(Yn))continue;fa=Et.def(pr.uniforms,"[",Yt.id(zr),"]")}$r===dc?Et("if(",fa,"&&",fa,'._reglType==="framebuffer"){',fa,"=",fa,".color[0];","}"):$r===Ql&&Et("if(",fa,"&&",fa,'._reglType==="framebufferCube"){',fa,"=",fa,".color[0];","}");var Pa=1;switch($r){case dc:case Ql:var Ka=Et.def(fa,"._texture");Et(cr,".uniform1i(",Ji,",",Ka,".bind());"),Et.exit(Ka,".unbind();");continue;case Is:case gs:Gt="1i";break;case Tl:case ql:Gt="2i",Pa=2;break;case dl:case uu:Gt="3i",Pa=3;break;case ms:case Uu:Gt="4i",Pa=4;break;case Vo:Gt="1f";break;case bs:Gt="2f",Pa=2;break;case Ho:Gt="3f",Pa=3;break;case ds:Gt="4f",Pa=4;break;case Su:Gt="Matrix2fv";break;case Fl:Gt="Matrix3fv";break;case yu:Gt="Matrix4fv";break}if(Gt.charAt(0)==="M"){Et(cr,".uniform",Gt,"(",Ji,",");var Sn=Math.pow($r-Su+2,2),No=mt.global.def("new Float32Array(",Sn,")");Array.isArray(fa)?Et("false,(",v(Sn,function(ll){return No+"["+ll+"]="+fa[ll]}),",",No,")"):Et("false,(Array.isArray(",fa,")||",fa," instanceof Float32Array)?",fa,":(",v(Sn,function(ll){return No+"["+ll+"]="+fa+"["+ll+"]"}),",",No,")"),Et(");")}else if(Pa>1){for(var os=[],Xs=[],ts=0;ts<Pa;++ts)Array.isArray(fa)?Xs.push(fa[ts]):Xs.push(Et.def(fa+"["+ts+"]")),ur&&os.push(Et.def());ur&&Et("if(!",mt.batchId,"||",os.map(function(ll,Mu){return ll+"!=="+Xs[Mu]}).join("||"),"){",os.map(function(ll,Mu){return ll+"="+Xs[Mu]+";"}).join("")),Et(cr,".uniform",Gt,"(",Ji,",",Xs.join(","),");"),ur&&Et("}")}else{if(ur){var Vs=Et.def();Et("if(!",mt.batchId,"||",Vs,"!==",fa,"){",Vs,"=",fa,";")}Et(cr,".uniform",Gt,"(",Ji,",",fa,");"),ur&&Et("}")}}}function ge(mt,Et,Bt,or){var dr=mt.shared,ur=dr.gl,pr=dr.draw,cr=or.draw;function Gt(){var Pa=cr.elements,Ka,Sn=Et;return Pa?((Pa.contextDep&&or.contextDynamic||Pa.propDep)&&(Sn=Bt),Ka=Pa.append(mt,Sn),cr.elementsActive&&Sn("if("+Ka+")"+ur+".bindBuffer("+_i+","+Ka+".buffer.buffer);")):(Ka=Sn.def(),Sn(Ka,"=",pr,".",Qt,";","if(",Ka,"){",ur,".bindBuffer(",_i,",",Ka,".buffer.buffer);}","else if(",dr.vao,".currentVAO){",Ka,"=",mt.shared.elements+".getElements("+dr.vao,".currentVAO.elements);",Xa?"":"if("+Ka+")"+ur+".bindBuffer("+_i+","+Ka+".buffer.buffer);","}")),Ka}function lr(){var Pa=cr.count,Ka,Sn=Et;return Pa?((Pa.contextDep&&or.contextDynamic||Pa.propDep)&&(Sn=Bt),Ka=Pa.append(mt,Sn)):Ka=Sn.def(pr,".",Sr),Ka}var qt=Gt();function zr(Pa){var Ka=cr[Pa];return Ka?Ka.contextDep&&or.contextDynamic||Ka.propDep?Ka.append(mt,Bt):Ka.append(mt,Et):Et.def(pr,".",Pa)}var $r=zr(Ar),Ai=zr(Kr),wa=lr();if(typeof wa=="number"){if(wa===0)return}else Bt("if(",wa,"){"),Bt.exit("}");var Ji,fa;ba&&(Ji=zr(oi),fa=mt.instancing);var sn=qt+".type",Ga=cr.elements&&xn(cr.elements)&&!cr.vaoActive;function ma(){function Pa(){Bt(fa,".drawElementsInstancedANGLE(",[$r,wa,sn,Ai+"<<(("+sn+"-"+wo+")>>1)",Ji],");")}function Ka(){Bt(fa,".drawArraysInstancedANGLE(",[$r,Ai,wa,Ji],");")}qt&&qt!=="null"?Ga?Pa():(Bt("if(",qt,"){"),Pa(),Bt("}else{"),Ka(),Bt("}")):Ka()}function Ma(){function Pa(){Bt(ur+".drawElements("+[$r,wa,sn,Ai+"<<(("+sn+"-"+wo+")>>1)"]+");")}function Ka(){Bt(ur+".drawArrays("+[$r,Ai,wa]+");")}qt&&qt!=="null"?Ga?Pa():(Bt("if(",qt,"){"),Pa(),Bt("}else{"),Ka(),Bt("}")):Ka()}ba&&(typeof Ji!="number"||Ji>=0)?typeof Ji=="string"?(Bt("if(",Ji,">0){"),ma(),Bt("}else if(",Ji,"<0){"),Ma(),Bt("}")):ma():Ma()}function te(mt,Et,Bt,or,dr){var ur=gn(),pr=ur.proc("body",dr);return ba&&(ur.instancing=pr.def(ur.shared.extensions,".angle_instanced_arrays")),mt(ur,pr,Bt,or),ur.compile().body}function pe(mt,Et,Bt,or){jl(mt,Et),Bt.useVAO?Bt.drawVAO?Et(mt.shared.vao,".setVAO(",Bt.drawVAO.append(mt,Et),");"):Et(mt.shared.vao,".setVAO(",mt.shared.vao,".targetVAO);"):(Et(mt.shared.vao,".setVAO(null);"),ve(mt,Et,Bt,or.attributes,function(){return!0})),K(mt,Et,Bt,or.uniforms,function(){return!0},!1),ge(mt,Et,Et,Bt)}function He(mt,Et){var Bt=mt.proc("draw",1);jl(mt,Bt),il(mt,Bt,Et.context),El(mt,Bt,Et.framebuffer),Dl(mt,Bt,Et),ho(mt,Bt,Et.state),$o(mt,Bt,Et,!1,!0);var or=Et.shader.progVar.append(mt,Bt);if(Bt(mt.shared.gl,".useProgram(",or,".program);"),Et.shader.program)pe(mt,Bt,Et,Et.shader.program);else{Bt(mt.shared.vao,".setVAO(null);");var dr=mt.global.def("{}"),ur=Bt.def(or,".id"),pr=Bt.def(dr,"[",ur,"]");Bt(mt.cond(pr).then(pr,".call(this,a0);").else(pr,"=",dr,"[",ur,"]=",mt.link(function(cr){return te(pe,mt,Et,cr,1)}),"(",or,");",pr,".call(this,a0);"))}Object.keys(Et.state).length>0&&Bt(mt.shared.current,".dirty=true;"),mt.shared.vao&&Bt(mt.shared.vao,".setVAO(null);")}function Ce(mt,Et,Bt,or){mt.batchId="a1",jl(mt,Et);function dr(){return!0}ve(mt,Et,Bt,or.attributes,dr),K(mt,Et,Bt,or.uniforms,dr,!1),ge(mt,Et,Et,Bt)}function Ke(mt,Et,Bt,or){jl(mt,Et);var dr=Bt.contextDep,ur=Et.def(),pr="a0",cr="a1",Gt=Et.def();mt.shared.props=Gt,mt.batchId=ur;var lr=mt.scope(),qt=mt.scope();Et(lr.entry,"for(",ur,"=0;",ur,"<",cr,";++",ur,"){",Gt,"=",pr,"[",ur,"];",qt,"}",lr.exit);function zr(sn){return sn.contextDep&&dr||sn.propDep}function $r(sn){return!zr(sn)}if(Bt.needsContext&&il(mt,qt,Bt.context),Bt.needsFramebuffer&&El(mt,qt,Bt.framebuffer),ho(mt,qt,Bt.state,zr),Bt.profile&&zr(Bt.profile)&&$o(mt,qt,Bt,!1,!0),or)Bt.useVAO?Bt.drawVAO?zr(Bt.drawVAO)?qt(mt.shared.vao,".setVAO(",Bt.drawVAO.append(mt,qt),");"):lr(mt.shared.vao,".setVAO(",Bt.drawVAO.append(mt,lr),");"):lr(mt.shared.vao,".setVAO(",mt.shared.vao,".targetVAO);"):(lr(mt.shared.vao,".setVAO(null);"),ve(mt,lr,Bt,or.attributes,$r),ve(mt,qt,Bt,or.attributes,zr)),K(mt,lr,Bt,or.uniforms,$r,!1),K(mt,qt,Bt,or.uniforms,zr,!0),ge(mt,lr,qt,Bt);else{var Ai=mt.global.def("{}"),wa=Bt.shader.progVar.append(mt,qt),Ji=qt.def(wa,".id"),fa=qt.def(Ai,"[",Ji,"]");qt(mt.shared.gl,".useProgram(",wa,".program);","if(!",fa,"){",fa,"=",Ai,"[",Ji,"]=",mt.link(function(sn){return te(Ce,mt,Bt,sn,2)}),"(",wa,");}",fa,".call(this,a0[",ur,"],",ur,");")}}function pt(mt,Et){var Bt=mt.proc("batch",2);mt.batchId="0",jl(mt,Bt);var or=!1,dr=!0;Object.keys(Et.context).forEach(function(Ai){or=or||Et.context[Ai].propDep}),or||(il(mt,Bt,Et.context),dr=!1);var ur=Et.framebuffer,pr=!1;ur?(ur.propDep?or=pr=!0:ur.contextDep&&or&&(pr=!0),pr||El(mt,Bt,ur)):El(mt,Bt,null),Et.state.viewport&&Et.state.viewport.propDep&&(or=!0);function cr(Ai){return Ai.contextDep&&or||Ai.propDep}Dl(mt,Bt,Et),ho(mt,Bt,Et.state,function(Ai){return!cr(Ai)}),(!Et.profile||!cr(Et.profile))&&$o(mt,Bt,Et,!1,"a1"),Et.contextDep=or,Et.needsContext=dr,Et.needsFramebuffer=pr;var Gt=Et.shader.progVar;if(Gt.contextDep&&or||Gt.propDep)Ke(mt,Bt,Et,null);else{var lr=Gt.append(mt,Bt);if(Bt(mt.shared.gl,".useProgram(",lr,".program);"),Et.shader.program)Ke(mt,Bt,Et,Et.shader.program);else{Bt(mt.shared.vao,".setVAO(null);");var qt=mt.global.def("{}"),zr=Bt.def(lr,".id"),$r=Bt.def(qt,"[",zr,"]");Bt(mt.cond($r).then($r,".call(this,a0,a1);").else($r,"=",qt,"[",zr,"]=",mt.link(function(Ai){return te(Ke,mt,Et,Ai,2)}),"(",lr,");",$r,".call(this,a0,a1);"))}}Object.keys(Et.state).length>0&&Bt(mt.shared.current,".dirty=true;"),mt.shared.vao&&Bt(mt.shared.vao,".setVAO(null);")}function Ut(mt,Et){var Bt=mt.proc("scope",3);mt.batchId="a2";var or=mt.shared,dr=or.current;if(il(mt,Bt,Et.context),Et.framebuffer&&Et.framebuffer.append(mt,Bt),da(Object.keys(Et.state)).forEach(function(cr){var Gt=Et.state[cr],lr=Gt.append(mt,Bt);Si(lr)?lr.forEach(function(qt,zr){on(qt)?Bt.set(mt.next[cr],"["+zr+"]",qt):Bt.set(mt.next[cr],"["+zr+"]",mt.link(qt,{stable:!0}))}):xn(Gt)?Bt.set(or.next,"."+cr,mt.link(lr,{stable:!0})):Bt.set(or.next,"."+cr,lr)}),$o(mt,Bt,Et,!0,!0),[Qt,Kr,Sr,oi,Ar].forEach(function(cr){var Gt=Et.draw[cr];if(Gt){var lr=Gt.append(mt,Bt);on(lr)?Bt.set(or.draw,"."+cr,lr):Bt.set(or.draw,"."+cr,mt.link(lr),{stable:!0})}}),Object.keys(Et.uniforms).forEach(function(cr){var Gt=Et.uniforms[cr].append(mt,Bt);Array.isArray(Gt)&&(Gt="["+Gt.map(function(lr){return on(lr)?lr:mt.link(lr,{stable:!0})})+"]"),Bt.set(or.uniforms,"["+mt.link(Yt.id(cr),{stable:!0})+"]",Gt)}),Object.keys(Et.attributes).forEach(function(cr){var Gt=Et.attributes[cr].append(mt,Bt),lr=mt.scopeAttrib(cr);Object.keys(new zi).forEach(function(qt){Bt.set(lr,"."+qt,Gt[qt])})}),Et.scopeVAO){var ur=Et.scopeVAO.append(mt,Bt);on(ur)?Bt.set(or.vao,".targetVAO",ur):Bt.set(or.vao,".targetVAO",mt.link(ur,{stable:!0}))}function pr(cr){var Gt=Et.shader[cr];if(Gt){var lr=Gt.append(mt,Bt);on(lr)?Bt.set(or.shader,"."+cr,lr):Bt.set(or.shader,"."+cr,mt.link(lr,{stable:!0}))}}pr(Tt),pr(Ot),Object.keys(Et.state).length>0&&(Bt(dr,".dirty=true;"),Bt.exit(dr,".dirty=true;")),Bt("a1(",mt.shared.context,",a0,",mt.batchId,");")}function Tr(mt){if(!(typeof mt!="object"||Si(mt))){for(var Et=Object.keys(mt),Bt=0;Bt<Et.length;++Bt)if(h.isDynamic(mt[Et[Bt]]))return!0;return!1}}function Ur(mt,Et,Bt){var or=Et.static[Bt];if(!or||!Tr(or))return;var dr=mt.global,ur=Object.keys(or),pr=!1,cr=!1,Gt=!1,lr=mt.global.def("{}");ur.forEach(function(zr){var $r=or[zr];if(h.isDynamic($r)){typeof $r=="function"&&($r=or[zr]=h.unbox($r));var Ai=In($r,null);pr=pr||Ai.thisDep,Gt=Gt||Ai.propDep,cr=cr||Ai.contextDep}else{switch(dr(lr,".",zr,"="),typeof $r){case"number":dr($r);break;case"string":dr('"',$r,'"');break;case"object":Array.isArray($r)&&dr("[",$r.join(),"]");break;default:dr(mt.link($r));break}dr(";")}});function qt(zr,$r){ur.forEach(function(Ai){var wa=or[Ai];if(h.isDynamic(wa)){var Ji=zr.invoke($r,wa);$r(lr,".",Ai,"=",Ji,";")}})}Et.dynamic[Bt]=new h.DynamicVariable(js,{thisDep:pr,contextDep:cr,propDep:Gt,ref:lr,append:qt}),delete Et.static[Bt]}function vr(mt,Et,Bt,or,dr){var ur=gn();ur.stats=ur.link(dr),Object.keys(Et.static).forEach(function(cr){Ur(ur,Et,cr)}),Vr.forEach(function(cr){Ur(ur,mt,cr)});var pr=cu(mt,Et,Bt,or,ur);return pr.shader.program&&(pr.shader.program.attributes.sort(function(cr,Gt){return cr.name<Gt.name?-1:1}),pr.shader.program.uniforms.sort(function(cr,Gt){return cr.name<Gt.name?-1:1})),He(ur,pr),Ut(ur,pr),pt(ur,pr),p(ur.compile(),{destroy:function(){pr.shader.program.destroy()}})}return{next:kn,current:Oa,procs:function(){var mt=gn(),Et=mt.proc("poll"),Bt=mt.proc("refresh"),or=mt.block();Et(or),Bt(or);var dr=mt.shared,ur=dr.gl,pr=dr.next,cr=dr.current;or(cr,".dirty=false;"),El(mt,Et),El(mt,Bt,null,!0);var Gt;ba&&(Gt=mt.link(ba)),hr.oes_vertex_array_object&&Bt(mt.link(hr.oes_vertex_array_object),".bindVertexArrayOES(null);");var lr=Bt.def(dr.attributes),qt=Bt.def(0),zr=mt.cond(qt,".buffer");zr.then(ur,".enableVertexAttribArray(i);",ur,".bindBuffer(",Qr,",",qt,".buffer.buffer);",ur,".vertexAttribPointer(i,",qt,".size,",qt,".type,",qt,".normalized,",qt,".stride,",qt,".offset);").else(ur,".disableVertexAttribArray(i);",ur,".vertexAttrib4f(i,",qt,".x,",qt,".y,",qt,".z,",qt,".w);",qt,".buffer=null;");var $r=mt.link(li.maxAttributes,{stable:!0});return Bt("for(var i=0;i<",$r,";++i){",qt,"=",lr,"[i];",zr,"}"),ba&&Bt("for(var i=0;i<",$r,";++i){",Gt,".vertexAttribDivisorANGLE(i,",lr,"[i].divisor);","}"),Bt(mt.shared.vao,".currentVAO=null;",mt.shared.vao,".setVAO(",mt.shared.vao,".targetVAO);"),Object.keys(Yi).forEach(function(Ai){var wa=Yi[Ai],Ji=or.def(pr,".",Ai),fa=mt.block();fa("if(",Ji,"){",ur,".enable(",wa,")}else{",ur,".disable(",wa,")}",cr,".",Ai,"=",Ji,";"),Bt(fa),Et("if(",Ji,"!==",cr,".",Ai,"){",fa,"}")}),Object.keys(ln).forEach(function(Ai){var wa=ln[Ai],Ji=Oa[Ai],fa,sn,Ga=mt.block();if(Ga(ur,".",wa,"("),Si(Ji)){var ma=Ji.length;fa=mt.global.def(pr,".",Ai),sn=mt.global.def(cr,".",Ai),Ga(v(ma,function(Ma){return fa+"["+Ma+"]"}),");",v(ma,function(Ma){return sn+"["+Ma+"]="+fa+"["+Ma+"];"}).join("")),Et("if(",v(ma,function(Ma){return fa+"["+Ma+"]!=="+sn+"["+Ma+"]"}).join("||"),"){",Ga,"}")}else fa=or.def(pr,".",Ai),sn=or.def(cr,".",Ai),Ga(fa,");",cr,".",Ai,"=",fa,";"),Et("if(",fa,"!==",sn,"){",Ga,"}");Bt(Ga)}),mt.compile()}(),compile:vr}}function bo(){return{vaoCount:0,bufferCount:0,elementsCount:0,framebufferCount:0,shaderCount:0,textureCount:0,cubeCount:0,renderbufferCount:0,maxTextureUnits:0}}var vs=34918,To=34919,cs=35007,Al=function(rt,Yt){if(!Yt.ext_disjoint_timer_query)return null;var hr=[];function li(){return hr.pop()||Yt.ext_disjoint_timer_query.createQueryEXT()}function Ci(la){hr.push(la)}var Ti=[];function Mi(la){var ba=li();Yt.ext_disjoint_timer_query.beginQueryEXT(cs,ba),Ti.push(ba),Da(Ti.length-1,Ti.length,la)}function ia(){Yt.ext_disjoint_timer_query.endQueryEXT(cs)}function ka(){this.startQueryIndex=-1,this.endQueryIndex=-1,this.sum=0,this.stats=null}var Sa=[];function va(){return Sa.pop()||new ka}function Fn(la){Sa.push(la)}var Ha=[];function Da(la,ba,$i){var Xa=va();Xa.startQueryIndex=la,Xa.endQueryIndex=ba,Xa.sum=0,Xa.stats=$i,Ha.push(Xa)}var Xi=[],ei=[];function zi(){var la,ba,$i=Ti.length;if($i!==0){ei.length=Math.max(ei.length,$i+1),Xi.length=Math.max(Xi.length,$i+1),Xi[0]=0,ei[0]=0;var Xa=0;for(la=0,ba=0;ba<Ti.length;++ba){var Oa=Ti[ba];Yt.ext_disjoint_timer_query.getQueryObjectEXT(Oa,To)?(Xa+=Yt.ext_disjoint_timer_query.getQueryObjectEXT(Oa,vs),Ci(Oa)):Ti[la++]=Oa,Xi[ba+1]=Xa,ei[ba+1]=la}for(Ti.length=la,la=0,ba=0;ba<Ha.length;++ba){var kn=Ha[ba],Qi=kn.startQueryIndex,Yi=kn.endQueryIndex;kn.sum+=Xi[Yi]-Xi[Qi];var ln=ei[Qi],Va=ei[Yi];Va===ln?(kn.stats.gpuTime+=kn.sum/1e6,Fn(kn)):(kn.startQueryIndex=ln,kn.endQueryIndex=Va,Ha[la++]=kn)}Ha.length=la}}return{beginQuery:Mi,endQuery:ia,pushScopeStats:Da,update:zi,getNumPendingQueries:function(){return Ti.length},clear:function(){hr.push.apply(hr,Ti);for(var la=0;la<hr.length;la++)Yt.ext_disjoint_timer_query.deleteQueryEXT(hr[la]);Ti.length=0,hr.length=0},restore:function(){Ti.length=0,hr.length=0}}},ml=16384,Pl=256,Dn=1024,zo=34962,ks="webglcontextlost",Rs="webglcontextrestored",Bl=1,tu=2,Ru=3;function Hl(rt,Yt){for(var hr=0;hr<rt.length;++hr)if(rt[hr]===Yt)return hr;return-1}function Tc(rt){var Yt=g(rt);if(!Yt)return null;var hr=Yt.gl,li=hr.getContextAttributes(),Ci=hr.isContextLost(),Ti=b(hr,Yt);if(!Ti)return null;var Mi=d(),ia=bo(),ka=Yt.cachedCode||{},Sa=Ti.extensions,va=Al(hr,Sa),Fn=m(),Ha=hr.drawingBufferWidth,Da=hr.drawingBufferHeight,Xi={tick:0,time:0,viewportWidth:Ha,viewportHeight:Da,framebufferWidth:Ha,framebufferHeight:Da,drawingBufferWidth:Ha,drawingBufferHeight:Da,pixelRatio:Yt.pixelRatio},ei={},zi={elements:null,primitive:4,count:-1,offset:0,instances:-1},la=qr(hr,Sa),ba=ii(hr,ia,Yt,Oa),$i=Xt(hr,Sa,ba,ia),Xa=Ou(hr,Sa,la,ia,ba,$i,zi);function Oa(te){return Xa.destroyBuffer(te)}var kn=Ju(hr,Mi,ia,Yt),Qi=$c(hr,Sa,la,function(){Va.procs.poll()},Xi,ia,Yt),Yi=Ic(hr,Sa,la,ia,Yt),ln=Qc(hr,Sa,la,Qi,Yi,ia),Va=mo(hr,Mi,Sa,la,ba,$i,Qi,ln,ei,Xa,kn,zi,Xi,va,ka,Yt),La=du(hr,ln,Va.procs.poll,Xi,li,Sa,la),Ea=Va.next,on=hr.canvas,Pn=[],Zn=[],ja=[],gn=[Yt.onDestroy],Wn=null;function $n(){if(Pn.length===0){va&&va.update(),Wn=null;return}Wn=c.next($n),Dl();for(var te=Pn.length-1;te>=0;--te){var pe=Pn[te];pe&&pe(Xi,null,0)}hr.flush(),va&&va.update()}function fo(){!Wn&&Pn.length>0&&(Wn=c.next($n))}function Ks(){Wn&&(c.cancel($n),Wn=null)}function Rl(te){te.preventDefault(),Ci=!0,Ks(),Zn.forEach(function(pe){pe()})}function Ro(te){hr.getError(),Ci=!1,Ti.restore(),kn.restore(),ba.restore(),Qi.restore(),Yi.restore(),ln.restore(),Xa.restore(),va&&va.restore(),Va.procs.refresh(),fo(),ja.forEach(function(pe){pe()})}on&&(on.addEventListener(ks,Rl,!1),on.addEventListener(Rs,Ro,!1));function ru(){Pn.length=0,Ks(),on&&(on.removeEventListener(ks,Rl),on.removeEventListener(Rs,Ro)),kn.clear(),ln.clear(),Yi.clear(),Xa.clear(),Qi.clear(),$i.clear(),ba.clear(),va&&va.clear(),gn.forEach(function(te){te()})}function Cs(te){function pe(ur){var pr=p({},ur);delete pr.uniforms,delete pr.attributes,delete pr.context,delete pr.vao,"stencil"in pr&&pr.stencil.op&&(pr.stencil.opBack=pr.stencil.opFront=pr.stencil.op,delete pr.stencil.op);function cr(Gt){if(Gt in pr){var lr=pr[Gt];delete pr[Gt],Object.keys(lr).forEach(function(qt){pr[Gt+"."+qt]=lr[qt]})}}return cr("blend"),cr("depth"),cr("cull"),cr("stencil"),cr("polygonOffset"),cr("scissor"),cr("sample"),"vao"in ur&&(pr.vao=ur.vao),pr}function He(ur,pr){var cr={},Gt={};return Object.keys(ur).forEach(function(lr){var qt=ur[lr];if(h.isDynamic(qt)){Gt[lr]=h.unbox(qt,lr);return}else if(pr&&Array.isArray(qt)){for(var zr=0;zr<qt.length;++zr)if(h.isDynamic(qt[zr])){Gt[lr]=h.unbox(qt,lr);return}}cr[lr]=qt}),{dynamic:Gt,static:cr}}var Ce=He(te.context||{},!0),Ke=He(te.uniforms||{},!0),pt=He(te.attributes||{},!1),Ut=He(pe(te),!1),Tr={gpuTime:0,cpuTime:0,count:0},Ur=Va.compile(Ut,pt,Ke,Ce,Tr),vr=Ur.draw,mt=Ur.batch,Et=Ur.scope,Bt=[];function or(ur){for(;Bt.length<ur;)Bt.push(null);return Bt}function dr(ur,pr){var cr;if(typeof ur=="function")return Et.call(this,null,ur,0);if(typeof pr=="function")if(typeof ur=="number")for(cr=0;cr<ur;++cr)Et.call(this,null,pr,cr);else if(Array.isArray(ur))for(cr=0;cr<ur.length;++cr)Et.call(this,ur[cr],pr,cr);else return Et.call(this,ur,pr,0);else if(typeof ur=="number"){if(ur>0)return mt.call(this,or(ur|0),ur|0)}else if(Array.isArray(ur)){if(ur.length)return mt.call(this,ur,ur.length)}else return vr.call(this,ur)}return p(dr,{stats:Tr,destroy:function(){Ur.destroy()}})}var Ol=ln.setFBO=Cs({framebuffer:h.define.call(null,Bl,"framebuffer")});function Ul(te,pe){var He=0;Va.procs.poll();var Ce=pe.color;Ce&&(hr.clearColor(+Ce[0]||0,+Ce[1]||0,+Ce[2]||0,+Ce[3]||0),He|=ml),"depth"in pe&&(hr.clearDepth(+pe.depth),He|=Pl),"stencil"in pe&&(hr.clearStencil(pe.stencil|0),He|=Dn),hr.clear(He)}function cu(te){if("framebuffer"in te)if(te.framebuffer&&te.framebuffer_reglType==="framebufferCube")for(var pe=0;pe<6;++pe)Ol(p({framebuffer:te.framebuffer.faces[pe]},te),Ul);else Ol(te,Ul);else Ul(null,te)}function il(te){Pn.push(te);function pe(){var He=Hl(Pn,te);function Ce(){var Ke=Hl(Pn,Ce);Pn[Ke]=Pn[Pn.length-1],Pn.length-=1,Pn.length<=0&&Ks()}Pn[He]=Ce}return fo(),{cancel:pe}}function El(){var te=Ea.viewport,pe=Ea.scissor_box;te[0]=te[1]=pe[0]=pe[1]=0,Xi.viewportWidth=Xi.framebufferWidth=Xi.drawingBufferWidth=te[2]=pe[2]=hr.drawingBufferWidth,Xi.viewportHeight=Xi.framebufferHeight=Xi.drawingBufferHeight=te[3]=pe[3]=hr.drawingBufferHeight}function Dl(){Xi.tick+=1,Xi.time=jl(),El(),Va.procs.poll()}function ho(){Qi.refresh(),El(),Va.procs.refresh(),va&&va.update()}function jl(){return(m()-Fn)/1e3}ho();function $o(te,pe){var He;switch(te){case"frame":return il(pe);case"lost":He=Zn;break;case"restore":He=ja;break;case"destroy":He=gn;break;default:}return He.push(pe),{cancel:function(){for(var Ce=0;Ce<He.length;++Ce)if(He[Ce]===pe){He[Ce]=He[He.length-1],He.pop();return}}}}function ve(){return ka}function K(te){Object.entries(te).forEach(function(pe){ka[pe[0]]=pe[1]})}var ge=p(Cs,{clear:cu,prop:h.define.bind(null,Bl),context:h.define.bind(null,tu),this:h.define.bind(null,Ru),draw:Cs({}),buffer:function(te){return ba.create(te,zo,!1,!1)},elements:function(te){return $i.create(te,!1)},texture:Qi.create2D,cube:Qi.createCube,renderbuffer:Yi.create,framebuffer:ln.create,framebufferCube:ln.createCube,vao:Xa.createVAO,attributes:li,frame:il,on:$o,limits:la,hasExtension:function(te){return la.extensions.indexOf(te.toLowerCase())>=0},read:La,destroy:ru,_gl:hr,_refresh:ho,poll:function(){Dl(),va&&va.update()},now:jl,stats:ia,getCachedCode:ve,preloadCachedCode:K});return Yt.onDone(null,ge),ge}return Tc})}}),G8=De({"node_modules/gl-util/context.js"(Y,H){"use strict";var p=Nv();H.exports=function(o){if(o?typeof o=="string"&&(o={container:o}):o={},S(o)?o={container:o}:E(o)?o={container:o}:e(o)?o={gl:o}:o=p(o,{container:"container target element el canvas holder parent parentNode wrapper use ref root node",gl:"gl context webgl glContext",attrs:"attributes attrs contextAttributes",pixelRatio:"pixelRatio pxRatio px ratio pxratio pixelratio",width:"w width",height:"h height"},!0),o.pixelRatio||(o.pixelRatio=window.pixelRatio||1),o.gl)return o.gl;if(o.canvas&&(o.container=o.canvas.parentNode),o.container){if(typeof o.container=="string"){var i=document.querySelector(o.container);if(!i)throw Error("Element "+o.container+" is not found");o.container=i}S(o.container)?(o.canvas=o.container,o.container=o.canvas.parentNode):o.canvas||(o.canvas=t(),o.container.appendChild(o.canvas),x(o))}else if(!o.canvas)if(typeof document<"u")o.container=document.body||document.documentElement,o.canvas=t(),o.container.appendChild(o.canvas),x(o);else throw Error("Not DOM environment. Use headless-gl.");return o.gl||["webgl","experimental-webgl","webgl-experimental"].some(function(n){try{o.gl=o.canvas.getContext(n,o.attrs)}catch{}return o.gl}),o.gl};function x(r){if(r.container)if(r.container==document.body)document.body.style.width||(r.canvas.width=r.width||r.pixelRatio*window.innerWidth),document.body.style.height||(r.canvas.height=r.height||r.pixelRatio*window.innerHeight);else{var o=r.container.getBoundingClientRect();r.canvas.width=r.width||o.right-o.left,r.canvas.height=r.height||o.bottom-o.top}}function S(r){return typeof r.getContext=="function"&&"width"in r&&"height"in r}function E(r){return typeof r.nodeName=="string"&&typeof r.appendChild=="function"&&typeof r.getBoundingClientRect=="function"}function e(r){return typeof r.drawArrays=="function"||typeof r.drawElements=="function"}function t(){var r=document.createElement("canvas");return r.style.position="absolute",r.style.top=0,r.style.left=0,r}}}),W8=De({"node_modules/font-atlas/index.js"(Y,H){"use strict";var p=G5(),x=[32,126];H.exports=S;function S(E){E=E||{};var e=E.shape?E.shape:E.canvas?[E.canvas.width,E.canvas.height]:[512,512],t=E.canvas||document.createElement("canvas"),r=E.font,o=typeof E.step=="number"?[E.step,E.step]:E.step||[32,32],i=E.chars||x;if(r&&typeof r!="string"&&(r=p(r)),!Array.isArray(i))i=String(i).split("");else if(i.length===2&&typeof i[0]=="number"&&typeof i[1]=="number"){for(var n=[],a=i[0],s=0;a<=i[1];a++)n[s++]=String.fromCharCode(a);i=n}e=e.slice(),t.width=e[0],t.height=e[1];var h=t.getContext("2d");h.fillStyle="#000",h.fillRect(0,0,t.width,t.height),h.font=r,h.textAlign="center",h.textBaseline="middle",h.fillStyle="#fff";for(var c=o[0]/2,m=o[1]/2,a=0;a<i.length;a++)h.fillText(i[a],c,m),(c+=o[0])>e[0]-o[0]/2&&(c=o[0]/2,m+=o[1]);return t}}}),W5=De({"node_modules/bit-twiddle/twiddle.js"(Y){"use strict";"use restrict";var H=32;Y.INT_BITS=H,Y.INT_MAX=2147483647,Y.INT_MIN=-1<<H-1,Y.sign=function(S){return(S>0)-(S<0)},Y.abs=function(S){var E=S>>H-1;return(S^E)-E},Y.min=function(S,E){return E^(S^E)&-(S<E)},Y.max=function(S,E){return S^(S^E)&-(S<E)},Y.isPow2=function(S){return!(S&S-1)&&!!S},Y.log2=function(S){var E,e;return E=(S>65535)<<4,S>>>=E,e=(S>255)<<3,S>>>=e,E|=e,e=(S>15)<<2,S>>>=e,E|=e,e=(S>3)<<1,S>>>=e,E|=e,E|S>>1},Y.log10=function(S){return S>=1e9?9:S>=1e8?8:S>=1e7?7:S>=1e6?6:S>=1e5?5:S>=1e4?4:S>=1e3?3:S>=100?2:S>=10?1:0},Y.popCount=function(S){return S=S-(S>>>1&1431655765),S=(S&858993459)+(S>>>2&858993459),(S+(S>>>4)&252645135)*16843009>>>24};function p(S){var E=32;return S&=-S,S&&E--,S&65535&&(E-=16),S&16711935&&(E-=8),S&252645135&&(E-=4),S&858993459&&(E-=2),S&1431655765&&(E-=1),E}Y.countTrailingZeros=p,Y.nextPow2=function(S){return S+=S===0,--S,S|=S>>>1,S|=S>>>2,S|=S>>>4,S|=S>>>8,S|=S>>>16,S+1},Y.prevPow2=function(S){return S|=S>>>1,S|=S>>>2,S|=S>>>4,S|=S>>>8,S|=S>>>16,S-(S>>>1)},Y.parity=function(S){return S^=S>>>16,S^=S>>>8,S^=S>>>4,S&=15,27030>>>S&1};var x=new Array(256);(function(S){for(var E=0;E<256;++E){var e=E,t=E,r=7;for(e>>>=1;e;e>>>=1)t<<=1,t|=e&1,--r;S[E]=t<<r&255}})(x),Y.reverse=function(S){return x[S&255]<<24|x[S>>>8&255]<<16|x[S>>>16&255]<<8|x[S>>>24&255]},Y.interleave2=function(S,E){return S&=65535,S=(S|S<<8)&16711935,S=(S|S<<4)&252645135,S=(S|S<<2)&858993459,S=(S|S<<1)&1431655765,E&=65535,E=(E|E<<8)&16711935,E=(E|E<<4)&252645135,E=(E|E<<2)&858993459,E=(E|E<<1)&1431655765,S|E<<1},Y.deinterleave2=function(S,E){return S=S>>>E&1431655765,S=(S|S>>>1)&858993459,S=(S|S>>>2)&252645135,S=(S|S>>>4)&16711935,S=(S|S>>>16)&65535,S<<16>>16},Y.interleave3=function(S,E,e){return S&=1023,S=(S|S<<16)&4278190335,S=(S|S<<8)&251719695,S=(S|S<<4)&3272356035,S=(S|S<<2)&1227133513,E&=1023,E=(E|E<<16)&4278190335,E=(E|E<<8)&251719695,E=(E|E<<4)&3272356035,E=(E|E<<2)&1227133513,S|=E<<1,e&=1023,e=(e|e<<16)&4278190335,e=(e|e<<8)&251719695,e=(e|e<<4)&3272356035,e=(e|e<<2)&1227133513,S|e<<2},Y.deinterleave3=function(S,E){return S=S>>>E&1227133513,S=(S|S>>>2)&3272356035,S=(S|S>>>4)&251719695,S=(S|S>>>8)&4278190335,S=(S|S>>>16)&1023,S<<22>>22},Y.nextCombination=function(S){var E=S|S-1;return E+1|(~E&-~E)-1>>>p(S)+1}}}),X8=De({"node_modules/dup/dup.js"(Y,H){"use strict";function p(E,e,t){var r=E[t]|0;if(r<=0)return[];var o=new Array(r),i;if(t===E.length-1)for(i=0;i<r;++i)o[i]=e;else for(i=0;i<r;++i)o[i]=p(E,e,t+1);return o}function x(E,e){var t,r;for(t=new Array(E),r=0;r<E;++r)t[r]=e;return t}function S(E,e){switch(typeof e>"u"&&(e=0),typeof E){case"number":if(E>0)return x(E|0,e);break;case"object":if(typeof E.length=="number")return p(E,e,0);break}return[]}H.exports=S}}),Y8=De({"node_modules/typedarray-pool/pool.js"(Y){"use strict";var H=W5(),p=X8(),x=X0().Buffer;window.__TYPEDARRAY_POOL||(window.__TYPEDARRAY_POOL={UINT8:p([32,0]),UINT16:p([32,0]),UINT32:p([32,0]),BIGUINT64:p([32,0]),INT8:p([32,0]),INT16:p([32,0]),INT32:p([32,0]),BIGINT64:p([32,0]),FLOAT:p([32,0]),DOUBLE:p([32,0]),DATA:p([32,0]),UINT8C:p([32,0]),BUFFER:p([32,0])});var S=typeof Uint8ClampedArray<"u",E=typeof BigUint64Array<"u",e=typeof BigInt64Array<"u",t=window.__TYPEDARRAY_POOL;t.UINT8C||(t.UINT8C=p([32,0])),t.BIGUINT64||(t.BIGUINT64=p([32,0])),t.BIGINT64||(t.BIGINT64=p([32,0])),t.BUFFER||(t.BUFFER=p([32,0]));var r=t.DATA,o=t.BUFFER;Y.free=function(u){if(x.isBuffer(u))o[H.log2(u.length)].push(u);else{if(Object.prototype.toString.call(u)!=="[object ArrayBuffer]"&&(u=u.buffer),!u)return;var y=u.length||u.byteLength,f=H.log2(y)|0;r[f].push(u)}};function i(v){if(v){var u=v.length||v.byteLength,y=H.log2(u);r[y].push(v)}}function n(v){i(v.buffer)}Y.freeUint8=Y.freeUint16=Y.freeUint32=Y.freeBigUint64=Y.freeInt8=Y.freeInt16=Y.freeInt32=Y.freeBigInt64=Y.freeFloat32=Y.freeFloat=Y.freeFloat64=Y.freeDouble=Y.freeUint8Clamped=Y.freeDataView=n,Y.freeArrayBuffer=i,Y.freeBuffer=function(u){o[H.log2(u.length)].push(u)},Y.malloc=function(u,y){if(y===void 0||y==="arraybuffer")return a(u);switch(y){case"uint8":return s(u);case"uint16":return h(u);case"uint32":return c(u);case"int8":return m(u);case"int16":return d(u);case"int32":return T(u);case"float":case"float32":return l(u);case"double":case"float64":return _(u);case"uint8_clamped":return w(u);case"bigint64":return M(u);case"biguint64":return A(u);case"buffer":return b(u);case"data":case"dataview":return g(u);default:return null}return null};function a(u){var u=H.nextPow2(u),y=H.log2(u),f=r[y];return f.length>0?f.pop():new ArrayBuffer(u)}Y.mallocArrayBuffer=a;function s(v){return new Uint8Array(a(v),0,v)}Y.mallocUint8=s;function h(v){return new Uint16Array(a(2*v),0,v)}Y.mallocUint16=h;function c(v){return new Uint32Array(a(4*v),0,v)}Y.mallocUint32=c;function m(v){return new Int8Array(a(v),0,v)}Y.mallocInt8=m;function d(v){return new Int16Array(a(2*v),0,v)}Y.mallocInt16=d;function T(v){return new Int32Array(a(4*v),0,v)}Y.mallocInt32=T;function l(v){return new Float32Array(a(4*v),0,v)}Y.mallocFloat32=Y.mallocFloat=l;function _(v){return new Float64Array(a(8*v),0,v)}Y.mallocFloat64=Y.mallocDouble=_;function w(v){return S?new Uint8ClampedArray(a(v),0,v):s(v)}Y.mallocUint8Clamped=w;function A(v){return E?new BigUint64Array(a(8*v),0,v):null}Y.mallocBigUint64=A;function M(v){return e?new BigInt64Array(a(8*v),0,v):null}Y.mallocBigInt64=M;function g(v){return new DataView(a(v),0,v)}Y.mallocDataView=g;function b(v){v=H.nextPow2(v);var u=H.log2(v),y=o[u];return y.length>0?y.pop():new x(v)}Y.mallocBuffer=b,Y.clearCache=function(){for(var u=0;u<32;++u)t.UINT8[u].length=0,t.UINT16[u].length=0,t.UINT32[u].length=0,t.INT8[u].length=0,t.INT16[u].length=0,t.INT32[u].length=0,t.FLOAT[u].length=0,t.DOUBLE[u].length=0,t.BIGUINT64[u].length=0,t.BIGINT64[u].length=0,t.UINT8C[u].length=0,r[u].length=0,o[u].length=0}}}),Z8=De({"node_modules/is-plain-obj/index.js"(Y,H){"use strict";var p=Object.prototype.toString;H.exports=function(x){var S;return p.call(x)==="[object Object]"&&(S=Object.getPrototypeOf(x),S===null||S===Object.getPrototypeOf({}))}}}),X5=De({"node_modules/parse-unit/index.js"(Y,H){H.exports=function(x,S){S||(S=[0,""]),x=String(x);var E=parseFloat(x,10);return S[0]=E,S[1]=x.match(/[\d.\-\+]*\s*(.*)/)[1]||"",S}}}),K8=De({"node_modules/to-px/topx.js"(Y,H){"use strict";var p=X5();H.exports=e;var x=96;function S(t,r){var o=p(getComputedStyle(t).getPropertyValue(r));return o[0]*e(o[1],t)}function E(t,r){var o=document.createElement("div");o.style["font-size"]="128"+t,r.appendChild(o);var i=S(o,"font-size")/128;return r.removeChild(o),i}function e(t,r){switch(r=r||document.body,t=(t||"px").trim().toLowerCase(),(r===window||r===document)&&(r=document.body),t){case"%":return r.clientHeight/100;case"ch":case"ex":return E(t,r);case"em":return S(r,"font-size");case"rem":return S(document.body,"font-size");case"vw":return window.innerWidth/100;case"vh":return window.innerHeight/100;case"vmin":return Math.min(window.innerWidth,window.innerHeight)/100;case"vmax":return Math.max(window.innerWidth,window.innerHeight)/100;case"in":return x;case"cm":return x/2.54;case"mm":return x/25.4;case"pt":return x/72;case"pc":return x/6}return 1}}}),$8=De({"node_modules/detect-kerning/index.js"(Y,H){"use strict";H.exports=E;var p=E.canvas=document.createElement("canvas"),x=p.getContext("2d"),S=e([32,126]);E.createPairs=e,E.ascii=S;function E(t,r){Array.isArray(t)&&(t=t.join(", "));var o={},i,n=16,a=.05;r&&(r.length===2&&typeof r[0]=="number"?i=e(r):Array.isArray(r)?i=r:(r.o?i=e(r.o):r.pairs&&(i=r.pairs),r.fontSize&&(n=r.fontSize),r.threshold!=null&&(a=r.threshold))),i||(i=S),x.font=n+"px "+t;for(var s=0;s<i.length;s++){var h=i[s],c=x.measureText(h[0]).width+x.measureText(h[1]).width,m=x.measureText(h).width;if(Math.abs(c-m)>n*a){var d=(m-c)/n;o[h]=d*1e3}}return o}function e(t){for(var r=[],o=t[0];o<=t[1];o++)for(var i=String.fromCharCode(o),n=t[0];n<t[1];n++){var a=String.fromCharCode(n),s=i+a;r.push(s)}return r}}}),J8=De({"node_modules/font-measure/index.js"(Y,H){"use strict";H.exports=p,p.canvas=document.createElement("canvas"),p.cache={};function p(a,t){t||(t={}),(typeof a=="string"||Array.isArray(a))&&(t.family=a);var r=Array.isArray(t.family)?t.family.join(", "):t.family;if(!r)throw Error("`family` must be defined");var o=t.size||t.fontSize||t.em||48,i=t.weight||t.fontWeight||"",n=t.style||t.fontStyle||"",a=[n,i,o].join(" ")+"px "+r,s=t.origin||"top";if(p.cache[r]&&o<=p.cache[r].em)return x(p.cache[r],s);var h=t.canvas||p.canvas,c=h.getContext("2d"),m={upper:t.upper!==void 0?t.upper:"H",lower:t.lower!==void 0?t.lower:"x",descent:t.descent!==void 0?t.descent:"p",ascent:t.ascent!==void 0?t.ascent:"h",tittle:t.tittle!==void 0?t.tittle:"i",overshoot:t.overshoot!==void 0?t.overshoot:"O"},d=Math.ceil(o*1.5);h.height=d,h.width=d*.5,c.font=a;var T="H",l={top:0};c.clearRect(0,0,d,d),c.textBaseline="top",c.fillStyle="black",c.fillText(T,0,0);var _=S(c.getImageData(0,0,d,d));c.clearRect(0,0,d,d),c.textBaseline="bottom",c.fillText(T,0,d);var w=S(c.getImageData(0,0,d,d));l.lineHeight=l.bottom=d-w+_,c.clearRect(0,0,d,d),c.textBaseline="alphabetic",c.fillText(T,0,d);var A=S(c.getImageData(0,0,d,d)),M=d-A-1+_;l.baseline=l.alphabetic=M,c.clearRect(0,0,d,d),c.textBaseline="middle",c.fillText(T,0,d*.5);var g=S(c.getImageData(0,0,d,d));l.median=l.middle=d-g-1+_-d*.5,c.clearRect(0,0,d,d),c.textBaseline="hanging",c.fillText(T,0,d*.5);var b=S(c.getImageData(0,0,d,d));l.hanging=d-b-1+_-d*.5,c.clearRect(0,0,d,d),c.textBaseline="ideographic",c.fillText(T,0,d);var v=S(c.getImageData(0,0,d,d));if(l.ideographic=d-v-1+_,m.upper&&(c.clearRect(0,0,d,d),c.textBaseline="top",c.fillText(m.upper,0,0),l.upper=S(c.getImageData(0,0,d,d)),l.capHeight=l.baseline-l.upper),m.lower&&(c.clearRect(0,0,d,d),c.textBaseline="top",c.fillText(m.lower,0,0),l.lower=S(c.getImageData(0,0,d,d)),l.xHeight=l.baseline-l.lower),m.tittle&&(c.clearRect(0,0,d,d),c.textBaseline="top",c.fillText(m.tittle,0,0),l.tittle=S(c.getImageData(0,0,d,d))),m.ascent&&(c.clearRect(0,0,d,d),c.textBaseline="top",c.fillText(m.ascent,0,0),l.ascent=S(c.getImageData(0,0,d,d))),m.descent&&(c.clearRect(0,0,d,d),c.textBaseline="top",c.fillText(m.descent,0,0),l.descent=E(c.getImageData(0,0,d,d))),m.overshoot){c.clearRect(0,0,d,d),c.textBaseline="top",c.fillText(m.overshoot,0,0);var u=E(c.getImageData(0,0,d,d));l.overshoot=u-M}for(var y in l)l[y]/=o;return l.em=o,p.cache[r]=l,x(l,s)}function x(e,t){var r={};typeof t=="string"&&(t=e[t]);for(var o in e)o!=="em"&&(r[o]=e[o]-t);return r}function S(e){for(var t=e.height,r=e.data,o=3;o<r.length;o+=4)if(r[o]!==0)return Math.floor((o-3)*.25/t)}function E(e){for(var t=e.height,r=e.data,o=r.length-1;o>0;o-=4)if(r[o]!==0)return Math.floor((o-3)*.25/t)}}}),Q8=De({"node_modules/gl-text/dist.js"(Y,H){"use strict";var p=q8(),x=Nv(),S=H8(),E=G8(),e=B5(),t=a0(),r=W8(),o=Y8(),i=Tg(),n=Z8(),a=X5(),s=K8(),h=$8(),c=ih(),m=J8(),d=lm(),T=W5(),l=T.nextPow2,_=new e,w=!1;document.body&&(A=document.body.appendChild(document.createElement("div")),A.style.font="italic small-caps bold condensed 16px/2 cursive",getComputedStyle(A).fontStretch&&(w=!0),document.body.removeChild(A));var A,M=function(v){g(v)?(v={regl:v},this.gl=v.regl._gl):this.gl=E(v),this.shader=_.get(this.gl),this.shader?this.regl=this.shader.regl:this.regl=v.regl||S({gl:this.gl}),this.charBuffer=this.regl.buffer({type:"uint8",usage:"stream"}),this.sizeBuffer=this.regl.buffer({type:"float",usage:"stream"}),this.shader||(this.shader=this.createShader(),_.set(this.gl,this.shader)),this.batch=[],this.fontSize=[],this.font=[],this.fontAtlas=[],this.draw=this.shader.draw.bind(this),this.render=function(){this.regl._refresh(),this.draw(this.batch)},this.canvas=this.gl.canvas,this.update(n(v)?v:{})};M.prototype.createShader=function(){var v=this.regl,u=v({blend:{enable:!0,color:[0,0,0,1],func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},stencil:{enable:!1},depth:{enable:!1},count:v.prop("count"),offset:v.prop("offset"),attributes:{charOffset:{offset:4,stride:8,buffer:v.this("sizeBuffer")},width:{offset:0,stride:8,buffer:v.this("sizeBuffer")},char:v.this("charBuffer"),position:v.this("position")},uniforms:{atlasSize:function(f,R){return[R.atlas.width,R.atlas.height]},atlasDim:function(f,R){return[R.atlas.cols,R.atlas.rows]},atlas:function(f,R){return R.atlas.texture},charStep:function(f,R){return R.atlas.step},em:function(f,R){return R.atlas.em},color:v.prop("color"),opacity:v.prop("opacity"),viewport:v.this("viewportArray"),scale:v.this("scale"),align:v.prop("align"),baseline:v.prop("baseline"),translate:v.this("translate"),positionOffset:v.prop("positionOffset")},primitive:"points",viewport:v.this("viewport"),vert:`

Callers 10

HeFunction · 0.70
KeFunction · 0.70
ptFunction · 0.70
ruFunction · 0.70
geFunction · 0.70
BFunction · 0.70
ilFunction · 0.70
ElFunction · 0.70
$oFunction · 0.70

Calls 6

mapMethod · 0.80
xtFunction · 0.70
gnFunction · 0.70
mtFunction · 0.70
geFunction · 0.70
extendMethod · 0.45

Tested by

no test coverage detected