月球大数据地理空间分析展示平台-【前端】-月球2期前端
surprise
2023-10-31 b4bffdef9d944ee0982a08e0ea06b5a4a2f829d0
1
'use strict';var a7_0x3304fb=a7_0x4135;function a7_0x4135(_0x4a78df,_0x5c3c56){var _0x3311ea=a7_0x3311();return a7_0x4135=function(_0x413512,_0xebf787){_0x413512=_0x413512-0x10c;var _0x5e4508=_0x3311ea[_0x413512];return _0x5e4508;},a7_0x4135(_0x4a78df,_0x5c3c56);}(function(_0x2eea9e,_0x532f06){var _0x49b2f4=a7_0x4135,_0x13de75=_0x2eea9e();while(!![]){try{var _0x171ca6=parseInt(_0x49b2f4(0x261))/0x1+-parseInt(_0x49b2f4(0x3fa))/0x2+parseInt(_0x49b2f4(0x501))/0x3+-parseInt(_0x49b2f4(0xaab))/0x4+-parseInt(_0x49b2f4(0xc5f))/0x5*(parseInt(_0x49b2f4(0x1ab))/0x6)+parseInt(_0x49b2f4(0x737))/0x7*(-parseInt(_0x49b2f4(0x1f3))/0x8)+parseInt(_0x49b2f4(0x76f))/0x9;if(_0x171ca6===_0x532f06)break;else _0x13de75['push'](_0x13de75['shift']());}catch(_0x394ab3){_0x13de75['push'](_0x13de75['shift']());}}}(a7_0x3311,0x4b8e2));(Object(self||this)['webpackChunkBim']=Object(self||this)[a7_0x3304fb(0xb23)]||[])[a7_0x3304fb(0x725)]([[0x169],{0x166fc:(_0x184e81,_0x1ced2a,_0x382cd2)=>{var _0xe819f6=a7_0x3304fb;_0x382cd2['d'](_0x1ced2a,{'V':()=>_0x537ff0});class _0x537ff0{constructor(_0x2291de,_0x4bd70a,_0x59c26e,_0x399ad5,_0x5b94c0,_0x1ef3b9){var _0x4486f8=a7_0x4135;this[_0x4486f8(0xab7)]=_0x2291de,this[_0x4486f8(0x779)]=_0x4bd70a,this[_0x4486f8(0x6fc)]=_0x59c26e,this['meshUnderPointer']=_0x399ad5,this[_0x4486f8(0x14b)]=_0x5b94c0,this['additionalData']=_0x1ef3b9;}static[_0xe819f6(0x790)](_0x308ee3,_0x1227a1,_0x238624){var _0x3dbacf=_0xe819f6,_0x3bb09d=_0x308ee3[_0x3dbacf(0xb68)]();return new _0x537ff0(_0x308ee3,_0x3bb09d[_0x3dbacf(0x779)],_0x3bb09d['pointerY'],_0x3bb09d[_0x3dbacf(0x298)]||_0x308ee3,_0x1227a1,_0x238624);}static[_0xe819f6(0x9b9)](_0x4b46bf,_0x3c4ffe,_0x4f53c9,_0x24ceb9){var _0x59b8e3=_0xe819f6;return new _0x537ff0(_0x4b46bf,_0x3c4ffe[_0x59b8e3(0x779)],_0x3c4ffe['pointerY'],_0x3c4ffe[_0x59b8e3(0x298)],_0x4f53c9,_0x24ceb9);}static[_0xe819f6(0x8a1)](_0x4a1bd3,_0x4ef98f){var _0x25da17=_0xe819f6;return new _0x537ff0(null,_0x4a1bd3[_0x25da17(0x779)],_0x4a1bd3[_0x25da17(0x6fc)],_0x4a1bd3['meshUnderPointer'],_0x4ef98f);}static['CreateNewFromPrimitive'](_0x517a81,_0x17e144,_0x1944e2,_0x1250fc){return new _0x537ff0(_0x517a81,_0x17e144['x'],_0x17e144['y'],null,_0x1944e2,_0x1250fc);}}},0x8535:(_0x3bde7d,_0xc895c5,_0x2665b3)=>{var _0xde1dd1=a7_0x3304fb;_0x2665b3['d'](_0xc895c5,{'X':()=>_0xe7ad47});class _0xe7ad47{constructor(_0x50e8ba,_0x21faf5,_0x197411){var _0x1fb851=a7_0x4135;this[_0x1fb851(0x51b)]=_0x50e8ba,this[_0x1fb851(0x317)]=_0x21faf5,this['to']=_0x197411;}[_0xde1dd1(0x4fb)](){var _0x23c646=_0xde1dd1;return new _0xe7ad47(this['name'],this[_0x23c646(0x317)],this['to']);}}},0x16f11:(_0x3d0092,_0x1afb85,_0x1d02df)=>{_0x1d02df['d'](_0x1afb85,{'c':()=>_0x6cc1dc});class _0x6cc1dc{constructor(_0x287afa,_0xfffccf,_0xc90b12){var _0x5bb6ab=a7_0x4135;this['bu']=_0x287afa,this['bv']=_0xfffccf,this['distance']=_0xc90b12,this[_0x5bb6ab(0x617)]=0x0,this['subMeshId']=0x0;}}},0x8789:(_0x32377a,_0x2d1aa4,_0x3295bf)=>{var _0x542785=a7_0x3304fb;_0x3295bf['d'](_0x2d1aa4,{'p':()=>_0x45ed5f});var _0x16ee1a=_0x3295bf(0xa896);class _0x45ed5f{constructor(_0x4ed606,_0x7e3076,_0x21e455=0x0){var _0x2bfd24=a7_0x4135;this['deviceType']=_0x7e3076,this[_0x2bfd24(0x194)]=_0x21e455,this[_0x2bfd24(0x205)]=new _0x16ee1a['y$'](),this[_0x2bfd24(0xa6e)]=_0x4ed606;}[_0x542785(0x635)](_0x4e18d7){var _0x5aee44=_0x542785;return this['_deviceInputSystem']['pollInput'](this['deviceType'],this[_0x5aee44(0x194)],_0x4e18d7);}}},0xf5ea:(_0x186080,_0x27d289,_0xeec043)=>{var _0x21b792=a7_0x3304fb,_0x3b0378=_0xeec043(0xcf06),_0x403d4d=_0xeec043(0x1610);_0x3b0378['B']['prototype'][_0x21b792(0x3c1)]=function(_0x19ce63,_0x481360,_0x5c583c,_0x3ed911){var _0x22a59c=_0x21b792;this[_0x22a59c(0xbf2)][_0x22a59c(0xcfb)](_0x19ce63,_0x481360,_0x5c583c,_0x3ed911);},_0x3b0378['B'][_0x21b792(0x78e)][_0x21b792(0x31b)]=function(_0x1801f7,_0x415247=!0x1){var _0x55722e=_0x21b792,_0x26568c;if(this['_alphaMode']===_0x1801f7)_0x415247||(_0x26568c=_0x1801f7===_0x403d4d['g'][_0x55722e(0x794)],this[_0x55722e(0x4cd)]['depthMask']!==_0x26568c&&(this[_0x55722e(0x4cd)][_0x55722e(0xcc0)]=_0x26568c));else{switch(_0x1801f7){case _0x403d4d['g']['ALPHA_DISABLE']:this[_0x55722e(0xbf2)][_0x55722e(0x616)]=!0x1;break;case _0x403d4d['g']['ALPHA_PREMULTIPLIED']:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this[_0x55722e(0xd14)][_0x55722e(0xb1b)],this[_0x55722e(0xd14)]['ONE_MINUS_SRC_ALPHA'],this[_0x55722e(0xd14)]['ONE'],this[_0x55722e(0xd14)][_0x55722e(0xb1b)]),this[_0x55722e(0xbf2)][_0x55722e(0x616)]=!0x0;break;case _0x403d4d['g'][_0x55722e(0x73a)]:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this[_0x55722e(0xd14)][_0x55722e(0xb1b)],this[_0x55722e(0xd14)][_0x55722e(0x49f)],this['_gl'][_0x55722e(0xb1b)],this[_0x55722e(0xd14)][_0x55722e(0x49f)]),this['_alphaState']['alphaBlend']=!0x0;break;case _0x403d4d['g']['ALPHA_COMBINE']:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this[_0x55722e(0xd14)][_0x55722e(0x271)],this['_gl'][_0x55722e(0x49f)],this[_0x55722e(0xd14)][_0x55722e(0xb1b)],this[_0x55722e(0xd14)][_0x55722e(0xb1b)]),this['_alphaState']['alphaBlend']=!0x0;break;case _0x403d4d['g'][_0x55722e(0xb72)]:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this[_0x55722e(0xd14)][_0x55722e(0xb1b)],this[_0x55722e(0xd14)][_0x55722e(0xb1b)],this['_gl'][_0x55722e(0x786)],this[_0x55722e(0xd14)]['ONE']),this[_0x55722e(0xbf2)][_0x55722e(0x616)]=!0x0;break;case _0x403d4d['g']['ALPHA_ADD']:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this[_0x55722e(0xd14)][_0x55722e(0x271)],this[_0x55722e(0xd14)]['ONE'],this['_gl'][_0x55722e(0x786)],this['_gl'][_0x55722e(0xb1b)]),this[_0x55722e(0xbf2)]['alphaBlend']=!0x0;break;case _0x403d4d['g'][_0x55722e(0xa11)]:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this[_0x55722e(0xd14)][_0x55722e(0x786)],this[_0x55722e(0xd14)]['ONE_MINUS_SRC_COLOR'],this[_0x55722e(0xd14)][_0x55722e(0xb1b)],this[_0x55722e(0xd14)][_0x55722e(0xb1b)]),this[_0x55722e(0xbf2)][_0x55722e(0x616)]=!0x0;break;case _0x403d4d['g']['ALPHA_MULTIPLY']:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this[_0x55722e(0xd14)][_0x55722e(0x9a8)],this['_gl']['ZERO'],this[_0x55722e(0xd14)][_0x55722e(0xb1b)],this[_0x55722e(0xd14)]['ONE']),this[_0x55722e(0xbf2)][_0x55722e(0x616)]=!0x0;break;case _0x403d4d['g'][_0x55722e(0x1b9)]:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this['_gl'][_0x55722e(0x271)],this['_gl']['ONE_MINUS_SRC_COLOR'],this[_0x55722e(0xd14)]['ONE'],this[_0x55722e(0xd14)][_0x55722e(0xb1b)]),this[_0x55722e(0xbf2)][_0x55722e(0x616)]=!0x0;break;case _0x403d4d['g'][_0x55722e(0x40f)]:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this[_0x55722e(0xd14)][_0x55722e(0xbfe)],this['_gl'][_0x55722e(0x7e0)],this[_0x55722e(0xd14)][_0x55722e(0x339)],this[_0x55722e(0xd14)][_0x55722e(0x5a4)]),this[_0x55722e(0xbf2)][_0x55722e(0x616)]=!0x0;break;case _0x403d4d['g'][_0x55722e(0x1de)]:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this[_0x55722e(0xd14)][_0x55722e(0xb1b)],this[_0x55722e(0xd14)][_0x55722e(0xc8f)],this[_0x55722e(0xd14)][_0x55722e(0xb1b)],this[_0x55722e(0xd14)][_0x55722e(0x49f)]),this[_0x55722e(0xbf2)][_0x55722e(0x616)]=!0x0;break;case _0x403d4d['g']['ALPHA_ONEONE_ONEONE']:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this[_0x55722e(0xd14)][_0x55722e(0xb1b)],this['_gl'][_0x55722e(0xb1b)],this['_gl'][_0x55722e(0xb1b)],this[_0x55722e(0xd14)][_0x55722e(0xb1b)]),this[_0x55722e(0xbf2)]['alphaBlend']=!0x0;break;case _0x403d4d['g'][_0x55722e(0xcd4)]:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this[_0x55722e(0xd14)][_0x55722e(0x367)],this[_0x55722e(0xd14)][_0x55722e(0xb1b)],this['_gl']['ZERO'],this[_0x55722e(0xd14)][_0x55722e(0x786)]),this[_0x55722e(0xbf2)][_0x55722e(0x616)]=!0x0;break;case _0x403d4d['g'][_0x55722e(0x6f1)]:this[_0x55722e(0xbf2)]['setAlphaBlendFunctionParameters'](this[_0x55722e(0xd14)][_0x55722e(0x847)],this[_0x55722e(0xd14)][_0x55722e(0xc8f)],this[_0x55722e(0xd14)][_0x55722e(0xaa0)],this[_0x55722e(0xd14)][_0x55722e(0x49f)]),this['_alphaState'][_0x55722e(0x616)]=!0x0;break;case _0x403d4d['g'][_0x55722e(0x8d5)]:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this[_0x55722e(0xd14)][_0x55722e(0xb1b)],this[_0x55722e(0xd14)]['ONE_MINUS_SRC_ALPHA'],this['_gl'][_0x55722e(0xb1b)],this[_0x55722e(0xd14)][_0x55722e(0x49f)]),this[_0x55722e(0xbf2)][_0x55722e(0x616)]=!0x0;break;case _0x403d4d['g'][_0x55722e(0xa57)]:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this['_gl'][_0x55722e(0xb1b)],this[_0x55722e(0xd14)][_0x55722e(0xb1b)],this[_0x55722e(0xd14)][_0x55722e(0xb1b)],this[_0x55722e(0xd14)]['ZERO']),this[_0x55722e(0xbf2)][_0x55722e(0x616)]=!0x0;break;case _0x403d4d['g'][_0x55722e(0x83f)]:this[_0x55722e(0xbf2)]['setAlphaBlendFunctionParameters'](this['_gl'][_0x55722e(0x847)],this[_0x55722e(0xd14)]['ONE_MINUS_SRC_COLOR'],this[_0x55722e(0xd14)][_0x55722e(0x786)],this[_0x55722e(0xd14)]['ONE']),this['_alphaState']['alphaBlend']=!0x0;break;case _0x403d4d['g'][_0x55722e(0x1c7)]:this[_0x55722e(0xbf2)][_0x55722e(0xb3d)](this[_0x55722e(0xd14)][_0x55722e(0x271)],this[_0x55722e(0xd14)][_0x55722e(0x49f)],this[_0x55722e(0xd14)]['ONE'],this[_0x55722e(0xd14)][_0x55722e(0x49f)]),this[_0x55722e(0xbf2)]['alphaBlend']=!0x0;}_0x415247||(this[_0x55722e(0x4cd)][_0x55722e(0xcc0)]=_0x1801f7===_0x403d4d['g'][_0x55722e(0x794)]),this[_0x55722e(0x5d0)]=_0x1801f7;}},_0x3b0378['B'][_0x21b792(0x78e)][_0x21b792(0x26b)]=function(){var _0xff55ee=_0x21b792;return this[_0xff55ee(0x5d0)];},_0x3b0378['B']['prototype'][_0x21b792(0xb6f)]=function(_0x134c67){var _0x54324f=_0x21b792;if(this['_alphaEquation']!==_0x134c67){switch(_0x134c67){case _0x403d4d['g'][_0x54324f(0x51f)]:this[_0x54324f(0xbf2)]['setAlphaEquationParameters'](_0x403d4d['g'][_0x54324f(0x753)],_0x403d4d['g'][_0x54324f(0x753)]);break;case _0x403d4d['g']['ALPHA_EQUATION_SUBSTRACT']:this[_0x54324f(0xbf2)]['setAlphaEquationParameters'](_0x403d4d['g'][_0x54324f(0x542)],_0x403d4d['g'][_0x54324f(0x542)]);break;case _0x403d4d['g'][_0x54324f(0x25c)]:this[_0x54324f(0xbf2)][_0x54324f(0x6f9)](_0x403d4d['g'][_0x54324f(0x72f)],_0x403d4d['g'][_0x54324f(0x72f)]);break;case _0x403d4d['g'][_0x54324f(0x290)]:this[_0x54324f(0xbf2)]['setAlphaEquationParameters'](_0x403d4d['g']['GL_ALPHA_EQUATION_MAX'],_0x403d4d['g'][_0x54324f(0x61f)]);break;case _0x403d4d['g']['ALPHA_EQUATION_MIN']:this[_0x54324f(0xbf2)][_0x54324f(0x6f9)](_0x403d4d['g']['GL_ALPHA_EQUATION_MIN'],_0x403d4d['g'][_0x54324f(0x5a1)]);break;case _0x403d4d['g']['ALPHA_EQUATION_DARKEN']:this[_0x54324f(0xbf2)]['setAlphaEquationParameters'](_0x403d4d['g'][_0x54324f(0x5a1)],_0x403d4d['g'][_0x54324f(0x753)]);}this[_0x54324f(0x8dc)]=_0x134c67;}},_0x3b0378['B'][_0x21b792(0x78e)][_0x21b792(0x5e0)]=function(){return this['_alphaEquation'];};},0x14c07:(_0x13e55b,_0x47b566,_0x44091c)=>{var _0x29b423=a7_0x3304fb,_0x12ead0=_0x44091c(0xcf06),_0x3d43a3=_0x44091c(0x138df),_0x1f5229=_0x44091c(0x9a70),_0x264381=_0x44091c(0x4342),_0x2ade51=_0x44091c(0x38ee),_0x45f7f8=_0x44091c(0x1610);_0x12ead0['B'][_0x29b423(0x78e)][_0x29b423(0x2ce)]=function(_0x4775f5,_0x49eaff,_0x3d37fc){var _0x38e8c4=_0x29b423;const _0x30ac0e=new _0x3d43a3['l'](this,_0x3d43a3['S'][_0x38e8c4(0x405)]);if(_0x30ac0e[_0x38e8c4(0xac3)]=!0x0,0x1===this[_0x38e8c4(0xa9b)])return _0x1f5229['Y']['Error'](_0x38e8c4(0x9ea)),_0x30ac0e;var _0x634f02=Object[_0x38e8c4(0x70a)]({'bilinearFiltering':!0x1,'comparisonFunction':0x0,'generateStencil':!0x1},_0x49eaff);const _0x4f3d98=this[_0x38e8c4(0xd14)];this[_0x38e8c4(0xc0b)](_0x4f3d98[_0x38e8c4(0xafc)],_0x30ac0e,!0x0),this[_0x38e8c4(0x276)](_0x30ac0e,_0x4775f5,_0x634f02[_0x38e8c4(0x478)],_0x634f02[_0x38e8c4(0x204)],_0x634f02[_0x38e8c4(0xcf7)]),_0x3d37fc['_depthStencilTexture']=_0x30ac0e,_0x3d37fc[_0x38e8c4(0xadb)]=_0x634f02[_0x38e8c4(0x478)];for(let _0x41a143=0x0;_0x41a143<0x6;_0x41a143++)_0x634f02['generateStencil']?_0x4f3d98['texImage2D'](_0x4f3d98[_0x38e8c4(0x93f)]+_0x41a143,0x0,_0x4f3d98[_0x38e8c4(0x99d)],_0x4775f5,_0x4775f5,0x0,_0x4f3d98[_0x38e8c4(0x87e)],_0x4f3d98[_0x38e8c4(0x48a)],null):_0x4f3d98[_0x38e8c4(0x4ce)](_0x4f3d98[_0x38e8c4(0x93f)]+_0x41a143,0x0,_0x4f3d98[_0x38e8c4(0x247)],_0x4775f5,_0x4775f5,0x0,_0x4f3d98[_0x38e8c4(0xc06)],_0x4f3d98[_0x38e8c4(0x504)],null);return this[_0x38e8c4(0xc0b)](_0x4f3d98[_0x38e8c4(0xafc)],null),this[_0x38e8c4(0xd01)][_0x38e8c4(0x725)](_0x30ac0e),_0x30ac0e;},_0x12ead0['B']['prototype'][_0x29b423(0x526)]=function(_0x5ee459,_0x22b532,_0xc608bc,_0x362b42,_0x8aedb5=null){var _0x4b446a=_0x29b423;this[_0x4b446a(0xcf6)](_0x5ee459,_0x112398=>{var _0x39c588=_0x4b446a;_0xc608bc[_0x22b532]=_0x112398,_0xc608bc[_0x39c588(0xcd9)]++,0x6===_0xc608bc[_0x39c588(0xcd9)]&&_0x362b42(_0xc608bc);},void 0x0,void 0x0,!0x0,(_0x5e821b,_0x3321d5)=>{var _0x5be355=_0x4b446a;_0x8aedb5&&_0x5e821b&&_0x8aedb5(_0x5e821b[_0x5be355(0x264)]+'\x20'+_0x5e821b[_0x5be355(0xb99)],_0x3321d5);});},_0x12ead0['B'][_0x29b423(0x78e)][_0x29b423(0x834)]=function(_0xa6a886,_0x422cc5,_0x42a3a6,_0x1e9c17=null){var _0x447021=_0x29b423;const _0x3c0588=[];for(let _0x2b3e73=_0x3c0588[_0x447021(0xcd9)]=0x0;_0x2b3e73<0x6;_0x2b3e73++)this[_0x447021(0x526)](_0x42a3a6[_0x2b3e73],_0x2b3e73,_0x3c0588,_0x422cc5,_0x1e9c17);},_0x12ead0['B'][_0x29b423(0x78e)][_0x29b423(0x3cb)]=function(_0x4a1e70,_0x1f618f,_0x430779,_0x42c7f2,_0x54cb95=null,_0x1d30fa){var _0x473aa2=_0x29b423;const _0x292a02=[];for(let _0x854bce=_0x292a02[_0x473aa2(0xcd9)]=0x0;_0x854bce<0x6;_0x854bce++)this[_0x473aa2(0x7be)](_0x42c7f2[_0x854bce],_0x854bce,_0x292a02,_0x4a1e70,_0x1f618f,_0x430779,_0x54cb95,_0x1d30fa);},_0x12ead0['B'][_0x29b423(0x78e)][_0x29b423(0x7be)]=function(_0x2f200c,_0x4a2180,_0x1dd408,_0x316e26,_0x4eec32,_0x524cdb,_0x19989b=null,_0x2f84f2){var _0x5b79a2=_0x29b423;const _0x367964=(0x0,_0x2ade51['f'])();(0x0,_0x264381['r6'])(_0x2f200c,_0x25a289=>{var _0x3891fc=a7_0x4135;_0x1dd408[_0x4a2180]=_0x25a289,_0x1dd408['_internalCount']++,_0x316e26&&_0x316e26['removePendingData'](_0x367964),0x6===_0x1dd408[_0x3891fc(0xcd9)]&&_0x524cdb&&_0x524cdb(_0x4eec32,_0x1dd408);},(_0x2cf654,_0x4d6bdb)=>{var _0x2fb426=a7_0x4135;_0x316e26&&_0x316e26[_0x2fb426(0x456)](_0x367964),_0x19989b&&_0x19989b(_0x2cf654,_0x4d6bdb);},_0x316e26?_0x316e26[_0x5b79a2(0x237)]:null,_0x2f84f2),_0x316e26&&_0x316e26[_0x5b79a2(0xa2a)](_0x367964);},_0x12ead0['B']['prototype'][_0x29b423(0x394)]=function(_0x1c8eee,_0x1ab7b0,_0x53c951){var _0x196f38=_0x29b423;const _0x16ce1e=this['_gl'];_0x16ce1e[_0x196f38(0x777)](_0x16ce1e[_0x196f38(0xafc)],_0x16ce1e[_0x196f38(0x12d)],_0x16ce1e[_0x196f38(0x736)]),_0x16ce1e[_0x196f38(0x777)](_0x16ce1e[_0x196f38(0xafc)],_0x16ce1e[_0x196f38(0x2ed)],_0x1ab7b0?_0x16ce1e[_0x196f38(0x480)]:_0x16ce1e['LINEAR']),_0x16ce1e['texParameteri'](_0x16ce1e[_0x196f38(0xafc)],_0x16ce1e['TEXTURE_WRAP_S'],_0x16ce1e['CLAMP_TO_EDGE']),_0x16ce1e[_0x196f38(0x777)](_0x16ce1e['TEXTURE_CUBE_MAP'],_0x16ce1e['TEXTURE_WRAP_T'],_0x16ce1e['CLAMP_TO_EDGE']),_0x1c8eee['samplingMode']=_0x1ab7b0?_0x45f7f8['g'][_0x196f38(0x206)]:_0x45f7f8['g'][_0x196f38(0x163)],_0x1ab7b0&&this[_0x196f38(0x7b9)]()[_0x196f38(0x1bc)]&&void 0x0!==_0x53c951&&0x0<_0x53c951&&(_0x16ce1e[_0x196f38(0x777)](_0x16ce1e[_0x196f38(0xafc)],_0x16ce1e['TEXTURE_MAX_LEVEL'],_0x53c951),_0x1c8eee[_0x196f38(0x826)]=_0x53c951),this[_0x196f38(0xc0b)](_0x16ce1e[_0x196f38(0xafc)],null);},_0x12ead0['B'][_0x29b423(0x78e)][_0x29b423(0x933)]=function(_0x24ff19,_0x286959,_0x5bd45c,_0x39e4cb,_0x22c15a=null,_0x3808fb=null,_0x393fc8,_0x380e3d=null,_0x2ecb4e=!0x1,_0x27414e=0x0,_0x45c4b1=0x0,_0x3a0729=null,_0x440325=null,_0x3264b2=null,_0x581406=!0x1){var _0x445429=_0x29b423;const _0x2b172f=_0x3a0729||new _0x3d43a3['l'](this,_0x3d43a3['S'][_0x445429(0x2d1)]),_0x425846=(_0x2b172f[_0x445429(0xac3)]=!0x0,_0x2b172f[_0x445429(0x9fa)]=_0x24ff19,_0x2b172f[_0x445429(0xb22)]=!_0x39e4cb,_0x2b172f['_lodGenerationScale']=_0x27414e,_0x2b172f[_0x445429(0xb24)]=_0x45c4b1,_0x2b172f[_0x445429(0x7ef)]=!!_0x581406&&this[_0x445429(0x210)]['supportSRGBBuffers']&&(0x1<this[_0x445429(0xa9b)]||this[_0x445429(0xac2)]||!!_0x39e4cb),_0x2b172f!==_0x3a0729&&(_0x2b172f[_0x445429(0xa2f)]=_0x24ff19['substring'](0x0,0x3c)),this[_0x445429(0x464)]||(_0x2b172f['_extension']=_0x380e3d,_0x2b172f[_0x445429(0x27a)]=_0x5bd45c),_0x24ff19),_0x54933b=(_0x24ff19=this[_0x445429(0x143)]&&!_0x3a0729?this[_0x445429(0x143)](_0x24ff19):_0x24ff19)[_0x445429(0x684)]('?')[0x0];var _0x3a0729=_0x54933b[_0x445429(0x7da)]('.'),_0x3736e0=_0x380e3d||(-0x1<_0x3a0729?_0x54933b[_0x445429(0x563)](_0x3a0729)['toLowerCase']():'');let _0x51a69b=null;for(const _0x391379 of _0x12ead0['B']['_TextureLoaders'])if(_0x391379[_0x445429(0x5bb)](_0x3736e0)){_0x51a69b=_0x391379;break;}_0x3a0729=(_0x506d31,_0x2e9951)=>{var _0x4feee9=_0x445429;_0x24ff19===_0x425846?_0x3808fb&&_0x506d31&&_0x3808fb(_0x506d31[_0x4feee9(0x264)]+'\x20'+_0x506d31[_0x4feee9(0xb99)],_0x2e9951):(_0x1f5229['Y']['Warn'](_0x4feee9(0x5ae)+_0x24ff19+_0x4feee9(0x2b2)+_0x425846),this[_0x4feee9(0x933)](_0x425846,_0x286959,_0x5bd45c,!!_0x39e4cb,_0x22c15a,_0x3808fb,_0x393fc8,_0x380e3d,_0x2ecb4e,_0x27414e,_0x45c4b1,_0x2b172f,_0x440325,_0x3264b2,_0x581406));};if(_0x51a69b){const _0xa767e9=_0x30c675=>{var _0x27c0f1=_0x445429;_0x440325&&_0x440325(_0x2b172f,_0x30c675),_0x51a69b[_0x27c0f1(0x33a)](_0x30c675,_0x2b172f,_0x2ecb4e,_0x22c15a,_0x3808fb);};_0x5bd45c&&0x6===_0x5bd45c[_0x445429(0x86f)]?_0x51a69b['supportCascades']?this[_0x445429(0x834)](_0x286959,_0x18b4da=>_0xa767e9(_0x18b4da[_0x445429(0x306)](_0x53cb68=>new Uint8Array(_0x53cb68))),_0x5bd45c,_0x3808fb):_0x3808fb?_0x3808fb(_0x445429(0x263)):_0x1f5229['Y'][_0x445429(0x6dd)]('Texture\x20loader\x20does\x20not\x20support\x20cascades.'):this[_0x445429(0xcf6)](_0x24ff19,_0x555767=>_0xa767e9(new Uint8Array(_0x555767)),void 0x0,void 0x0,!0x0,_0x3a0729);}else{if(!_0x5bd45c)throw new Error('Cannot\x20load\x20cubemap\x20because\x20files\x20were\x20not\x20defined');this[_0x445429(0x3cb)](_0x286959,_0x2b172f,(_0x2e6f0e,_0x60eaf0)=>{_0x3264b2&&_0x3264b2(_0x2e6f0e,_0x60eaf0);},_0x5bd45c,_0x3808fb);}return this[_0x445429(0xd01)][_0x445429(0x725)](_0x2b172f),_0x2b172f;},_0x12ead0['B'][_0x29b423(0x78e)]['createCubeTexture']=function(_0x8be1b8,_0x5bdb37,_0x3ff80b,_0x59c5fe,_0x519120=null,_0x179862=null,_0x3546a,_0x5569a6=null,_0x163ed4=!0x1,_0x18e181=0x0,_0x37c5d2=0x0,_0x52652a=null,_0x33acbf,_0x466e60=!0x1){var _0x139bc5=_0x29b423;const _0x366540=this['_gl'];return this[_0x139bc5(0x933)](_0x8be1b8,_0x5bdb37,_0x3ff80b,!!_0x59c5fe,_0x519120,_0x179862,_0x3546a,_0x5569a6,_0x163ed4,_0x18e181,_0x37c5d2,_0x52652a,_0x63def0=>this[_0x139bc5(0xc0b)](_0x366540[_0x139bc5(0xafc)],_0x63def0,!0x0),(_0x2e64b7,_0x3a0401)=>{var _0x3c9681=_0x139bc5,_0x511ee9=this[_0x3c9681(0x939)]?_0x12ead0['B'][_0x3c9681(0x1b3)](_0x3a0401[0x0]['width'],this[_0x3c9681(0x210)][_0x3c9681(0x6d6)]):_0x3a0401[0x0][_0x3c9681(0x3e9)],_0x5cf182=_0x511ee9,_0x9599b6=[_0x366540[_0x3c9681(0x93f)],_0x366540[_0x3c9681(0x6c6)],_0x366540['TEXTURE_CUBE_MAP_POSITIVE_Z'],_0x366540['TEXTURE_CUBE_MAP_NEGATIVE_X'],_0x366540[_0x3c9681(0x406)],_0x366540[_0x3c9681(0xce4)]],_0x546a9c=(this[_0x3c9681(0xc0b)](_0x366540[_0x3c9681(0xafc)],_0x2e64b7,!0x0),this['_unpackFlipY'](!0x1),_0x3546a?this[_0x3c9681(0x25e)](_0x3546a,_0x2e64b7[_0x3c9681(0x7ef)]):_0x2e64b7['_useSRGBBuffer']?this[_0x3c9681(0x3dd)][_0x3c9681(0xca1)]:_0x366540[_0x3c9681(0xa41)]);let _0x4b64e1=_0x3546a?this[_0x3c9681(0x25e)](_0x3546a):_0x366540[_0x3c9681(0xa41)];_0x2e64b7[_0x3c9681(0x7ef)]&&0x1===this[_0x3c9681(0xa9b)]&&(_0x4b64e1=_0x546a9c);for(let _0x38e111=0x0;_0x38e111<_0x9599b6[_0x3c9681(0x86f)];_0x38e111++)if(_0x3a0401[_0x38e111][_0x3c9681(0x3e9)]!==_0x511ee9||_0x3a0401[_0x38e111][_0x3c9681(0x520)]!==_0x5cf182){if(this['_prepareWorkingCanvas'](),!this['_workingCanvas']||!this[_0x3c9681(0x309)])return void _0x1f5229['Y'][_0x3c9681(0x6dd)](_0x3c9681(0x927));this[_0x3c9681(0x14d)][_0x3c9681(0x3e9)]=_0x511ee9,this['_workingCanvas']['height']=_0x5cf182,this['_workingContext'][_0x3c9681(0xa1b)](_0x3a0401[_0x38e111],0x0,0x0,_0x3a0401[_0x38e111][_0x3c9681(0x3e9)],_0x3a0401[_0x38e111][_0x3c9681(0x520)],0x0,0x0,_0x511ee9,_0x5cf182),_0x366540['texImage2D'](_0x9599b6[_0x38e111],0x0,_0x546a9c,_0x4b64e1,_0x366540[_0x3c9681(0xb8b)],this['_workingCanvas']);}else _0x366540[_0x3c9681(0x4ce)](_0x9599b6[_0x38e111],0x0,_0x546a9c,_0x4b64e1,_0x366540[_0x3c9681(0xb8b)],_0x3a0401[_0x38e111]);_0x59c5fe||_0x366540[_0x3c9681(0x6f6)](_0x366540[_0x3c9681(0xafc)]),this[_0x3c9681(0x394)](_0x2e64b7,!_0x59c5fe),_0x2e64b7['width']=_0x511ee9,_0x2e64b7[_0x3c9681(0x520)]=_0x5cf182,_0x2e64b7['isReady']=!0x0,_0x3546a&&(_0x2e64b7[_0x3c9681(0xb59)]=_0x3546a),_0x2e64b7['onLoadedObservable']['notifyObservers'](_0x2e64b7),_0x2e64b7[_0x3c9681(0x370)]['clear'](),_0x519120&&_0x519120();},!!_0x466e60);};},0x193f:(_0x486b27,_0xccd271,_0x7e95e0)=>{var _0x4f1694=a7_0x3304fb;_0x7e95e0=_0x7e95e0(0xcf06),(_0x7e95e0['B'][_0x4f1694(0x78e)][_0x4f1694(0xa9d)]=function(_0x1e7cc0,_0x56e0d4){},_0x7e95e0['B'][_0x4f1694(0x78e)]['_debugPopGroup']=function(_0x226b9e){},_0x7e95e0['B'][_0x4f1694(0x78e)][_0x4f1694(0x1c8)]=function(_0x58fc72,_0x59a50f){},_0x7e95e0['B']['prototype'][_0x4f1694(0xa6c)]=function(){});},0x9314:(_0x2e12bc,_0x19a2d9,_0x4984a3)=>{var _0x155503=a7_0x3304fb;_0x4984a3=_0x4984a3(0xcf06),(_0x4984a3['B'][_0x155503(0x78e)][_0x155503(0x4bb)]=function(_0x211fb9,_0x528712,_0x42427a=0x0){var _0x1ba4e1=_0x155503;this[_0x1ba4e1(0x3b5)][this[_0x1ba4e1(0xd14)][_0x1ba4e1(0xaed)]]=null,this['bindIndexBuffer'](_0x211fb9),_0x211fb9=_0x528712 instanceof Uint16Array||_0x528712 instanceof Uint32Array?_0x528712:new(_0x211fb9[(_0x1ba4e1(0x417))]?Uint32Array:Uint16Array)(_0x528712),this[_0x1ba4e1(0xd14)]['bufferSubData'](this[_0x1ba4e1(0xd14)][_0x1ba4e1(0xaed)],_0x42427a,_0x211fb9),this[_0x1ba4e1(0x5b8)]();},_0x4984a3['B'][_0x155503(0x78e)][_0x155503(0xc67)]=function(_0x23a83f,_0x185760,_0x5d1028,_0x555cb4){var _0x3e6ab8=_0x155503;this['bindArrayBuffer'](_0x23a83f),void 0x0===_0x5d1028&&(_0x5d1028=0x0),_0x23a83f=_0x185760[_0x3e6ab8(0x65f)]||_0x185760[_0x3e6ab8(0x86f)],(void 0x0===_0x555cb4||_0x23a83f<=_0x555cb4&&0x0===_0x5d1028?_0x185760 instanceof Array?this['_gl']['bufferSubData'](this[_0x3e6ab8(0xd14)][_0x3e6ab8(0x9d4)],_0x5d1028,new Float32Array(_0x185760)):this[_0x3e6ab8(0xd14)][_0x3e6ab8(0x9de)](this[_0x3e6ab8(0xd14)][_0x3e6ab8(0x9d4)],_0x5d1028,_0x185760):_0x185760 instanceof Array?this[_0x3e6ab8(0xd14)]['bufferSubData'](this[_0x3e6ab8(0xd14)][_0x3e6ab8(0x9d4)],0x0,new Float32Array(_0x185760)['subarray'](_0x5d1028,_0x5d1028+_0x555cb4)):(_0x185760=_0x185760 instanceof ArrayBuffer?new Uint8Array(_0x185760,_0x5d1028,_0x555cb4):new Uint8Array(_0x185760[_0x3e6ab8(0xbeb)],_0x185760[_0x3e6ab8(0x40a)]+_0x5d1028,_0x555cb4),this[_0x3e6ab8(0xd14)][_0x3e6ab8(0x9de)](this[_0x3e6ab8(0xd14)]['ARRAY_BUFFER'],0x0,_0x185760)),this['_resetVertexBufferBinding']());});},0x5859:(_0x2b65bf,_0x47cd15,_0x7703e5)=>{var _0x3f0486=a7_0x3304fb,_0x315724=_0x7703e5(0xcf06),_0x482b29=_0x7703e5(0x138df);_0x315724['B'][_0x3f0486(0x78e)]['createDynamicTexture']=function(_0x54f755,_0x2902c5,_0x3fdfe2,_0x5f4f69){var _0x48c030=_0x3f0486;const _0x4041fe=new _0x482b29['l'](this,_0x482b29['S'][_0x48c030(0x73f)]);return _0x4041fe[_0x48c030(0x3f4)]=_0x54f755,_0x4041fe[_0x48c030(0x929)]=_0x2902c5,_0x3fdfe2&&(_0x54f755=this[_0x48c030(0x939)]?_0x315724['B'][_0x48c030(0x1b3)](_0x54f755,this['_caps'][_0x48c030(0xaad)]):_0x54f755,_0x2902c5=this[_0x48c030(0x939)]?_0x315724['B']['GetExponentOfTwo'](_0x2902c5,this[_0x48c030(0x210)]['maxTextureSize']):_0x2902c5),_0x4041fe['width']=_0x54f755,_0x4041fe[_0x48c030(0x520)]=_0x2902c5,_0x4041fe[_0x48c030(0x3f1)]=!0x1,_0x4041fe[_0x48c030(0xb22)]=_0x3fdfe2,_0x4041fe[_0x48c030(0x9f4)]=_0x5f4f69,this['updateTextureSamplingMode'](_0x5f4f69,_0x4041fe),this[_0x48c030(0xd01)][_0x48c030(0x725)](_0x4041fe),_0x4041fe;},_0x315724['B']['prototype'][_0x3f0486(0x8dd)]=function(_0x429544,_0x326f09,_0x3cfa39,_0x63f298=!0x1,_0x2fbee5,_0x409b4a=!0x1,_0x17fac2){var _0x10e00e=_0x3f0486;if(_0x429544){const _0x3a7980=this[_0x10e00e(0xd14)];var _0x3b23a7=_0x3a7980[_0x10e00e(0x4b0)],_0x409b4a=this[_0x10e00e(0xc0b)](_0x3b23a7,_0x429544,!0x0,_0x409b4a),_0x3cfa39=(this[_0x10e00e(0x671)](void 0x0===_0x3cfa39?_0x429544['invertY']:_0x3cfa39),_0x63f298&&_0x3a7980[_0x10e00e(0xc0d)](_0x3a7980[_0x10e00e(0x943)],0x1),this['_getWebGLTextureType'](_0x429544[_0x10e00e(0xb26)])),_0x2fbee5=this['_getInternalFormat'](_0x2fbee5||_0x429544[_0x10e00e(0xb59)]),_0x1fd0f9=this[_0x10e00e(0xca3)](_0x429544[_0x10e00e(0xb26)],_0x2fbee5);_0x3a7980[_0x10e00e(0x4ce)](_0x3b23a7,0x0,_0x1fd0f9,_0x2fbee5,_0x3cfa39,_0x326f09),_0x429544['generateMipMaps']&&_0x3a7980[_0x10e00e(0x6f6)](_0x3b23a7),_0x409b4a||this['_bindTextureDirectly'](_0x3b23a7,null),_0x63f298&&_0x3a7980[_0x10e00e(0xc0d)](_0x3a7980[_0x10e00e(0x943)],0x0),_0x429544[_0x10e00e(0x3f1)]=!0x0;}};},0x16ce8:(_0x3e5451,_0x178566,_0x23017f)=>{var _0x12e62c=a7_0x3304fb;_0x23017f=_0x23017f(0xcf06),(_0x23017f['B'][_0x12e62c(0x78e)][_0x12e62c(0x119)]=function(_0x2ccdb0){return null;},_0x23017f['B'][_0x12e62c(0x78e)][_0x12e62c(0x495)]=function(_0x14c7dc,_0x251817){var _0x417c6f=_0x12e62c;throw new Error(_0x417c6f(0x67b));});},0x1320c:(_0x170ed9,_0x5996c3,_0x47a197)=>{var _0x5afeff=a7_0x3304fb,_0x3ff3f3=_0x47a197(0x138df),_0x69d68f=_0x47a197(0x9a70),_0x4c242e=_0x47a197(0x1610),_0x47a197=_0x47a197(0xcf06);_0x47a197['B'][_0x5afeff(0x78e)][_0x5afeff(0x633)]=function(){var _0x452482=_0x5afeff,_0x3a2bb8=this[_0x452482(0xd14)];this['bindAttachments']([_0x3a2bb8[_0x452482(0xca5)]]);},_0x47a197['B'][_0x5afeff(0x78e)][_0x5afeff(0x836)]=function(){var _0x3f0955=this['_gl'];this['bindAttachments']([_0x3f0955['COLOR_ATTACHMENT0']]);},_0x47a197['B'][_0x5afeff(0x78e)]['buildTextureLayout']=function(_0x50800d){var _0x2e4543=_0x5afeff,_0x1c61c1=this['_gl'];const _0x1630c9=[];for(let _0x157e4b=0x0;_0x157e4b<_0x50800d['length'];_0x157e4b++)_0x50800d[_0x157e4b]?_0x1630c9[_0x2e4543(0x725)](_0x1c61c1[_0x2e4543(0xc4e)+_0x157e4b]):_0x1630c9['push'](_0x1c61c1[_0x2e4543(0x948)]);return _0x1630c9;},_0x47a197['B'][_0x5afeff(0x78e)]['bindAttachments']=function(_0x290bc9){var _0x43a0f7=_0x5afeff;const _0x3e12bb=this['_gl'];_0x3e12bb[_0x43a0f7(0x23a)](_0x290bc9);},_0x47a197['B']['prototype']['unBindMultiColorAttachmentFramebuffer']=function(_0x216d0a,_0x28835f=!0x1,_0x18bfbe){var _0x5ab875=_0x5afeff;this[_0x5ab875(0x233)]=null;const _0x1636e5=this[_0x5ab875(0xd14)],_0x3bc506=_0x216d0a[_0x5ab875(0x18c)];var _0x495a5f=_0x3bc506[_0x5ab875(0x86f)];if(_0x216d0a[_0x5ab875(0xc20)]){_0x1636e5[_0x5ab875(0x6b6)](_0x1636e5[_0x5ab875(0x72b)],_0x216d0a[_0x5ab875(0xc20)]),_0x1636e5[_0x5ab875(0x6b6)](_0x1636e5[_0x5ab875(0xce7)],_0x216d0a[_0x5ab875(0x86c)]);for(let _0x190e20=0x0;_0x190e20<_0x495a5f;_0x190e20++){var _0x3f068c=_0x216d0a['textures'][_0x190e20];for(let _0x519f06=0x0;_0x519f06<_0x495a5f;_0x519f06++)_0x3bc506[_0x519f06]=_0x1636e5['NONE'];_0x3bc506[_0x190e20]=_0x1636e5[0x1<this['webGLVersion']?'COLOR_ATTACHMENT'+_0x190e20:_0x5ab875(0xc4e)+_0x190e20+_0x5ab875(0xb5e)],_0x1636e5['readBuffer'](_0x3bc506[_0x190e20]),_0x1636e5[_0x5ab875(0x23a)](_0x3bc506),_0x1636e5[_0x5ab875(0x926)](0x0,0x0,_0x3f068c[_0x5ab875(0x3e9)],_0x3f068c[_0x5ab875(0x520)],0x0,0x0,_0x3f068c[_0x5ab875(0x3e9)],_0x3f068c[_0x5ab875(0x520)],_0x1636e5[_0x5ab875(0x273)],_0x1636e5['NEAREST']);}for(let _0x5a7cef=0x0;_0x5a7cef<_0x495a5f;_0x5a7cef++)_0x3bc506[_0x5a7cef]=_0x1636e5[0x1<this[_0x5ab875(0xa9b)]?_0x5ab875(0xc4e)+_0x5a7cef:'COLOR_ATTACHMENT'+_0x5a7cef+_0x5ab875(0xb5e)];_0x1636e5[_0x5ab875(0x23a)](_0x3bc506);}for(let _0x23bfe9=0x0;_0x23bfe9<_0x495a5f;_0x23bfe9++){var _0x50d1f0=_0x216d0a['textures'][_0x23bfe9];null==_0x50d1f0||!_0x50d1f0[_0x5ab875(0xb22)]||_0x28835f||_0x50d1f0[_0x5ab875(0xac3)]||(this['_bindTextureDirectly'](_0x1636e5['TEXTURE_2D'],_0x50d1f0,!0x0),_0x1636e5[_0x5ab875(0x6f6)](_0x1636e5[_0x5ab875(0x4b0)]),this[_0x5ab875(0xc0b)](_0x1636e5['TEXTURE_2D'],null));}_0x18bfbe&&(_0x216d0a['_MSAAFramebuffer']&&this[_0x5ab875(0x39d)](_0x216d0a[_0x5ab875(0x86c)]),_0x18bfbe()),this['_bindUnboundFramebuffer'](null);},_0x47a197['B'][_0x5afeff(0x78e)][_0x5afeff(0xc5b)]=function(_0x36c264,_0x4613b,_0x4ab90b=!0x0){var _0xa57e99=_0x5afeff;let _0x86bcd8=!0x1,_0x91014b=!0x0,_0x48e6e8=!0x1,_0x2d1924=!0x1,_0x3208ff=_0x4c242e['g'][_0xa57e99(0x260)],_0x753a43=0x1;var _0x24a5a9=_0x4c242e['g'][_0xa57e99(0x970)],_0x57def5=_0x4c242e['g'][_0xa57e99(0x206)],_0x533da3=_0x4c242e['g'][_0xa57e99(0xc7c)],_0x4315fe=_0x4c242e['g'][_0xa57e99(0x4b0)];let _0x7c6d18=new Array(),_0x243f99=new Array(),_0x1e4e98=new Array(),_0x1a05f2=new Array(),_0x31aafe=new Array(),_0x14368f=new Array(),_0x4e87c7=new Array(),_0x23c05c=new Array();const _0x2e396f=this[_0xa57e99(0xa23)](!0x0,!0x1,_0x36c264),_0x2f2c3e=(void 0x0!==_0x4613b&&(_0x86bcd8=void 0x0!==_0x4613b[_0xa57e99(0xb22)]&&_0x4613b[_0xa57e99(0xb22)],_0x91014b=void 0x0===_0x4613b[_0xa57e99(0x607)]||_0x4613b[_0xa57e99(0x607)],_0x48e6e8=void 0x0!==_0x4613b[_0xa57e99(0x479)]&&_0x4613b[_0xa57e99(0x479)],_0x2d1924=void 0x0!==_0x4613b[_0xa57e99(0xb6e)]&&_0x4613b[_0xa57e99(0xb6e)],_0x753a43=_0x4613b['textureCount']||0x1,_0x4613b['types']&&(_0x7c6d18=_0x4613b[_0xa57e99(0x272)]),_0x4613b[_0xa57e99(0x53c)]&&(_0x243f99=_0x4613b[_0xa57e99(0x53c)]),_0x4613b[_0xa57e99(0x5c0)]&&(_0x1e4e98=_0x4613b['useSRGBBuffers']),_0x4613b[_0xa57e99(0xa10)]&&(_0x1a05f2=_0x4613b[_0xa57e99(0xa10)]),_0x4613b[_0xa57e99(0x1ae)]&&(_0x31aafe=_0x4613b[_0xa57e99(0x1ae)]),_0x4613b[_0xa57e99(0x4c2)]&&(_0x14368f=_0x4613b[_0xa57e99(0x4c2)]),_0x4613b[_0xa57e99(0x500)]&&(_0x4e87c7=_0x4613b[_0xa57e99(0x500)]),_0x4613b[_0xa57e99(0xb14)]&&(_0x23c05c=_0x4613b['layerCounts']),0x1<this[_0xa57e99(0xa9b)]&&(_0x4613b[_0xa57e99(0x966)]===_0x4c242e['g'][_0xa57e99(0x5ec)]||_0x4613b['depthTextureFormat']===_0x4c242e['g'][_0xa57e99(0x7bb)]||_0x4613b[_0xa57e99(0x966)]===_0x4c242e['g'][_0xa57e99(0xad3)]||_0x4613b[_0xa57e99(0x966)]===_0x4c242e['g'][_0xa57e99(0x596)]||_0x4613b['depthTextureFormat']===_0x4c242e['g']['TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8'])&&(_0x3208ff=_0x4613b['depthTextureFormat'])),this[_0xa57e99(0xd14)]);var _0x3c91fe=_0x2f2c3e['createFramebuffer'](),_0x2cbcf0=(this[_0xa57e99(0x39d)](_0x3c91fe),_0x36c264[_0xa57e99(0x3e9)]||_0x36c264),_0x4771ce=_0x36c264[_0xa57e99(0x520)]||_0x36c264;const _0x5b66ec=[],_0xa9f535=[];_0x36c264=0x1<this['webGLVersion']&&_0x2d1924&&(_0x4613b[_0xa57e99(0x966)]===_0x4c242e['g']['TEXTUREFORMAT_DEPTH24_STENCIL8']||_0x4613b['depthTextureFormat']===_0x4c242e['g'][_0xa57e99(0x7bb)]||_0x4613b[_0xa57e99(0x966)]===_0x4c242e['g'][_0xa57e99(0x4ee)]),_0x4613b=this[_0xa57e99(0x861)](!_0x36c264&&_0x48e6e8,!_0x2d1924&&_0x91014b,_0x2cbcf0,_0x4771ce),(_0x2e396f[_0xa57e99(0x86c)]=_0x3c91fe,_0x2e396f[_0xa57e99(0x7dd)]=_0x4613b,_0x2e396f[_0xa57e99(0x328)]=!_0x2d1924&&_0x91014b,_0x2e396f['_generateStencilBuffer']=!_0x36c264&&_0x48e6e8,_0x2e396f[_0xa57e99(0x18c)]=_0xa9f535);for(let _0x1f8b1f=0x0;_0x1f8b1f<_0x753a43;_0x1f8b1f++){let _0x41648e=_0x243f99[_0x1f8b1f]||_0x57def5,_0x44f860=_0x7c6d18[_0x1f8b1f]||_0x24a5a9;var _0x498e9a=_0x1e4e98[_0x1f8b1f]||!0x1,_0x493f0f=_0x1a05f2[_0x1f8b1f]||_0x533da3,_0x5d16d4=_0x31aafe[_0x1f8b1f]||_0x4315fe,_0x546cae=null!=(_0x546cae=_0x23c05c[_0x1f8b1f])?_0x546cae:0x1,_0x1ca0d6=((_0x44f860===_0x4c242e['g'][_0xa57e99(0x403)]&&!this[_0xa57e99(0x210)][_0xa57e99(0x46d)]||_0x44f860===_0x4c242e['g'][_0xa57e99(0x208)]&&!this[_0xa57e99(0x210)][_0xa57e99(0x2e8)])&&(_0x41648e=_0x4c242e['g'][_0xa57e99(0x9f9)]),this[_0xa57e99(0x5ee)](_0x41648e,_0x86bcd8)),_0x1fe5b9=(_0x44f860!==_0x4c242e['g']['TEXTURETYPE_FLOAT']||this['_caps']['textureFloat']||(_0x44f860=_0x4c242e['g']['TEXTURETYPE_UNSIGNED_INT'],_0x69d68f['Y'][_0xa57e99(0x6dd)](_0xa57e99(0xa74))),_0x498e9a=_0x498e9a&&this[_0xa57e99(0x210)][_0xa57e99(0xaaf)]&&(0x1<this['webGLVersion']||this[_0xa57e99(0xac2)]),0x1<this['webGLVersion']),_0x3d10d4=_0x2f2c3e[_0x1fe5b9?_0xa57e99(0xc4e)+_0x1f8b1f:_0xa57e99(0xc4e)+_0x1f8b1f+_0xa57e99(0xb5e)];if(_0xa9f535['push'](_0x3d10d4),-0x1!==_0x5d16d4){const _0x123cee=new _0x3ff3f3['l'](this,_0x3ff3f3['S'][_0xa57e99(0x571)]);_0x5b66ec[_0x1f8b1f]=_0x123cee,_0x2f2c3e[_0xa57e99(0xbc6)](_0x2f2c3e[_0xa57e99(0x390)+_0x1f8b1f]),_0x2f2c3e[_0xa57e99(0x111)](_0x5d16d4,_0x123cee['_hardwareTexture'][_0xa57e99(0x913)]),_0x2f2c3e[_0xa57e99(0x777)](_0x5d16d4,_0x2f2c3e[_0xa57e99(0x12d)],_0x1ca0d6['mag']),_0x2f2c3e[_0xa57e99(0x777)](_0x5d16d4,_0x2f2c3e[_0xa57e99(0x2ed)],_0x1ca0d6[_0xa57e99(0x1e1)]),_0x2f2c3e['texParameteri'](_0x5d16d4,_0x2f2c3e[_0xa57e99(0x514)],_0x2f2c3e[_0xa57e99(0x72d)]),_0x2f2c3e[_0xa57e99(0x777)](_0x5d16d4,_0x2f2c3e['TEXTURE_WRAP_T'],_0x2f2c3e[_0xa57e99(0x72d)]);var _0x4f7696=this[_0xa57e99(0xca3)](_0x44f860,_0x493f0f,_0x498e9a),_0x473651=this['_getInternalFormat'](_0x493f0f),_0xf983fc=this[_0xa57e99(0xced)](_0x44f860);if(!_0x1fe5b9||_0x5d16d4!==_0x4c242e['g'][_0xa57e99(0x7c8)]&&_0x5d16d4!==_0x4c242e['g'][_0xa57e99(0xc85)]){if(_0x5d16d4===_0x4c242e['g']['TEXTURE_CUBE_MAP']){for(let _0x50d3b0=0x0;_0x50d3b0<0x6;_0x50d3b0++)_0x2f2c3e[_0xa57e99(0x4ce)](_0x2f2c3e[_0xa57e99(0x93f)]+_0x50d3b0,0x0,_0x4f7696,_0x2cbcf0,_0x4771ce,0x0,_0x473651,_0xf983fc,null);_0x123cee[_0xa57e99(0xac3)]=!0x0;}else _0x2f2c3e[_0xa57e99(0x4ce)](_0x2f2c3e['TEXTURE_2D'],0x0,_0x4f7696,_0x2cbcf0,_0x4771ce,0x0,_0x473651,_0xf983fc,null);}else _0x5d16d4===_0x4c242e['g'][_0xa57e99(0x7c8)]?_0x123cee['is2DArray']=!0x0:_0x123cee[_0xa57e99(0x718)]=!0x0,_0x123cee[_0xa57e99(0x763)]=_0x123cee[_0xa57e99(0x711)]=_0x546cae,_0x2f2c3e['texImage3D'](_0x5d16d4,0x0,_0x4f7696,_0x2cbcf0,_0x4771ce,_0x546cae,0x0,_0x473651,_0xf983fc,null);_0x86bcd8&&_0x2f2c3e[_0xa57e99(0x6f6)](_0x5d16d4),this[_0xa57e99(0xc0b)](_0x5d16d4,null),_0x123cee[_0xa57e99(0x3f4)]=_0x2cbcf0,_0x123cee[_0xa57e99(0x929)]=_0x4771ce,_0x123cee['width']=_0x2cbcf0,_0x123cee[_0xa57e99(0x520)]=_0x4771ce,_0x123cee[_0xa57e99(0x3f1)]=!0x0,_0x123cee[_0xa57e99(0x92d)]=0x1,_0x123cee[_0xa57e99(0xb22)]=_0x86bcd8,_0x123cee[_0xa57e99(0x9f4)]=_0x41648e,_0x123cee[_0xa57e99(0xb26)]=_0x44f860,_0x123cee['_useSRGBBuffer']=_0x498e9a,_0x123cee[_0xa57e99(0xb59)]=_0x493f0f,this[_0xa57e99(0xd01)][_0xa57e99(0x725)](_0x123cee);}}if(_0x2d1924&&this['_caps'][_0xa57e99(0xb86)]){const _0x1afd85=new _0x3ff3f3['l'](this,_0x3ff3f3['S'][_0xa57e99(0xbc5)]);let _0x4d8c32=_0x4c242e['g'][_0xa57e99(0x8ae)],_0x36cf09=_0x2f2c3e[_0xa57e99(0x728)],_0x29e7f1=_0x2f2c3e[_0xa57e99(0xc06)],_0x766c19=_0x2f2c3e['UNSIGNED_SHORT'],_0x2036a0=_0x2f2c3e[_0xa57e99(0xbba)];this['webGLVersion']<0x2?_0x36cf09=_0x2f2c3e[_0xa57e99(0xc06)]:_0x3208ff===_0x4c242e['g'][_0xa57e99(0x596)]?(_0x4d8c32=_0x4c242e['g']['TEXTURETYPE_FLOAT'],_0x766c19=_0x2f2c3e[_0xa57e99(0x355)],_0x36cf09=_0x2f2c3e['DEPTH_COMPONENT32F']):_0x3208ff===_0x4c242e['g'][_0xa57e99(0x4ee)]?(_0x4d8c32=_0x4c242e['g'][_0xa57e99(0x970)],_0x766c19=_0x2f2c3e['FLOAT_32_UNSIGNED_INT_24_8_REV'],_0x36cf09=_0x2f2c3e[_0xa57e99(0x400)],_0x29e7f1=_0x2f2c3e[_0xa57e99(0x87e)],_0x2036a0=_0x2f2c3e['DEPTH_STENCIL_ATTACHMENT']):_0x3208ff===_0x4c242e['g']['TEXTUREFORMAT_DEPTH24']?(_0x4d8c32=_0x4c242e['g']['TEXTURETYPE_UNSIGNED_INT'],_0x766c19=_0x2f2c3e['UNSIGNED_INT'],_0x36cf09=_0x2f2c3e[_0xa57e99(0x247)],_0x2036a0=_0x2f2c3e[_0xa57e99(0xbba)]):_0x3208ff!==_0x4c242e['g']['TEXTUREFORMAT_DEPTH24_STENCIL8']&&_0x3208ff!==_0x4c242e['g']['TEXTUREFORMAT_DEPTH24UNORM_STENCIL8']||(_0x4d8c32=_0x4c242e['g']['TEXTURETYPE_UNSIGNED_INT_24_8'],_0x766c19=_0x2f2c3e[_0xa57e99(0x48a)],_0x36cf09=_0x2f2c3e['DEPTH24_STENCIL8'],_0x29e7f1=_0x2f2c3e[_0xa57e99(0x87e)],_0x2036a0=_0x2f2c3e[_0xa57e99(0x8da)]),_0x2f2c3e[_0xa57e99(0xbc6)](_0x2f2c3e[_0xa57e99(0x115)]),_0x2f2c3e[_0xa57e99(0x111)](_0x2f2c3e[_0xa57e99(0x4b0)],_0x1afd85[_0xa57e99(0x49d)][_0xa57e99(0x913)]),_0x2f2c3e[_0xa57e99(0x777)](_0x2f2c3e[_0xa57e99(0x4b0)],_0x2f2c3e[_0xa57e99(0x12d)],_0x2f2c3e[_0xa57e99(0x3d7)]),_0x2f2c3e[_0xa57e99(0x777)](_0x2f2c3e[_0xa57e99(0x4b0)],_0x2f2c3e[_0xa57e99(0x2ed)],_0x2f2c3e[_0xa57e99(0x3d7)]),_0x2f2c3e[_0xa57e99(0x777)](_0x2f2c3e[_0xa57e99(0x4b0)],_0x2f2c3e[_0xa57e99(0x514)],_0x2f2c3e['CLAMP_TO_EDGE']),_0x2f2c3e[_0xa57e99(0x777)](_0x2f2c3e['TEXTURE_2D'],_0x2f2c3e[_0xa57e99(0x203)],_0x2f2c3e[_0xa57e99(0x72d)]),_0x2f2c3e[_0xa57e99(0x4ce)](_0x2f2c3e['TEXTURE_2D'],0x0,_0x36cf09,_0x2cbcf0,_0x4771ce,0x0,_0x29e7f1,_0x766c19,null),_0x2f2c3e['framebufferTexture2D'](_0x2f2c3e['FRAMEBUFFER'],_0x2036a0,_0x2f2c3e[_0xa57e99(0x4b0)],_0x1afd85['_hardwareTexture'][_0xa57e99(0x913)],0x0),_0x1afd85['baseWidth']=_0x2cbcf0,_0x1afd85[_0xa57e99(0x929)]=_0x4771ce,_0x1afd85[_0xa57e99(0x3e9)]=_0x2cbcf0,_0x1afd85[_0xa57e99(0x520)]=_0x4771ce,_0x1afd85[_0xa57e99(0x3f1)]=!0x0,_0x1afd85[_0xa57e99(0x92d)]=0x1,_0x1afd85[_0xa57e99(0xb22)]=_0x86bcd8,_0x1afd85[_0xa57e99(0x9f4)]=_0x4c242e['g'][_0xa57e99(0x9f9)],_0x1afd85[_0xa57e99(0xb59)]=_0x3208ff,_0x1afd85[_0xa57e99(0xb26)]=_0x4d8c32,_0x5b66ec[_0x753a43]=_0x1afd85,this['_internalTexturesCache']['push'](_0x1afd85);}return _0x2e396f[_0xa57e99(0xac0)](_0x5b66ec),_0x4ab90b&&_0x2f2c3e[_0xa57e99(0x23a)](_0xa9f535),this[_0xa57e99(0x39d)](null),_0x2e396f[_0xa57e99(0x15f)](_0x4e87c7,_0x14368f),this[_0xa57e99(0x416)](),_0x2e396f;},_0x47a197['B'][_0x5afeff(0x78e)][_0x5afeff(0x76d)]=function(_0x22f5c0,_0x140e94,_0x3bd66d=!0x0){var _0x347a3c=_0x5afeff;if(this[_0x347a3c(0xa9b)]<0x2||!_0x22f5c0||!_0x22f5c0['texture'])return 0x1;if(_0x22f5c0['samples']===_0x140e94)return _0x140e94;var _0x2695e1=_0x22f5c0['_attachments'][_0x347a3c(0x86f)];if(0x0===_0x2695e1)return 0x1;const _0x2733c4=this[_0x347a3c(0xd14)];_0x140e94=Math[_0x347a3c(0x1e1)](_0x140e94,this[_0x347a3c(0x7b9)]()['maxMSAASamples']);var _0xde65d2=!!_0x22f5c0[_0x347a3c(0x7dd)];if(_0xde65d2&&(_0x2733c4[_0x347a3c(0xc33)](_0x22f5c0[_0x347a3c(0x7dd)]),_0x22f5c0[_0x347a3c(0x7dd)]=null),_0x22f5c0['_MSAAFramebuffer']&&(_0x2733c4[_0x347a3c(0x5d6)](_0x22f5c0[_0x347a3c(0xc20)]),_0x22f5c0[_0x347a3c(0xc20)]=null),0x1<_0x140e94&&_0x347a3c(0x785)==typeof _0x2733c4[_0x347a3c(0x6ea)]){var _0x36e32a=_0x2733c4[_0x347a3c(0x5fb)]();if(!_0x36e32a)throw new Error('Unable\x20to\x20create\x20multi\x20sampled\x20framebuffer');_0x22f5c0[_0x347a3c(0xc20)]=_0x36e32a,this['_bindUnboundFramebuffer'](_0x36e32a);const _0x4ad78b=[];for(let _0x41a960=0x0;_0x41a960<_0x2695e1;_0x41a960++){const _0x15eead=_0x22f5c0['textures'][_0x41a960][_0x347a3c(0x49d)];_0x15eead[_0x347a3c(0xc9d)]();}for(let _0x2f701f=0x0;_0x2f701f<_0x2695e1;_0x2f701f++){const _0x82d9b9=_0x22f5c0[_0x347a3c(0xa52)][_0x2f701f],_0x499cd0=_0x82d9b9[_0x347a3c(0x49d)];var _0x5f5ca7=_0x2733c4[0x1<this[_0x347a3c(0xa9b)]?_0x347a3c(0xc4e)+_0x2f701f:_0x347a3c(0xc4e)+_0x2f701f+'_WEBGL'],_0x1f1d49=this[_0x347a3c(0x4bf)](_0x82d9b9[_0x347a3c(0x3e9)],_0x82d9b9[_0x347a3c(0x520)],_0x140e94,-0x1,this[_0x347a3c(0xb78)](_0x82d9b9[_0x347a3c(0xb26)],_0x82d9b9['format']),_0x5f5ca7);if(!_0x1f1d49)throw new Error(_0x347a3c(0xbd2));_0x499cd0[_0x347a3c(0xb65)](_0x1f1d49),_0x82d9b9['samples']=_0x140e94,_0x4ad78b[_0x347a3c(0x725)](_0x5f5ca7);}_0x3bd66d&&_0x2733c4[_0x347a3c(0x23a)](_0x4ad78b);}else this[_0x347a3c(0x39d)](_0x22f5c0['_framebuffer']);return _0xde65d2&&(_0x22f5c0[_0x347a3c(0x7dd)]=this['_setupFramebufferDepthAttachments'](_0x22f5c0[_0x347a3c(0x436)],_0x22f5c0[_0x347a3c(0x328)],_0x22f5c0[_0x347a3c(0x800)][_0x347a3c(0x3e9)],_0x22f5c0['texture']['height'],_0x140e94)),this[_0x347a3c(0x39d)](null),_0x140e94;};},0x496a:(_0x56e3d2,_0xf4f128,_0x368d15)=>{var _0x4eaa12=a7_0x3304fb,_0x32f8fc=_0x368d15(0x43d7),_0x1c513b=_0x368d15(0x14232),_0x5001e4=_0x368d15(0xd537),_0x7e6e9a=_0x368d15(0x138df),_0x3b70d4=_0x368d15(0xd53f),_0x3b377f=_0x368d15(0x181f4),_0x5544ff=_0x368d15(0x1515e),_0x29adf8=_0x368d15(0x9093);function _0x2d12d0(_0x5f1e58,_0x12118b){var _0x14658b=a7_0x4135;const _0x3349be=new _0x3b377f['M'](_0x5f1e58,void 0x0,!0x0,_0x12118b);return _0x3349be[_0x14658b(0x856)](_0x14658b(0x7de),0x10),_0x3349be[_0x14658b(0x856)](_0x14658b(0x46a),0x10),_0x3349be[_0x14658b(0x856)](_0x14658b(0x611),0x10),_0x3349be['addUniform']('projection',0x10),_0x3349be['addUniform'](_0x14658b(0x5b9),0x4),_0x3349be;}_0x1c513b['D'][_0x4eaa12(0x78e)][_0x4eaa12(0x55d)]=function(_0x3cb0c2,_0x3ca2c0){var _0x159390=_0x4eaa12;const _0x8a2d94=this['_gl'];if(!this[_0x159390(0x7b9)]()['multiview'])throw _0x159390(0x2e4);const _0xeb9abc=this[_0x159390(0xa23)](!0x1,!0x1,{'width':_0x3cb0c2,'height':_0x3ca2c0}),_0x289a28=(_0xeb9abc['_framebuffer']=_0x8a2d94['createFramebuffer'](),new _0x7e6e9a['l'](this,_0x7e6e9a['S'][_0x159390(0x88d)],!0x0));return _0x289a28['width']=_0x3cb0c2,_0x289a28[_0x159390(0x520)]=_0x3ca2c0,_0x289a28['isMultiview']=!0x0,_0xeb9abc[_0x159390(0x3d3)]=_0x8a2d94['createTexture'](),_0x8a2d94[_0x159390(0x111)](_0x8a2d94[_0x159390(0x7c8)],_0xeb9abc['_colorTextureArray']),_0x8a2d94[_0x159390(0xcb5)](_0x8a2d94[_0x159390(0x7c8)],0x1,_0x8a2d94['RGBA8'],_0x3cb0c2,_0x3ca2c0,0x2),_0xeb9abc[_0x159390(0x4d5)]=_0x8a2d94[_0x159390(0x9d2)](),_0x8a2d94['bindTexture'](_0x8a2d94[_0x159390(0x7c8)],_0xeb9abc['_depthStencilTextureArray']),_0x8a2d94['texStorage3D'](_0x8a2d94[_0x159390(0x7c8)],0x1,_0x8a2d94['DEPTH24_STENCIL8'],_0x3cb0c2,_0x3ca2c0,0x2),_0x289a28[_0x159390(0x3f1)]=!0x0,_0xeb9abc[_0x159390(0xac0)](_0x289a28),_0xeb9abc[_0x159390(0x219)]=_0x289a28,_0xeb9abc;},_0x1c513b['D'][_0x4eaa12(0x78e)][_0x4eaa12(0x882)]=function(_0x316350){var _0xc698e7=_0x4eaa12;const _0x5e4d0f=this[_0xc698e7(0xd14)],_0x54e4bd=this[_0xc698e7(0x7b9)]()['oculusMultiview']||this[_0xc698e7(0x7b9)]()[_0xc698e7(0x3d0)];if(this['bindFramebuffer'](_0x316350,void 0x0,void 0x0,void 0x0,!0x0),_0x5e4d0f['bindFramebuffer'](_0x5e4d0f[_0xc698e7(0xce7)],_0x316350[_0xc698e7(0x86c)]),!_0x316350[_0xc698e7(0x3d3)]||!_0x316350[_0xc698e7(0x4d5)])throw _0xc698e7(0x7c2);this[_0xc698e7(0x7b9)]()['oculusMultiview']?(_0x54e4bd[_0xc698e7(0x2b0)](_0x5e4d0f[_0xc698e7(0xce7)],_0x5e4d0f['COLOR_ATTACHMENT0'],_0x316350['_colorTextureArray'],0x0,_0x316350[_0xc698e7(0x92d)],0x0,0x2),_0x54e4bd[_0xc698e7(0x2b0)](_0x5e4d0f[_0xc698e7(0xce7)],_0x5e4d0f['DEPTH_STENCIL_ATTACHMENT'],_0x316350[_0xc698e7(0x4d5)],0x0,_0x316350[_0xc698e7(0x92d)],0x0,0x2)):(_0x54e4bd['framebufferTextureMultiviewOVR'](_0x5e4d0f['DRAW_FRAMEBUFFER'],_0x5e4d0f[_0xc698e7(0xb6b)],_0x316350[_0xc698e7(0x3d3)],0x0,0x0,0x2),_0x54e4bd[_0xc698e7(0x9c5)](_0x5e4d0f['DRAW_FRAMEBUFFER'],_0x5e4d0f[_0xc698e7(0x8da)],_0x316350[_0xc698e7(0x4d5)],0x0,0x0,0x2));},_0x32f8fc['V'][_0x4eaa12(0x78e)][_0x4eaa12(0x2ad)]=!0x1,_0x32f8fc['V'][_0x4eaa12(0x78e)][_0x4eaa12(0x585)]=null,_0x32f8fc['V']['prototype'][_0x4eaa12(0x67a)]=function(_0x11b15c,_0x21d12f){var _0x12e0a3=_0x4eaa12;this[_0x12e0a3(0x585)]?this['_multiviewTexture'][_0x12e0a3(0x6b2)]()==_0x11b15c&&this['_multiviewTexture'][_0x12e0a3(0x3c3)]()==_0x21d12f||(this[_0x12e0a3(0x585)][_0x12e0a3(0xb4b)](),this[_0x12e0a3(0x585)]=new _0x5544ff['x'](this[_0x12e0a3(0xb68)](),{'width':_0x11b15c,'height':_0x21d12f})):this[_0x12e0a3(0x585)]=new _0x5544ff['x'](this[_0x12e0a3(0xb68)](),{'width':_0x11b15c,'height':_0x21d12f});};const _0x5d73b5=_0x5001e4['x']['prototype']['createSceneUniformBuffer'];_0x5001e4['x']['prototype'][_0x4eaa12(0x654)]=_0x3b70d4['y3']['Zero'](),_0x5001e4['x']['prototype']['_multiviewSceneUbo']=null,_0x5001e4['x']['prototype']['_createMultiviewUbo']=function(){var _0x41d898=_0x4eaa12;this[_0x41d898(0x383)]=_0x2d12d0(this[_0x41d898(0xc8e)](),_0x41d898(0x76a));},_0x5001e4['x'][_0x4eaa12(0x78e)][_0x4eaa12(0x300)]=function(_0x538140){var _0x1faa9a=_0x4eaa12;return this[_0x1faa9a(0x383)]?_0x2d12d0(this[_0x1faa9a(0xc8e)](),_0x538140):_0x5d73b5['bind'](this)(_0x538140);},_0x5001e4['x'][_0x4eaa12(0x78e)][_0x4eaa12(0xc61)]=function(_0x13390d,_0x23ea2b){var _0x58d778=_0x4eaa12;_0x13390d&&_0x23ea2b&&_0x13390d[_0x58d778(0x4ed)](_0x23ea2b,this['_transformMatrixR']),_0x13390d&&_0x23ea2b&&(_0x13390d[_0x58d778(0x4ed)](_0x23ea2b,_0x3b70d4['jp']['Matrix'][0x0]),_0x29adf8['i']['GetRightPlaneToRef'](_0x3b70d4['jp']['Matrix'][0x0],this['_frustumPlanes'][0x3])),this[_0x58d778(0x383)]&&(this['_multiviewSceneUbo'][_0x58d778(0x693)](_0x58d778(0x7de),this['getTransformMatrix']()),this['_multiviewSceneUbo'][_0x58d778(0x693)]('viewProjectionR',this['_transformMatrixR']),this[_0x58d778(0x383)][_0x58d778(0x693)](_0x58d778(0x611),this[_0x58d778(0x6c4)]),this[_0x58d778(0x383)][_0x58d778(0x693)](_0x58d778(0x8cd),this[_0x58d778(0x498)]));},_0x5001e4['x']['prototype'][_0x4eaa12(0x73b)]=function(_0x53714f){var _0x929833=_0x4eaa12;_0x53714f[_0x929833(0x67a)](_0x53714f[_0x929833(0x3bf)]&&_0x53714f['_rigPostProcess']&&0x0<_0x53714f[_0x929833(0x3bf)][_0x929833(0x3e9)]?_0x53714f[_0x929833(0x3bf)][_0x929833(0x3e9)]:this[_0x929833(0xc8e)]()[_0x929833(0x6b2)](!0x0),_0x53714f[_0x929833(0x3bf)]&&_0x53714f[_0x929833(0x3bf)]&&0x0<_0x53714f[_0x929833(0x3bf)]['height']?_0x53714f[_0x929833(0x3bf)][_0x929833(0x520)]:this['getEngine']()[_0x929833(0x3c3)](!0x0)),this['_multiviewSceneUbo']||this[_0x929833(0xa49)](),_0x53714f[_0x929833(0xb9a)]=_0x53714f[_0x929833(0x585)],this[_0x929833(0x900)](_0x53714f),_0x53714f['outputRenderTarget']=null;for(let _0x424016=0x0;_0x424016<_0x53714f['_rigCameras'][_0x929833(0x86f)];_0x424016++){const _0x3e1a14=this[_0x929833(0xc8e)]();this[_0x929833(0xc6f)]=_0x53714f[_0x929833(0x31f)][_0x424016],_0x3e1a14[_0x929833(0x3ff)](this['_activeCamera'][_0x929833(0x521)]),this[_0x929833(0x4a9)]&&(this[_0x929833(0x4a9)]['_prepareFrame'](),this['postProcessManager'][_0x929833(0x772)](this['_activeCamera'][_0x929833(0x985)]));}};},0x12543:(_0x26a772,_0x230cd5,_0x96351d)=>{var _0x1526ae=a7_0x3304fb,_0x511fd0=_0x96351d(0x138df),_0x4482b7=_0x96351d(0x9a70),_0x18358b=_0x96351d(0x4ba7),_0x23b74d=_0x96351d(0x1610),_0x96351d=_0x96351d(0xcf06);function _0x340175(_0x193720,_0x1ade9f,_0x103e5e,_0x96b85d){var _0x5b556a=a7_0x4135;let _0x5cfaf7,_0x56198f=0x1;_0x96b85d===_0x23b74d['g']['TEXTURETYPE_FLOAT']?_0x5cfaf7=new Float32Array(_0x1ade9f*_0x103e5e*0x4):_0x96b85d===_0x23b74d['g'][_0x5b556a(0x208)]?(_0x5cfaf7=new Uint16Array(_0x1ade9f*_0x103e5e*0x4),_0x56198f=0x3c00):_0x5cfaf7=new(_0x96b85d===_0x23b74d['g'][(_0x5b556a(0x443))]?Uint32Array:Uint8Array)(_0x1ade9f*_0x103e5e*0x4);for(let _0x1f3597=0x0;_0x1f3597<_0x1ade9f;_0x1f3597++)for(let _0x2f68a3=0x0;_0x2f68a3<_0x103e5e;_0x2f68a3++){var _0x5128f1=0x3*(_0x2f68a3*_0x1ade9f+_0x1f3597),_0x48393c=0x4*(_0x2f68a3*_0x1ade9f+_0x1f3597);_0x5cfaf7[0x0+_0x48393c]=_0x193720[0x0+_0x5128f1],_0x5cfaf7[0x1+_0x48393c]=_0x193720[0x1+_0x5128f1],_0x5cfaf7[0x2+_0x48393c]=_0x193720[0x2+_0x5128f1],_0x5cfaf7[0x3+_0x48393c]=_0x56198f;}return _0x5cfaf7;}function _0x41e695(_0x37b652){return function(_0x47f751,_0x59aa5e,_0x8d7d5e,_0x158f97,_0x4067d2,_0x5528f9,_0x41551c,_0x157c72,_0x444250=null,_0x4d21a4=_0x23b74d['g']['TEXTURETYPE_UNSIGNED_INT']){var _0x606997=a7_0x4135,_0x551eec=_0x37b652?this['_gl'][_0x606997(0xc85)]:this[_0x606997(0xd14)][_0x606997(0x7c8)],_0x273a65=_0x37b652?_0x511fd0['S'][_0x606997(0xb35)]:_0x511fd0['S'][_0x606997(0xcfe)];const _0x3cefbb=new _0x511fd0['l'](this,_0x273a65);return _0x3cefbb[_0x606997(0x3f4)]=_0x59aa5e,_0x3cefbb[_0x606997(0x929)]=_0x8d7d5e,_0x3cefbb[_0x606997(0x763)]=_0x158f97,_0x3cefbb[_0x606997(0x3e9)]=_0x59aa5e,_0x3cefbb[_0x606997(0x520)]=_0x8d7d5e,_0x3cefbb[_0x606997(0x711)]=_0x158f97,_0x3cefbb[_0x606997(0xb59)]=_0x4067d2,_0x3cefbb[_0x606997(0xb26)]=_0x4d21a4,_0x3cefbb[_0x606997(0xb22)]=_0x5528f9,_0x3cefbb[_0x606997(0x9f4)]=_0x157c72,_0x37b652?_0x3cefbb[_0x606997(0x718)]=!0x0:_0x3cefbb[_0x606997(0x7f4)]=!0x0,this[_0x606997(0x464)]||(_0x3cefbb[_0x606997(0x9b0)]=_0x47f751),_0x37b652?this[_0x606997(0x851)](_0x3cefbb,_0x47f751,_0x4067d2,_0x41551c,_0x444250,_0x4d21a4):this[_0x606997(0x565)](_0x3cefbb,_0x47f751,_0x4067d2,_0x41551c,_0x444250,_0x4d21a4),this['_bindTextureDirectly'](_0x551eec,_0x3cefbb,!0x0),_0x273a65=this[_0x606997(0x5ee)](_0x157c72,_0x5528f9),(this[_0x606997(0xd14)][_0x606997(0x777)](_0x551eec,this['_gl'][_0x606997(0x12d)],_0x273a65['mag']),this['_gl'][_0x606997(0x777)](_0x551eec,this[_0x606997(0xd14)][_0x606997(0x2ed)],_0x273a65[_0x606997(0x1e1)]),_0x5528f9&&this['_gl']['generateMipmap'](_0x551eec),this[_0x606997(0xc0b)](_0x551eec,null),this['_internalTexturesCache']['push'](_0x3cefbb),_0x3cefbb);};}function _0x522abd(_0x29c13d){var _0x470c48=a7_0x4135;return function(_0x38284e,_0x1ee931,_0x4e2ce0,_0x59f40e,_0x47b379=null,_0x280e02=_0x23b74d['g'][_0x470c48(0x970)]){var _0x35ea6a=_0x470c48,_0x56bae8=_0x29c13d?this[_0x35ea6a(0xd14)][_0x35ea6a(0xc85)]:this[_0x35ea6a(0xd14)][_0x35ea6a(0x7c8)],_0x44178d=this[_0x35ea6a(0xced)](_0x280e02),_0x263c50=this[_0x35ea6a(0x25e)](_0x4e2ce0),_0x280e02=this[_0x35ea6a(0xca3)](_0x280e02,_0x4e2ce0);this[_0x35ea6a(0xc0b)](_0x56bae8,_0x38284e,!0x0),this[_0x35ea6a(0x671)](void 0x0===_0x59f40e||!!_0x59f40e),this['_doNotHandleContextLost']||(_0x38284e[_0x35ea6a(0x9b0)]=_0x1ee931,_0x38284e[_0x35ea6a(0xb59)]=_0x4e2ce0,_0x38284e[_0x35ea6a(0x7b0)]=_0x59f40e,_0x38284e['_compression']=_0x47b379),_0x38284e['width']%0x4!=0x0&&this[_0x35ea6a(0xd14)][_0x35ea6a(0xc0d)](this[_0x35ea6a(0xd14)][_0x35ea6a(0x52b)],0x1),_0x47b379&&_0x1ee931?this[_0x35ea6a(0xd14)]['compressedTexImage3D'](_0x56bae8,0x0,this[_0x35ea6a(0x7b9)]()[_0x35ea6a(0x366)][_0x47b379],_0x38284e[_0x35ea6a(0x3e9)],_0x38284e['height'],_0x38284e['depth'],0x0,_0x1ee931):this['_gl'][_0x35ea6a(0x6a8)](_0x56bae8,0x0,_0x280e02,_0x38284e[_0x35ea6a(0x3e9)],_0x38284e['height'],_0x38284e['depth'],0x0,_0x263c50,_0x44178d,_0x1ee931),_0x38284e[_0x35ea6a(0xb22)]&&this['_gl'][_0x35ea6a(0x6f6)](_0x56bae8),this[_0x35ea6a(0xc0b)](_0x56bae8,null),_0x38284e['isReady']=!0x0;};}_0x96351d['B'][_0x1526ae(0x78e)][_0x1526ae(0xb85)]=function(_0x4b99b9,_0x645df0,_0x995688,_0x10e9b4,_0x5c4b4a=null,_0x4d8588=_0x23b74d['g']['TEXTURETYPE_UNSIGNED_INT'],_0xb44d2=!0x1){var _0x1909fe=_0x1526ae,_0x314841,_0xbbc8af;_0x4b99b9&&(_0xb44d2=this[_0x1909fe(0xca3)](_0x4d8588,_0x995688,_0xb44d2),_0x314841=this[_0x1909fe(0x25e)](_0x995688),_0xbbc8af=this['_getWebGLTextureType'](_0x4d8588),this[_0x1909fe(0xc0b)](this[_0x1909fe(0xd14)]['TEXTURE_2D'],_0x4b99b9,!0x0),this[_0x1909fe(0x671)](void 0x0===_0x10e9b4||!!_0x10e9b4),this[_0x1909fe(0x464)]||(_0x4b99b9['_bufferView']=_0x645df0,_0x4b99b9[_0x1909fe(0xb59)]=_0x995688,_0x4b99b9[_0x1909fe(0xb26)]=_0x4d8588,_0x4b99b9['invertY']=_0x10e9b4,_0x4b99b9[_0x1909fe(0x827)]=_0x5c4b4a),_0x4b99b9['width']%0x4!=0x0&&this[_0x1909fe(0xd14)]['pixelStorei'](this[_0x1909fe(0xd14)][_0x1909fe(0x52b)],0x1),_0x5c4b4a&&_0x645df0?this[_0x1909fe(0xd14)][_0x1909fe(0xc71)](this['_gl'][_0x1909fe(0x4b0)],0x0,this[_0x1909fe(0x7b9)]()[_0x1909fe(0x366)][_0x5c4b4a],_0x4b99b9['width'],_0x4b99b9[_0x1909fe(0x520)],0x0,_0x645df0):this[_0x1909fe(0xd14)][_0x1909fe(0x4ce)](this[_0x1909fe(0xd14)][_0x1909fe(0x4b0)],0x0,_0xb44d2,_0x4b99b9[_0x1909fe(0x3e9)],_0x4b99b9[_0x1909fe(0x520)],0x0,_0x314841,_0xbbc8af,_0x645df0),_0x4b99b9[_0x1909fe(0xb22)]&&this[_0x1909fe(0xd14)][_0x1909fe(0x6f6)](this[_0x1909fe(0xd14)][_0x1909fe(0x4b0)]),this[_0x1909fe(0xc0b)](this[_0x1909fe(0xd14)]['TEXTURE_2D'],null),_0x4b99b9['isReady']=!0x0);},_0x96351d['B'][_0x1526ae(0x78e)][_0x1526ae(0x3e8)]=function(_0x59599e,_0xace090,_0x5a3fe1,_0x331f31,_0x589918,_0x3b0a92,_0x171f3c,_0x182e2e=null,_0x132b0e=_0x23b74d['g']['TEXTURETYPE_UNSIGNED_INT'],_0x4e2ca6,_0x57a75e=!0x1){var _0x2f8667=_0x1526ae;const _0x387487=new _0x511fd0['l'](this,_0x511fd0['S']['Raw']);return _0x387487[_0x2f8667(0x3f4)]=_0xace090,_0x387487['baseHeight']=_0x5a3fe1,_0x387487[_0x2f8667(0x3e9)]=_0xace090,_0x387487[_0x2f8667(0x520)]=_0x5a3fe1,_0x387487[_0x2f8667(0xb59)]=_0x331f31,_0x387487['generateMipMaps']=_0x589918,_0x387487[_0x2f8667(0x9f4)]=_0x171f3c,_0x387487[_0x2f8667(0x7b0)]=_0x3b0a92,_0x387487[_0x2f8667(0x827)]=_0x182e2e,_0x387487[_0x2f8667(0xb26)]=_0x132b0e,_0x387487[_0x2f8667(0x7ef)]=this[_0x2f8667(0x2e6)](_0x57a75e,!_0x589918),this[_0x2f8667(0x464)]||(_0x387487['_bufferView']=_0x59599e),this['updateRawTexture'](_0x387487,_0x59599e,_0x331f31,_0x3b0a92,_0x182e2e,_0x132b0e,_0x387487[_0x2f8667(0x7ef)]),this[_0x2f8667(0xc0b)](this[_0x2f8667(0xd14)][_0x2f8667(0x4b0)],_0x387487,!0x0),_0xace090=this['_getSamplingParameters'](_0x171f3c,_0x589918),(this[_0x2f8667(0xd14)][_0x2f8667(0x777)](this[_0x2f8667(0xd14)][_0x2f8667(0x4b0)],this[_0x2f8667(0xd14)][_0x2f8667(0x12d)],_0xace090['mag']),this[_0x2f8667(0xd14)][_0x2f8667(0x777)](this[_0x2f8667(0xd14)]['TEXTURE_2D'],this[_0x2f8667(0xd14)][_0x2f8667(0x2ed)],_0xace090[_0x2f8667(0x1e1)]),_0x589918&&this[_0x2f8667(0xd14)][_0x2f8667(0x6f6)](this[_0x2f8667(0xd14)]['TEXTURE_2D']),this['_bindTextureDirectly'](this['_gl']['TEXTURE_2D'],null),this[_0x2f8667(0xd01)]['push'](_0x387487),_0x387487);},_0x96351d['B'][_0x1526ae(0x78e)]['createRawCubeTexture']=function(_0x422d72,_0x2e8fe9,_0x2a74ca,_0x1e2e08,_0x87638a,_0x583158,_0x4bf449,_0x5bbb1f=null){var _0x5447c1=_0x1526ae;const _0x3dff42=this[_0x5447c1(0xd14)],_0x279394=new _0x511fd0['l'](this,_0x511fd0['S'][_0x5447c1(0xa44)]);_0x279394['isCube']=!0x0,_0x279394[_0x5447c1(0xb59)]=_0x2a74ca,_0x279394['type']=_0x1e2e08,this[_0x5447c1(0x464)]||(_0x279394[_0x5447c1(0x5b0)]=_0x422d72);var _0x45ee12=this[_0x5447c1(0xced)](_0x1e2e08);let _0xfb6f2b=this[_0x5447c1(0x25e)](_0x2a74ca);_0xfb6f2b===_0x3dff42[_0x5447c1(0x395)]&&(_0xfb6f2b=_0x3dff42[_0x5447c1(0xa41)]),_0x45ee12!==_0x3dff42[_0x5447c1(0x355)]||this[_0x5447c1(0x210)]['textureFloatLinearFiltering']?_0x45ee12!==this[_0x5447c1(0xd14)][_0x5447c1(0x18b)]||this[_0x5447c1(0x210)][_0x5447c1(0x2e8)]?_0x45ee12!==_0x3dff42[_0x5447c1(0x355)]||this[_0x5447c1(0x210)][_0x5447c1(0x262)]?_0x45ee12!==_0x3dff42[_0x5447c1(0x9e6)]||this['_caps']['colorBufferFloat']||(_0x87638a=!0x1,_0x4482b7['Y'][_0x5447c1(0x6dd)](_0x5447c1(0x460))):(_0x87638a=!0x1,_0x4482b7['Y'][_0x5447c1(0x6dd)]('Render\x20to\x20float\x20textures\x20is\x20not\x20supported.\x20Mipmap\x20generation\x20forced\x20to\x20false.')):(_0x87638a=!0x1,_0x4bf449=_0x23b74d['g'][_0x5447c1(0x9f9)],_0x4482b7['Y'][_0x5447c1(0x6dd)](_0x5447c1(0x4aa))):(_0x87638a=!0x1,_0x4bf449=_0x23b74d['g']['TEXTURE_NEAREST_SAMPLINGMODE'],_0x4482b7['Y'][_0x5447c1(0x6dd)](_0x5447c1(0xc64)));var _0x1cb124=_0x2e8fe9;if(_0x279394[_0x5447c1(0x3e9)]=_0x2e8fe9,_0x279394[_0x5447c1(0x520)]=_0x1cb124,_0x279394[_0x5447c1(0x7b0)]=_0x583158,_0x279394[_0x5447c1(0x827)]=_0x5bbb1f,!this[_0x5447c1(0x939)]||_0x18358b['w1'][_0x5447c1(0x2d2)](_0x279394['width'])&&_0x18358b['w1'][_0x5447c1(0x2d2)](_0x279394[_0x5447c1(0x520)])||(_0x87638a=!0x1),_0x422d72)this[_0x5447c1(0x9bf)](_0x279394,_0x422d72,_0x2a74ca,_0x1e2e08,_0x583158,_0x5bbb1f);else{var _0x43ef05=this['_getRGBABufferInternalSizedFormat'](_0x1e2e08);this[_0x5447c1(0xc0b)](_0x3dff42[_0x5447c1(0xafc)],_0x279394,!0x0);for(let _0x2a8be7=0x0;_0x2a8be7<0x6;_0x2a8be7++)_0x5bbb1f?_0x3dff42[_0x5447c1(0xc71)](_0x3dff42['TEXTURE_CUBE_MAP_POSITIVE_X']+_0x2a8be7,0x0,this[_0x5447c1(0x7b9)]()['s3tc'][_0x5bbb1f],_0x279394[_0x5447c1(0x3e9)],_0x279394[_0x5447c1(0x520)],0x0,void 0x0):_0x3dff42['texImage2D'](_0x3dff42[_0x5447c1(0x93f)]+_0x2a8be7,0x0,_0x43ef05,_0x279394['width'],_0x279394[_0x5447c1(0x520)],0x0,_0xfb6f2b,_0x45ee12,null);this[_0x5447c1(0xc0b)](this[_0x5447c1(0xd14)]['TEXTURE_CUBE_MAP'],null);}return this['_bindTextureDirectly'](this[_0x5447c1(0xd14)][_0x5447c1(0xafc)],_0x279394,!0x0),_0x422d72&&_0x87638a&&this['_gl'][_0x5447c1(0x6f6)](this[_0x5447c1(0xd14)][_0x5447c1(0xafc)]),_0x2e8fe9=this['_getSamplingParameters'](_0x4bf449,_0x87638a),(_0x3dff42[_0x5447c1(0x777)](_0x3dff42[_0x5447c1(0xafc)],_0x3dff42[_0x5447c1(0x12d)],_0x2e8fe9[_0x5447c1(0x8e1)]),_0x3dff42[_0x5447c1(0x777)](_0x3dff42[_0x5447c1(0xafc)],_0x3dff42[_0x5447c1(0x2ed)],_0x2e8fe9[_0x5447c1(0x1e1)]),_0x3dff42[_0x5447c1(0x777)](_0x3dff42['TEXTURE_CUBE_MAP'],_0x3dff42[_0x5447c1(0x514)],_0x3dff42[_0x5447c1(0x72d)]),_0x3dff42[_0x5447c1(0x777)](_0x3dff42['TEXTURE_CUBE_MAP'],_0x3dff42[_0x5447c1(0x203)],_0x3dff42[_0x5447c1(0x72d)]),this[_0x5447c1(0xc0b)](_0x3dff42[_0x5447c1(0xafc)],null),_0x279394[_0x5447c1(0xb22)]=_0x87638a,_0x279394[_0x5447c1(0x9f4)]=_0x4bf449,_0x279394[_0x5447c1(0x3f1)]=!0x0,_0x279394);},_0x96351d['B'][_0x1526ae(0x78e)][_0x1526ae(0x9bf)]=function(_0x242a0c,_0x435e91,_0x33e520,_0x672a28,_0x1be8f9,_0x23b152=null,_0x5a68c2=0x0){var _0x5f01f7=_0x1526ae;_0x242a0c['_bufferViewArray']=_0x435e91,_0x242a0c[_0x5f01f7(0xb59)]=_0x33e520,_0x242a0c[_0x5f01f7(0xb26)]=_0x672a28,_0x242a0c['invertY']=_0x1be8f9,_0x242a0c[_0x5f01f7(0x827)]=_0x23b152;const _0x41daa9=this[_0x5f01f7(0xd14)];var _0x5bad75=this[_0x5f01f7(0xced)](_0x672a28);let _0x8a04a6=this[_0x5f01f7(0x25e)](_0x33e520);var _0x52043c=this[_0x5f01f7(0xca3)](_0x672a28);let _0x5930ca=!0x1;_0x8a04a6===_0x41daa9[_0x5f01f7(0x395)]&&(_0x8a04a6=_0x41daa9[_0x5f01f7(0xa41)],_0x5930ca=!0x0),this['_bindTextureDirectly'](_0x41daa9[_0x5f01f7(0xafc)],_0x242a0c,!0x0),this[_0x5f01f7(0x671)](void 0x0===_0x1be8f9||!!_0x1be8f9),_0x242a0c['width']%0x4!=0x0&&_0x41daa9[_0x5f01f7(0xc0d)](_0x41daa9[_0x5f01f7(0x52b)],0x1);for(let _0x58c600=0x0;_0x58c600<0x6;_0x58c600++){let _0x3e53ab=_0x435e91[_0x58c600];_0x23b152?_0x41daa9[_0x5f01f7(0xc71)](_0x41daa9[_0x5f01f7(0x93f)]+_0x58c600,_0x5a68c2,this[_0x5f01f7(0x7b9)]()[_0x5f01f7(0x366)][_0x23b152],_0x242a0c['width'],_0x242a0c['height'],0x0,_0x3e53ab):(_0x5930ca&&(_0x3e53ab=_0x340175(_0x3e53ab,_0x242a0c['width'],_0x242a0c[_0x5f01f7(0x520)],_0x672a28)),_0x41daa9[_0x5f01f7(0x4ce)](_0x41daa9[_0x5f01f7(0x93f)]+_0x58c600,_0x5a68c2,_0x52043c,_0x242a0c['width'],_0x242a0c[_0x5f01f7(0x520)],0x0,_0x8a04a6,_0x5bad75,_0x3e53ab));}(!this[_0x5f01f7(0x939)]||_0x18358b['w1'][_0x5f01f7(0x2d2)](_0x242a0c[_0x5f01f7(0x3e9)])&&_0x18358b['w1'][_0x5f01f7(0x2d2)](_0x242a0c[_0x5f01f7(0x520)]))&&_0x242a0c[_0x5f01f7(0xb22)]&&0x0===_0x5a68c2&&this[_0x5f01f7(0xd14)][_0x5f01f7(0x6f6)](this[_0x5f01f7(0xd14)]['TEXTURE_CUBE_MAP']),this[_0x5f01f7(0xc0b)](this[_0x5f01f7(0xd14)]['TEXTURE_CUBE_MAP'],null),_0x242a0c[_0x5f01f7(0x3f1)]=!0x0;},_0x96351d['B'][_0x1526ae(0x78e)]['createRawCubeTextureFromUrl']=function(_0x5f3931,_0x411f4e,_0x137835,_0x12628c,_0x4cb2fe,_0x4fa630,_0x63cac4,_0x114632,_0x2845dc=null,_0x2bd057=null,_0x52a71b=_0x23b74d['g'][_0x1526ae(0x206)],_0x4c3059=!0x1){var _0x3320b3=_0x1526ae;const _0x50fdd3=this[_0x3320b3(0xd14)],_0x151448=this[_0x3320b3(0xb27)](null,_0x137835,_0x12628c,_0x4cb2fe,!_0x4fa630,_0x4c3059,_0x52a71b,null),_0x4685cb=(null!=_0x411f4e&&_0x411f4e[_0x3320b3(0xa2a)](_0x151448),_0x151448[_0x3320b3(0x9fa)]=_0x5f3931,_0x151448[_0x3320b3(0x3f1)]=!0x1,this['_internalTexturesCache'][_0x3320b3(0x725)](_0x151448),_0x18fc47=>{var _0x50c7ff=_0x3320b3,_0x2b161e=_0x151448[_0x50c7ff(0x3e9)],_0x18fc47=_0x63cac4(_0x18fc47);if(_0x18fc47){if(_0x114632){var _0x1450ba=this[_0x50c7ff(0xced)](_0x4cb2fe);let _0x22eb32=this[_0x50c7ff(0x25e)](_0x12628c);var _0x406b07=this['_getRGBABufferInternalSizedFormat'](_0x4cb2fe);let _0x551de9=!0x1;_0x22eb32===_0x50fdd3[_0x50c7ff(0x395)]&&(_0x22eb32=_0x50fdd3['RGBA'],_0x551de9=!0x0),this['_bindTextureDirectly'](_0x50fdd3[_0x50c7ff(0xafc)],_0x151448,!0x0),this[_0x50c7ff(0x671)](!0x1);var _0x38b30a=_0x114632(_0x18fc47);for(let _0x2582d3=0x0;_0x2582d3<_0x38b30a[_0x50c7ff(0x86f)];_0x2582d3++){var _0x528b52=_0x2b161e>>_0x2582d3;for(let _0x484094=0x0;_0x484094<0x6;_0x484094++){let _0x2176b1=_0x38b30a[_0x2582d3][_0x484094];_0x551de9&&(_0x2176b1=_0x340175(_0x2176b1,_0x528b52,_0x528b52,_0x4cb2fe)),_0x50fdd3[_0x50c7ff(0x4ce)](_0x484094,_0x2582d3,_0x406b07,_0x528b52,_0x528b52,0x0,_0x22eb32,_0x1450ba,_0x2176b1);}}this[_0x50c7ff(0xc0b)](_0x50fdd3[_0x50c7ff(0xafc)],null);}else this[_0x50c7ff(0x9bf)](_0x151448,_0x18fc47,_0x12628c,_0x4cb2fe,_0x4c3059);_0x151448[_0x50c7ff(0x3f1)]=!0x0,null!=_0x411f4e&&_0x411f4e[_0x50c7ff(0x456)](_0x151448),_0x151448[_0x50c7ff(0x370)]['notifyObservers'](_0x151448),_0x151448[_0x50c7ff(0x370)][_0x50c7ff(0xa3e)](),_0x2845dc&&_0x2845dc();}});return this['_loadFile'](_0x5f3931,_0x4d64c0=>{_0x4685cb(_0x4d64c0);},void 0x0,null==_0x411f4e?void 0x0:_0x411f4e[_0x3320b3(0x237)],!0x0,(_0x3ac60f,_0x54a1ca)=>{var _0xb7c7da=_0x3320b3;null!=_0x411f4e&&_0x411f4e[_0xb7c7da(0x456)](_0x151448),_0x2bd057&&_0x3ac60f&&_0x2bd057(_0x3ac60f['status']+'\x20'+_0x3ac60f[_0xb7c7da(0xb99)],_0x54a1ca);}),_0x151448;},_0x96351d['B'][_0x1526ae(0x78e)][_0x1526ae(0xa32)]=_0x41e695(!0x1),_0x96351d['B'][_0x1526ae(0x78e)][_0x1526ae(0x556)]=_0x41e695(!0x0),_0x96351d['B'][_0x1526ae(0x78e)][_0x1526ae(0x565)]=_0x522abd(!0x1),_0x96351d['B'][_0x1526ae(0x78e)][_0x1526ae(0x851)]=_0x522abd(!0x0);},0x6068:(_0x468067,_0x309e85,_0x1f9b55)=>{var _0x4031f4=a7_0x3304fb;_0x1f9b55['d'](_0x309e85,{'A':()=>_0x28ef96});var _0x309e85=_0x1f9b55(0xcf06),_0x54e6e6=_0x1f9b55(0x1610);function _0x28ef96(_0x9af211,_0xd8a1,_0x3d88d7=!0x1,_0x3dd381){var _0x1502cd=a7_0x4135;switch(_0x9af211){case _0x54e6e6['g']['TEXTURETYPE_BYTE']:{ArrayBuffer;const _0x113605=new Int8Array(_0xd8a1);return _0x3dd381&&_0x113605[_0x1502cd(0x6c1)](new Int8Array(_0x3dd381)),_0x113605;}case _0x54e6e6['g'][_0x1502cd(0x342)]:{ArrayBuffer;const _0x375822=new Uint8Array(_0xd8a1);return _0x3dd381&&_0x375822[_0x1502cd(0x6c1)](new Uint8Array(_0x3dd381)),_0x375822;}case _0x54e6e6['g'][_0x1502cd(0x6e0)]:{const _0x4481a5=_0xd8a1 instanceof ArrayBuffer?new Int16Array(_0xd8a1):new Int16Array(_0x3d88d7?_0xd8a1/0x2:_0xd8a1);return _0x3dd381&&_0x4481a5[_0x1502cd(0x6c1)](new Int16Array(_0x3dd381)),_0x4481a5;}case _0x54e6e6['g'][_0x1502cd(0x8ae)]:case _0x54e6e6['g']['TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4']:case _0x54e6e6['g'][_0x1502cd(0x56b)]:case _0x54e6e6['g'][_0x1502cd(0xc4a)]:case _0x54e6e6['g'][_0x1502cd(0x208)]:{const _0x2dd56e=_0xd8a1 instanceof ArrayBuffer?new Uint16Array(_0xd8a1):new Uint16Array(_0x3d88d7?_0xd8a1/0x2:_0xd8a1);return _0x3dd381&&_0x2dd56e[_0x1502cd(0x6c1)](new Uint16Array(_0x3dd381)),_0x2dd56e;}case _0x54e6e6['g'][_0x1502cd(0x83d)]:{const _0x769b2c=_0xd8a1 instanceof ArrayBuffer?new Int32Array(_0xd8a1):new Int32Array(_0x3d88d7?_0xd8a1/0x4:_0xd8a1);return _0x3dd381&&_0x769b2c[_0x1502cd(0x6c1)](new Int32Array(_0x3dd381)),_0x769b2c;}case _0x54e6e6['g'][_0x1502cd(0x443)]:case _0x54e6e6['g']['TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV']:case _0x54e6e6['g'][_0x1502cd(0x78f)]:case _0x54e6e6['g'][_0x1502cd(0x1fc)]:case _0x54e6e6['g']['TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV']:case _0x54e6e6['g'][_0x1502cd(0x428)]:{const _0x1e244a=_0xd8a1 instanceof ArrayBuffer?new Uint32Array(_0xd8a1):new Uint32Array(_0x3d88d7?_0xd8a1/0x4:_0xd8a1);return _0x3dd381&&_0x1e244a[_0x1502cd(0x6c1)](new Uint32Array(_0x3dd381)),_0x1e244a;}case _0x54e6e6['g'][_0x1502cd(0x403)]:{const _0x345c46=_0xd8a1 instanceof ArrayBuffer?new Float32Array(_0xd8a1):new Float32Array(_0x3d88d7?_0xd8a1/0x4:_0xd8a1);return _0x3dd381&&_0x345c46[_0x1502cd(0x6c1)](new Float32Array(_0x3dd381)),_0x345c46;}}ArrayBuffer;const _0x14d827=new Uint8Array(_0xd8a1);return _0x3dd381&&_0x14d827[_0x1502cd(0x6c1)](new Uint8Array(_0x3dd381)),_0x14d827;}_0x309e85['B'][_0x4031f4(0x78e)][_0x4031f4(0x622)]=function(_0x141ba5,_0x49f998,_0x498fce,_0x5aa29a=-0x1,_0x313e5d=0x0,_0x31166c=null,_0x351a38=!0x0,_0x2ef21f=!0x1,_0x1bd0b7=0x0,_0x3d8c27=0x0){var _0x15b20c=_0x4031f4;const _0x3dbe64=this[_0x15b20c(0xd14)];if(!_0x3dbe64)throw new Error('Engine\x20does\x20not\x20have\x20gl\x20rendering\x20context.');if(!this[_0x15b20c(0x6b8)]){var _0x2f2d5d=_0x3dbe64[_0x15b20c(0x5fb)]();if(!_0x2f2d5d)throw new Error(_0x15b20c(0x5d4));this[_0x15b20c(0x6b8)]=_0x2f2d5d;}_0x3dbe64['bindFramebuffer'](_0x3dbe64[_0x15b20c(0xa97)],this['_dummyFramebuffer']),-0x1<_0x5aa29a?_0x3dbe64[_0x15b20c(0x2fa)](_0x3dbe64[_0x15b20c(0xa97)],_0x3dbe64[_0x15b20c(0xb6b)],_0x3dbe64[_0x15b20c(0x93f)]+_0x5aa29a,null==(_0x2f2d5d=_0x141ba5[_0x15b20c(0x49d)])?void 0x0:_0x2f2d5d[_0x15b20c(0x913)],_0x313e5d):_0x3dbe64[_0x15b20c(0x2fa)](_0x3dbe64[_0x15b20c(0xa97)],_0x3dbe64[_0x15b20c(0xb6b)],_0x3dbe64[_0x15b20c(0x4b0)],null==(_0x5aa29a=_0x141ba5[_0x15b20c(0x49d)])?void 0x0:_0x5aa29a[_0x15b20c(0x913)],_0x313e5d);let _0x790f9c=void 0x0!==_0x141ba5['type']?this[_0x15b20c(0xced)](_0x141ba5[_0x15b20c(0xb26)]):_0x3dbe64[_0x15b20c(0xb8b)];return _0x2ef21f?_0x31166c=_0x31166c||_0x28ef96(_0x141ba5[_0x15b20c(0xb26)],0x4*_0x49f998*_0x498fce):_0x790f9c=_0x790f9c===_0x3dbe64[_0x15b20c(0xb8b)]?(_0x31166c=_0x31166c||new Uint8Array(0x4*_0x49f998*_0x498fce),_0x3dbe64['UNSIGNED_BYTE']):(_0x31166c=_0x31166c||new Float32Array(0x4*_0x49f998*_0x498fce),_0x3dbe64[_0x15b20c(0x355)]),_0x351a38&&this[_0x15b20c(0xadf)](),_0x3dbe64[_0x15b20c(0x22b)](_0x1bd0b7,_0x3d8c27,_0x49f998,_0x498fce,_0x3dbe64[_0x15b20c(0xa41)],_0x790f9c,_0x31166c),_0x3dbe64[_0x15b20c(0x6b6)](_0x3dbe64[_0x15b20c(0xa97)],this['_currentFramebuffer']),_0x31166c;},_0x309e85['B'][_0x4031f4(0x78e)]['_readTexturePixels']=function(_0x4ad108,_0x142267,_0x2f93de,_0x44feeb=-0x1,_0x3c38ff=0x0,_0x28cccb=null,_0x1d49bf=!0x0,_0x589325=!0x1,_0xe26d07=0x0,_0x1555c7=0x0){var _0xec9719=_0x4031f4;return Promise[_0xec9719(0x988)](this[_0xec9719(0x622)](_0x4ad108,_0x142267,_0x2f93de,_0x44feeb,_0x3c38ff,_0x28cccb,_0x1d49bf,_0x589325,_0xe26d07,_0x1555c7));};},0x160b0:(_0x1ed087,_0x57ded7,_0x42b6ed)=>{var _0x4b8fdc=a7_0x3304fb,_0x1af657=_0x42b6ed(0x138df),_0x1ef9f2=_0x42b6ed(0x9a70),_0x324f30=_0x42b6ed(0xcf06);class _0x3af4c9 extends _0x42b6ed(0x157cc)['r']{constructor(_0x3d4972,_0x3989c8,_0x1f105b,_0x1b16d1,_0xf20d69){var _0x47c044=a7_0x4135;super(_0x3d4972,_0x3989c8,_0x1f105b,_0x1b16d1),this[_0x47c044(0x86c)]=null,this[_0x47c044(0x7dd)]=null,this[_0x47c044(0xc20)]=null,this['_colorTextureArray']=null,this['_depthStencilTextureArray']=null,this[_0x47c044(0x6bd)]=_0xf20d69;}[_0x4b8fdc(0x69d)](){var _0x39c666=_0x4b8fdc;let _0x4f9a8f=null;return this[_0x39c666(0x3d3)]&&this[_0x39c666(0x4d5)]?(_0x4f9a8f=this[_0x39c666(0x489)][_0x39c666(0x55d)](this[_0x39c666(0x3e9)],this[_0x39c666(0x520)]))[_0x39c666(0x800)][_0x39c666(0x3f1)]=!0x0:_0x4f9a8f=super['_cloneRenderTargetWrapper'](),_0x4f9a8f;}[_0x4b8fdc(0x426)](_0x29647c){var _0x5de631=_0x4b8fdc;super[_0x5de631(0x426)](_0x29647c),_0x29647c[_0x5de631(0x86c)]=this[_0x5de631(0x86c)],_0x29647c[_0x5de631(0x7dd)]=this[_0x5de631(0x7dd)],_0x29647c['_MSAAFramebuffer']=this['_MSAAFramebuffer'],_0x29647c['_colorTextureArray']=this[_0x5de631(0x3d3)],_0x29647c[_0x5de631(0x4d5)]=this[_0x5de631(0x4d5)],this[_0x5de631(0x86c)]=this[_0x5de631(0x7dd)]=this[_0x5de631(0xc20)]=this[_0x5de631(0x3d3)]=this[_0x5de631(0x4d5)]=null;}[_0x4b8fdc(0x621)](_0x160fd8){var _0x45155e=_0x4b8fdc;super[_0x45155e(0x621)](_0x160fd8);const _0x3d9cfd=this['_context'];var _0x43cd53=this[_0x45155e(0x7dd)],_0x55824e=_0x160fd8[_0x45155e(0xc20)]||_0x160fd8['_framebuffer'];_0x160fd8['_depthStencilBuffer']&&_0x3d9cfd['deleteRenderbuffer'](_0x160fd8[_0x45155e(0x7dd)]),_0x160fd8[_0x45155e(0x7dd)]=this['_depthStencilBuffer'],this[_0x45155e(0x489)][_0x45155e(0x39d)](_0x55824e),_0x3d9cfd[_0x45155e(0x16b)](_0x3d9cfd[_0x45155e(0xa97)],_0x3d9cfd[_0x45155e(0xbba)],_0x3d9cfd['RENDERBUFFER'],_0x43cd53),this['_engine']['_bindUnboundFramebuffer'](null);}['_bindTextureRenderTarget'](_0xa3223d,_0x5df0fc=0x0,_0x2b7b04,_0x36b3ff=0x0){var _0xbce014=_0x4b8fdc;if(_0xa3223d[_0xbce014(0x49d)]){var _0x5e95f6=this[_0xbce014(0x86c)],_0x110c2d=this['_engine'][_0xbce014(0x701)];if(this['_engine']['_bindUnboundFramebuffer'](_0x5e95f6),0x1<this[_0xbce014(0x489)][_0xbce014(0xa9b)]){const _0x7bedfd=this['_context'];_0x5e95f6=_0x7bedfd['COLOR_ATTACHMENT'+_0x5df0fc],_0xa3223d['is2DArray']||_0xa3223d[_0xbce014(0x718)]?(_0x2b7b04=null!=(_0x40d0ee=null!=_0x2b7b04?_0x2b7b04:null==(_0x40d0ee=this[_0xbce014(0x6e1)])?void 0x0:_0x40d0ee[_0x5df0fc])?_0x40d0ee:0x0,_0x7bedfd[_0xbce014(0x9e8)](_0x7bedfd[_0xbce014(0xa97)],_0x5e95f6,_0xa3223d[_0xbce014(0x49d)][_0xbce014(0x913)],_0x36b3ff,_0x2b7b04)):_0xa3223d['isCube']?(_0x2b7b04=null!=(_0x40d0ee=null!=_0x2b7b04?_0x2b7b04:null==(_0x40d0ee=this[_0xbce014(0xaf3)])?void 0x0:_0x40d0ee[_0x5df0fc])?_0x40d0ee:0x0,_0x7bedfd[_0xbce014(0x2fa)](_0x7bedfd[_0xbce014(0xa97)],_0x5e95f6,_0x7bedfd[_0xbce014(0x93f)]+_0x2b7b04,_0xa3223d[_0xbce014(0x49d)][_0xbce014(0x913)],_0x36b3ff)):_0x7bedfd[_0xbce014(0x2fa)](_0x7bedfd['FRAMEBUFFER'],_0x5e95f6,_0x7bedfd['TEXTURE_2D'],_0xa3223d['_hardwareTexture'][_0xbce014(0x913)],_0x36b3ff);}else{const _0x4e1138=this[_0xbce014(0x6bd)];var _0x40d0ee=_0x4e1138[_0xbce014(0xc4e)+_0x5df0fc+_0xbce014(0xb5e)],_0x5e95f6=void 0x0!==_0x2b7b04?_0x4e1138[_0xbce014(0x93f)]+_0x2b7b04:_0x4e1138[_0xbce014(0x4b0)];_0x4e1138['framebufferTexture2D'](_0x4e1138[_0xbce014(0xa97)],_0x40d0ee,_0x5e95f6,_0xa3223d['_hardwareTexture']['underlyingResource'],_0x36b3ff);}this['_engine'][_0xbce014(0x39d)](_0x110c2d);}}[_0x4b8fdc(0xbbc)](_0x1f0b4e,_0x4bd59d=0x0,_0x41a313=!0x0){var _0x2f4d24=_0x4b8fdc;super[_0x2f4d24(0xbbc)](_0x1f0b4e,_0x4bd59d,_0x41a313),this[_0x2f4d24(0x5aa)](_0x1f0b4e,_0x4bd59d);}[_0x4b8fdc(0x15f)](_0x400c75,_0x36fdb5){var _0x4bc565=_0x4b8fdc;if(super['setLayerAndFaceIndices'](_0x400c75,_0x36fdb5),this['textures']&&this[_0x4bc565(0x6e1)]&&this[_0x4bc565(0xaf3)]){var _0x79d6ea=null!=(_0x36fdb5=null==(_0x400c75=this[_0x4bc565(0x18c)])?void 0x0:_0x400c75[_0x4bc565(0x86f)])?_0x36fdb5:this[_0x4bc565(0xa52)][_0x4bc565(0x86f)];for(let _0x1710cd=0x0;_0x1710cd<_0x79d6ea;_0x1710cd++){var _0x2922d8=this[_0x4bc565(0xa52)][_0x1710cd];_0x2922d8&&(_0x2922d8[_0x4bc565(0x7f4)]||_0x2922d8['is3D']?this[_0x4bc565(0x5aa)](_0x2922d8,_0x1710cd,this[_0x4bc565(0x6e1)][_0x1710cd]):_0x2922d8['isCube']?this['_bindTextureRenderTarget'](_0x2922d8,_0x1710cd,this[_0x4bc565(0xaf3)][_0x1710cd]):this[_0x4bc565(0x5aa)](_0x2922d8,_0x1710cd));}}}[_0x4b8fdc(0x82a)](_0xc10af=0x0,_0x53b037,_0x22be61){var _0x51e5a5=_0x4b8fdc;super[_0x51e5a5(0x82a)](_0xc10af,_0x53b037,_0x22be61),this[_0x51e5a5(0xa52)]&&this[_0x51e5a5(0x6e1)]&&this[_0x51e5a5(0xaf3)]&&((_0x53b037=this[_0x51e5a5(0xa52)][_0xc10af])[_0x51e5a5(0x7f4)]||_0x53b037[_0x51e5a5(0x718)]?this[_0x51e5a5(0x5aa)](this[_0x51e5a5(0xa52)][_0xc10af],_0xc10af,this[_0x51e5a5(0x6e1)][_0xc10af]):_0x53b037[_0x51e5a5(0xac3)]&&this[_0x51e5a5(0x5aa)](this[_0x51e5a5(0xa52)][_0xc10af],_0xc10af,this[_0x51e5a5(0xaf3)][_0xc10af]));}[_0x4b8fdc(0xb4b)](_0x149261=!0x1){var _0x4dce67=_0x4b8fdc;const _0x4b574c=this['_context'];_0x149261||(this[_0x4dce67(0x3d3)]&&(this['_context'][_0x4dce67(0x182)](this[_0x4dce67(0x3d3)]),this[_0x4dce67(0x3d3)]=null),this[_0x4dce67(0x4d5)]&&(this[_0x4dce67(0x6bd)][_0x4dce67(0x182)](this[_0x4dce67(0x4d5)]),this[_0x4dce67(0x4d5)]=null)),this[_0x4dce67(0x86c)]&&(_0x4b574c[_0x4dce67(0x5d6)](this[_0x4dce67(0x86c)]),this[_0x4dce67(0x86c)]=null),this[_0x4dce67(0x7dd)]&&(_0x4b574c[_0x4dce67(0xc33)](this[_0x4dce67(0x7dd)]),this[_0x4dce67(0x7dd)]=null),this['_MSAAFramebuffer']&&(_0x4b574c[_0x4dce67(0x5d6)](this[_0x4dce67(0xc20)]),this[_0x4dce67(0xc20)]=null),super[_0x4dce67(0xb4b)](_0x149261);}}var _0x4b827d=_0x42b6ed(0x1610);_0x324f30['B']['prototype'][_0x4b8fdc(0xa23)]=function(_0x135b8e,_0x283ecf,_0x23081d){var _0x1fd9f0=_0x4b8fdc;return _0x135b8e=new _0x3af4c9(_0x135b8e,_0x283ecf,_0x23081d,this,this[_0x1fd9f0(0xd14)]),(this[_0x1fd9f0(0x7f1)][_0x1fd9f0(0x725)](_0x135b8e),_0x135b8e);},_0x324f30['B']['prototype'][_0x4b8fdc(0x3d9)]=function(_0x215ab8,_0x3b1fd0){var _0x185599=_0x4b8fdc;const _0x331b23=this[_0x185599(0xa23)](!0x1,!0x1,_0x215ab8);let _0x4e8519=!0x0,_0x2c9904=!0x1,_0x1a8638=!0x1,_0x253eb8=void 0x0,_0x5c29de=0x1;void 0x0!==_0x3b1fd0&&_0x185599(0x18a)==typeof _0x3b1fd0&&(_0x4e8519=null==(_0x2fb855=_0x3b1fd0[_0x185599(0x607)])||_0x2fb855,_0x2c9904=!!_0x3b1fd0['generateStencilBuffer'],_0x1a8638=!!_0x3b1fd0[_0x185599(0xa96)],_0x253eb8=_0x3b1fd0[_0x185599(0x767)],_0x5c29de=null!=(_0x2fb855=_0x3b1fd0[_0x185599(0x92d)])?_0x2fb855:0x1);var _0x2fb855=_0x253eb8||(_0x1a8638?null:this[_0x185599(0xabb)](_0x215ab8,_0x3b1fd0,!0x0,_0x1af657['S'][_0x185599(0xae0)])),_0x3b1fd0=_0x215ab8[_0x185599(0x3e9)]||_0x215ab8,_0x215ab8=_0x215ab8['height']||_0x215ab8,_0x58a306=this[_0x185599(0x701)];const _0x489265=this[_0x185599(0xd14)];var _0x57de75=_0x489265['createFramebuffer']();return this['_bindUnboundFramebuffer'](_0x57de75),_0x331b23[_0x185599(0x7dd)]=this[_0x185599(0x861)](_0x2c9904,_0x4e8519,_0x3b1fd0,_0x215ab8),_0x2fb855&&!_0x2fb855['is2DArray']&&_0x489265[_0x185599(0x2fa)](_0x489265['FRAMEBUFFER'],_0x489265[_0x185599(0xb6b)],_0x489265[_0x185599(0x4b0)],_0x2fb855[_0x185599(0x49d)][_0x185599(0x913)],0x0),this[_0x185599(0x39d)](_0x58a306),_0x331b23[_0x185599(0x86c)]=_0x57de75,_0x331b23[_0x185599(0x328)]=_0x4e8519,_0x331b23[_0x185599(0x436)]=_0x2c9904,_0x331b23[_0x185599(0xac0)](_0x2fb855),this[_0x185599(0x7fc)](_0x331b23,_0x5c29de),_0x331b23;},_0x324f30['B']['prototype'][_0x4b8fdc(0x588)]=function(_0x4176ed,_0x5075e1,_0x649836){var _0x6057e7=_0x4b8fdc,_0x1679bc;return _0x5075e1[_0x6057e7(0xac3)]?(_0x1679bc=_0x4176ed[_0x6057e7(0x3e9)]||_0x4176ed,this['_createDepthStencilCubeTexture'](_0x1679bc,_0x5075e1,_0x649836)):this[_0x6057e7(0xbcb)](_0x4176ed,_0x5075e1,_0x649836);},_0x324f30['B'][_0x4b8fdc(0x78e)][_0x4b8fdc(0xbcb)]=function(_0x138cb7,_0x168351,_0x34a031){var _0x3fb418=_0x4b8fdc;const _0x20a8f2=this[_0x3fb418(0xd14)];var _0x229230=_0x138cb7[_0x3fb418(0x6d2)]||0x0,_0x51e56e=0x0!==_0x229230?_0x20a8f2[_0x3fb418(0x7c8)]:_0x20a8f2['TEXTURE_2D'];const _0x4f47ab=new _0x1af657['l'](this,_0x1af657['S'][_0x3fb418(0x405)]);if(!this[_0x3fb418(0x210)]['depthTextureExtension'])return _0x1ef9f2['Y']['Error'](_0x3fb418(0x494)),_0x4f47ab;_0x168351=Object[_0x3fb418(0x70a)]({'bilinearFiltering':!0x1,'comparisonFunction':0x0,'generateStencil':!0x1},_0x168351);if(this[_0x3fb418(0xc0b)](_0x51e56e,_0x4f47ab,!0x0),this[_0x3fb418(0x276)](_0x4f47ab,_0x138cb7,_0x168351['generateStencil'],0x0!==_0x168351[_0x3fb418(0xcf7)]&&_0x168351['bilinearFiltering'],_0x168351[_0x3fb418(0xcf7)],_0x168351[_0x3fb418(0x92d)]),void 0x0!==_0x168351[_0x3fb418(0x966)]){if(_0x168351[_0x3fb418(0x966)]!==_0x4b827d['g'][_0x3fb418(0x260)]&&_0x168351[_0x3fb418(0x966)]!==_0x4b827d['g'][_0x3fb418(0xad3)]&&_0x168351[_0x3fb418(0x966)]!==_0x4b827d['g'][_0x3fb418(0x7bb)]&&_0x168351['depthTextureFormat']!==_0x4b827d['g'][_0x3fb418(0x5ec)]&&_0x168351[_0x3fb418(0x966)]!==_0x4b827d['g'][_0x3fb418(0x596)]&&_0x168351[_0x3fb418(0x966)]!==_0x4b827d['g'][_0x3fb418(0x4ee)])return _0x1ef9f2['Y'][_0x3fb418(0x803)](_0x3fb418(0x66a)),_0x4f47ab;_0x4f47ab[_0x3fb418(0xb59)]=_0x168351[_0x3fb418(0x966)];}else _0x4f47ab[_0x3fb418(0xb59)]=_0x168351[_0x3fb418(0x478)]?_0x4b827d['g'][_0x3fb418(0x5ec)]:_0x4b827d['g']['TEXTUREFORMAT_DEPTH24'];_0x138cb7=_0x4f47ab[_0x3fb418(0xb59)]===_0x4b827d['g'][_0x3fb418(0x7bb)]||_0x4f47ab[_0x3fb418(0xb59)]===_0x4b827d['g']['TEXTUREFORMAT_DEPTH24_STENCIL8']||_0x4f47ab[_0x3fb418(0xb59)]===_0x4b827d['g'][_0x3fb418(0x4ee)],(_0x34a031[_0x3fb418(0x219)]=_0x4f47ab,_0x34a031[_0x3fb418(0xadb)]=_0x138cb7);let _0x5725c2=_0x20a8f2[_0x3fb418(0x504)];_0x4f47ab['format']===_0x4b827d['g'][_0x3fb418(0x260)]?_0x5725c2=_0x20a8f2[_0x3fb418(0x71b)]:_0x4f47ab[_0x3fb418(0xb59)]===_0x4b827d['g'][_0x3fb418(0x7bb)]||_0x4f47ab[_0x3fb418(0xb59)]===_0x4b827d['g'][_0x3fb418(0x5ec)]?_0x5725c2=_0x20a8f2['UNSIGNED_INT_24_8']:_0x4f47ab['format']===_0x4b827d['g']['TEXTUREFORMAT_DEPTH32_FLOAT']?_0x5725c2=_0x20a8f2[_0x3fb418(0x355)]:_0x4f47ab['format']===_0x4b827d['g'][_0x3fb418(0x4ee)]&&(_0x5725c2=_0x20a8f2[_0x3fb418(0x14e)]),_0x168351=_0x138cb7?_0x20a8f2['DEPTH_STENCIL']:_0x20a8f2[_0x3fb418(0xc06)];let _0x5b7ad5=_0x168351;0x1<this[_0x3fb418(0xa9b)]&&(_0x4f47ab[_0x3fb418(0xb59)]===_0x4b827d['g'][_0x3fb418(0x260)]?_0x5b7ad5=_0x20a8f2[_0x3fb418(0x728)]:_0x4f47ab[_0x3fb418(0xb59)]===_0x4b827d['g'][_0x3fb418(0xad3)]?_0x5b7ad5=_0x20a8f2[_0x3fb418(0x247)]:_0x4f47ab['format']===_0x4b827d['g'][_0x3fb418(0x7bb)]||_0x4f47ab[_0x3fb418(0xb59)]===_0x4b827d['g']['TEXTUREFORMAT_DEPTH24_STENCIL8']?_0x5b7ad5=_0x20a8f2[_0x3fb418(0x99d)]:_0x4f47ab['format']===_0x4b827d['g'][_0x3fb418(0x596)]?_0x5b7ad5=_0x20a8f2[_0x3fb418(0x4ae)]:_0x4f47ab[_0x3fb418(0xb59)]===_0x4b827d['g'][_0x3fb418(0x4ee)]&&(_0x5b7ad5=_0x20a8f2[_0x3fb418(0x400)])),_0x4f47ab[_0x3fb418(0x7f4)]?_0x20a8f2['texImage3D'](_0x51e56e,0x0,_0x5b7ad5,_0x4f47ab['width'],_0x4f47ab['height'],_0x229230,0x0,_0x168351,_0x5725c2,null):_0x20a8f2[_0x3fb418(0x4ce)](_0x51e56e,0x0,_0x5b7ad5,_0x4f47ab[_0x3fb418(0x3e9)],_0x4f47ab[_0x3fb418(0x520)],0x0,_0x168351,_0x5725c2,null),this['_bindTextureDirectly'](_0x51e56e,null),this['_internalTexturesCache'][_0x3fb418(0x725)](_0x4f47ab);const _0x472a7a=_0x34a031;return _0x472a7a[_0x3fb418(0x7dd)]&&(_0x138cb7=this['_currentFramebuffer'],this[_0x3fb418(0x39d)](_0x472a7a['_framebuffer']),_0x20a8f2['framebufferRenderbuffer'](_0x20a8f2[_0x3fb418(0xa97)],_0x20a8f2['DEPTH_STENCIL_ATTACHMENT'],_0x20a8f2[_0x3fb418(0x269)],null),_0x20a8f2['framebufferRenderbuffer'](_0x20a8f2['FRAMEBUFFER'],_0x20a8f2['DEPTH_ATTACHMENT'],_0x20a8f2[_0x3fb418(0x269)],null),_0x20a8f2[_0x3fb418(0x16b)](_0x20a8f2[_0x3fb418(0xa97)],_0x20a8f2[_0x3fb418(0xb09)],_0x20a8f2[_0x3fb418(0x269)],null),this['_bindUnboundFramebuffer'](_0x138cb7),_0x20a8f2[_0x3fb418(0xc33)](_0x472a7a['_depthStencilBuffer']),_0x472a7a[_0x3fb418(0x7dd)]=null),_0x4f47ab;},_0x324f30['B'][_0x4b8fdc(0x78e)][_0x4b8fdc(0x7fc)]=function(_0x53b068,_0xff4036){var _0x1150d3=_0x4b8fdc;if(this[_0x1150d3(0xa9b)]<0x2||!_0x53b068||!_0x53b068[_0x1150d3(0x800)])return 0x1;if(_0x53b068[_0x1150d3(0x92d)]===_0xff4036)return _0xff4036;const _0x575d6c=this[_0x1150d3(0xd14)],_0x585e58=(_0xff4036=Math[_0x1150d3(0x1e1)](_0xff4036,this[_0x1150d3(0x7b9)]()['maxMSAASamples']),_0x53b068['_depthStencilBuffer']&&(_0x575d6c['deleteRenderbuffer'](_0x53b068[_0x1150d3(0x7dd)]),_0x53b068[_0x1150d3(0x7dd)]=null),_0x53b068[_0x1150d3(0xc20)]&&(_0x575d6c[_0x1150d3(0x5d6)](_0x53b068['_MSAAFramebuffer']),_0x53b068[_0x1150d3(0xc20)]=null),_0x53b068[_0x1150d3(0x800)][_0x1150d3(0x49d)]);if(_0x585e58[_0x1150d3(0xc9d)](),0x1<_0xff4036&&'function'==typeof _0x575d6c[_0x1150d3(0x6ea)]){var _0x115caa=_0x575d6c[_0x1150d3(0x5fb)]();if(!_0x115caa)throw new Error('Unable\x20to\x20create\x20multi\x20sampled\x20framebuffer');_0x53b068[_0x1150d3(0xc20)]=_0x115caa,this[_0x1150d3(0x39d)](_0x53b068[_0x1150d3(0xc20)]),_0x115caa=this[_0x1150d3(0x4bf)](_0x53b068[_0x1150d3(0x800)]['width'],_0x53b068[_0x1150d3(0x800)][_0x1150d3(0x520)],_0xff4036,-0x1,this[_0x1150d3(0xb78)](_0x53b068[_0x1150d3(0x800)]['type']),_0x575d6c[_0x1150d3(0xb6b)],!0x1);if(!_0x115caa)throw new Error(_0x1150d3(0xbd2));_0x585e58[_0x1150d3(0xb65)](_0x115caa);}else this[_0x1150d3(0x39d)](_0x53b068[_0x1150d3(0x86c)]);return _0x53b068[_0x1150d3(0x800)][_0x1150d3(0x92d)]=_0xff4036,_0x53b068[_0x1150d3(0x714)]=_0xff4036,_0x53b068['_depthStencilBuffer']=this['_setupFramebufferDepthAttachments'](_0x53b068['_generateStencilBuffer'],_0x53b068[_0x1150d3(0x328)],_0x53b068[_0x1150d3(0x800)][_0x1150d3(0x3e9)],_0x53b068['texture'][_0x1150d3(0x520)],_0xff4036),this[_0x1150d3(0x39d)](null),_0xff4036;};},0x51a9:(_0x1ea8e1,_0xa43944,_0x5d7b2e)=>{var _0x533c9d=a7_0x3304fb,_0x446d52=_0x5d7b2e(0x138df),_0x31b244=_0x5d7b2e(0x9a70),_0x350b1c=_0x5d7b2e(0x1610);_0x5d7b2e(0xcf06)['B'][_0x533c9d(0x78e)][_0x533c9d(0x63c)]=function(_0x4238c7,_0x5e0a46){var _0x3f40ae=_0x533c9d;const _0x5e9d5b=this[_0x3f40ae(0xa23)](!0x1,!0x0,_0x4238c7),_0x3d6291=Object['assign']({'generateMipMaps':!0x0,'generateDepthBuffer':!0x0,'generateStencilBuffer':!0x1,'type':_0x350b1c['g']['TEXTURETYPE_UNSIGNED_INT'],'samplingMode':_0x350b1c['g'][_0x3f40ae(0x206)],'format':_0x350b1c['g'][_0x3f40ae(0xc7c)]},_0x5e0a46),_0x4f16a7=(_0x3d6291[_0x3f40ae(0x479)]=_0x3d6291[_0x3f40ae(0x607)]&&_0x3d6291['generateStencilBuffer'],(_0x3d6291[_0x3f40ae(0xb26)]===_0x350b1c['g']['TEXTURETYPE_FLOAT']&&!this['_caps'][_0x3f40ae(0x46d)]||_0x3d6291[_0x3f40ae(0xb26)]===_0x350b1c['g']['TEXTURETYPE_HALF_FLOAT']&&!this['_caps'][_0x3f40ae(0x2e8)])&&(_0x3d6291[_0x3f40ae(0x9f4)]=_0x350b1c['g']['TEXTURE_NEAREST_SAMPLINGMODE']),this[_0x3f40ae(0xd14)]),_0x564d52=new _0x446d52['l'](this,_0x446d52['S'][_0x3f40ae(0xae0)]);this[_0x3f40ae(0xc0b)](_0x4f16a7[_0x3f40ae(0xafc)],_0x564d52,!0x0),_0x5e0a46=this[_0x3f40ae(0x5ee)](_0x3d6291['samplingMode'],_0x3d6291[_0x3f40ae(0xb22)]),(_0x3d6291['type']!==_0x350b1c['g'][_0x3f40ae(0x403)]||this[_0x3f40ae(0x210)][_0x3f40ae(0x973)]||(_0x3d6291['type']=_0x350b1c['g'][_0x3f40ae(0x970)],_0x31b244['Y']['Warn']('Float\x20textures\x20are\x20not\x20supported.\x20Cube\x20render\x20target\x20forced\x20to\x20TEXTURETYPE_UNESIGNED_BYTE\x20type')),_0x4f16a7[_0x3f40ae(0x777)](_0x4f16a7[_0x3f40ae(0xafc)],_0x4f16a7[_0x3f40ae(0x12d)],_0x5e0a46[_0x3f40ae(0x8e1)]),_0x4f16a7[_0x3f40ae(0x777)](_0x4f16a7[_0x3f40ae(0xafc)],_0x4f16a7[_0x3f40ae(0x2ed)],_0x5e0a46[_0x3f40ae(0x1e1)]),_0x4f16a7[_0x3f40ae(0x777)](_0x4f16a7[_0x3f40ae(0xafc)],_0x4f16a7[_0x3f40ae(0x514)],_0x4f16a7[_0x3f40ae(0x72d)]),_0x4f16a7[_0x3f40ae(0x777)](_0x4f16a7[_0x3f40ae(0xafc)],_0x4f16a7[_0x3f40ae(0x203)],_0x4f16a7[_0x3f40ae(0x72d)]));for(let _0xb9db65=0x0;_0xb9db65<0x6;_0xb9db65++)_0x4f16a7[_0x3f40ae(0x4ce)](_0x4f16a7[_0x3f40ae(0x93f)]+_0xb9db65,0x0,this[_0x3f40ae(0xca3)](_0x3d6291[_0x3f40ae(0xb26)],_0x3d6291['format']),_0x4238c7,_0x4238c7,0x0,this['_getInternalFormat'](_0x3d6291[_0x3f40ae(0xb59)]),this[_0x3f40ae(0xced)](_0x3d6291[_0x3f40ae(0xb26)]),null);return _0x5e0a46=_0x4f16a7[_0x3f40ae(0x5fb)](),(this[_0x3f40ae(0x39d)](_0x5e0a46),_0x5e9d5b['_depthStencilBuffer']=this[_0x3f40ae(0x861)](_0x3d6291[_0x3f40ae(0x479)],_0x3d6291[_0x3f40ae(0x607)],_0x4238c7,_0x4238c7),_0x3d6291[_0x3f40ae(0xb22)]&&_0x4f16a7['generateMipmap'](_0x4f16a7['TEXTURE_CUBE_MAP']),this[_0x3f40ae(0xc0b)](_0x4f16a7['TEXTURE_CUBE_MAP'],null),this[_0x3f40ae(0x39d)](null),_0x5e9d5b['_framebuffer']=_0x5e0a46,_0x5e9d5b[_0x3f40ae(0x328)]=_0x3d6291['generateDepthBuffer'],_0x5e9d5b[_0x3f40ae(0x436)]=_0x3d6291['generateStencilBuffer'],_0x564d52[_0x3f40ae(0x3e9)]=_0x4238c7,_0x564d52['height']=_0x4238c7,_0x564d52['isReady']=!0x0,_0x564d52[_0x3f40ae(0xac3)]=!0x0,_0x564d52[_0x3f40ae(0x92d)]=0x1,_0x564d52[_0x3f40ae(0xb22)]=_0x3d6291[_0x3f40ae(0xb22)],_0x564d52['samplingMode']=_0x3d6291[_0x3f40ae(0x9f4)],_0x564d52[_0x3f40ae(0xb26)]=_0x3d6291['type'],_0x564d52[_0x3f40ae(0xb59)]=_0x3d6291['format'],this['_internalTexturesCache'][_0x3f40ae(0x725)](_0x564d52),_0x5e9d5b[_0x3f40ae(0xac0)](_0x564d52),_0x5e9d5b);};},0x1486f:(_0x5ba8b0,_0x483f4e,_0x36f61e)=>{var _0xae187a=a7_0x3304fb;_0x36f61e=_0x36f61e(0xcf06),(_0x36f61e['B'][_0xae187a(0x78e)]['createStorageBuffer']=function(_0x1283ca,_0x2a16a7){var _0x1d4036=_0xae187a;throw new Error(_0x1d4036(0x386));},_0x36f61e['B'][_0xae187a(0x78e)][_0xae187a(0x66b)]=function(_0x710ca5,_0x12f574,_0x2b1849,_0x22226e){},_0x36f61e['B'][_0xae187a(0x78e)][_0xae187a(0x226)]=function(_0x61e6d5,_0x13e190,_0x2edead,_0x5ab91a){var _0x19c4e8=_0xae187a;throw new Error(_0x19c4e8(0xc16));},_0x36f61e['B']['prototype'][_0xae187a(0x282)]=function(_0x587041,_0x3f57f9){var _0x1e4587=_0xae187a;throw new Error(_0x1e4587(0xa8a));});},0x5e7f:(_0x4473bb,_0xda324c,_0x408990)=>{var _0x575036=a7_0x3304fb;_0x408990(0xcf06)['B'][_0x575036(0x78e)][_0x575036(0x9c2)]=function(_0x82df9e,_0x5a713a){throw new Error('setTextureSampler:\x20This\x20engine\x20does\x20not\x20support\x20separate\x20texture\x20sampler\x20objects!');};},0xd2c8:(_0x211efa,_0x52e122,_0x39e679)=>{var _0x21331f=a7_0x3304fb;_0x39e679=_0x39e679(0x14232);function _0x4dc38e(_0x54aa2e){var _0x2d8a6c=a7_0x4135;if(this[_0x2d8a6c(0xc97)]&&this[_0x2d8a6c(0xc97)][_0x2d8a6c(0x83e)](_0x3abb0d=>_0x54aa2e&&(_0x54aa2e===_0x3abb0d||_0x54aa2e['match'](new RegExp('\x5cb'+_0x3abb0d+'\x5cb','g')))))return _0x54aa2e;var _0x2c8130=_0x54aa2e['lastIndexOf']('.'),_0x49cbe8=_0x54aa2e[_0x2d8a6c(0x7da)]('?'),_0x49cbe8=-0x1<_0x49cbe8?_0x54aa2e[_0x2d8a6c(0x563)](_0x49cbe8,_0x54aa2e[_0x2d8a6c(0x86f)]):'';return(-0x1<_0x2c8130?_0x54aa2e['substring'](0x0,_0x2c8130):_0x54aa2e)+this[_0x2d8a6c(0x81d)]+_0x49cbe8;}Object[_0x21331f(0x578)](_0x39e679['D'][_0x21331f(0x78e)],_0x21331f(0x157),{'get':function(){var _0x5ef21d=_0x21331f;const _0x4c0ee5=new Array();return this[_0x5ef21d(0x210)][_0x5ef21d(0xad8)]&&_0x4c0ee5[_0x5ef21d(0x725)]('-astc.ktx'),this[_0x5ef21d(0x210)][_0x5ef21d(0x366)]&&_0x4c0ee5[_0x5ef21d(0x725)]('-dxt.ktx'),this['_caps'][_0x5ef21d(0x9ae)]&&_0x4c0ee5['push'](_0x5ef21d(0xa87)),this[_0x5ef21d(0x210)]['etc2']&&_0x4c0ee5['push']('-etc2.ktx'),this[_0x5ef21d(0x210)]['etc1']&&_0x4c0ee5['push']('-etc1.ktx'),_0x4c0ee5;},'enumerable':!0x0,'configurable':!0x0}),Object[_0x21331f(0x578)](_0x39e679['D'][_0x21331f(0x78e)],_0x21331f(0xc0a),{'get':function(){var _0x5d3e0a=_0x21331f;return this[_0x5d3e0a(0x81d)]||null;},'enumerable':!0x0,'configurable':!0x0}),_0x39e679['D'][_0x21331f(0x78e)][_0x21331f(0xcaf)]=function(_0x14de69){var _0x36df1c=_0x21331f;this[_0x36df1c(0xc97)]=_0x14de69;},_0x39e679['D'][_0x21331f(0x78e)][_0x21331f(0x5a9)]=function(_0x556396){var _0x402d4d=_0x21331f,_0x4df5ab=this[_0x402d4d(0x157)];for(let _0x444c8c=0x0,_0x407dd5=_0x4df5ab[_0x402d4d(0x86f)];_0x444c8c<_0x407dd5;_0x444c8c++)for(let _0x28a0dc=0x0,_0x3d0b52=_0x556396[_0x402d4d(0x86f)];_0x28a0dc<_0x3d0b52;_0x28a0dc++)if(_0x4df5ab[_0x444c8c]===_0x556396[_0x28a0dc][_0x402d4d(0x3c8)]())return this['_transformTextureUrl']=_0x4dc38e[_0x402d4d(0x9ee)](this),this[_0x402d4d(0x81d)]=_0x4df5ab[_0x444c8c];return this[_0x402d4d(0x81d)]='',this[_0x402d4d(0x143)]=null;};},0x1789e:(_0x3b1150,_0x296659,_0x26711c)=>{var _0x59bafa=a7_0x3304fb,_0x1cabea=_0x26711c(0xcf06),_0x5b0600=_0x26711c(0x15f74);_0x1cabea['B'][_0x59bafa(0x78e)][_0x59bafa(0x353)]=function(_0x3c054a){var _0x2824d5=_0x59bafa,_0x267be6=this[_0x2824d5(0xd14)][_0x2824d5(0x22a)]();if(!_0x267be6)throw new Error(_0x2824d5(0x524));const _0x52de79=new _0x5b0600['M'](_0x267be6);return this[_0x2824d5(0x17a)](_0x52de79),_0x3c054a instanceof Float32Array?this[_0x2824d5(0xd14)][_0x2824d5(0x3d2)](this[_0x2824d5(0xd14)][_0x2824d5(0x3ed)],_0x3c054a,this['_gl'][_0x2824d5(0xbed)]):this[_0x2824d5(0xd14)][_0x2824d5(0x3d2)](this[_0x2824d5(0xd14)][_0x2824d5(0x3ed)],new Float32Array(_0x3c054a),this[_0x2824d5(0xd14)][_0x2824d5(0xbed)]),this[_0x2824d5(0x17a)](null),_0x52de79[_0x2824d5(0xce1)]=0x1,_0x52de79;},_0x1cabea['B'][_0x59bafa(0x78e)][_0x59bafa(0xcb6)]=function(_0x3716d5){var _0x54a79a=_0x59bafa,_0x1ec82f=this[_0x54a79a(0xd14)][_0x54a79a(0x22a)]();if(!_0x1ec82f)throw new Error(_0x54a79a(0xb07));const _0x46f8e5=new _0x5b0600['M'](_0x1ec82f);return this[_0x54a79a(0x17a)](_0x46f8e5),_0x3716d5 instanceof Float32Array?this[_0x54a79a(0xd14)][_0x54a79a(0x3d2)](this[_0x54a79a(0xd14)][_0x54a79a(0x3ed)],_0x3716d5,this[_0x54a79a(0xd14)]['DYNAMIC_DRAW']):this[_0x54a79a(0xd14)][_0x54a79a(0x3d2)](this[_0x54a79a(0xd14)]['UNIFORM_BUFFER'],new Float32Array(_0x3716d5),this['_gl'][_0x54a79a(0x96a)]),this['bindUniformBuffer'](null),_0x46f8e5[_0x54a79a(0xce1)]=0x1,_0x46f8e5;},_0x1cabea['B']['prototype'][_0x59bafa(0xcf1)]=function(_0x1e8c4c,_0x4f5c6e,_0x3bfc7c,_0x7789b9){var _0x3ab211=_0x59bafa;this[_0x3ab211(0x17a)](_0x1e8c4c),void 0x0===_0x3bfc7c&&(_0x3bfc7c=0x0),void 0x0===_0x7789b9?_0x4f5c6e instanceof Float32Array?this['_gl'][_0x3ab211(0x9de)](this[_0x3ab211(0xd14)][_0x3ab211(0x3ed)],_0x3bfc7c,_0x4f5c6e):this[_0x3ab211(0xd14)][_0x3ab211(0x9de)](this['_gl'][_0x3ab211(0x3ed)],_0x3bfc7c,new Float32Array(_0x4f5c6e)):_0x4f5c6e instanceof Float32Array?this[_0x3ab211(0xd14)][_0x3ab211(0x9de)](this['_gl']['UNIFORM_BUFFER'],0x0,_0x4f5c6e['subarray'](_0x3bfc7c,_0x3bfc7c+_0x7789b9)):this[_0x3ab211(0xd14)]['bufferSubData'](this[_0x3ab211(0xd14)]['UNIFORM_BUFFER'],0x0,new Float32Array(_0x4f5c6e)[_0x3ab211(0x2fe)](_0x3bfc7c,_0x3bfc7c+_0x7789b9)),this[_0x3ab211(0x17a)](null);},_0x1cabea['B'][_0x59bafa(0x78e)][_0x59bafa(0x17a)]=function(_0x54d354){var _0x2aa536=_0x59bafa;this[_0x2aa536(0xd14)][_0x2aa536(0xa76)](this[_0x2aa536(0xd14)][_0x2aa536(0x3ed)],_0x54d354?_0x54d354[_0x2aa536(0x913)]:null);},_0x1cabea['B']['prototype'][_0x59bafa(0x77d)]=function(_0x559944,_0x5cb110,_0xd0c65b){var _0x4e3429=_0x59bafa;this[_0x4e3429(0xd14)][_0x4e3429(0x9dc)](this[_0x4e3429(0xd14)][_0x4e3429(0x3ed)],_0x5cb110,_0x559944?_0x559944[_0x4e3429(0x913)]:null);},_0x1cabea['B'][_0x59bafa(0x78e)][_0x59bafa(0x890)]=function(_0x9d0f91,_0x19054b,_0x1fc9c0){var _0x1f3755=_0x59bafa;_0x9d0f91=_0x9d0f91[_0x1f3755(0x60e)],_0x19054b=this[_0x1f3755(0xd14)][_0x1f3755(0xc59)](_0x9d0f91,_0x19054b),0xffffffff!==_0x19054b&&this[_0x1f3755(0xd14)][_0x1f3755(0x3cd)](_0x9d0f91,_0x19054b,_0x1fc9c0);};},0x17a7f:(_0x26b7fa,_0x2ea556,_0x105af2)=>{var _0x523a65=a7_0x3304fb,_0x47b5d7=_0x105af2(0xcf06),_0x324b75=_0x105af2(0x1610);_0x47b5d7['B'][_0x523a65(0x78e)][_0x523a65(0xcad)]=function(_0x592d31,_0x596c3a,_0xed702c){var _0x26e876=_0x523a65;if(_0x592d31&&!_0x592d31[_0x26e876(0xcc4)]){var _0x3b1bfd=this['_getInternalFormat'](_0x592d31[_0x26e876(0xb59)]),_0x5d289a=this[_0x26e876(0xca3)](_0x324b75['g'][_0x26e876(0x342)],_0x592d31[_0x26e876(0xb59)]),_0x54d77a=this[_0x26e876(0xc0b)](this[_0x26e876(0xd14)][_0x26e876(0x4b0)],_0x592d31,!0x0);this[_0x26e876(0x671)](!_0xed702c);try{if(void 0x0===this[_0x26e876(0x51e)]&&(this[_0x26e876(0xd14)][_0x26e876(0x6f0)](),this['_gl']['texImage2D'](this[_0x26e876(0xd14)][_0x26e876(0x4b0)],0x0,_0x5d289a,_0x3b1bfd,this[_0x26e876(0xd14)][_0x26e876(0xb8b)],_0x596c3a),0x0!==this[_0x26e876(0xd14)][_0x26e876(0x6f0)]()?this['_videoTextureSupported']=!0x1:this['_videoTextureSupported']=!0x0),this[_0x26e876(0x51e)])this[_0x26e876(0xd14)][_0x26e876(0x4ce)](this[_0x26e876(0xd14)][_0x26e876(0x4b0)],0x0,_0x5d289a,_0x3b1bfd,this[_0x26e876(0xd14)]['UNSIGNED_BYTE'],_0x596c3a);else{if(!_0x592d31[_0x26e876(0x14d)]){_0x592d31[_0x26e876(0x14d)]=this[_0x26e876(0xcbb)](_0x592d31['width'],_0x592d31[_0x26e876(0x520)]);var _0x41ee1c=_0x592d31[_0x26e876(0x14d)]['getContext']('2d');if(!_0x41ee1c)throw new Error('Unable\x20to\x20get\x202d\x20context');_0x592d31[_0x26e876(0x309)]=_0x41ee1c,_0x592d31[_0x26e876(0x14d)][_0x26e876(0x3e9)]=_0x592d31[_0x26e876(0x3e9)],_0x592d31[_0x26e876(0x14d)][_0x26e876(0x520)]=_0x592d31['height'];}_0x592d31[_0x26e876(0x309)][_0x26e876(0x135)](0x0,0x0,_0x592d31[_0x26e876(0x3e9)],_0x592d31['height']),_0x592d31[_0x26e876(0x309)]['drawImage'](_0x596c3a,0x0,0x0,_0x596c3a[_0x26e876(0x86b)],_0x596c3a[_0x26e876(0x396)],0x0,0x0,_0x592d31[_0x26e876(0x3e9)],_0x592d31[_0x26e876(0x520)]),this['_gl'][_0x26e876(0x4ce)](this[_0x26e876(0xd14)][_0x26e876(0x4b0)],0x0,_0x5d289a,_0x3b1bfd,this[_0x26e876(0xd14)][_0x26e876(0xb8b)],_0x592d31[_0x26e876(0x14d)]);}_0x592d31[_0x26e876(0xb22)]&&this[_0x26e876(0xd14)][_0x26e876(0x6f6)](this[_0x26e876(0xd14)]['TEXTURE_2D']),_0x54d77a||this[_0x26e876(0xc0b)](this[_0x26e876(0xd14)][_0x26e876(0x4b0)],null),_0x592d31[_0x26e876(0x3f1)]=!0x0;}catch(_0x5599bf){_0x592d31['_isDisabled']=!0x0;}}};},0x10ffe:(_0x4bd821,_0x5f0bf7,_0x17de8a)=>{var _0x1aff57=a7_0x3304fb,_0x210df9=_0x17de8a(0x14232),_0x10e626=_0x17de8a(0x17194),_0x3c0c32=_0x17de8a(0xa896),_0x1c7d6f=_0x17de8a(0x4ba7),_0x35a80c=_0x17de8a(0x7205);Object[_0x1aff57(0x578)](_0x210df9['D']['prototype'],'isInVRExclusivePointerMode',{'get':function(){var _0x5e1e93=_0x1aff57;return this[_0x5e1e93(0x9a4)];},'enumerable':!0x0,'configurable':!0x0}),_0x210df9['D'][_0x1aff57(0x78e)][_0x1aff57(0x812)]=function(){var _0x409d57=_0x1aff57;this['_vrSupported']=!0x1,this[_0x409d57(0x9a4)]=!0x1,this[_0x409d57(0x3ec)]=new _0x3c0c32['y$'](),this[_0x409d57(0x4fd)]=new _0x3c0c32['y$'](),this['onVRRequestPresentStart']=new _0x3c0c32['y$']();},_0x210df9['D'][_0x1aff57(0x78e)][_0x1aff57(0xaf1)]=function(){var _0x54da4d=_0x1aff57;return!!this[_0x54da4d(0x4d1)];},_0x210df9['D'][_0x1aff57(0x78e)]['getVRDevice']=function(){return this['_vrDisplay'];},_0x210df9['D']['prototype'][_0x1aff57(0x1b6)]=function(){var _0x27d247=_0x1aff57;return this[_0x27d247(0x703)](),this['onVRDisplayChangedObservable'];},_0x210df9['D'][_0x1aff57(0x78e)][_0x1aff57(0x703)]=function(){var _0x2321c4=_0x1aff57;const _0x4fc367=()=>{var _0x2cea01=a7_0x4135;const _0xe7df0f={'vrDisplay':this[_0x2cea01(0x4d1)],'vrSupported':this[_0x2cea01(0x72a)]};this[_0x2cea01(0x3ec)][_0x2cea01(0x94c)](_0xe7df0f),this[_0x2cea01(0x721)]=new Promise(_0xbb7cb5=>{_0xbb7cb5(_0xe7df0f);});};if(!this[_0x2321c4(0xb2b)]){this[_0x2321c4(0xb2b)]=_0x2fc7e1=>{var _0x3d1c80=_0x2321c4;this[_0x3d1c80(0x4d1)]=_0x2fc7e1[_0x3d1c80(0x52c)],_0x4fc367();},this[_0x2321c4(0xb7e)]=()=>{var _0x456ff6=_0x2321c4;this['_vrDisplay'][_0x456ff6(0xc1b)](this[_0x456ff6(0x57e)]),this[_0x456ff6(0x4d1)]=void 0x0,this[_0x456ff6(0x57e)]=_0x210df9['D']['QueueNewFrame'](this[_0x456ff6(0x44e)]),_0x4fc367();},this['_onVrDisplayPresentChange']=()=>{var _0x23bcd8=_0x2321c4;this[_0x23bcd8(0x9a4)]=this[_0x23bcd8(0x4d1)]&&this[_0x23bcd8(0x4d1)][_0x23bcd8(0xb9c)];};const _0x2b2f2f=this['getHostWindow']();_0x2b2f2f&&(_0x2b2f2f[_0x2321c4(0x61e)](_0x2321c4(0x9e3),this[_0x2321c4(0xb2b)]),_0x2b2f2f[_0x2321c4(0x61e)]('vrdisplaydisconnect',this[_0x2321c4(0xb7e)]),_0x2b2f2f[_0x2321c4(0x61e)](_0x2321c4(0x80e),this[_0x2321c4(0xaf7)]));}return this[_0x2321c4(0x721)]=this['_webVRInitPromise']||this[_0x2321c4(0x88f)](),this[_0x2321c4(0x721)]['then'](_0x4fc367),this[_0x2321c4(0x721)];},_0x210df9['D']['prototype'][_0x1aff57(0x88f)]=function(){return new Promise(_0x5c1568=>{var _0x3bf55b=a7_0x4135;navigator[_0x3bf55b(0xbfa)]?navigator[_0x3bf55b(0xbfa)]()['then'](_0x57d186=>{var _0x46ada9=_0x3bf55b;this[_0x46ada9(0x72a)]=!0x0,this['_vrDisplay']=_0x57d186[0x0],_0x5c1568({'vrDisplay':this['_vrDisplay'],'vrSupported':this[_0x46ada9(0x72a)]});}):(this[_0x3bf55b(0x4d1)]=void 0x0,this[_0x3bf55b(0x72a)]=!0x1,_0x5c1568({'vrDisplay':this[_0x3bf55b(0x4d1)],'vrSupported':this[_0x3bf55b(0x72a)]}));});},_0x210df9['D'][_0x1aff57(0x78e)][_0x1aff57(0x336)]=function(_0x126850){var _0x422211=_0x1aff57;this[_0x422211(0x4d1)]&&!this['_vrDisplay'][_0x422211(0xb9c)]&&(this['onVRRequestPresentStart'][_0x422211(0x94c)](this),_0x126850={'highRefreshRate':!!this[_0x422211(0xcd7)]&&this[_0x422211(0xcd7)]['highRefreshRate'],'foveationLevel':this[_0x422211(0xcd7)]?this[_0x422211(0xcd7)]['foveationLevel']:0x1,'multiview':(this['getCaps']()['multiview']||this[_0x422211(0x7b9)]()[_0x422211(0x4cc)])&&_0x126850[_0x422211(0x6ff)]},this[_0x422211(0x4d1)][_0x422211(0x337)]([Object[_0x422211(0x70a)]({'source':this[_0x422211(0x93d)](),'attributes':_0x126850},_0x126850)])['then'](()=>{var _0x27166f=_0x422211;this[_0x27166f(0x4fd)][_0x27166f(0x94c)](!0x0),this[_0x27166f(0xa9c)]();})['catch'](()=>{var _0x50c903=_0x422211;this['onVRRequestPresentComplete'][_0x50c903(0x94c)](!0x1);}));},_0x210df9['D'][_0x1aff57(0x78e)][_0x1aff57(0xa9c)]=function(){var _0x3281bb=_0x1aff57,_0x75eb0e;this[_0x3281bb(0x4d1)]&&this[_0x3281bb(0x4d1)]['isPresenting']?(this[_0x3281bb(0x5c5)]=new _0x10e626['$'](this[_0x3281bb(0x6b2)](),this[_0x3281bb(0x3c3)]()),this[_0x3281bb(0x956)]=this[_0x3281bb(0x6bc)](),_0x75eb0e=this[_0x3281bb(0x4d1)][_0x3281bb(0xc2e)](_0x3281bb(0x9a3)),this[_0x3281bb(0xc98)](0x1),this[_0x3281bb(0xb50)](0x2*_0x75eb0e[_0x3281bb(0x485)],_0x75eb0e['renderHeight'])):(this[_0x3281bb(0xc98)](this[_0x3281bb(0x956)]),this['setSize'](this[_0x3281bb(0x5c5)][_0x3281bb(0x3e9)],this['_oldSize']['height']));},_0x210df9['D']['prototype'][_0x1aff57(0x536)]=function(){var _0x4976ff=_0x1aff57;this[_0x4976ff(0x4d1)]&&this[_0x4976ff(0x4d1)]['isPresenting']&&this[_0x4976ff(0x4d1)]['exitPresent']()[_0x4976ff(0x6c0)](()=>this['_onVRFullScreenTriggered']())['catch'](()=>this[_0x4976ff(0xa9c)]()),(0x0,_0x35a80c['CG'])()&&(window[_0x4976ff(0x3e3)](_0x4976ff(0x74f),this[_0x4976ff(0xa5b)]),window['removeEventListener']('vrdisplaypointerunrestricted',this['_onVRDisplayPointerUnrestricted']),this['_onVrDisplayConnect']&&(window[_0x4976ff(0x3e3)](_0x4976ff(0x9e3),this[_0x4976ff(0xb2b)]),this[_0x4976ff(0xb7e)]&&window['removeEventListener'](_0x4976ff(0x6fe),this[_0x4976ff(0xb7e)]),this[_0x4976ff(0xaf7)]&&window[_0x4976ff(0x3e3)](_0x4976ff(0x80e),this['_onVrDisplayPresentChange']),this['_onVrDisplayConnect']=null,this[_0x4976ff(0xb7e)]=null));},_0x210df9['D'][_0x1aff57(0x78e)][_0x1aff57(0x49b)]=function(_0x39e2cf,_0x217756){var _0xf62719=_0x1aff57;if(this[_0xf62719(0xa5b)]=()=>{var _0x36cdc7=_0xf62719;_0x39e2cf&&_0x39e2cf[_0x36cdc7(0x76b)]();},this['_onVRDisplayPointerUnrestricted']=()=>{var _0x298f86=_0xf62719;if(_0x217756)_0x217756[_0x298f86(0x881)]&&_0x217756[_0x298f86(0x881)]();else{const _0x448a26=this[_0x298f86(0x9e0)]();_0x448a26[_0x298f86(0x55f)]&&_0x448a26['document']['exitPointerLock']&&_0x448a26[_0x298f86(0x55f)]['exitPointerLock']();}},(0x0,_0x35a80c['CG'])()){const _0x406739=this[_0xf62719(0x9e0)]();_0x406739['addEventListener']('vrdisplaypointerrestricted',this[_0xf62719(0xa5b)],!0x1),_0x406739['addEventListener'](_0xf62719(0x6f4),this['_onVRDisplayPointerUnrestricted'],!0x1);}},_0x210df9['D']['prototype'][_0x1aff57(0xc50)]=function(){var _0x46563a=_0x1aff57;if(this[_0x46563a(0x4d1)]&&this[_0x46563a(0x4d1)][_0x46563a(0xb9c)])try{this['_vrDisplay'][_0x46563a(0x57c)]();}catch(_0x1221b0){_0x1c7d6f['w1']['Warn'](_0x46563a(0x1e4)+_0x1221b0);}},_0x210df9['D'][_0x1aff57(0x78e)][_0x1aff57(0x141)]=function(){var _0x76eeb7=_0x1aff57;return this[_0x76eeb7(0x4d1)]&&this[_0x76eeb7(0x4d1)][_0x76eeb7(0xb9c)];},_0x210df9['D'][_0x1aff57(0x78e)][_0x1aff57(0x642)]=function(){var _0x7bdc53=_0x1aff57;this[_0x7bdc53(0x57e)]=_0x210df9['D'][_0x7bdc53(0x63e)](this[_0x7bdc53(0x44e)],this[_0x7bdc53(0x4d1)]);};},0xecb7:(_0x10adf1,_0x5d6e06,_0x301795)=>{var _0x574004=a7_0x3304fb;_0x301795['d'](_0x5d6e06,{'E':()=>_0xfcc214});class _0xfcc214{constructor(_0x155628,_0x5721c1){var _0x40b40a=a7_0x4135;this[_0x40b40a(0x489)]=_0x5721c1,this[_0x40b40a(0x6c1)](_0x155628);}get['underlyingResource'](){var _0x3d5f60=a7_0x4135;return this[_0x3d5f60(0xc52)];}[_0x574004(0x58c)](){}[_0x574004(0x6c1)](_0x229722){this['_nativeTexture']=_0x229722;}[_0x574004(0x4ac)](){var _0xd79164=_0x574004;this[_0xd79164(0xc52)]=null;}[_0x574004(0x27b)](){var _0x16b711=_0x574004;this[_0x16b711(0xc52)]&&this[_0x16b711(0x489)]['deleteTexture'](this['_nativeTexture']),this[_0x16b711(0x4ac)]();}}},0xce7:(_0x3d09bc,_0x396931,_0x347c9d)=>{var _0x76a274=a7_0x3304fb;_0x347c9d['d'](_0x396931,{'G':()=>_0x5f47d0});class _0x5f47d0{constructor(_0x2409cc){var _0x516f55=a7_0x4135;this[_0x516f55(0x31a)]=!0x0,this['isCompiled']=!0x1,this[_0x516f55(0x7df)]={},this[_0x516f55(0x489)]=_0x2409cc;}get[_0x76a274(0x43e)](){var _0x327e01=_0x76a274;return this[_0x327e01(0x31a)];}get[_0x76a274(0x3f1)](){var _0x5077ff=_0x76a274,_0x5d31af;if(this[_0x5077ff(0x8c0)])throw _0x5d31af=this[_0x5077ff(0x8c0)]['message'],new Error('SHADER\x20ERROR'+('string'==typeof _0x5d31af?'\x0a'+_0x5d31af:''));return this[_0x5077ff(0x95e)];}[_0x76a274(0x877)](){return null;}['_getFragmentShaderCode'](){return null;}['_handlesSpectorRebuildCallback'](_0x1f8ad5){var _0x777fed=_0x76a274;throw new Error(_0x777fed(0x994));}[_0x76a274(0x140)](_0x205347,_0x2def13,_0x3478a1,_0x1377df,_0x3fb226,_0x1047b5,_0x7aa709,_0x5dd064){var _0x19701f=_0x76a274;const _0x5d2853=this[_0x19701f(0x489)];if(_0x5d2853[_0x19701f(0x1e3)]){for(const _0x208e6f in _0x2def13)_0x205347[_0x19701f(0x890)](_0x208e6f,_0x2def13[_0x208e6f]);}const _0x45e00f=this['_engine'][_0x19701f(0xb48)](this,_0x3478a1);_0x45e00f[_0x19701f(0xa7c)]((_0x582d1c,_0x3b0df0)=>{_0x1377df[_0x3478a1[_0x3b0df0]]=_0x582d1c;}),this[_0x19701f(0xbd1)]=_0x1377df;let _0x1ccc4a;for(_0x1ccc4a=0x0;_0x1ccc4a<_0x3fb226[_0x19701f(0x86f)];_0x1ccc4a++)null==_0x205347['getUniform'](_0x3fb226[_0x1ccc4a])&&(_0x3fb226[_0x19701f(0x6a0)](_0x1ccc4a,0x1),_0x1ccc4a--);_0x3fb226['forEach']((_0x296302,_0xf86057)=>{_0x1047b5[_0x296302]=_0xf86057;}),_0x5dd064[_0x19701f(0x725)](..._0x5d2853[_0x19701f(0xa81)](this,_0x7aa709));}[_0x76a274(0xb4b)](){var _0x5639cc=_0x76a274;this[_0x5639cc(0xbd1)]={};}[_0x76a274(0x257)](_0x14842d,_0x5578bf){var _0x38fa6d=_0x76a274,_0x551e9c=this['_valueCache'][_0x14842d],_0x5578bf=_0x5578bf[_0x38fa6d(0xcde)];return(void 0x0===_0x551e9c||_0x551e9c!==_0x5578bf)&&(this[_0x38fa6d(0x7df)][_0x14842d]=_0x5578bf,!0x0);}[_0x76a274(0x270)](_0x24072d,_0x5297f8,_0x10c384){let _0x4cb3be=this['_valueCache'][_0x24072d];if(!_0x4cb3be)return _0x4cb3be=[_0x5297f8,_0x10c384],this['_valueCache'][_0x24072d]=_0x4cb3be,!0x0;let _0x16d76c=!0x1;return _0x4cb3be[0x0]!==_0x5297f8&&(_0x4cb3be[0x0]=_0x5297f8,_0x16d76c=!0x0),_0x4cb3be[0x1]!==_0x10c384&&(_0x4cb3be[0x1]=_0x10c384,_0x16d76c=!0x0),_0x16d76c;}[_0x76a274(0x127)](_0x58ff2e,_0x1594c3,_0xcb5d89,_0x1587df){var _0x3bdf90=_0x76a274;let _0x307ac0=this[_0x3bdf90(0x7df)][_0x58ff2e];if(!_0x307ac0)return _0x307ac0=[_0x1594c3,_0xcb5d89,_0x1587df],this[_0x3bdf90(0x7df)][_0x58ff2e]=_0x307ac0,!0x0;let _0x4d25da=!0x1;return _0x307ac0[0x0]!==_0x1594c3&&(_0x307ac0[0x0]=_0x1594c3,_0x4d25da=!0x0),_0x307ac0[0x1]!==_0xcb5d89&&(_0x307ac0[0x1]=_0xcb5d89,_0x4d25da=!0x0),_0x307ac0[0x2]!==_0x1587df&&(_0x307ac0[0x2]=_0x1587df,_0x4d25da=!0x0),_0x4d25da;}['_cacheFloat4'](_0x2d829d,_0x3fd4e3,_0x32b952,_0x100186,_0x23a249){var _0x1d2e07=_0x76a274;let _0x268ab7=this[_0x1d2e07(0x7df)][_0x2d829d];if(!_0x268ab7)return _0x268ab7=[_0x3fd4e3,_0x32b952,_0x100186,_0x23a249],this[_0x1d2e07(0x7df)][_0x2d829d]=_0x268ab7,!0x0;let _0x174c3a=!0x1;return _0x268ab7[0x0]!==_0x3fd4e3&&(_0x268ab7[0x0]=_0x3fd4e3,_0x174c3a=!0x0),_0x268ab7[0x1]!==_0x32b952&&(_0x268ab7[0x1]=_0x32b952,_0x174c3a=!0x0),_0x268ab7[0x2]!==_0x100186&&(_0x268ab7[0x2]=_0x100186,_0x174c3a=!0x0),_0x268ab7[0x3]!==_0x23a249&&(_0x268ab7[0x3]=_0x23a249,_0x174c3a=!0x0),_0x174c3a;}[_0x76a274(0x213)](_0x1acf50,_0x4def94){var _0x3c0cf9=_0x76a274,_0x424806=this['_valueCache'][_0x1acf50];void 0x0!==_0x424806&&_0x424806===_0x4def94||this[_0x3c0cf9(0x489)][_0x3c0cf9(0x213)](this[_0x3c0cf9(0xbd1)][_0x1acf50],_0x4def94)&&(this[_0x3c0cf9(0x7df)][_0x1acf50]=_0x4def94);}['setInt2'](_0x1a586c,_0x11fc41,_0x31262f){var _0x556516=_0x76a274;this['_cacheFloat2'](_0x1a586c,_0x11fc41,_0x31262f)&&!this['_engine']['setInt2'](this[_0x556516(0xbd1)][_0x1a586c],_0x11fc41,_0x31262f)&&(this[_0x556516(0x7df)][_0x1a586c]=null);}[_0x76a274(0x326)](_0x3ac0f9,_0xac226,_0x3f1624,_0x414ef8){var _0x594642=_0x76a274;this['_cacheFloat3'](_0x3ac0f9,_0xac226,_0x3f1624,_0x414ef8)&&!this[_0x594642(0x489)][_0x594642(0x326)](this[_0x594642(0xbd1)][_0x3ac0f9],_0xac226,_0x3f1624,_0x414ef8)&&(this[_0x594642(0x7df)][_0x3ac0f9]=null);}[_0x76a274(0x2db)](_0x47608d,_0x115862,_0x50657d,_0x5e5598,_0x4f2ae5){var _0x115ec1=_0x76a274;this[_0x115ec1(0x916)](_0x47608d,_0x115862,_0x50657d,_0x5e5598,_0x4f2ae5)&&!this[_0x115ec1(0x489)]['setInt4'](this['_uniforms'][_0x47608d],_0x115862,_0x50657d,_0x5e5598,_0x4f2ae5)&&(this[_0x115ec1(0x7df)][_0x47608d]=null);}[_0x76a274(0x58f)](_0x219973,_0x3b8a2b){var _0x5174c4=_0x76a274;this['_valueCache'][_0x219973]=null,this[_0x5174c4(0x489)]['setIntArray'](this[_0x5174c4(0xbd1)][_0x219973],_0x3b8a2b);}[_0x76a274(0x888)](_0x4068ea,_0x1889d6){var _0xea3c21=_0x76a274;this['_valueCache'][_0x4068ea]=null,this[_0xea3c21(0x489)]['setIntArray2'](this[_0xea3c21(0xbd1)][_0x4068ea],_0x1889d6);}[_0x76a274(0x3f6)](_0x5084b5,_0x31903b){var _0x2bf565=_0x76a274;this[_0x2bf565(0x7df)][_0x5084b5]=null,this[_0x2bf565(0x489)][_0x2bf565(0x3f6)](this[_0x2bf565(0xbd1)][_0x5084b5],_0x31903b);}['setIntArray4'](_0xa5a734,_0x2adde2){var _0x2d6acd=_0x76a274;this[_0x2d6acd(0x7df)][_0xa5a734]=null,this['_engine']['setIntArray4'](this[_0x2d6acd(0xbd1)][_0xa5a734],_0x2adde2);}['setUInt'](_0x1fe9ac,_0xf632c7){var _0x10b3e9=_0x76a274,_0x442635=this[_0x10b3e9(0x7df)][_0x1fe9ac];void 0x0!==_0x442635&&_0x442635===_0xf632c7||this[_0x10b3e9(0x489)][_0x10b3e9(0x3b2)](this[_0x10b3e9(0xbd1)][_0x1fe9ac],_0xf632c7)&&(this[_0x10b3e9(0x7df)][_0x1fe9ac]=_0xf632c7);}[_0x76a274(0x6b1)](_0x7ce11d,_0x498937,_0x42819e){var _0x1bad4b=_0x76a274;this[_0x1bad4b(0x270)](_0x7ce11d,_0x498937,_0x42819e)&&!this['_engine'][_0x1bad4b(0x6b1)](this[_0x1bad4b(0xbd1)][_0x7ce11d],_0x498937,_0x42819e)&&(this[_0x1bad4b(0x7df)][_0x7ce11d]=null);}[_0x76a274(0x636)](_0x46febc,_0x4b7ccb,_0x7c88bc,_0x2a9769){var _0x14a808=_0x76a274;this['_cacheFloat3'](_0x46febc,_0x4b7ccb,_0x7c88bc,_0x2a9769)&&!this[_0x14a808(0x489)][_0x14a808(0x636)](this[_0x14a808(0xbd1)][_0x46febc],_0x4b7ccb,_0x7c88bc,_0x2a9769)&&(this[_0x14a808(0x7df)][_0x46febc]=null);}['setUInt4'](_0x3e00d5,_0x4c2ab3,_0x4e0521,_0x297073,_0xf10e1a){var _0x3f7c16=_0x76a274;this[_0x3f7c16(0x916)](_0x3e00d5,_0x4c2ab3,_0x4e0521,_0x297073,_0xf10e1a)&&!this['_engine'][_0x3f7c16(0x631)](this[_0x3f7c16(0xbd1)][_0x3e00d5],_0x4c2ab3,_0x4e0521,_0x297073,_0xf10e1a)&&(this['_valueCache'][_0x3e00d5]=null);}[_0x76a274(0x651)](_0x3696da,_0x46f8a9){var _0x47d2f9=_0x76a274;this[_0x47d2f9(0x7df)][_0x3696da]=null,this['_engine'][_0x47d2f9(0x651)](this['_uniforms'][_0x3696da],_0x46f8a9);}[_0x76a274(0x79e)](_0x2af1a9,_0x1c816e){var _0x24e73d=_0x76a274;this['_valueCache'][_0x2af1a9]=null,this[_0x24e73d(0x489)]['setUIntArray2'](this['_uniforms'][_0x2af1a9],_0x1c816e);}[_0x76a274(0x7c4)](_0x2cc97b,_0x1dad81){var _0x221a00=_0x76a274;this[_0x221a00(0x7df)][_0x2cc97b]=null,this[_0x221a00(0x489)][_0x221a00(0x7c4)](this[_0x221a00(0xbd1)][_0x2cc97b],_0x1dad81);}[_0x76a274(0x875)](_0x243518,_0x22f466){var _0x3c2f62=_0x76a274;this['_valueCache'][_0x243518]=null,this[_0x3c2f62(0x489)][_0x3c2f62(0x875)](this[_0x3c2f62(0xbd1)][_0x243518],_0x22f466);}[_0x76a274(0x238)](_0x28a179,_0x5e18b9){var _0x4f7993=_0x76a274;this[_0x4f7993(0x7df)][_0x28a179]=null,this[_0x4f7993(0x489)]['setFloatArray'](this[_0x4f7993(0xbd1)][_0x28a179],_0x5e18b9);}['setFloatArray2'](_0x59d297,_0x14da45){var _0x475f9c=_0x76a274;this[_0x475f9c(0x7df)][_0x59d297]=null,this[_0x475f9c(0x489)][_0x475f9c(0x327)](this[_0x475f9c(0xbd1)][_0x59d297],_0x14da45);}['setFloatArray3'](_0x39fc40,_0x448e9f){var _0x495124=_0x76a274;this[_0x495124(0x7df)][_0x39fc40]=null,this['_engine'][_0x495124(0x43a)](this[_0x495124(0xbd1)][_0x39fc40],_0x448e9f);}['setFloatArray4'](_0x215717,_0x2fefbf){var _0xe570df=_0x76a274;this[_0xe570df(0x7df)][_0x215717]=null,this['_engine'][_0xe570df(0xaaa)](this[_0xe570df(0xbd1)][_0x215717],_0x2fefbf);}[_0x76a274(0x69f)](_0x3f5edf,_0x484963){var _0x4739aa=_0x76a274;this[_0x4739aa(0x7df)][_0x3f5edf]=null,this[_0x4739aa(0x489)][_0x4739aa(0x69f)](this[_0x4739aa(0xbd1)][_0x3f5edf],_0x484963);}[_0x76a274(0x561)](_0x735c8,_0xd78140){var _0x222a0f=_0x76a274;this['_valueCache'][_0x735c8]=null,this['_engine']['setArray2'](this[_0x222a0f(0xbd1)][_0x735c8],_0xd78140);}[_0x76a274(0xb20)](_0x5928ae,_0x2df594){var _0x166f87=_0x76a274;this[_0x166f87(0x7df)][_0x5928ae]=null,this[_0x166f87(0x489)]['setArray3'](this[_0x166f87(0xbd1)][_0x5928ae],_0x2df594);}[_0x76a274(0x7ce)](_0x3b2cd4,_0x77392a){var _0x19439c=_0x76a274;this['_valueCache'][_0x3b2cd4]=null,this[_0x19439c(0x489)][_0x19439c(0x7ce)](this['_uniforms'][_0x3b2cd4],_0x77392a);}[_0x76a274(0x42c)](_0x1df3f7,_0x159c22){var _0x3b27ff=_0x76a274;_0x159c22&&(this[_0x3b27ff(0x7df)][_0x1df3f7]=null,this[_0x3b27ff(0x489)]['setMatrices'](this[_0x3b27ff(0xbd1)][_0x1df3f7],_0x159c22));}[_0x76a274(0xa13)](_0x773427,_0x27486c){var _0x490388=_0x76a274;this[_0x490388(0x257)](_0x773427,_0x27486c)&&!this[_0x490388(0x489)][_0x490388(0x42c)](this[_0x490388(0xbd1)][_0x773427],_0x27486c[_0x490388(0x581)]())&&(this[_0x490388(0x7df)][_0x773427]=null);}['setMatrix3x3'](_0x4e112c,_0x49e533){var _0x20b7f1=_0x76a274;this[_0x20b7f1(0x7df)][_0x4e112c]=null,this['_engine']['setMatrix3x3'](this['_uniforms'][_0x4e112c],_0x49e533);}[_0x76a274(0x4b9)](_0x13519b,_0x2b1ddb){var _0x104ec6=_0x76a274;this['_valueCache'][_0x13519b]=null,this[_0x104ec6(0x489)][_0x104ec6(0x4b9)](this[_0x104ec6(0xbd1)][_0x13519b],_0x2b1ddb);}[_0x76a274(0x760)](_0x369e69,_0x48fb40){var _0x3c2ace=_0x76a274,_0x4fd1ee=this[_0x3c2ace(0x7df)][_0x369e69];void 0x0!==_0x4fd1ee&&_0x4fd1ee===_0x48fb40||this[_0x3c2ace(0x489)]['setFloat'](this[_0x3c2ace(0xbd1)][_0x369e69],_0x48fb40)&&(this[_0x3c2ace(0x7df)][_0x369e69]=_0x48fb40);}[_0x76a274(0x689)](_0x2f971c,_0x3b2dcc){var _0x6d4f83=_0x76a274,_0x18238a=this[_0x6d4f83(0x7df)][_0x2f971c];void 0x0!==_0x18238a&&_0x18238a===_0x3b2dcc||this[_0x6d4f83(0x489)]['setInt'](this['_uniforms'][_0x2f971c],_0x3b2dcc?0x1:0x0)&&(this[_0x6d4f83(0x7df)][_0x2f971c]=_0x3b2dcc?0x1:0x0);}[_0x76a274(0xb5d)](_0xb927df,_0x4d575c){var _0x3cfd99=_0x76a274;this['_cacheFloat2'](_0xb927df,_0x4d575c['x'],_0x4d575c['y'])&&!this[_0x3cfd99(0x489)][_0x3cfd99(0xcef)](this[_0x3cfd99(0xbd1)][_0xb927df],_0x4d575c['x'],_0x4d575c['y'])&&(this[_0x3cfd99(0x7df)][_0xb927df]=null);}[_0x76a274(0xcef)](_0x388e4a,_0x48988f,_0x34f38f){var _0x2d1119=_0x76a274;this[_0x2d1119(0x270)](_0x388e4a,_0x48988f,_0x34f38f)&&!this[_0x2d1119(0x489)][_0x2d1119(0xcef)](this[_0x2d1119(0xbd1)][_0x388e4a],_0x48988f,_0x34f38f)&&(this[_0x2d1119(0x7df)][_0x388e4a]=null);}[_0x76a274(0x418)](_0x5f3082,_0x249b2e){var _0x3c8d6a=_0x76a274;this[_0x3c8d6a(0x127)](_0x5f3082,_0x249b2e['x'],_0x249b2e['y'],_0x249b2e['z'])&&!this[_0x3c8d6a(0x489)][_0x3c8d6a(0x1f6)](this[_0x3c8d6a(0xbd1)][_0x5f3082],_0x249b2e['x'],_0x249b2e['y'],_0x249b2e['z'])&&(this[_0x3c8d6a(0x7df)][_0x5f3082]=null);}['setFloat3'](_0xb8e986,_0x421d9a,_0x4b6ada,_0xd0aa99){var _0x18405f=_0x76a274;this[_0x18405f(0x127)](_0xb8e986,_0x421d9a,_0x4b6ada,_0xd0aa99)&&!this[_0x18405f(0x489)][_0x18405f(0x1f6)](this[_0x18405f(0xbd1)][_0xb8e986],_0x421d9a,_0x4b6ada,_0xd0aa99)&&(this['_valueCache'][_0xb8e986]=null);}[_0x76a274(0x601)](_0x52fb48,_0x402bde){var _0x3ca4b6=_0x76a274;this[_0x3ca4b6(0x916)](_0x52fb48,_0x402bde['x'],_0x402bde['y'],_0x402bde['z'],_0x402bde['w'])&&!this[_0x3ca4b6(0x489)][_0x3ca4b6(0x453)](this[_0x3ca4b6(0xbd1)][_0x52fb48],_0x402bde['x'],_0x402bde['y'],_0x402bde['z'],_0x402bde['w'])&&(this[_0x3ca4b6(0x7df)][_0x52fb48]=null);}[_0x76a274(0x846)](_0x1c9c9c,_0x197d1a){var _0x2c154a=_0x76a274;this[_0x2c154a(0x916)](_0x1c9c9c,_0x197d1a['x'],_0x197d1a['y'],_0x197d1a['z'],_0x197d1a['w'])&&!this[_0x2c154a(0x489)][_0x2c154a(0x453)](this[_0x2c154a(0xbd1)][_0x1c9c9c],_0x197d1a['x'],_0x197d1a['y'],_0x197d1a['z'],_0x197d1a['w'])&&(this[_0x2c154a(0x7df)][_0x1c9c9c]=null);}[_0x76a274(0x453)](_0x19de60,_0xea4964,_0x5eba7d,_0x2d3ce6,_0x1e4c5d){var _0x2f77a7=_0x76a274;this[_0x2f77a7(0x916)](_0x19de60,_0xea4964,_0x5eba7d,_0x2d3ce6,_0x1e4c5d)&&!this[_0x2f77a7(0x489)][_0x2f77a7(0x453)](this[_0x2f77a7(0xbd1)][_0x19de60],_0xea4964,_0x5eba7d,_0x2d3ce6,_0x1e4c5d)&&(this[_0x2f77a7(0x7df)][_0x19de60]=null);}['setColor3'](_0x51638f,_0x49ed42){var _0x5550e4=_0x76a274;this[_0x5550e4(0x127)](_0x51638f,_0x49ed42['r'],_0x49ed42['g'],_0x49ed42['b'])&&!this['_engine'][_0x5550e4(0x1f6)](this['_uniforms'][_0x51638f],_0x49ed42['r'],_0x49ed42['g'],_0x49ed42['b'])&&(this['_valueCache'][_0x51638f]=null);}[_0x76a274(0x322)](_0x21b584,_0xff9b24,_0xa87ea1){var _0x390302=_0x76a274;this['_cacheFloat4'](_0x21b584,_0xff9b24['r'],_0xff9b24['g'],_0xff9b24['b'],_0xa87ea1)&&!this[_0x390302(0x489)][_0x390302(0x453)](this[_0x390302(0xbd1)][_0x21b584],_0xff9b24['r'],_0xff9b24['g'],_0xff9b24['b'],_0xa87ea1)&&(this[_0x390302(0x7df)][_0x21b584]=null);}['setDirectColor4'](_0x3a824,_0x712a3){var _0xc6c52f=_0x76a274;this[_0xc6c52f(0x916)](_0x3a824,_0x712a3['r'],_0x712a3['g'],_0x712a3['b'],_0x712a3['a'])&&!this['_engine'][_0xc6c52f(0x453)](this['_uniforms'][_0x3a824],_0x712a3['r'],_0x712a3['g'],_0x712a3['b'],_0x712a3['a'])&&(this[_0xc6c52f(0x7df)][_0x3a824]=null);}}},0x3177:(_0x41a203,_0x52e6b4,_0x19aa10)=>{var _0x58547f=a7_0x3304fb;_0x19aa10['d'](_0x52e6b4,{'o':()=>_0x5f24ad});class _0x5f24ad extends _0x19aa10(0x157cc)['r']{constructor(_0x4e8a64,_0x12632a,_0x572edd,_0x5d6d43){var _0x42978a=a7_0x4135;super(_0x4e8a64,_0x12632a,_0x572edd,_0x5d6d43),this[_0x42978a(0x54a)]=null,this['__framebufferDepthStencil']=null,this[_0x42978a(0x489)]=_0x5d6d43;}get[_0x58547f(0x86c)](){var _0x3fdc67=_0x58547f;return this[_0x3fdc67(0x54a)];}set[_0x58547f(0x86c)](_0x5dc87d){var _0x419cb7=_0x58547f;this[_0x419cb7(0x54a)]&&this[_0x419cb7(0x489)][_0x419cb7(0x7cc)](this[_0x419cb7(0x54a)]),this[_0x419cb7(0x54a)]=_0x5dc87d;}get[_0x58547f(0x243)](){return this['__framebufferDepthStencil'];}set[_0x58547f(0x243)](_0xb4ff73){var _0x27ca4a=_0x58547f;this[_0x27ca4a(0xa22)]&&this[_0x27ca4a(0x489)]['_releaseFramebufferObjects'](this[_0x27ca4a(0xa22)]),this['__framebufferDepthStencil']=_0xb4ff73;}[_0x58547f(0xb4b)](_0x2cf5d6=!0x1){var _0x50f9fa=_0x58547f;this[_0x50f9fa(0x86c)]=null,this['_framebufferDepthStencil']=null,super[_0x50f9fa(0xb4b)](_0x2cf5d6);}}},0xcd3c:(_0x522120,_0x4003aa,_0x48fc28)=>{var _0x313f77=a7_0x3304fb;_0x48fc28['d'](_0x4003aa,{'L':()=>_0x25b8b5});class _0x22bb13{constructor(){this['children']=[];}[_0x313f77(0x6aa)](_0x48c8fd){return!0x0;}[_0x313f77(0x41a)](_0x2e4726,_0x8b6b64){var _0xfa4767=_0x313f77;let _0x28b3c9='';if(this[_0xfa4767(0x8d4)]){let _0x51ba71=this[_0xfa4767(0x8d4)];const _0x575233=_0x8b6b64['processor'];if(_0x575233){_0x575233[_0xfa4767(0x3d6)]&&(_0x51ba71=_0x575233[_0xfa4767(0x3d6)](_0x51ba71,_0x8b6b64[_0xfa4767(0xb5c)],_0x8b6b64[_0xfa4767(0x8be)]));var _0x55521a=null!=(_0x55521a=null==(_0x55521a=_0x8b6b64[_0xfa4767(0x967)])?void 0x0:_0x55521a[_0xfa4767(0xa08)])?_0x55521a:_0xfa4767(0x854),_0x512206=_0x8b6b64[_0xfa4767(0xb5c)]&&null!=(_0x512206=_0x8b6b64[_0xfa4767(0x967)])&&_0x512206[_0xfa4767(0x1e2)]?null==(_0x512206=_0x8b6b64['processor'])?void 0x0:_0x512206[_0xfa4767(0x1e2)]:!_0x8b6b64[_0xfa4767(0xb5c)]&&null!=(_0x512206=_0x8b6b64[_0xfa4767(0x967)])&&_0x512206[_0xfa4767(0x609)]?null==(_0x512206=_0x8b6b64[_0xfa4767(0x967)])?void 0x0:_0x512206[_0xfa4767(0x609)]:'varying';if(!_0x8b6b64[_0xfa4767(0xb5c)]&&_0x575233[_0xfa4767(0x901)]&&this[_0xfa4767(0x8d4)][_0xfa4767(0xad6)](_0x55521a))_0x51ba71=_0x575233[_0xfa4767(0x901)](this[_0xfa4767(0x8d4)],_0x2e4726,_0x8b6b64['processingContext']);else{if(_0x575233['varyingProcessor']&&this['line'][_0xfa4767(0xad6)](_0x512206))_0x51ba71=_0x575233['varyingProcessor'](this[_0xfa4767(0x8d4)],_0x8b6b64[_0xfa4767(0xb5c)],_0x2e4726,_0x8b6b64[_0xfa4767(0x8be)]);else{if(_0x575233[_0xfa4767(0x82b)]&&_0x575233[_0xfa4767(0x408)]&&_0x575233['uniformRegexp'][_0xfa4767(0x529)](this[_0xfa4767(0x8d4)]))_0x8b6b64['lookForClosingBracketForUniformBuffer']||(_0x51ba71=_0x575233[_0xfa4767(0x82b)](this[_0xfa4767(0x8d4)],_0x8b6b64[_0xfa4767(0xb5c)],_0x2e4726,_0x8b6b64['processingContext']));else{if(_0x575233['uniformBufferProcessor']&&_0x575233['uniformBufferRegexp']&&_0x575233[_0xfa4767(0x352)][_0xfa4767(0x529)](this[_0xfa4767(0x8d4)]))_0x8b6b64[_0xfa4767(0x137)]||(_0x51ba71=_0x575233[_0xfa4767(0xa07)](this['line'],_0x8b6b64[_0xfa4767(0xb5c)],_0x8b6b64[_0xfa4767(0x8be)]),_0x8b6b64['lookForClosingBracketForUniformBuffer']=!0x0);else{if(_0x575233[_0xfa4767(0x770)]&&_0x575233[_0xfa4767(0xa38)]&&_0x575233['textureRegexp'][_0xfa4767(0x529)](this[_0xfa4767(0x8d4)]))_0x51ba71=_0x575233[_0xfa4767(0x770)](this[_0xfa4767(0x8d4)],_0x8b6b64[_0xfa4767(0xb5c)],_0x2e4726,_0x8b6b64[_0xfa4767(0x8be)]);else{if((_0x575233[_0xfa4767(0x82b)]||_0x575233[_0xfa4767(0xa07)])&&this['line']['startsWith'](_0xfa4767(0xbe1))&&!_0x8b6b64[_0xfa4767(0x137)]){const _0x38945a=/uniform\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/;_0x38945a[_0xfa4767(0x529)](this[_0xfa4767(0x8d4)])?_0x575233[_0xfa4767(0x82b)]&&(_0x51ba71=_0x575233[_0xfa4767(0x82b)](this['line'],_0x8b6b64[_0xfa4767(0xb5c)],_0x2e4726,_0x8b6b64[_0xfa4767(0x8be)])):_0x575233['uniformBufferProcessor']&&(_0x51ba71=_0x575233[_0xfa4767(0xa07)](this[_0xfa4767(0x8d4)],_0x8b6b64[_0xfa4767(0xb5c)],_0x8b6b64[_0xfa4767(0x8be)]),_0x8b6b64['lookForClosingBracketForUniformBuffer']=!0x0);}}}}}}_0x8b6b64[_0xfa4767(0x137)]&&-0x1!==this[_0xfa4767(0x8d4)][_0xfa4767(0xbd5)]('}')&&(_0x8b6b64[_0xfa4767(0x137)]=!0x1,_0x575233[_0xfa4767(0x5f7)]&&(_0x51ba71=_0x575233[_0xfa4767(0x5f7)](this[_0xfa4767(0x8d4)],_0x8b6b64[_0xfa4767(0xb5c)],_0x8b6b64[_0xfa4767(0x8be)])));}_0x28b3c9+=_0x51ba71+'\x0d\x0a';}return this[_0xfa4767(0x6d4)][_0xfa4767(0xa7c)](_0x500468=>{var _0x1a24e2=_0xfa4767;_0x28b3c9+=_0x500468[_0x1a24e2(0x41a)](_0x2e4726,_0x8b6b64);}),this[_0xfa4767(0x92f)]&&(_0x2e4726[this[_0xfa4767(0x92f)]]=this[_0xfa4767(0xb2f)]||_0xfa4767(0x2bb)),_0x28b3c9;}}class _0x5a40be{constructor(){var _0xcbc179=_0x313f77;this[_0xcbc179(0x744)]=[];}get['currentLine'](){var _0x499dad=_0x313f77;return this[_0x499dad(0x744)][this['lineIndex']];}get[_0x313f77(0xc6a)](){var _0x3ce9e2=_0x313f77;return this[_0x3ce9e2(0xa6f)]<this['_lines']['length']-0x1;}set['lines'](_0x52d1e4){var _0x5a8116=_0x313f77;this[_0x5a8116(0x744)][_0x5a8116(0x86f)]=0x0;for(const _0x7cd10a of _0x52d1e4)if('#'===_0x7cd10a[0x0])this[_0x5a8116(0x744)][_0x5a8116(0x725)](_0x7cd10a);else{if(_0x7cd10a[_0x5a8116(0xc8c)]()[_0x5a8116(0xad6)]('//'))this['_lines'][_0x5a8116(0x725)](_0x7cd10a);else{var _0x598104=_0x7cd10a[_0x5a8116(0x684)](';');for(let _0xc8751b=0x0;_0xc8751b<_0x598104['length'];_0xc8751b++){let _0x1eb8b7=_0x598104[_0xc8751b];(_0x1eb8b7=_0x1eb8b7[_0x5a8116(0xc8c)]())&&this[_0x5a8116(0x744)][_0x5a8116(0x725)](_0x1eb8b7+(_0xc8751b!==_0x598104['length']-0x1?';':''));}}}}}class _0xd4e756 extends _0x22bb13{[_0x313f77(0x41a)](_0x2cecbd,_0x5128da){var _0x1cd42c=_0x313f77;for(let _0x5d887a=0x0;_0x5d887a<this[_0x1cd42c(0x6d4)]['length'];_0x5d887a++){const _0x45e477=this[_0x1cd42c(0x6d4)][_0x5d887a];if(_0x45e477[_0x1cd42c(0x6aa)](_0x2cecbd))return _0x45e477[_0x1cd42c(0x41a)](_0x2cecbd,_0x5128da);}return'';}}class _0xb8dc1b extends _0x22bb13{[_0x313f77(0x6aa)](_0x22e6e8){var _0x6d0218=_0x313f77;return this[_0x6d0218(0x28e)][_0x6d0218(0xccd)](_0x22e6e8);}}class _0x5f1f2b{[_0x313f77(0xccd)](_0x4f10a3){return!0x0;}static[_0x313f77(0xaa4)](_0x328bf3){var _0x21354e=_0x313f77;const _0x2672fb=[];for(const _0xfa83 of _0x328bf3){var _0x515828,_0x10e293;void 0x0===_0x5f1f2b[_0x21354e(0x20f)][_0xfa83]?_0x2672fb['push'](_0xfa83):(_0x515828=_0x2672fb[_0x2672fb[_0x21354e(0x86f)]-0x1],_0x10e293=_0x2672fb[_0x2672fb[_0x21354e(0x86f)]-0x2],_0x2672fb[_0x21354e(0x86f)]-=0x2,_0x2672fb[_0x21354e(0x725)]('('+_0x10e293+_0xfa83+_0x515828+')'));}return _0x2672fb[_0x2672fb['length']-0x1];}static[_0x313f77(0x62e)](_0x3d92c4){var _0x292324=_0x313f77;const _0x4f3889=[];let _0x3cdb3e=-0x1;var _0x5059aa=()=>{var _0x320319=a7_0x4135;''!==(_0x3f137a=_0x3f137a[_0x320319(0xc8c)]())&&(_0x4f3889[_0x320319(0x725)](_0x3f137a),_0x3f137a='');},_0x3ef36e=_0x4f73aa=>{var _0x357d61=a7_0x4135;_0x3cdb3e<_0x5f1f2b['_Stack'][_0x357d61(0x86f)]-0x1&&(_0x5f1f2b[_0x357d61(0xbf6)][++_0x3cdb3e]=_0x4f73aa);},_0xff9928=()=>_0x5f1f2b[_0x292324(0xbf6)][_0x3cdb3e],_0x6f4874=()=>-0x1===_0x3cdb3e?_0x292324(0x2bd):_0x5f1f2b[_0x292324(0xbf6)][_0x3cdb3e--];let _0x506b0d=0x0,_0x3f137a='';for(;_0x506b0d<_0x3d92c4['length'];){var _0x5e093e=_0x3d92c4[_0x292324(0x691)](_0x506b0d),_0x4b5551=_0x506b0d<_0x3d92c4['length']-0x1?_0x3d92c4[_0x292324(0x804)](_0x506b0d,0x2):'';if('('===_0x5e093e)_0x3f137a='',_0x3ef36e(_0x5e093e);else{if(')'===_0x5e093e){for(_0x5059aa();-0x1!==_0x3cdb3e&&'('!==_0xff9928();)_0x4f3889[_0x292324(0x725)](_0x6f4874());_0x6f4874();}else{if(0x1<_0x5f1f2b[_0x292324(0x20f)][_0x4b5551]){for(_0x5059aa();-0x1!==_0x3cdb3e&&_0x5f1f2b[_0x292324(0x20f)][_0xff9928()]>=_0x5f1f2b['_OperatorPriority'][_0x4b5551];)_0x4f3889[_0x292324(0x725)](_0x6f4874());_0x3ef36e(_0x4b5551),_0x506b0d++;}else _0x3f137a+=_0x5e093e;}}_0x506b0d++;}for(_0x5059aa();-0x1!==_0x3cdb3e;)'('===_0xff9928()?_0x6f4874():_0x4f3889['push'](_0x6f4874());return _0x4f3889;}}_0x5f1f2b[_0x313f77(0x20f)]={')':0x0,'(':0x1,'||':0x2,'&&':0x3},_0x5f1f2b[_0x313f77(0xbf6)]=['','','','','','','','','','','','','','','','','','','',''];class _0x42084d extends _0x5f1f2b{constructor(_0x3e1811,_0x4d19d0=!0x1){var _0x229843=_0x313f77;super(),this[_0x229843(0x619)]=_0x3e1811,this[_0x229843(0xc23)]=_0x4d19d0;}[_0x313f77(0xccd)](_0x420e55){var _0x3ad11c=_0x313f77;let _0x29ad38=void 0x0!==_0x420e55[this['define']];return _0x29ad38=this[_0x3ad11c(0xc23)]?!_0x29ad38:_0x29ad38;}}class _0x4903b2 extends _0x5f1f2b{['isTrue'](_0x59d428){var _0x167d48=_0x313f77;return this['leftOperand'][_0x167d48(0xccd)](_0x59d428)||this[_0x167d48(0xc75)][_0x167d48(0xccd)](_0x59d428);}}class _0x492071 extends _0x5f1f2b{[_0x313f77(0xccd)](_0x1bda2a){var _0x301bfe=_0x313f77;return this[_0x301bfe(0xa58)][_0x301bfe(0xccd)](_0x1bda2a)&&this[_0x301bfe(0xc75)]['isTrue'](_0x1bda2a);}}class _0x486b50 extends _0x5f1f2b{constructor(_0x3a9a85,_0x3c5b15,_0xf7b94c){var _0x5ec1bc=_0x313f77;super(),this[_0x5ec1bc(0x619)]=_0x3a9a85,this['operand']=_0x3c5b15,this[_0x5ec1bc(0x962)]=_0xf7b94c;}['isTrue'](_0x2d64f1){var _0x28be87=_0x313f77;let _0x43b7f2=_0x2d64f1[this[_0x28be87(0x619)]],_0x4adf25=(void 0x0===_0x43b7f2&&(_0x43b7f2=this[_0x28be87(0x619)]),!0x1);var _0x1f1852=parseInt(_0x43b7f2),_0x1073ec=parseInt(this[_0x28be87(0x962)]);switch(this[_0x28be87(0x65e)]){case'>':_0x4adf25=_0x1073ec<_0x1f1852;break;case'<':_0x4adf25=_0x1f1852<_0x1073ec;break;case'<=':_0x4adf25=_0x1f1852<=_0x1073ec;break;case'>=':_0x4adf25=_0x1073ec<=_0x1f1852;break;case'==':_0x4adf25=_0x1f1852===_0x1073ec;}return _0x4adf25;}}var _0x3bc5bc=_0x48fc28(0x8baf),_0x5645df=_0x48fc28(0x12658);const _0x56fade=/defined\s*?\((.+?)\)/g,_0x1b2af0=/defined\s*?\[(.+?)\]/g,_0x24f4e2=/#include\s?<(.+)>(\((.*)\))*(\[(.*)\])*/g;class _0x25b8b5{static['Initialize'](_0x5b379c){var _0x46215d=_0x313f77;_0x5b379c[_0x46215d(0x967)]&&_0x5b379c[_0x46215d(0x967)][_0x46215d(0x9d6)]&&_0x5b379c[_0x46215d(0x967)][_0x46215d(0x9d6)](_0x5b379c[_0x46215d(0x8be)]);}static[_0x313f77(0x60c)](_0x5e0a4f,_0x25a5a6,_0x3a2743,_0x2f7ad2){var _0x161bab=_0x313f77,_0x387ccd;null!=(_0x387ccd=_0x25a5a6[_0x161bab(0x967)])&&_0x387ccd[_0x161bab(0x458)]&&(_0x5e0a4f=_0x25a5a6[_0x161bab(0x967)]['preProcessShaderCode'](_0x5e0a4f,_0x25a5a6['isFragment'])),this[_0x161bab(0x2ac)](_0x5e0a4f,_0x25a5a6,_0x203306=>{var _0x1cde41=_0x161bab;_0x25a5a6[_0x1cde41(0x554)]&&(_0x203306=_0x25a5a6['processCodeAfterIncludes'](_0x25a5a6['isFragment']?_0x1cde41(0x20e):_0x1cde41(0x6ca),_0x203306));var _0x53bed5=this[_0x1cde41(0x95f)](_0x203306,_0x25a5a6,_0x2f7ad2);_0x3a2743(_0x53bed5,_0x203306);});}static['PreProcess'](_0x2f3aae,_0x3da8b8,_0x14669a,_0x341fff){var _0x90789f=_0x313f77,_0xb98b2c;null!=(_0xb98b2c=_0x3da8b8['processor'])&&_0xb98b2c[_0x90789f(0x458)]&&(_0x2f3aae=_0x3da8b8[_0x90789f(0x967)]['preProcessShaderCode'](_0x2f3aae,_0x3da8b8[_0x90789f(0xb5c)])),this[_0x90789f(0x2ac)](_0x2f3aae,_0x3da8b8,_0x15b311=>{var _0x4c0594=_0x90789f;_0x3da8b8[_0x4c0594(0x554)]&&(_0x15b311=_0x3da8b8['processCodeAfterIncludes'](_0x3da8b8[_0x4c0594(0xb5c)]?'fragment':_0x4c0594(0x6ca),_0x15b311));var _0x3d7e78=this[_0x4c0594(0x24e)](_0x15b311,_0x3da8b8,_0x341fff);_0x14669a(_0x3d7e78,_0x15b311);});}static[_0x313f77(0x45d)](_0x297c06,_0x5e4f46,_0x5ec560){var _0x25797e=_0x313f77;return _0x5ec560[_0x25797e(0x967)]&&_0x5ec560[_0x25797e(0x967)][_0x25797e(0xc88)]?_0x5ec560[_0x25797e(0x967)]['finalizeShaders'](_0x297c06,_0x5e4f46,_0x5ec560['processingContext']):{'vertexCode':_0x297c06,'fragmentCode':_0x5e4f46};}static[_0x313f77(0x2c2)](_0x498ce6,_0x593745){var _0x1b6b14=_0x313f77;if(null!=(_0x32c0da=_0x593745['processor'])&&_0x32c0da['noPrecision'])return _0x498ce6;var _0x32c0da=_0x593745[_0x1b6b14(0x6bf)];return-0x1===_0x498ce6['indexOf'](_0x1b6b14(0x8ab))?_0x498ce6=_0x32c0da?'precision\x20highp\x20float;\x0a'+_0x498ce6:_0x1b6b14(0xac8)+_0x498ce6:_0x32c0da||(_0x498ce6=_0x498ce6['replace']('precision\x20highp\x20float',_0x1b6b14(0x444))),_0x498ce6;}static[_0x313f77(0x375)](_0x267281){var _0x1a3109=_0x313f77;const _0x4aa7fc=/defined\((.+)\)/[_0x1a3109(0x922)](_0x267281);if(_0x4aa7fc&&_0x4aa7fc[_0x1a3109(0x86f)])return new _0x42084d(_0x4aa7fc[0x1]['trim'](),'!'===_0x267281[0x0]);let _0x4bca86='',_0x386e58=0x0;for(_0x4bca86 of['==','>=','<=','<','>'])if(-0x1<(_0x386e58=_0x267281['indexOf'](_0x4bca86)))break;if(-0x1===_0x386e58)return new _0x42084d(_0x267281);var _0x15ab04=_0x267281['substring'](0x0,_0x386e58)[_0x1a3109(0xc8c)](),_0x1f38c6=_0x267281[_0x1a3109(0x563)](_0x386e58+_0x4bca86['length'])[_0x1a3109(0xc8c)]();return new _0x486b50(_0x15ab04,_0x4bca86,_0x1f38c6);}static[_0x313f77(0xad5)](_0x2368d5){var _0x1ed613=_0x313f77;_0x2368d5=_0x2368d5['replace'](_0x56fade,_0x1ed613(0x91f));const _0xdc63a3=[];for(const _0xc0ba86 of _0x5f1f2b[_0x1ed613(0x62e)](_0x2368d5))if('||'!==_0xc0ba86&&'&&'!==_0xc0ba86)_0xdc63a3[_0x1ed613(0x725)](_0xc0ba86);else{if(0x2<=_0xdc63a3['length']){let _0x4575b3=_0xdc63a3[_0xdc63a3[_0x1ed613(0x86f)]-0x1],_0x563bad=_0xdc63a3[_0xdc63a3[_0x1ed613(0x86f)]-0x2];_0xdc63a3[_0x1ed613(0x86f)]-=0x2;const _0x303779=new('&&'==_0xc0ba86?_0x492071:_0x4903b2)();'string'==typeof _0x4575b3&&(_0x4575b3=_0x4575b3['replace'](_0x1b2af0,'defined($1)')),_0x1ed613(0x982)==typeof _0x563bad&&(_0x563bad=_0x563bad[_0x1ed613(0x89b)](_0x1b2af0,_0x1ed613(0x8bb))),_0x303779['leftOperand']=_0x1ed613(0x982)==typeof _0x563bad?this[_0x1ed613(0x375)](_0x563bad):_0x563bad,_0x303779[_0x1ed613(0xc75)]=_0x1ed613(0x982)==typeof _0x4575b3?this[_0x1ed613(0x375)](_0x4575b3):_0x4575b3,_0xdc63a3[_0x1ed613(0x725)](_0x303779);}}let _0x40ab74=_0xdc63a3[_0xdc63a3['length']-0x1];return'string'==typeof(_0x40ab74=_0x1ed613(0x982)==typeof _0x40ab74?_0x40ab74[_0x1ed613(0x89b)](_0x1b2af0,_0x1ed613(0x8bb)):_0x40ab74)?this[_0x1ed613(0x375)](_0x40ab74):_0x40ab74;}static[_0x313f77(0x24f)](_0x19cb15,_0x4a4fd5){var _0x598f65=_0x313f77;const _0x49a761=new _0xb8dc1b();var _0x35f83c=_0x19cb15[_0x598f65(0x563)](0x0,_0x4a4fd5);let _0x24c7de=_0x19cb15['substring'](_0x4a4fd5);return _0x24c7de=_0x24c7de[_0x598f65(0x563)](0x0,(_0x24c7de['indexOf']('//')+0x1||_0x24c7de[_0x598f65(0x86f)]+0x1)-0x1)[_0x598f65(0xc8c)](),_0x49a761[_0x598f65(0x28e)]=_0x598f65(0x1d7)===_0x35f83c?new _0x42084d(_0x24c7de):'#ifndef'===_0x35f83c?new _0x42084d(_0x24c7de,!0x0):this[_0x598f65(0xad5)](_0x24c7de),_0x49a761;}static[_0x313f77(0x80f)](_0x47fcd7,_0x4987f1,_0x317c1f){var _0xe19912=_0x313f77;let _0x100670=_0x47fcd7[_0xe19912(0x80d)];for(;this['_MoveCursor'](_0x47fcd7,_0x317c1f);){var _0x4edd4b,_0x40fe81=(_0x100670=_0x47fcd7[_0xe19912(0x80d)])['substring'](0x0,0x5)[_0xe19912(0x3c8)]();if(_0xe19912(0xaea)===_0x40fe81)return _0x4edd4b=new _0x22bb13(),_0x4987f1[_0xe19912(0x6d4)][_0xe19912(0x725)](_0x4edd4b),void this[_0xe19912(0x624)](_0x47fcd7,_0x4edd4b);_0xe19912(0xae8)===_0x40fe81&&(_0x4edd4b=this[_0xe19912(0x24f)](_0x100670,0x5),_0x4987f1['children'][_0xe19912(0x725)](_0x4edd4b),_0x317c1f=_0x4edd4b);}}static[_0x313f77(0x624)](_0x5bceb2,_0xac071e){var _0x350e1e=_0x313f77;for(;_0x5bceb2['canRead'];){_0x5bceb2['lineIndex']++;const _0x18a734=_0x5bceb2[_0x350e1e(0x80d)],_0x572366=/(#ifdef)|(#else)|(#elif)|(#endif)|(#ifndef)|(#if)/;var _0x1a4205=_0x572366['exec'](_0x18a734);if(_0x1a4205&&_0x1a4205[_0x350e1e(0x86f)])switch(_0x1a4205[0x0]){case _0x350e1e(0x1d7):{const _0x31ed67=new _0xd4e756();_0xac071e[_0x350e1e(0x6d4)]['push'](_0x31ed67);var _0x45843a=this[_0x350e1e(0x24f)](_0x18a734,0x6);_0x31ed67[_0x350e1e(0x6d4)][_0x350e1e(0x725)](_0x45843a),this[_0x350e1e(0x80f)](_0x5bceb2,_0x31ed67,_0x45843a);break;}case _0x350e1e(0xaea):case _0x350e1e(0xae8):return!0x0;case _0x350e1e(0x45e):return!0x1;case _0x350e1e(0x531):{const _0xb157ba=new _0xd4e756();_0xac071e[_0x350e1e(0x6d4)][_0x350e1e(0x725)](_0xb157ba),_0x45843a=this[_0x350e1e(0x24f)](_0x18a734,0x7),(_0xb157ba[_0x350e1e(0x6d4)]['push'](_0x45843a),this[_0x350e1e(0x80f)](_0x5bceb2,_0xb157ba,_0x45843a));break;}case'#if':{const _0x545a6f=new _0xd4e756();var _0x1206a9=this[_0x350e1e(0x24f)](_0x18a734,0x3);_0xac071e['children'][_0x350e1e(0x725)](_0x545a6f),_0x545a6f[_0x350e1e(0x6d4)][_0x350e1e(0x725)](_0x1206a9),this[_0x350e1e(0x80f)](_0x5bceb2,_0x545a6f,_0x1206a9);break;}}else{const _0x3caa01=new _0x22bb13();_0x3caa01[_0x350e1e(0x8d4)]=_0x18a734,_0xac071e[_0x350e1e(0x6d4)][_0x350e1e(0x725)](_0x3caa01),'#'===_0x18a734[0x0]&&'d'===_0x18a734[0x1]&&(_0x1a4205=_0x18a734['replace'](';','')[_0x350e1e(0x684)]('\x20'),_0x3caa01['additionalDefineKey']=_0x1a4205[0x1],0x3===_0x1a4205[_0x350e1e(0x86f)]&&(_0x3caa01[_0x350e1e(0xb2f)]=_0x1a4205[0x2]));}}return!0x1;}static[_0x313f77(0x56d)](_0x50a2bc,_0xf367fe,_0x5a4fea){var _0x1e53c2=_0x313f77;const _0x5dfb9d=new _0x22bb13(),_0x1d99a5=new _0x5a40be();return _0x1d99a5[_0x1e53c2(0xa6f)]=-0x1,_0x1d99a5[_0x1e53c2(0x12c)]=_0x50a2bc[_0x1e53c2(0x684)]('\x0a'),this[_0x1e53c2(0x624)](_0x1d99a5,_0x5dfb9d),_0x5dfb9d[_0x1e53c2(0x41a)](_0xf367fe,_0x5a4fea);}static['_PreparePreProcessors'](_0x2e102d,_0x7a5f1b){var _0x4d92b5=_0x313f77,_0x5a1768;const _0x423474={};for(const _0x69bc4a of _0x2e102d[_0x4d92b5(0x909)]){const _0x1b16e2=_0x69bc4a[_0x4d92b5(0x89b)](_0x4d92b5(0x5c3),'')[_0x4d92b5(0x89b)](';','')[_0x4d92b5(0xc8c)]();var _0x5ed34e=_0x1b16e2[_0x4d92b5(0x684)]('\x20');_0x423474[_0x5ed34e[0x0]]=0x1<_0x5ed34e['length']?_0x5ed34e[0x1]:'';}return(null==(_0x5a1768=_0x2e102d[_0x4d92b5(0x967)])?void 0x0:_0x5a1768['shaderLanguage'])===_0x5645df['x'][_0x4d92b5(0xcea)]&&(_0x423474[_0x4d92b5(0x915)]=_0x4d92b5(0x2bb)),_0x423474['__VERSION__']=_0x2e102d[_0x4d92b5(0xc00)],_0x423474[_0x2e102d['platformName']]=_0x4d92b5(0x2bb),_0x7a5f1b['_getGlobalDefines'](_0x423474),_0x423474;}static['_ProcessShaderConversion'](_0x2308f1,_0x48411b,_0x55b2f6){var _0x4e28b2=_0x313f77;let _0x14e3cb=this[_0x4e28b2(0x2c2)](_0x2308f1,_0x48411b);if(!_0x48411b[_0x4e28b2(0x967)])return _0x14e3cb;if(_0x48411b[_0x4e28b2(0x967)][_0x4e28b2(0xbb5)]===_0x5645df['x']['GLSL']&&-0x1!==_0x14e3cb[_0x4e28b2(0xbd5)]('#version\x203')&&(_0x14e3cb=_0x14e3cb[_0x4e28b2(0x89b)](_0x4e28b2(0x7b6),''),!_0x48411b['processor']['parseGLES3']))return _0x14e3cb;var _0x2308f1=_0x48411b[_0x4e28b2(0x909)],_0x144e51=this['_PreparePreProcessors'](_0x48411b,_0x55b2f6);return _0x48411b[_0x4e28b2(0x967)][_0x4e28b2(0xc02)]&&(_0x14e3cb=_0x48411b[_0x4e28b2(0x967)][_0x4e28b2(0xc02)](_0x14e3cb,_0x2308f1,_0x48411b[_0x4e28b2(0xb5c)],_0x48411b[_0x4e28b2(0x8be)])),_0x14e3cb=this[_0x4e28b2(0x56d)](_0x14e3cb,_0x144e51,_0x48411b),_0x48411b[_0x4e28b2(0x967)][_0x4e28b2(0x13f)]&&(_0x14e3cb=_0x48411b['processor'][_0x4e28b2(0x13f)](_0x14e3cb,_0x2308f1,_0x48411b['isFragment'],_0x48411b['processingContext'],_0x55b2f6)),_0x14e3cb=_0x55b2f6[_0x4e28b2(0x799)][_0x4e28b2(0x5f8)]?_0x55b2f6[_0x4e28b2(0x360)](_0x14e3cb):_0x14e3cb;}static['_ApplyPreProcessing'](_0x5059f9,_0x3694e2,_0x1df43f){var _0x4d2950=_0x313f77,_0x1b4ce5;let _0x24ab3d=_0x5059f9;var _0x5059f9=_0x3694e2['defines'],_0x2b289e=this[_0x4d2950(0x83c)](_0x3694e2,_0x1df43f);return null!=(_0x1b4ce5=_0x3694e2[_0x4d2950(0x967)])&&_0x1b4ce5[_0x4d2950(0xc02)]&&(_0x24ab3d=_0x3694e2[_0x4d2950(0x967)][_0x4d2950(0xc02)](_0x24ab3d,_0x5059f9,_0x3694e2[_0x4d2950(0xb5c)],_0x3694e2['processingContext'])),_0x24ab3d=this[_0x4d2950(0x56d)](_0x24ab3d,_0x2b289e,_0x3694e2),null!=(_0x1b4ce5=_0x3694e2[_0x4d2950(0x967)])&&_0x1b4ce5[_0x4d2950(0x13f)]&&(_0x24ab3d=_0x3694e2[_0x4d2950(0x967)][_0x4d2950(0x13f)](_0x24ab3d,_0x5059f9,_0x3694e2[_0x4d2950(0xb5c)],_0x3694e2[_0x4d2950(0x8be)],_0x1df43f)),_0x24ab3d=_0x1df43f[_0x4d2950(0x799)][_0x4d2950(0x5f8)]?_0x1df43f[_0x4d2950(0x360)](_0x24ab3d):_0x24ab3d;}static[_0x313f77(0x2ac)](_0x215096,_0x40dd3d,_0x5393f3){var _0x1cf450=_0x313f77;let _0x4a480e=_0x24f4e2[_0x1cf450(0x922)](_0x215096),_0x39a953=new String(_0x215096),_0x350af8=!0x1;for(;null!=_0x4a480e;){let _0x3aa562=_0x4a480e[0x1];if(-0x1!==_0x3aa562[_0x1cf450(0xbd5)](_0x1cf450(0x113))&&(_0x3aa562=_0x3aa562[_0x1cf450(0x89b)](/__decl__/,''),_0x40dd3d[_0x1cf450(0x1e3)]&&(_0x3aa562=(_0x3aa562=_0x3aa562['replace'](/Vertex/,_0x1cf450(0x8f3)))[_0x1cf450(0x89b)](/Fragment/,_0x1cf450(0x8f3))),_0x3aa562+='Declaration'),!_0x40dd3d[_0x1cf450(0x10f)][_0x3aa562])return _0x204b5e=_0x40dd3d['shadersRepository']+'ShadersInclude/'+_0x3aa562+_0x1cf450(0x41c),void _0x25b8b5[_0x1cf450(0x82e)](_0x204b5e,_0x18a57c=>{var _0x7c0460=_0x1cf450;_0x40dd3d[_0x7c0460(0x10f)][_0x3aa562]=_0x18a57c,this[_0x7c0460(0x2ac)](_0x39a953,_0x40dd3d,_0x5393f3);});{let _0x146757=_0x40dd3d['includesShadersStore'][_0x3aa562];if(_0x4a480e[0x2]){var _0x4f643e=_0x4a480e[0x3]['split'](',');for(let _0x1f2a6d=0x0;_0x1f2a6d<_0x4f643e['length'];_0x1f2a6d+=0x2){var _0xc989dc=new RegExp(_0x4f643e[_0x1f2a6d],'g'),_0xae9118=_0x4f643e[_0x1f2a6d+0x1];_0x146757=_0x146757['replace'](_0xc989dc,_0xae9118);}}if(_0x4a480e[0x4]){const _0x27b693=_0x4a480e[0x5];if(-0x1!==_0x27b693[_0x1cf450(0xbd5)]('..')){var _0x204b5e=_0x27b693[_0x1cf450(0x684)]('..'),_0x581445=parseInt(_0x204b5e[0x0]);let _0x297d4b=parseInt(_0x204b5e[0x1]),_0x45ea03=_0x146757[_0x1cf450(0x732)](0x0);_0x146757='',isNaN(_0x297d4b)&&(_0x297d4b=_0x40dd3d[_0x1cf450(0xadc)][_0x204b5e[0x1]]);for(let _0x12e42f=_0x581445;_0x12e42f<_0x297d4b;_0x12e42f++)_0x40dd3d[_0x1cf450(0x1e3)]||(_0x45ea03=_0x45ea03[_0x1cf450(0x89b)](/light\{X\}.(\w*)/g,(_0x64d76b,_0x13875e)=>_0x13875e+'{X}')),_0x146757+=_0x45ea03[_0x1cf450(0x89b)](/\{X\}/g,_0x12e42f[_0x1cf450(0x9b5)]())+'\x0a';}else _0x146757=(_0x146757=_0x40dd3d[_0x1cf450(0x1e3)]?_0x146757:_0x146757['replace'](/light\{X\}.(\w*)/g,(_0x533f0d,_0x3877a9)=>_0x3877a9+_0x1cf450(0x864)))['replace'](/\{X\}/g,_0x27b693);}_0x39a953=_0x39a953[_0x1cf450(0x89b)](_0x4a480e[0x0],_0x146757),_0x350af8=_0x350af8||0x0<=_0x146757[_0x1cf450(0xbd5)](_0x1cf450(0x139))||0x0<=_0x146757[_0x1cf450(0xbd5)](_0x1cf450(0x932));}_0x4a480e=_0x24f4e2[_0x1cf450(0x922)](_0x215096);}_0x350af8?this[_0x1cf450(0x2ac)](_0x39a953[_0x1cf450(0x9b5)](),_0x40dd3d,_0x5393f3):_0x5393f3(_0x39a953);}static[_0x313f77(0x82e)](_0xa196c9,_0x5db8c9,_0xa81a24,_0x1fc5d4,_0x11717d,_0x251997){throw(0x0,_0x3bc5bc['S'])('FileTools');}}},0x8e9:(_0x8e1d6c,_0xe62fe7,_0x393d60)=>{var _0xee52b2=a7_0x3304fb;_0x393d60['d'](_0xe62fe7,{'B':()=>_0x277ac7});class _0x277ac7{constructor(_0x48ea89=null,_0x27bebe){var _0x75907f=a7_0x4135;if(this[_0x75907f(0x8db)]=null,this[_0x75907f(0x6bd)]=_0x27bebe,!_0x48ea89&&!(_0x48ea89=_0x27bebe['createTexture']()))throw new Error('Unable\x20to\x20create\x20webGL\x20texture');this[_0x75907f(0x6c1)](_0x48ea89);}get[_0xee52b2(0x913)](){var _0x17f1fd=_0xee52b2;return this[_0x17f1fd(0x51a)];}[_0xee52b2(0x58c)](){}[_0xee52b2(0x6c1)](_0x39dda8){var _0x2b6a4f=_0xee52b2;this[_0x2b6a4f(0x51a)]=_0x39dda8;}['reset'](){var _0x57c5d6=_0xee52b2;this[_0x57c5d6(0x51a)]=null,this[_0x57c5d6(0x8db)]=null;}[_0xee52b2(0xb65)](_0x33d620){var _0x5d33d9=_0xee52b2;this[_0x5d33d9(0x8db)]||(this[_0x5d33d9(0x8db)]=[]),this[_0x5d33d9(0x8db)][_0x5d33d9(0x725)](_0x33d620);}[_0xee52b2(0xc9d)](){var _0xac5e73=_0xee52b2;if(this[_0xac5e73(0x8db)]){for(const _0x38af1a of this[_0xac5e73(0x8db)])this['_context'][_0xac5e73(0xc33)](_0x38af1a);this[_0xac5e73(0x8db)]=null;}}[_0xee52b2(0x27b)](){var _0x237513=_0xee52b2;this[_0x237513(0xc9d)](),this[_0x237513(0x51a)]&&this['_context'][_0x237513(0x182)](this[_0x237513(0x51a)]),this[_0x237513(0x4ac)]();}}},0x17367:(_0x129e4,_0x5e119b,_0x216bb7)=>{var _0x25c482=a7_0x3304fb;_0x216bb7['d'](_0x5e119b,{'y':()=>_0xba848c});class _0xba848c{constructor(){var _0x361f0d=a7_0x4135;this[_0x361f0d(0x7df)]={},this[_0x361f0d(0x4bc)]=null,this[_0x361f0d(0x8e8)]=null,this[_0x361f0d(0x912)]=null,this['programValidationError']=null;}get[_0x25c482(0x43e)](){var _0x28903c=_0x25c482;return this[_0x28903c(0x31a)];}get[_0x25c482(0x3f1)](){var _0x395a31=_0x25c482;return!!this[_0x395a31(0x60e)]&&(!this[_0x395a31(0x31a)]||this[_0x395a31(0x74a)][_0x395a31(0x545)](this));}[_0x25c482(0x717)](_0x1e6637){var _0x102a0a=_0x25c482;_0x1e6637&&this[_0x102a0a(0x60e)]&&_0x1e6637(this[_0x102a0a(0x60e)]);}[_0x25c482(0x140)](_0x52c899,_0x5be96e,_0x59bf2d,_0x1b47af,_0x43514d,_0xd38852,_0x2490aa,_0xddc587){var _0x5757ac=_0x25c482;const _0x339b55=this[_0x5757ac(0x74a)];if(_0x339b55[_0x5757ac(0x1e3)]){for(const _0x3773e0 in _0x5be96e)_0x52c899[_0x5757ac(0x890)](_0x3773e0,_0x5be96e[_0x3773e0]);}const _0x5a998f=this[_0x5757ac(0x74a)][_0x5757ac(0xb48)](this,_0x59bf2d);_0x5a998f['forEach']((_0x5c5368,_0x4b1296)=>{_0x1b47af[_0x59bf2d[_0x4b1296]]=_0x5c5368;}),this[_0x5757ac(0xbd1)]=_0x1b47af;let _0x5c3db0;for(_0x5c3db0=0x0;_0x5c3db0<_0x43514d[_0x5757ac(0x86f)];_0x5c3db0++)null==_0x52c899[_0x5757ac(0x527)](_0x43514d[_0x5c3db0])&&(_0x43514d[_0x5757ac(0x6a0)](_0x5c3db0,0x1),_0x5c3db0--);_0x43514d[_0x5757ac(0xa7c)]((_0x3b0466,_0x82b939)=>{_0xd38852[_0x3b0466]=_0x82b939;});for(const _0x3f0735 of _0x339b55[_0x5757ac(0xa81)](this,_0x2490aa))_0xddc587['push'](_0x3f0735);}[_0x25c482(0xb4b)](){var _0x1130f4=_0x25c482;this[_0x1130f4(0xbd1)]={};}['_cacheMatrix'](_0x33861b,_0x35fdbf){var _0x345cbe=_0x25c482,_0x3f1689=this['_valueCache'][_0x33861b],_0x35fdbf=_0x35fdbf[_0x345cbe(0xcde)];return(void 0x0===_0x3f1689||_0x3f1689!==_0x35fdbf)&&(this[_0x345cbe(0x7df)][_0x33861b]=_0x35fdbf,!0x0);}[_0x25c482(0x270)](_0x1f6c9c,_0x4f2f46,_0x5bb431){var _0x45cfda=_0x25c482;let _0xb90b8a=this['_valueCache'][_0x1f6c9c];if(!_0xb90b8a||0x2!==_0xb90b8a['length'])return _0xb90b8a=[_0x4f2f46,_0x5bb431],this[_0x45cfda(0x7df)][_0x1f6c9c]=_0xb90b8a,!0x0;let _0x29fc5d=!0x1;return _0xb90b8a[0x0]!==_0x4f2f46&&(_0xb90b8a[0x0]=_0x4f2f46,_0x29fc5d=!0x0),_0xb90b8a[0x1]!==_0x5bb431&&(_0xb90b8a[0x1]=_0x5bb431,_0x29fc5d=!0x0),_0x29fc5d;}[_0x25c482(0x127)](_0x44c1ab,_0x5ab006,_0x480563,_0x4e10ca){var _0x18bc2e=_0x25c482;let _0x3f7d4b=this[_0x18bc2e(0x7df)][_0x44c1ab];if(!_0x3f7d4b||0x3!==_0x3f7d4b[_0x18bc2e(0x86f)])return _0x3f7d4b=[_0x5ab006,_0x480563,_0x4e10ca],this[_0x18bc2e(0x7df)][_0x44c1ab]=_0x3f7d4b,!0x0;let _0x47c436=!0x1;return _0x3f7d4b[0x0]!==_0x5ab006&&(_0x3f7d4b[0x0]=_0x5ab006,_0x47c436=!0x0),_0x3f7d4b[0x1]!==_0x480563&&(_0x3f7d4b[0x1]=_0x480563,_0x47c436=!0x0),_0x3f7d4b[0x2]!==_0x4e10ca&&(_0x3f7d4b[0x2]=_0x4e10ca,_0x47c436=!0x0),_0x47c436;}['_cacheFloat4'](_0x308666,_0x10367e,_0x55ce8c,_0x2ed645,_0x2a82c0){var _0x3e59c0=_0x25c482;let _0x2c0087=this[_0x3e59c0(0x7df)][_0x308666];if(!_0x2c0087||0x4!==_0x2c0087['length'])return _0x2c0087=[_0x10367e,_0x55ce8c,_0x2ed645,_0x2a82c0],this[_0x3e59c0(0x7df)][_0x308666]=_0x2c0087,!0x0;let _0x5a93d3=!0x1;return _0x2c0087[0x0]!==_0x10367e&&(_0x2c0087[0x0]=_0x10367e,_0x5a93d3=!0x0),_0x2c0087[0x1]!==_0x55ce8c&&(_0x2c0087[0x1]=_0x55ce8c,_0x5a93d3=!0x0),_0x2c0087[0x2]!==_0x2ed645&&(_0x2c0087[0x2]=_0x2ed645,_0x5a93d3=!0x0),_0x2c0087[0x3]!==_0x2a82c0&&(_0x2c0087[0x3]=_0x2a82c0,_0x5a93d3=!0x0),_0x5a93d3;}[_0x25c482(0x213)](_0x8deb3a,_0x3035b3){var _0x13a53a=_0x25c482,_0x95d012=this[_0x13a53a(0x7df)][_0x8deb3a];void 0x0!==_0x95d012&&_0x95d012===_0x3035b3||this[_0x13a53a(0x74a)][_0x13a53a(0x213)](this['_uniforms'][_0x8deb3a],_0x3035b3)&&(this[_0x13a53a(0x7df)][_0x8deb3a]=_0x3035b3);}['setInt2'](_0x2dc909,_0x2a1a35,_0x2e1717){var _0x40ff5a=_0x25c482;this[_0x40ff5a(0x270)](_0x2dc909,_0x2a1a35,_0x2e1717)&&!this['engine']['setInt2'](this[_0x40ff5a(0xbd1)][_0x2dc909],_0x2a1a35,_0x2e1717)&&(this[_0x40ff5a(0x7df)][_0x2dc909]=null);}[_0x25c482(0x326)](_0x394fc0,_0x3dd626,_0x2df532,_0x3c6c38){var _0x52e46a=_0x25c482;this[_0x52e46a(0x127)](_0x394fc0,_0x3dd626,_0x2df532,_0x3c6c38)&&!this[_0x52e46a(0x74a)][_0x52e46a(0x326)](this['_uniforms'][_0x394fc0],_0x3dd626,_0x2df532,_0x3c6c38)&&(this['_valueCache'][_0x394fc0]=null);}[_0x25c482(0x2db)](_0x1fed83,_0x5df83a,_0x512f14,_0xffa3e3,_0x572fe3){var _0x13d553=_0x25c482;this[_0x13d553(0x916)](_0x1fed83,_0x5df83a,_0x512f14,_0xffa3e3,_0x572fe3)&&!this[_0x13d553(0x74a)][_0x13d553(0x2db)](this[_0x13d553(0xbd1)][_0x1fed83],_0x5df83a,_0x512f14,_0xffa3e3,_0x572fe3)&&(this[_0x13d553(0x7df)][_0x1fed83]=null);}[_0x25c482(0x58f)](_0x5c09df,_0x4b2992){var _0xd4af91=_0x25c482;this[_0xd4af91(0x7df)][_0x5c09df]=null,this[_0xd4af91(0x74a)][_0xd4af91(0x58f)](this[_0xd4af91(0xbd1)][_0x5c09df],_0x4b2992);}[_0x25c482(0x888)](_0x43fec5,_0x19add0){var _0x2bccd7=_0x25c482;this[_0x2bccd7(0x7df)][_0x43fec5]=null,this[_0x2bccd7(0x74a)][_0x2bccd7(0x888)](this[_0x2bccd7(0xbd1)][_0x43fec5],_0x19add0);}[_0x25c482(0x3f6)](_0x1dac38,_0x5ea99e){var _0x1b932d=_0x25c482;this[_0x1b932d(0x7df)][_0x1dac38]=null,this['engine']['setIntArray3'](this['_uniforms'][_0x1dac38],_0x5ea99e);}[_0x25c482(0xc04)](_0x5da1e9,_0x33f305){var _0x381c27=_0x25c482;this[_0x381c27(0x7df)][_0x5da1e9]=null,this[_0x381c27(0x74a)][_0x381c27(0xc04)](this['_uniforms'][_0x5da1e9],_0x33f305);}[_0x25c482(0x3b2)](_0x2b5758,_0xbf1be8){var _0x38707f=_0x25c482,_0x574536=this[_0x38707f(0x7df)][_0x2b5758];void 0x0!==_0x574536&&_0x574536===_0xbf1be8||this[_0x38707f(0x74a)][_0x38707f(0x3b2)](this['_uniforms'][_0x2b5758],_0xbf1be8)&&(this['_valueCache'][_0x2b5758]=_0xbf1be8);}['setUInt2'](_0x525f6b,_0x19a58a,_0x28ea23){var _0x4bc420=_0x25c482;this[_0x4bc420(0x270)](_0x525f6b,_0x19a58a,_0x28ea23)&&!this[_0x4bc420(0x74a)]['setUInt2'](this[_0x4bc420(0xbd1)][_0x525f6b],_0x19a58a,_0x28ea23)&&(this[_0x4bc420(0x7df)][_0x525f6b]=null);}[_0x25c482(0x636)](_0x48ea01,_0x411a35,_0x51ca44,_0x3b97fb){var _0x357dc2=_0x25c482;this[_0x357dc2(0x127)](_0x48ea01,_0x411a35,_0x51ca44,_0x3b97fb)&&!this[_0x357dc2(0x74a)][_0x357dc2(0x636)](this[_0x357dc2(0xbd1)][_0x48ea01],_0x411a35,_0x51ca44,_0x3b97fb)&&(this[_0x357dc2(0x7df)][_0x48ea01]=null);}[_0x25c482(0x631)](_0x522674,_0x1d42e4,_0x4f466f,_0x1a2c66,_0x54fe6){var _0x1e763f=_0x25c482;this[_0x1e763f(0x916)](_0x522674,_0x1d42e4,_0x4f466f,_0x1a2c66,_0x54fe6)&&!this[_0x1e763f(0x74a)]['setUInt4'](this['_uniforms'][_0x522674],_0x1d42e4,_0x4f466f,_0x1a2c66,_0x54fe6)&&(this[_0x1e763f(0x7df)][_0x522674]=null);}[_0x25c482(0x651)](_0x171c88,_0x10526d){var _0x2bba72=_0x25c482;this[_0x2bba72(0x7df)][_0x171c88]=null,this[_0x2bba72(0x74a)][_0x2bba72(0x651)](this['_uniforms'][_0x171c88],_0x10526d);}['setUIntArray2'](_0x468cc9,_0x358d34){var _0x484f92=_0x25c482;this[_0x484f92(0x7df)][_0x468cc9]=null,this[_0x484f92(0x74a)][_0x484f92(0x79e)](this[_0x484f92(0xbd1)][_0x468cc9],_0x358d34);}[_0x25c482(0x7c4)](_0x381b6c,_0x5d2a2e){var _0x4c7ebc=_0x25c482;this[_0x4c7ebc(0x7df)][_0x381b6c]=null,this['engine']['setUIntArray3'](this[_0x4c7ebc(0xbd1)][_0x381b6c],_0x5d2a2e);}[_0x25c482(0x875)](_0x568455,_0x4e29f9){var _0x325878=_0x25c482;this[_0x325878(0x7df)][_0x568455]=null,this[_0x325878(0x74a)][_0x325878(0x875)](this[_0x325878(0xbd1)][_0x568455],_0x4e29f9);}[_0x25c482(0x69f)](_0xe2f59e,_0x1d7287){var _0x2edb94=_0x25c482;this[_0x2edb94(0x7df)][_0xe2f59e]=null,this[_0x2edb94(0x74a)][_0x2edb94(0x69f)](this[_0x2edb94(0xbd1)][_0xe2f59e],_0x1d7287);}['setArray2'](_0x501608,_0x973179){var _0x4d8c78=_0x25c482;this[_0x4d8c78(0x7df)][_0x501608]=null,this[_0x4d8c78(0x74a)][_0x4d8c78(0x561)](this['_uniforms'][_0x501608],_0x973179);}[_0x25c482(0xb20)](_0x4fac5a,_0x1d5047){var _0x5a053a=_0x25c482;this[_0x5a053a(0x7df)][_0x4fac5a]=null,this['engine'][_0x5a053a(0xb20)](this['_uniforms'][_0x4fac5a],_0x1d5047);}[_0x25c482(0x7ce)](_0x104c7e,_0x55f6b3){var _0x3ed59e=_0x25c482;this[_0x3ed59e(0x7df)][_0x104c7e]=null,this[_0x3ed59e(0x74a)]['setArray4'](this[_0x3ed59e(0xbd1)][_0x104c7e],_0x55f6b3);}[_0x25c482(0x42c)](_0x18a611,_0x200628){var _0x3e87b0=_0x25c482;_0x200628&&(this[_0x3e87b0(0x7df)][_0x18a611]=null,this[_0x3e87b0(0x74a)]['setMatrices'](this[_0x3e87b0(0xbd1)][_0x18a611],_0x200628));}['setMatrix'](_0x5453ff,_0x7771d5){var _0x57187d=_0x25c482;this['_cacheMatrix'](_0x5453ff,_0x7771d5)&&!this[_0x57187d(0x74a)][_0x57187d(0x42c)](this[_0x57187d(0xbd1)][_0x5453ff],_0x7771d5['toArray']())&&(this['_valueCache'][_0x5453ff]=null);}[_0x25c482(0x42b)](_0x3dc935,_0x3d3400){var _0x5bc160=_0x25c482;this[_0x5bc160(0x7df)][_0x3dc935]=null,this[_0x5bc160(0x74a)][_0x5bc160(0x42b)](this['_uniforms'][_0x3dc935],_0x3d3400);}[_0x25c482(0x4b9)](_0xa3dc3e,_0x3f48bb){var _0x3a220c=_0x25c482;this['_valueCache'][_0xa3dc3e]=null,this[_0x3a220c(0x74a)][_0x3a220c(0x4b9)](this['_uniforms'][_0xa3dc3e],_0x3f48bb);}[_0x25c482(0x760)](_0x107468,_0x2098e4){var _0x383061=_0x25c482,_0x290a0d=this['_valueCache'][_0x107468];void 0x0!==_0x290a0d&&_0x290a0d===_0x2098e4||this[_0x383061(0x74a)]['setFloat'](this[_0x383061(0xbd1)][_0x107468],_0x2098e4)&&(this[_0x383061(0x7df)][_0x107468]=_0x2098e4);}[_0x25c482(0xb5d)](_0x430b4e,_0x54c860){var _0x1b2598=_0x25c482;this['_cacheFloat2'](_0x430b4e,_0x54c860['x'],_0x54c860['y'])&&!this[_0x1b2598(0x74a)][_0x1b2598(0xcef)](this[_0x1b2598(0xbd1)][_0x430b4e],_0x54c860['x'],_0x54c860['y'])&&(this[_0x1b2598(0x7df)][_0x430b4e]=null);}[_0x25c482(0xcef)](_0x1455fd,_0x15e466,_0x642786){var _0x5d1b2d=_0x25c482;this['_cacheFloat2'](_0x1455fd,_0x15e466,_0x642786)&&!this[_0x5d1b2d(0x74a)][_0x5d1b2d(0xcef)](this[_0x5d1b2d(0xbd1)][_0x1455fd],_0x15e466,_0x642786)&&(this[_0x5d1b2d(0x7df)][_0x1455fd]=null);}[_0x25c482(0x418)](_0x18b28c,_0x547b41){var _0x217ac1=_0x25c482;this[_0x217ac1(0x127)](_0x18b28c,_0x547b41['x'],_0x547b41['y'],_0x547b41['z'])&&!this[_0x217ac1(0x74a)][_0x217ac1(0x1f6)](this[_0x217ac1(0xbd1)][_0x18b28c],_0x547b41['x'],_0x547b41['y'],_0x547b41['z'])&&(this[_0x217ac1(0x7df)][_0x18b28c]=null);}[_0x25c482(0x1f6)](_0x4669ef,_0x42f6d0,_0x575ba6,_0x378e54){var _0x3d3d87=_0x25c482;this[_0x3d3d87(0x127)](_0x4669ef,_0x42f6d0,_0x575ba6,_0x378e54)&&!this[_0x3d3d87(0x74a)][_0x3d3d87(0x1f6)](this[_0x3d3d87(0xbd1)][_0x4669ef],_0x42f6d0,_0x575ba6,_0x378e54)&&(this['_valueCache'][_0x4669ef]=null);}[_0x25c482(0x601)](_0x522fe1,_0x2a6b27){var _0x5f1017=_0x25c482;this[_0x5f1017(0x916)](_0x522fe1,_0x2a6b27['x'],_0x2a6b27['y'],_0x2a6b27['z'],_0x2a6b27['w'])&&!this[_0x5f1017(0x74a)][_0x5f1017(0x453)](this['_uniforms'][_0x522fe1],_0x2a6b27['x'],_0x2a6b27['y'],_0x2a6b27['z'],_0x2a6b27['w'])&&(this['_valueCache'][_0x522fe1]=null);}[_0x25c482(0x846)](_0x1e6fe8,_0x8db0f3){var _0xa3e959=_0x25c482;this['_cacheFloat4'](_0x1e6fe8,_0x8db0f3['x'],_0x8db0f3['y'],_0x8db0f3['z'],_0x8db0f3['w'])&&!this[_0xa3e959(0x74a)][_0xa3e959(0x453)](this[_0xa3e959(0xbd1)][_0x1e6fe8],_0x8db0f3['x'],_0x8db0f3['y'],_0x8db0f3['z'],_0x8db0f3['w'])&&(this['_valueCache'][_0x1e6fe8]=null);}[_0x25c482(0x453)](_0x56c02a,_0x18e51d,_0x4a75ff,_0x452c35,_0x152d8e){var _0x1e04c2=_0x25c482;this[_0x1e04c2(0x916)](_0x56c02a,_0x18e51d,_0x4a75ff,_0x452c35,_0x152d8e)&&!this[_0x1e04c2(0x74a)][_0x1e04c2(0x453)](this[_0x1e04c2(0xbd1)][_0x56c02a],_0x18e51d,_0x4a75ff,_0x452c35,_0x152d8e)&&(this['_valueCache'][_0x56c02a]=null);}[_0x25c482(0x25b)](_0x3c9db2,_0x31088d){var _0x1af71b=_0x25c482;this[_0x1af71b(0x127)](_0x3c9db2,_0x31088d['r'],_0x31088d['g'],_0x31088d['b'])&&!this['engine']['setFloat3'](this[_0x1af71b(0xbd1)][_0x3c9db2],_0x31088d['r'],_0x31088d['g'],_0x31088d['b'])&&(this[_0x1af71b(0x7df)][_0x3c9db2]=null);}[_0x25c482(0x322)](_0x162f60,_0x23fdef,_0x35fd26){var _0x12ec8d=_0x25c482;this['_cacheFloat4'](_0x162f60,_0x23fdef['r'],_0x23fdef['g'],_0x23fdef['b'],_0x35fd26)&&!this[_0x12ec8d(0x74a)][_0x12ec8d(0x453)](this['_uniforms'][_0x162f60],_0x23fdef['r'],_0x23fdef['g'],_0x23fdef['b'],_0x35fd26)&&(this[_0x12ec8d(0x7df)][_0x162f60]=null);}[_0x25c482(0x697)](_0x14b27b,_0x53ceab){var _0x559375=_0x25c482;this[_0x559375(0x916)](_0x14b27b,_0x53ceab['r'],_0x53ceab['g'],_0x53ceab['b'],_0x53ceab['a'])&&!this[_0x559375(0x74a)][_0x559375(0x453)](this['_uniforms'][_0x14b27b],_0x53ceab['r'],_0x53ceab['g'],_0x53ceab['b'],_0x53ceab['a'])&&(this[_0x559375(0x7df)][_0x14b27b]=null);}[_0x25c482(0x877)](){var _0x5333bf=_0x25c482;return this[_0x5333bf(0x57a)]?this[_0x5333bf(0x74a)][_0x5333bf(0xb0e)](this[_0x5333bf(0x57a)]):null;}[_0x25c482(0xa84)](){var _0x18275e=_0x25c482;return this['fragmentShader']?this[_0x18275e(0x74a)]['_getShaderSource'](this[_0x18275e(0xcae)]):null;}}},0xe40d:(_0x2ae6c1,_0x114eb8,_0x44169b)=>{_0x44169b['d'](_0x114eb8,{'f':()=>_0x46b133});var _0x2e7113=_0x44169b(0x12658);class _0x46b133{constructor(){var _0x2764d8=a7_0x4135;this[_0x2764d8(0xbb5)]=_0x2e7113['x'][_0x2764d8(0xcea)];}['postProcessor'](_0x516598,_0x26f3ed,_0x31f5a1,_0xe049ba,_0x216266){var _0x5e0e27=a7_0x4135;return _0x216266['getCaps']()['drawBuffersExtension']?_0x516598:_0x516598[_0x5e0e27(0x89b)](/#extension.+GL_EXT_draw_buffers.+(enable|require)/g,'');}}},0x4ae8:(_0x21f11c,_0x34e552,_0x2f446d)=>{var _0x147360=a7_0x3304fb,_0x2215be=_0x2f446d(0x1610),_0x4e83a2=_0x2f446d(0x14232),_0x50fefb=_0x2f446d(0x14171),_0x40d9a4=(_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x31b)]=function(_0x5a47b8,_0x5c6f2e=!0x1){var _0x44dc55=_0x147360,_0x234cf2;if(this[_0x44dc55(0x5d0)]===_0x5a47b8&&(_0x5a47b8===_0x2215be['g']['ALPHA_DISABLE']&&!this[_0x44dc55(0xbf2)][_0x44dc55(0x616)]||_0x5a47b8!==_0x2215be['g'][_0x44dc55(0x794)]&&this[_0x44dc55(0xbf2)][_0x44dc55(0x616)]))_0x5c6f2e||(_0x234cf2=_0x5a47b8===_0x2215be['g']['ALPHA_DISABLE'],this[_0x44dc55(0x4cd)][_0x44dc55(0xcc0)]!==_0x234cf2&&(this[_0x44dc55(0x177)](_0x234cf2),this['_cacheRenderPipeline']['setDepthWriteEnabled'](_0x234cf2)));else{switch(_0x5a47b8){case _0x2215be['g'][_0x44dc55(0x794)]:this[_0x44dc55(0xbf2)][_0x44dc55(0x616)]=!0x1;break;case _0x2215be['g'][_0x44dc55(0xb0a)]:this[_0x44dc55(0xbf2)][_0x44dc55(0xb3d)](0x1,_0x2215be['g'][_0x44dc55(0x47c)],0x1,0x1),this[_0x44dc55(0xbf2)]['alphaBlend']=!0x0;break;case _0x2215be['g'][_0x44dc55(0x73a)]:this['_alphaState'][_0x44dc55(0xb3d)](0x1,_0x2215be['g'][_0x44dc55(0x47c)],0x1,_0x2215be['g']['GL_ALPHA_FUNCTION_ONE_MINUS_SRC_ALPHA']),this[_0x44dc55(0xbf2)][_0x44dc55(0x616)]=!0x0;break;case _0x2215be['g'][_0x44dc55(0xc07)]:this[_0x44dc55(0xbf2)]['setAlphaBlendFunctionParameters'](_0x2215be['g'][_0x44dc55(0xb1e)],_0x2215be['g'][_0x44dc55(0x47c)],0x1,0x1),this[_0x44dc55(0xbf2)][_0x44dc55(0x616)]=!0x0;break;case _0x2215be['g'][_0x44dc55(0xb72)]:this[_0x44dc55(0xbf2)][_0x44dc55(0xb3d)](0x1,0x1,0x0,0x1),this['_alphaState'][_0x44dc55(0x616)]=!0x0;break;case _0x2215be['g'][_0x44dc55(0x13e)]:this['_alphaState']['setAlphaBlendFunctionParameters'](_0x2215be['g'][_0x44dc55(0xb1e)],0x1,0x0,0x1),this[_0x44dc55(0xbf2)][_0x44dc55(0x616)]=!0x0;break;case _0x2215be['g'][_0x44dc55(0xa11)]:this[_0x44dc55(0xbf2)][_0x44dc55(0xb3d)](0x0,_0x2215be['g'][_0x44dc55(0x2cc)],0x1,0x1),this['_alphaState'][_0x44dc55(0x616)]=!0x0;break;case _0x2215be['g']['ALPHA_MULTIPLY']:this['_alphaState']['setAlphaBlendFunctionParameters'](_0x2215be['g']['GL_ALPHA_FUNCTION_DST_COLOR'],0x0,0x1,0x1),this[_0x44dc55(0xbf2)][_0x44dc55(0x616)]=!0x0;break;case _0x2215be['g'][_0x44dc55(0x1b9)]:this[_0x44dc55(0xbf2)][_0x44dc55(0xb3d)](_0x2215be['g'][_0x44dc55(0xb1e)],_0x2215be['g'][_0x44dc55(0x2cc)],0x1,0x1),this['_alphaState']['alphaBlend']=!0x0;break;case _0x2215be['g'][_0x44dc55(0x40f)]:this[_0x44dc55(0xbf2)]['setAlphaBlendFunctionParameters'](_0x2215be['g'][_0x44dc55(0x24d)],_0x2215be['g'][_0x44dc55(0xc3c)],_0x2215be['g'][_0x44dc55(0x39a)],_0x2215be['g'][_0x44dc55(0xaef)]),this[_0x44dc55(0xbf2)][_0x44dc55(0x616)]=!0x0;break;case _0x2215be['g'][_0x44dc55(0x1de)]:this[_0x44dc55(0xbf2)]['setAlphaBlendFunctionParameters'](0x1,_0x2215be['g'][_0x44dc55(0x2cc)],0x1,_0x2215be['g'][_0x44dc55(0x47c)]),this['_alphaState'][_0x44dc55(0x616)]=!0x0;break;case _0x2215be['g'][_0x44dc55(0x18e)]:this[_0x44dc55(0xbf2)][_0x44dc55(0xb3d)](0x1,0x1,0x1,0x1),this[_0x44dc55(0xbf2)]['alphaBlend']=!0x0;break;case _0x2215be['g'][_0x44dc55(0xcd4)]:this[_0x44dc55(0xbf2)][_0x44dc55(0xb3d)](_0x2215be['g'][_0x44dc55(0xc31)],0x1,0x0,0x0),this[_0x44dc55(0xbf2)][_0x44dc55(0x616)]=!0x0;break;case _0x2215be['g']['ALPHA_REVERSEONEMINUS']:this[_0x44dc55(0xbf2)][_0x44dc55(0xb3d)](_0x2215be['g'][_0x44dc55(0x196)],_0x2215be['g'][_0x44dc55(0x2cc)],_0x2215be['g'][_0x44dc55(0xb34)],_0x2215be['g'][_0x44dc55(0x47c)]),this[_0x44dc55(0xbf2)][_0x44dc55(0x616)]=!0x0;break;case _0x2215be['g']['ALPHA_SRC_DSTONEMINUSSRCALPHA']:this[_0x44dc55(0xbf2)][_0x44dc55(0xb3d)](0x1,_0x2215be['g'][_0x44dc55(0x47c)],0x1,_0x2215be['g'][_0x44dc55(0x47c)]),this[_0x44dc55(0xbf2)][_0x44dc55(0x616)]=!0x0;break;case _0x2215be['g'][_0x44dc55(0xa57)]:this[_0x44dc55(0xbf2)][_0x44dc55(0xb3d)](0x1,0x1,0x1,0x0),this[_0x44dc55(0xbf2)]['alphaBlend']=!0x0;break;case _0x2215be['g'][_0x44dc55(0x83f)]:this[_0x44dc55(0xbf2)]['setAlphaBlendFunctionParameters'](_0x2215be['g'][_0x44dc55(0x196)],_0x2215be['g'][_0x44dc55(0x2cc)],0x0,0x1),this[_0x44dc55(0xbf2)][_0x44dc55(0x616)]=!0x0;break;case _0x2215be['g'][_0x44dc55(0x1c7)]:this[_0x44dc55(0xbf2)]['setAlphaBlendFunctionParameters'](_0x2215be['g'][_0x44dc55(0xb1e)],_0x2215be['g'][_0x44dc55(0x47c)],0x1,_0x2215be['g'][_0x44dc55(0x47c)]),this[_0x44dc55(0xbf2)][_0x44dc55(0x616)]=!0x0;}_0x5c6f2e||(this[_0x44dc55(0x177)](_0x5a47b8===_0x4e83a2['D'][_0x44dc55(0x794)]),this[_0x44dc55(0x45a)][_0x44dc55(0x46e)](_0x5a47b8===_0x4e83a2['D'][_0x44dc55(0x794)])),this[_0x44dc55(0x5d0)]=_0x5a47b8,this[_0x44dc55(0x45a)][_0x44dc55(0x4a7)](this['_alphaState'][_0x44dc55(0x616)]),this[_0x44dc55(0x45a)]['setAlphaBlendFactors'](this[_0x44dc55(0xbf2)][_0x44dc55(0x9ad)],this[_0x44dc55(0xbf2)]['_blendEquationParameters']);}},_0x50fefb['f']['prototype'][_0x147360(0xb6f)]=function(_0x41b537){var _0x44ca56=_0x147360;_0x4e83a2['D'][_0x44ca56(0x78e)][_0x44ca56(0xb6f)]['call'](this,_0x41b537),this[_0x44ca56(0x45a)]['setAlphaBlendFactors'](this[_0x44ca56(0xbf2)][_0x44ca56(0x9ad)],this[_0x44ca56(0xbf2)]['_blendEquationParameters']);},_0x2f446d(0x8d9d)),_0x26cc6e=_0x2f446d(0x9a70),_0x4a660b=_0x2f446d(0x165c4),_0x2410e0=_0x2f446d(0x177e8);class _0xa23be3{constructor(_0x3cb723,_0x2f0feb){var _0x143601=_0x147360;this[_0x143601(0x38b)]=_0x3cb723,this[_0x143601(0x98c)]=_0x2f0feb,this[_0x143601(0xb76)]=_0xa23be3[_0x143601(0x644)]++,this[_0x143601(0x4a0)]=[],this[_0x143601(0xa3e)]();}['getBindGroups'](_0x28665e,_0x317504,_0x1fe43d){var _0x480f86=_0x147360;if(!_0x1fe43d)throw new Error(_0x480f86(0x404));if(0x0===this['_bindGroups'][_0x480f86(0x86f)]){var _0x1e06d2=0x0<this['_bindGroupEntries'][_0x480f86(0x86f)];for(const _0xd6b0f in _0x28665e){const _0x1c62cf=_0x28665e[_0xd6b0f],_0x44ce6b=_0x1fe43d[_0xd6b0f],_0xda0fc0=_0x44ce6b['group'],_0x5c9a4f=_0x44ce6b['binding'],_0x48a590=_0x1c62cf['type'],_0x4f17ae=_0x1c62cf[_0x480f86(0x18a)];let _0xecf8a=_0x1c62cf[_0x480f86(0xade)],_0x1cda09=this['_bindGroupEntries'][_0xda0fc0];switch(_0x1cda09=_0x1cda09||(this[_0x480f86(0x4a0)][_0xda0fc0]=[]),_0x48a590){case _0x4a660b['t'][_0x480f86(0xd05)]:var _0x48f37=_0x4f17ae;void 0x0!==_0xecf8a&&_0x1e06d2?_0x1cda09[_0xecf8a][_0x480f86(0x891)]=this[_0x480f86(0x98c)]['getSampler'](_0x48f37):(_0x1c62cf[_0x480f86(0xade)]=_0x1cda09[_0x480f86(0x86f)],_0x1cda09[_0x480f86(0x725)]({'binding':_0x5c9a4f,'resource':this['_cacheSampler'][_0x480f86(0x133)](_0x48f37)}));break;case _0x4a660b['t'][_0x480f86(0x314)]:case _0x4a660b['t'][_0x480f86(0x2a6)]:var _0x48f37=_0x4f17ae,_0x1f6951=_0x48f37[_0x480f86(0x6fb)][_0x480f86(0x49d)];void 0x0!==_0xecf8a&&_0x1e06d2?(_0x48a590===_0x4a660b['t'][_0x480f86(0x314)]&&(_0x1cda09[_0xecf8a++]['resource']=this[_0x480f86(0x98c)][_0x480f86(0x133)](_0x48f37[_0x480f86(0x6fb)])),_0x1cda09[_0xecf8a][_0x480f86(0x891)]=_0x1f6951[_0x480f86(0x611)]):(_0x1c62cf[_0x480f86(0xade)]=_0x1cda09[_0x480f86(0x86f)],_0x48a590===_0x4a660b['t'][_0x480f86(0x314)]&&_0x1cda09[_0x480f86(0x725)]({'binding':_0x5c9a4f-0x1,'resource':this[_0x480f86(0x98c)][_0x480f86(0x133)](_0x48f37[_0x480f86(0x6fb)])}),_0x1cda09[_0x480f86(0x725)]({'binding':_0x5c9a4f,'resource':_0x1f6951[_0x480f86(0x611)]}));break;case _0x4a660b['t'][_0x480f86(0x2f5)]:_0x1f6951=_0x4f17ae[_0x480f86(0x6fb)][_0x480f86(0x49d)],(0x0==(_0x1f6951[_0x480f86(0x7ab)]&_0x2410e0['v2'][_0x480f86(0x365)])&&_0x26cc6e['Y'][_0x480f86(0x803)](_0x480f86(0x7ac)+_0x4f17ae[_0x480f86(0x51b)]+',\x20uniqueId='+_0x4f17ae[_0x480f86(0xb76)]+_0x480f86(0xbf5),0x32),void 0x0!==_0xecf8a&&_0x1e06d2?_0x1cda09[_0xecf8a][_0x480f86(0x891)]=_0x1f6951['viewForWriting']:(_0x1c62cf[_0x480f86(0xade)]=_0x1cda09[_0x480f86(0x86f)],_0x1cda09[_0x480f86(0x725)]({'binding':_0x5c9a4f,'resource':_0x1f6951[_0x480f86(0x3c0)]})));break;case _0x4a660b['t'][_0x480f86(0xb60)]:case _0x4a660b['t'][_0x480f86(0x422)]:{_0x4a660b['t'][_0x480f86(0xb60)];const _0x862e6a=_0x4f17ae;var _0x2739d3=_0x862e6a[_0x480f86(0x293)](),_0x141354=_0x2739d3[_0x480f86(0x913)];void 0x0!==_0xecf8a&&_0x1e06d2?(_0x1cda09[_0xecf8a][_0x480f86(0x891)][_0x480f86(0xbeb)]=_0x141354,_0x1cda09[_0xecf8a][_0x480f86(0x891)][_0x480f86(0x586)]=_0x2739d3[_0x480f86(0x572)]):(_0x1c62cf[_0x480f86(0xade)]=_0x1cda09[_0x480f86(0x86f)],_0x1cda09[_0x480f86(0x725)]({'binding':_0x5c9a4f,'resource':{'buffer':_0x141354,'offset':0x0,'size':_0x2739d3['capacity']}}));break;}}}for(let _0x7107bf=0x0;_0x7107bf<this[_0x480f86(0x4a0)][_0x480f86(0x86f)];++_0x7107bf){var _0x1b3d3b=this[_0x480f86(0x4a0)][_0x7107bf];this['_bindGroups'][_0x7107bf]=_0x1b3d3b?this['_device'][_0x480f86(0x79b)]({'layout':_0x317504[_0x480f86(0x97e)](_0x7107bf),'entries':_0x1b3d3b}):void 0x0;}this[_0x480f86(0x53e)][_0x480f86(0x86f)]=this[_0x480f86(0x4a0)][_0x480f86(0x86f)];}return this[_0x480f86(0x53e)];}[_0x147360(0xa3e)](){this['_bindGroups']=[];}}_0xa23be3[_0x147360(0x644)]=0x0;class _0x4ba9ce{constructor(_0x477200){var _0x4dd65b=_0x147360;this['_name']='unnamed',this[_0x4dd65b(0x74a)]=_0x477200;}get[_0x147360(0x43e)](){return!0x1;}get[_0x147360(0x3f1)](){var _0x40b5e4=_0x147360;return!!this[_0x40b5e4(0x814)];}['_getComputeShaderCode'](){var _0x3dd86c=_0x147360,_0x3ff57a;return null==(_0x3ff57a=this[_0x3dd86c(0xbc2)])?void 0x0:_0x3ff57a[_0x3dd86c(0x332)];}['dispose'](){}}var _0x391e93=_0x2f446d(0x6214),_0x599434=(_0x50fefb['f'][_0x147360(0x78e)]['createComputeContext']=function(){return new _0xa23be3(this['_device'],this['_cacheSampler']);},_0x50fefb['f'][_0x147360(0x78e)]['createComputeEffect']=function(_0x557688,_0x4028d7){var _0x50d1a6=_0x147360,_0x9ce154=(_0x557688[_0x50d1a6(0x37a)]||_0x557688['compute']||_0x557688[_0x50d1a6(0xd11)]||_0x557688[_0x50d1a6(0x48c)]||_0x557688)+'@'+_0x4028d7[_0x50d1a6(0x909)];if(this[_0x50d1a6(0x3ac)][_0x9ce154]){const _0x5b581f=this[_0x50d1a6(0x3ac)][_0x9ce154];return _0x4028d7[_0x50d1a6(0x8c5)]&&_0x5b581f[_0x50d1a6(0x3f1)]()&&_0x4028d7[_0x50d1a6(0x8c5)](_0x5b581f),_0x5b581f;}return _0x557688=new _0x40d9a4['n'](_0x557688,_0x4028d7,this,_0x9ce154),this[_0x50d1a6(0x3ac)][_0x9ce154]=_0x557688;},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x23d)]=function(){return new _0x4ba9ce(this);},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0xa63)]=function(){var _0x5413b1=_0x147360;for(const _0x3ca5d0 in this[_0x5413b1(0x3ac)]){const _0x317b94=this[_0x5413b1(0x3ac)][_0x3ca5d0];if(!_0x317b94[_0x5413b1(0x3f1)]())return!0x1;}return!0x0;},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x582)]=function(_0xf8d232,_0x3d6b90,_0x16038b,_0x5e47f6,_0x4638fa,_0x1974af,_0x41d4c4){var _0x3fa6e1=_0x147360;if(this[_0x3fa6e1(0x233)])this[_0x3fa6e1(0x2ea)][_0x3fa6e1(0xa3b)](()=>{var _0x3e4dbd=_0x3fa6e1;this[_0x3e4dbd(0x582)](_0xf8d232,_0x3d6b90,_0x16038b,_0x5e47f6,_0x4638fa,_0x1974af,_0x41d4c4);});else{const _0x19b9eb=_0xf8d232['_pipelineContext'],_0x279707=_0x3d6b90,_0x387b20=(_0x19b9eb['computePipeline']||(_0x19b9eb[_0x3fa6e1(0x438)]=this['_device'][_0x3fa6e1(0xb11)]({'layout':_0x2410e0['fu']['Auto'],'compute':_0x19b9eb['stage']})),this[_0x3fa6e1(0x3eb)]),_0x5cb091=_0x387b20['beginComputePass']();_0x5cb091[_0x3fa6e1(0x3a1)](_0x19b9eb[_0x3fa6e1(0x438)]);var _0x2be299=_0x279707[_0x3fa6e1(0x8eb)](_0x16038b,_0x19b9eb['computePipeline'],_0x41d4c4);for(let _0x3a7118=0x0;_0x3a7118<_0x2be299[_0x3fa6e1(0x86f)];++_0x3a7118){var _0x9c158f=_0x2be299[_0x3a7118];_0x9c158f&&_0x5cb091[_0x3fa6e1(0x1ac)](_0x3a7118,_0x9c158f);}_0x5cb091[_0x3fa6e1(0x23e)](_0x5e47f6,_0x4638fa,_0x1974af),_0x5cb091['end']();}},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0xbea)]=function(){var _0x34812a=_0x147360;for(const _0x2d8fce in this[_0x34812a(0x3ac)]){var _0x891209=this[_0x34812a(0x3ac)][_0x2d8fce]['getPipelineContext']();this[_0x34812a(0x6db)](_0x891209);}this[_0x34812a(0x3ac)]={};},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x40b)]=function(_0xa9dd72,_0x3f6815,_0x196bee,_0x5ede5b,_0x180822){var _0x7804f6=_0x147360;const _0x1014c7=_0xa9dd72;this[_0x7804f6(0xc22)]&&(_0x391e93[_0x7804f6(0x4d6)](_0x5ede5b),_0x391e93[_0x7804f6(0x4d6)](_0x3f6815)),_0x1014c7[_0x7804f6(0xbc2)]={'compute':_0x3f6815,'rawCompute':_0x196bee},_0x1014c7['stage']=this[_0x7804f6(0x4dd)](_0x3f6815,_0x5ede5b,_0x180822);},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0xc19)]=function(_0x5169c8){var _0x39e6bb=_0x147360;this[_0x39e6bb(0x3ac)][_0x5169c8[_0x39e6bb(0x5b6)]]&&(delete this[_0x39e6bb(0x3ac)][_0x5169c8[_0x39e6bb(0x5b6)]],this['_deleteComputePipelineContext'](_0x5169c8['getPipelineContext']()));},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x2ae)]=function(){var _0x3307e5=_0x147360;for(const _0x126e80 in this[_0x3307e5(0x3ac)]){const _0xd7344d=this[_0x3307e5(0x3ac)][_0x126e80];_0xd7344d[_0x3307e5(0xafa)]=null,_0xd7344d[_0x3307e5(0x9c8)]=!0x1,_0xd7344d[_0x3307e5(0xb2c)]();}},_0x50fefb['f']['prototype'][_0x147360(0x6db)]=function(_0x5e5c06){var _0x31108a=_0x147360;_0x5e5c06&&_0x5e5c06[_0x31108a(0xb4b)]();},_0x50fefb['f'][_0x147360(0x78e)]['_createComputePipelineStageDescriptor']=function(_0x46ea3c,_0x3adacb,_0x112720){var _0x3f76b0=_0x147360;return _0x3adacb=_0x3adacb?'//'+_0x3adacb['split']('\x0a')['join'](_0x3f76b0(0x679))+'\x0a':'',{'module':this[_0x3f76b0(0x38b)][_0x3f76b0(0x758)]({'code':_0x3adacb+_0x46ea3c}),'entryPoint':_0x112720};},_0x2f446d(0x138df));_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x2ce)]=function(_0x3c3a87,_0x102532){var _0x963677=_0x147360;const _0x14766c=new _0x599434['l'](this,_0x599434['S'][_0x963677(0x405)]);return _0x14766c[_0x963677(0xac3)]=!0x0,_0x102532=Object[_0x963677(0x70a)]({'bilinearFiltering':!0x1,'comparisonFunction':0x0,'generateStencil':!0x1,'samples':0x1},_0x102532),(_0x14766c[_0x963677(0xb59)]=_0x102532[_0x963677(0x478)]?_0x2215be['g']['TEXTUREFORMAT_DEPTH24_STENCIL8']:_0x2215be['g'][_0x963677(0x596)],this['_setupDepthStencilTexture'](_0x14766c,_0x3c3a87,_0x102532[_0x963677(0x478)],_0x102532[_0x963677(0x204)],_0x102532[_0x963677(0xcf7)],_0x102532[_0x963677(0x92d)]),this[_0x963677(0x14f)][_0x963677(0x483)](_0x14766c),this[_0x963677(0xd01)][_0x963677(0x725)](_0x14766c),_0x14766c);},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x484)]=function(_0x474594,_0x4a8655,_0x1b911c,_0x295fff,_0x24723f=null,_0x101798=null,_0x7e08fc,_0x4ce335=null,_0x3b7346=!0x1,_0x23ada3=0x0,_0x9a2d23=0x0,_0xb76a3f=null,_0x5b2a4c=!0x1){var _0xab3570=_0x147360;return this[_0xab3570(0x933)](_0x474594,_0x4a8655,_0x1b911c,!!_0x295fff,_0x24723f,_0x101798,_0x7e08fc,_0x4ce335,_0x3b7346,_0x23ada3,_0x9a2d23,_0xb76a3f,null,(_0x4e63c8,_0x445551)=>{var _0x1ef8d0=_0xab3570,_0x7d3825=_0x445551[0x0]['width'],_0x239b64=_0x7d3825,_0x1ded7f=(this[_0x1ef8d0(0x394)](_0x4e63c8,!_0x295fff),_0x4e63c8['format']=null!=_0x7e08fc?_0x7e08fc:-0x1,this[_0x1ef8d0(0x14f)]['createGPUTextureForInternalTexture'](_0x4e63c8,_0x7d3825,_0x239b64));this[_0x1ef8d0(0x14f)][_0x1ef8d0(0x831)](_0x445551,_0x1ded7f[_0x1ef8d0(0x913)],_0x7d3825,_0x239b64,_0x1ded7f['format'],!0x1,!0x1,0x0,0x0),_0x295fff||this[_0x1ef8d0(0x8f2)](_0x4e63c8,this[_0x1ef8d0(0x904)]),_0x4e63c8[_0x1ef8d0(0x3f1)]=!0x0,_0x4e63c8[_0x1ef8d0(0x370)][_0x1ef8d0(0x94c)](_0x4e63c8),_0x4e63c8['onLoadedObservable'][_0x1ef8d0(0xa3e)](),_0x24723f&&_0x24723f();},!!_0x5b2a4c);},_0x50fefb['f']['prototype'][_0x147360(0x394)]=function(_0xea57d,_0x3d528,_0x400966){var _0x3012cc=_0x147360;_0xea57d[_0x3012cc(0x9f4)]=_0x3d528?_0x2215be['g'][_0x3012cc(0x206)]:_0x2215be['g']['TEXTURE_BILINEAR_SAMPLINGMODE'],_0xea57d[_0x3012cc(0xa1a)]=_0x2215be['g']['TEXTURE_CLAMP_ADDRESSMODE'],_0xea57d[_0x3012cc(0x805)]=_0x2215be['g']['TEXTURE_CLAMP_ADDRESSMODE'],_0x400966&&(_0xea57d[_0x3012cc(0x826)]=_0x400966);},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0xa9d)]=function(_0x4d9ddc,_0x4a9bd8){var _0x43923f=_0x147360;if(this[_0x43923f(0x833)][_0x43923f(0x5e4)]){if(0x0===_0x4a9bd8||0x1===_0x4a9bd8){const _0x2b5827=0x0===_0x4a9bd8?this[_0x43923f(0x6d7)]:this[_0x43923f(0x3eb)];_0x2b5827[_0x43923f(0x3c6)](_0x4d9ddc);}else this[_0x43923f(0xad1)]?this[_0x43923f(0xad1)]['pushDebugGroup'](_0x4d9ddc):this['_pendingDebugCommands'][_0x43923f(0x725)](['push',_0x4d9ddc]);}},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x3f3)]=function(_0x27f83d){var _0x528d30=_0x147360;if(this[_0x528d30(0x833)][_0x528d30(0x5e4)]){if(0x0===_0x27f83d||0x1===_0x27f83d){const _0x42bfc6=0x0===_0x27f83d?this[_0x528d30(0x6d7)]:this[_0x528d30(0x3eb)];_0x42bfc6['popDebugGroup']();}else this[_0x528d30(0xad1)]?this[_0x528d30(0xad1)][_0x528d30(0x6b9)]():this['_pendingDebugCommands'][_0x528d30(0x725)](['pop',null]);}},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x1c8)]=function(_0x4acf30,_0x24f29a){var _0xcc96d6=_0x147360;if(this[_0xcc96d6(0x833)][_0xcc96d6(0x5e4)]){if(0x0===_0x24f29a||0x1===_0x24f29a){const _0x40c7aa=0x0===_0x24f29a?this[_0xcc96d6(0x6d7)]:this[_0xcc96d6(0x3eb)];_0x40c7aa[_0xcc96d6(0x2fb)](_0x4acf30);}else this[_0xcc96d6(0xad1)]?this[_0xcc96d6(0xad1)][_0xcc96d6(0x2fb)](_0x4acf30):this[_0xcc96d6(0x289)][_0xcc96d6(0x725)](['insert',_0x4acf30]);}},_0x50fefb['f']['prototype'][_0x147360(0xa6c)]=function(){var _0x7e481c=_0x147360;for(let _0x12057c=0x0;_0x12057c<this[_0x7e481c(0x289)][_0x7e481c(0x86f)];++_0x12057c){var [_0x514f97,_0x3202ca]=this[_0x7e481c(0x289)][_0x12057c];switch(_0x514f97){case'push':this[_0x7e481c(0xa9d)](_0x3202ca);break;case _0x7e481c(0x8ff):this['_debugPopGroup']();break;case _0x7e481c(0x425):this[_0x7e481c(0x1c8)](_0x3202ca);}}this['_pendingDebugCommands'][_0x7e481c(0x86f)]=0x0;},_0x50fefb['f']['prototype'][_0x147360(0x4bb)]=function(_0x375965,_0x14a24f,_0x16f910=0x0){var _0x3b21b1=_0x147360,_0x4fb55a=_0x375965,_0x375965=_0x375965['is32Bits']?_0x14a24f instanceof Uint32Array?_0x14a24f:new Uint32Array(_0x14a24f):_0x14a24f instanceof Uint16Array?_0x14a24f:new Uint16Array(_0x14a24f);this['_bufferManager'][_0x3b21b1(0x302)](_0x4fb55a,_0x16f910,_0x375965);},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0xc67)]=function(_0x501df8,_0x3a4a48,_0x2aba4d,_0x272b13){var _0x4e9ff3=_0x147360;void 0x0===_0x2aba4d&&(_0x2aba4d=0x0);let _0x1c001f;void 0x0===_0x272b13?_0x272b13=(_0x1c001f=_0x3a4a48 instanceof Array?new Float32Array(_0x3a4a48):_0x3a4a48 instanceof ArrayBuffer?new Uint8Array(_0x3a4a48):_0x3a4a48)[_0x4e9ff3(0x65f)]:_0x1c001f=_0x3a4a48 instanceof Array?new Float32Array(_0x3a4a48):_0x3a4a48 instanceof ArrayBuffer?new Uint8Array(_0x3a4a48):_0x3a4a48,this[_0x4e9ff3(0x2cb)]['setSubData'](_0x501df8,_0x2aba4d,_0x1c001f,0x0,_0x272b13);},_0x50fefb['f'][_0x147360(0x78e)]['updateDynamicTexture']=function(_0x3b549e,_0x5adc7c,_0x242e64,_0x5eb32d=!0x1,_0xb6fb41,_0x361f2a,_0x3e6afc){var _0x2b625a=_0x147360,_0x241217;if(_0x3b549e){var _0x571378=_0x5adc7c[_0x2b625a(0x3e9)],_0xd19ff6=_0x5adc7c[_0x2b625a(0x520)];let _0x27e959=_0x3b549e[_0x2b625a(0x49d)];null!=(_0x241217=_0x3b549e['_hardwareTexture'])&&_0x241217['underlyingResource']||(_0x27e959=this[_0x2b625a(0x14f)][_0x2b625a(0x483)](_0x3b549e,_0x571378,_0xd19ff6)),this[_0x2b625a(0x14f)][_0x2b625a(0x3ea)](_0x5adc7c,_0x3b549e,_0x571378,_0xd19ff6,_0x3b549e[_0x2b625a(0x711)],_0x27e959[_0x2b625a(0xb59)],0x0,0x0,_0x242e64,_0x5eb32d,0x0,0x0,_0x3e6afc),_0x3b549e[_0x2b625a(0xb22)]&&this[_0x2b625a(0x8f2)](_0x3b549e,this[_0x2b625a(0x904)]),_0x3b549e[_0x2b625a(0x3f1)]=!0x0;}};class _0x1007da extends _0x2f446d(0x6537)['x']{constructor(_0x2b0cad){super(_0x2b0cad);}}var _0x1128be=_0x2f446d(0x1533d),_0x598f92=(_0x1128be['Q'][_0x147360(0x78e)][_0x147360(0x495)]=function(_0x1b2a6e,_0x4d7931){this['_engine']['setExternalTexture'](_0x1b2a6e,_0x4d7931);},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x119)]=function(_0x134a52){return new _0x1007da(_0x134a52);},_0x50fefb['f']['prototype']['setExternalTexture']=function(_0x2cfc84,_0x358896){var _0x592dcb=_0x147360;_0x358896?this[_0x592dcb(0xcba)](_0x2cfc84,_0x358896):this[_0x592dcb(0x822)][_0x592dcb(0xbbc)](_0x2cfc84,null);},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x1a7)]=function(_0x3010be,_0xdb186b=!0x1,_0xf5b38c){var _0x2dbbc8=_0x147360;_0xf5b38c&&_0xf5b38c();var _0x3fb10b=_0x3010be[_0x2dbbc8(0x18c)]['length'];this[_0x2dbbc8(0xad1)]&&this[_0x2dbbc8(0xad1)]!==this[_0x2dbbc8(0x1bf)]['renderPass']&&this[_0x2dbbc8(0x8e5)]();for(let _0x208245=0x0;_0x208245<_0x3fb10b;_0x208245++){var _0x26d8de=_0x3010be[_0x2dbbc8(0xa52)][_0x208245];!_0x26d8de[_0x2dbbc8(0xb22)]||_0xdb186b||_0x26d8de[_0x2dbbc8(0xac3)]||this[_0x2dbbc8(0x8f2)](_0x26d8de);}this[_0x2dbbc8(0x233)]=null,this['_mrtAttachments']=[],this[_0x2dbbc8(0x45a)][_0x2dbbc8(0xb88)]([]),this[_0x2dbbc8(0x45a)][_0x2dbbc8(0xb81)](this[_0x2dbbc8(0x3f5)]),this['_currentRenderPass']=this[_0x2dbbc8(0x1bf)][_0x2dbbc8(0x315)],this[_0x2dbbc8(0x6d5)](this['_mainRenderPassWrapper']),this[_0x2dbbc8(0x8b7)](this['_mainRenderPassWrapper']);},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0xc5b)]=function(_0x3086d2,_0x16cfdb,_0x15a1b1){var _0x2a6a36=_0x147360,_0x4af609,_0x139bca;let _0x2f6ed0=!0x1,_0x27b2d9=!0x0,_0x22d95d=!0x1,_0x5c6478=!0x1,_0x55bc6e=_0x2215be['g'][_0x2a6a36(0x260)],_0x4328ee=0x1;var _0x459907=_0x2215be['g'][_0x2a6a36(0x970)],_0x80b1b0=_0x2215be['g']['TEXTURE_TRILINEAR_SAMPLINGMODE'],_0x30a2da=_0x2215be['g'][_0x2a6a36(0xc7c)],_0x1ae7c5=_0x2215be['g'][_0x2a6a36(0x4b0)];let _0x29b2e2=new Array(),_0x4df98f=new Array(),_0x553018=new Array(),_0x25b757=new Array(),_0xd075fc=new Array(),_0x143072=new Array(),_0x7bdd5e=new Array(),_0x3f23db=new Array();const _0x4202f0=this[_0x2a6a36(0xa23)](!0x0,!0x1,_0x3086d2);void 0x0!==_0x16cfdb&&(_0x2f6ed0=void 0x0!==_0x16cfdb[_0x2a6a36(0xb22)]&&_0x16cfdb[_0x2a6a36(0xb22)],_0x27b2d9=void 0x0===_0x16cfdb[_0x2a6a36(0x607)]||_0x16cfdb[_0x2a6a36(0x607)],_0x22d95d=void 0x0!==_0x16cfdb['generateStencilBuffer']&&_0x16cfdb['generateStencilBuffer'],_0x5c6478=void 0x0!==_0x16cfdb[_0x2a6a36(0xb6e)]&&_0x16cfdb['generateDepthTexture'],_0x4328ee=_0x16cfdb[_0x2a6a36(0x116)]||0x1,_0x55bc6e=null!=(_0x4af609=_0x16cfdb[_0x2a6a36(0x966)])?_0x4af609:_0x2215be['g'][_0x2a6a36(0x260)],_0x16cfdb[_0x2a6a36(0x272)]&&(_0x29b2e2=_0x16cfdb[_0x2a6a36(0x272)]),_0x16cfdb[_0x2a6a36(0x53c)]&&(_0x4df98f=_0x16cfdb[_0x2a6a36(0x53c)]),_0x16cfdb[_0x2a6a36(0x5c0)]&&(_0x553018=_0x16cfdb[_0x2a6a36(0x5c0)]),_0x16cfdb['formats']&&(_0x25b757=_0x16cfdb[_0x2a6a36(0xa10)]),_0x16cfdb[_0x2a6a36(0x1ae)]&&(_0xd075fc=_0x16cfdb[_0x2a6a36(0x1ae)]),_0x16cfdb['faceIndex']&&(_0x143072=_0x16cfdb[_0x2a6a36(0x4c2)]),_0x16cfdb[_0x2a6a36(0x500)]&&(_0x7bdd5e=_0x16cfdb['layerIndex']),_0x16cfdb[_0x2a6a36(0xb14)]&&(_0x3f23db=_0x16cfdb['layerCounts']));var _0x511f90=_0x3086d2['width']||_0x3086d2,_0x1c0a3c=_0x3086d2[_0x2a6a36(0x520)]||_0x3086d2;let _0xc60e9e=null;(_0x27b2d9||_0x22d95d||_0x5c6478)&&(_0x5c6478||(_0x55bc6e=_0x27b2d9&&_0x22d95d?_0x2215be['g'][_0x2a6a36(0x5ec)]:_0x27b2d9?_0x2215be['g'][_0x2a6a36(0x596)]:_0x2215be['g'][_0x2a6a36(0x72c)]),_0xc60e9e=_0x4202f0[_0x2a6a36(0x588)](0x0,!0x1,_0x22d95d,0x1,_0x55bc6e));const _0x3a90f9=[],_0x855a09=[],_0x1e806e=[];_0x4202f0[_0x2a6a36(0x328)]=_0x27b2d9,_0x4202f0[_0x2a6a36(0x436)]=_0x22d95d,_0x4202f0[_0x2a6a36(0x18c)]=_0x855a09,_0x4202f0[_0x2a6a36(0x3e4)]=_0x1e806e;for(let _0x3210c6=0x0;_0x3210c6<_0x4328ee;_0x3210c6++){let _0x25fd39=_0x4df98f[_0x3210c6]||_0x80b1b0,_0x28e2e2=_0x29b2e2[_0x3210c6]||_0x459907;var _0x210c68=_0x25b757[_0x3210c6]||_0x30a2da,_0x584693=!!_0x553018[_0x3210c6]&&this['_caps'][_0x2a6a36(0xaaf)],_0x20f0ad=_0xd075fc[_0x3210c6]||_0x1ae7c5,_0x3fce6f=null!=(_0x139bca=_0x3f23db[_0x3210c6])?_0x139bca:0x1;if((_0x28e2e2===_0x2215be['g'][_0x2a6a36(0x403)]&&!this['_caps'][_0x2a6a36(0x46d)]||_0x28e2e2===_0x2215be['g'][_0x2a6a36(0x208)]&&!this[_0x2a6a36(0x210)][_0x2a6a36(0x2e8)])&&(_0x25fd39=_0x2215be['g'][_0x2a6a36(0x9f9)]),_0x28e2e2!==_0x2215be['g'][_0x2a6a36(0x403)]||this[_0x2a6a36(0x210)][_0x2a6a36(0x973)]||(_0x28e2e2=_0x2215be['g'][_0x2a6a36(0x970)],_0x26cc6e['Y'][_0x2a6a36(0x6dd)]('Float\x20textures\x20are\x20not\x20supported.\x20Render\x20target\x20forced\x20to\x20TEXTURETYPE_UNSIGNED_BYTE\x20type')),_0x855a09[_0x2a6a36(0x725)](_0x3210c6+0x1),_0x1e806e['push'](_0x15a1b1?_0x3210c6+0x1:0x0===_0x3210c6?0x1:0x0),-0x1!==_0x20f0ad){const _0x196073=new _0x599434['l'](this,_0x599434['S']['MultiRenderTarget']);switch(_0x3a90f9[_0x3210c6]=_0x196073,_0x20f0ad){case _0x2215be['g'][_0x2a6a36(0xafc)]:_0x196073[_0x2a6a36(0xac3)]=!0x0;break;case _0x2215be['g'][_0x2a6a36(0xc85)]:_0x196073[_0x2a6a36(0x718)]=!0x0,_0x196073[_0x2a6a36(0x763)]=_0x196073[_0x2a6a36(0x711)]=_0x3fce6f;break;case _0x2215be['g'][_0x2a6a36(0x7c8)]:_0x196073[_0x2a6a36(0x7f4)]=!0x0,_0x196073[_0x2a6a36(0x763)]=_0x196073[_0x2a6a36(0x711)]=_0x3fce6f;}_0x196073[_0x2a6a36(0x3f4)]=_0x511f90,_0x196073['baseHeight']=_0x1c0a3c,_0x196073[_0x2a6a36(0x3e9)]=_0x511f90,_0x196073[_0x2a6a36(0x520)]=_0x1c0a3c,_0x196073[_0x2a6a36(0x3f1)]=!0x0,_0x196073['samples']=0x1,_0x196073[_0x2a6a36(0xb22)]=_0x2f6ed0,_0x196073[_0x2a6a36(0x9f4)]=_0x25fd39,_0x196073['type']=_0x28e2e2,_0x196073[_0x2a6a36(0xa1a)]=_0x2215be['g'][_0x2a6a36(0xae9)],_0x196073['_cachedWrapV']=_0x2215be['g'][_0x2a6a36(0xae9)],_0x196073['_useSRGBBuffer']=_0x584693,_0x196073[_0x2a6a36(0xb59)]=_0x210c68,this[_0x2a6a36(0xd01)]['push'](_0x196073),this[_0x2a6a36(0x14f)][_0x2a6a36(0x483)](_0x196073);}}return _0xc60e9e&&(_0xc60e9e[_0x2a6a36(0x96e)](),_0x3a90f9[_0x4328ee]=_0xc60e9e,this[_0x2a6a36(0xd01)][_0x2a6a36(0x725)](_0xc60e9e)),_0x4202f0[_0x2a6a36(0xac0)](_0x3a90f9),_0x4202f0[_0x2a6a36(0x15f)](_0x7bdd5e,_0x143072),_0x4202f0;},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x76d)]=function(_0x2f2a6b,_0x2c9b38){var _0x32e0d6=_0x147360;if(!_0x2f2a6b||!_0x2f2a6b[_0x32e0d6(0xa52)]||_0x2f2a6b[_0x32e0d6(0xa52)][0x0][_0x32e0d6(0x92d)]===_0x2c9b38)return _0x2c9b38;var _0x13ef7c=_0x2f2a6b[_0x32e0d6(0xa52)][_0x32e0d6(0x86f)];if(0x0===_0x13ef7c)return 0x1;_0x2c9b38=Math[_0x32e0d6(0x1e1)](_0x2c9b38,this[_0x32e0d6(0x7b9)]()[_0x32e0d6(0x538)]);for(let _0x863d15=0x0;_0x863d15<_0x13ef7c;++_0x863d15){const _0x1ad436=_0x2f2a6b['textures'][_0x863d15][_0x32e0d6(0x49d)];null!==_0x1ad436&&void 0x0!==_0x1ad436&&_0x1ad436[_0x32e0d6(0x705)]();}var _0x2c74ee=_0x2f2a6b[_0x32e0d6(0x219)]===_0x2f2a6b[_0x32e0d6(0xa52)][_0x13ef7c-0x1];for(let _0x269fc9=0x0;_0x269fc9<_0x13ef7c;++_0x269fc9){const _0x38839a=_0x2f2a6b[_0x32e0d6(0xa52)][_0x269fc9];this[_0x32e0d6(0x14f)][_0x32e0d6(0x2b9)](_0x38839a,_0x2c9b38,!0x1,_0x269fc9===_0x13ef7c-0x1&&_0x2c74ee?0x0:_0x269fc9),_0x38839a['samples']=_0x2c9b38;}return _0x2f2a6b['_depthStencilTexture']&&!_0x2c74ee&&(this[_0x32e0d6(0x14f)][_0x32e0d6(0x2b9)](_0x2f2a6b['_depthStencilTexture'],_0x2c9b38),_0x2f2a6b[_0x32e0d6(0x219)][_0x32e0d6(0x92d)]=_0x2c9b38),_0x2c9b38;},_0x50fefb['f']['prototype'][_0x147360(0x34f)]=function(_0x3c14e0){var _0x136578=_0x147360;0x0!==_0x3c14e0[_0x136578(0x86f)]&&this[_0x136578(0x233)]&&(this[_0x136578(0x3f5)]=_0x3c14e0,this[_0x136578(0xad1)]&&this[_0x136578(0x45a)][_0x136578(0xb81)](_0x3c14e0));},_0x50fefb['f']['prototype'][_0x147360(0x321)]=function(_0x6b0b78){var _0xfb0613=_0x147360;const _0x594ff3=[];for(let _0x2dbbd5=0x0;_0x2dbbd5<_0x6b0b78[_0xfb0613(0x86f)];_0x2dbbd5++)_0x6b0b78[_0x2dbbd5]?_0x594ff3['push'](_0x2dbbd5+0x1):_0x594ff3[_0xfb0613(0x725)](0x0);return _0x594ff3;},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x633)]=function(){},_0x50fefb['f']['prototype']['restoreSingleAttachmentForRenderTarget']=function(){},_0x2f446d(0x12418));function _0x4c7fd4(_0x13b3b0,_0x202bf9,_0x32fb76,_0x2ede53){var _0x210b33=_0x147360;let _0x81e104,_0x401028=0x1;_0x2ede53===_0x2215be['g'][_0x210b33(0x403)]?_0x81e104=new Float32Array(_0x202bf9*_0x32fb76*0x4):_0x2ede53===_0x2215be['g'][_0x210b33(0x208)]?(_0x81e104=new Uint16Array(_0x202bf9*_0x32fb76*0x4),_0x401028=0x3c00):_0x81e104=new(_0x2ede53===_0x2215be['g'][(_0x210b33(0x443))]?Uint32Array:Uint8Array)(_0x202bf9*_0x32fb76*0x4);for(let _0x53edd=0x0;_0x53edd<_0x202bf9;_0x53edd++)for(let _0x7aafcc=0x0;_0x7aafcc<_0x32fb76;_0x7aafcc++){var _0x42f175=0x3*(_0x7aafcc*_0x202bf9+_0x53edd),_0x4b6979=0x4*(_0x7aafcc*_0x202bf9+_0x53edd);_0x81e104[0x0+_0x4b6979]=_0x13b3b0[0x0+_0x42f175],_0x81e104[0x1+_0x4b6979]=_0x13b3b0[0x1+_0x42f175],_0x81e104[0x2+_0x4b6979]=_0x13b3b0[0x2+_0x42f175],_0x81e104[0x3+_0x4b6979]=_0x401028;}return _0x81e104;}_0x50fefb['f']['prototype'][_0x147360(0xcf0)]=function(){var _0x1e90c1=_0x147360;return this['_timestampQuery'][_0x1e90c1(0x898)];},_0x50fefb['f']['prototype'][_0x147360(0x735)]=function(_0x1b652f){var _0x170a59=_0x147360;this[_0x170a59(0x80a)][_0x170a59(0x625)]=_0x1b652f&&!!this['_caps']['timerQuery'];},_0x50fefb['f']['prototype'][_0x147360(0xb7c)]=function(){var _0x1e24d9=_0x147360;return this[_0x1e24d9(0x8fe)][_0x1e24d9(0xb7c)]();},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0xc66)]=function(_0x448858){var _0x1b2e32=_0x147360;return this[_0x1b2e32(0x8fe)][_0x1b2e32(0xc66)](_0x448858),this;},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x768)]=function(_0x4cf56c){var _0x513007=_0x147360;return this[_0x513007(0x8fe)]['isQueryResultAvailable'](_0x4cf56c);},_0x50fefb['f'][_0x147360(0x78e)]['getQueryResult']=function(_0xccc275){var _0x4703fa=_0x147360;return this[_0x4703fa(0x8fe)][_0x4703fa(0x146)](_0xccc275);},_0x50fefb['f'][_0x147360(0x78e)]['beginOcclusionQuery']=function(_0x1d31d8,_0x5a2aa3){var _0xff50e2=_0x147360,_0x4a1724;if(this[_0xff50e2(0x1c6)])return!!this['_occlusionQuery'][_0xff50e2(0xa8b)]&&(null!=(_0x4a1724=this[_0xff50e2(0xad1)])&&_0x4a1724[_0xff50e2(0x598)](_0x5a2aa3),!0x0);{const _0x17e8ae=0x0===this[_0xff50e2(0x557)]()?this[_0xff50e2(0x27d)]:this[_0xff50e2(0x657)];return _0x17e8ae[_0xff50e2(0x9c6)](new _0x598f92['GB'](_0x5a2aa3)),!0x0;}},_0x50fefb['f']['prototype']['endOcclusionQuery']=function(){var _0x13873a=_0x147360,_0x2adf4f;if(this['compatibilityMode'])null!=(_0x2adf4f=this[_0x13873a(0xad1)])&&_0x2adf4f[_0x13873a(0xa92)]();else{const _0x422316=0x0===this['_getCurrentRenderPassIndex']()?this['_bundleList']:this['_bundleListRenderTarget'];_0x422316[_0x13873a(0x9c6)](new _0x598f92['fw']());}return this;},_0x50fefb['f']['prototype'][_0x147360(0x3e8)]=function(_0x63521c,_0x58ae35,_0x24dfe8,_0x20aeb6,_0x3b2f82,_0x1cbd52,_0x3120b6,_0x26eed7=null,_0xb53776=_0x2215be['g'][_0x147360(0x970)],_0x207cf3=0x0,_0x49ddc4=!0x1){var _0x5ec20d=_0x147360;const _0x50e121=new _0x599434['l'](this,_0x599434['S']['Raw']);return _0x50e121[_0x5ec20d(0x3f4)]=_0x58ae35,_0x50e121[_0x5ec20d(0x929)]=_0x24dfe8,_0x50e121[_0x5ec20d(0x3e9)]=_0x58ae35,_0x50e121['height']=_0x24dfe8,_0x50e121[_0x5ec20d(0xb59)]=_0x20aeb6,_0x50e121['generateMipMaps']=_0x3b2f82,_0x50e121[_0x5ec20d(0x9f4)]=_0x3120b6,_0x50e121[_0x5ec20d(0x7b0)]=_0x1cbd52,_0x50e121['_compression']=_0x26eed7,_0x50e121[_0x5ec20d(0xb26)]=_0xb53776,_0x50e121[_0x5ec20d(0x7ef)]=_0x49ddc4,this[_0x5ec20d(0x464)]||(_0x50e121['_bufferView']=_0x63521c),this[_0x5ec20d(0x14f)]['createGPUTextureForInternalTexture'](_0x50e121,_0x58ae35,_0x24dfe8,void 0x0,_0x207cf3),this[_0x5ec20d(0xb85)](_0x50e121,_0x63521c,_0x20aeb6,_0x1cbd52,_0x26eed7,_0xb53776,_0x49ddc4),this['_internalTexturesCache']['push'](_0x50e121),_0x50e121;},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0xb85)]=function(_0x281d44,_0x54007a,_0x220cf7,_0x5acb92,_0x16b03f=null,_0x54421e=_0x2215be['g'][_0x147360(0x970)],_0x526425=!0x1){var _0x5a4c1e=_0x147360;_0x281d44&&(this[_0x5a4c1e(0x464)]||(_0x281d44[_0x5a4c1e(0x9b0)]=_0x54007a,_0x281d44[_0x5a4c1e(0x7b0)]=_0x5acb92,_0x281d44[_0x5a4c1e(0x827)]=_0x16b03f,_0x281d44[_0x5a4c1e(0x7ef)]=_0x526425),_0x54007a&&(_0x16b03f=_0x281d44[_0x5a4c1e(0x49d)],_0x220cf7===_0x2215be['g'][_0x5a4c1e(0x255)]&&(_0x54007a=_0x4c7fd4(_0x54007a,_0x281d44[_0x5a4c1e(0x3e9)],_0x281d44[_0x5a4c1e(0x520)],_0x54421e)),_0x526425=new Uint8Array(_0x54007a[_0x5a4c1e(0xbeb)],_0x54007a[_0x5a4c1e(0x40a)],_0x54007a[_0x5a4c1e(0x65f)]),this[_0x5a4c1e(0x14f)][_0x5a4c1e(0x3ea)](_0x526425,_0x281d44,_0x281d44[_0x5a4c1e(0x3e9)],_0x281d44[_0x5a4c1e(0x520)],_0x281d44[_0x5a4c1e(0x711)],_0x16b03f[_0x5a4c1e(0xb59)],0x0,0x0,_0x5acb92,!0x1,0x0,0x0),_0x281d44[_0x5a4c1e(0xb22)]&&this[_0x5a4c1e(0x8f2)](_0x281d44,this[_0x5a4c1e(0x904)])),_0x281d44[_0x5a4c1e(0x3f1)]=!0x0);},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0xb27)]=function(_0x52f7a5,_0x547659,_0x2690a,_0x52a788,_0x21b356,_0x34acc6,_0x54deeb,_0x470a1a=null){var _0x36d870=_0x147360;const _0x21cafc=new _0x599434['l'](this,_0x599434['S']['CubeRaw']);return _0x52a788!==_0x2215be['g']['TEXTURETYPE_FLOAT']||this['_caps'][_0x36d870(0x46d)]?_0x52a788!==_0x2215be['g'][_0x36d870(0x208)]||this[_0x36d870(0x210)][_0x36d870(0x2e8)]?_0x52a788!==_0x2215be['g']['TEXTURETYPE_FLOAT']||this['_caps'][_0x36d870(0x262)]?_0x52a788!==_0x2215be['g'][_0x36d870(0x208)]||this[_0x36d870(0x210)][_0x36d870(0xb82)]||(_0x21b356=!0x1,_0x26cc6e['Y'][_0x36d870(0x6dd)](_0x36d870(0x460))):(_0x21b356=!0x1,_0x26cc6e['Y']['Warn']('Render\x20to\x20float\x20textures\x20is\x20not\x20supported.\x20Mipmap\x20generation\x20forced\x20to\x20false.')):(_0x21b356=!0x1,_0x54deeb=_0x2215be['g'][_0x36d870(0x9f9)],_0x26cc6e['Y']['Warn'](_0x36d870(0x4aa))):(_0x21b356=!0x1,_0x54deeb=_0x2215be['g'][_0x36d870(0x9f9)],_0x26cc6e['Y']['Warn'](_0x36d870(0xc64))),_0x21cafc[_0x36d870(0xac3)]=!0x0,_0x21cafc[_0x36d870(0xb59)]=_0x2690a===_0x2215be['g'][_0x36d870(0x255)]?_0x2215be['g']['TEXTUREFORMAT_RGBA']:_0x2690a,_0x21cafc[_0x36d870(0xb26)]=_0x52a788,_0x21cafc[_0x36d870(0xb22)]=_0x21b356,_0x21cafc[_0x36d870(0x3e9)]=_0x547659,_0x21cafc[_0x36d870(0x520)]=_0x547659,_0x21cafc['samplingMode']=_0x54deeb,this['_doNotHandleContextLost']||(_0x21cafc[_0x36d870(0x5b0)]=_0x52f7a5),_0x21cafc['invertY']=_0x34acc6,_0x21cafc[_0x36d870(0x827)]=_0x470a1a,_0x21cafc[_0x36d870(0xa1a)]=_0x2215be['g'][_0x36d870(0xae9)],_0x21cafc['_cachedWrapV']=_0x2215be['g']['TEXTURE_CLAMP_ADDRESSMODE'],this['_textureHelper']['createGPUTextureForInternalTexture'](_0x21cafc),_0x52f7a5&&this['updateRawCubeTexture'](_0x21cafc,_0x52f7a5,_0x2690a,_0x52a788,_0x34acc6,_0x470a1a),_0x21cafc[_0x36d870(0x3f1)]=!0x0,_0x21cafc;},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x9bf)]=function(_0x2f4c0f,_0x4d0f74,_0x200aeb,_0x277698,_0x51f60b,_0x1881b6=null){var _0x4212a1=_0x147360;_0x2f4c0f[_0x4212a1(0x5b0)]=_0x4d0f74,_0x2f4c0f['invertY']=_0x51f60b,_0x2f4c0f['_compression']=_0x1881b6;var _0x1881b6=_0x2f4c0f[_0x4212a1(0x49d)],_0x3d5a4a=_0x200aeb===_0x2215be['g'][_0x4212a1(0x255)];const _0x2b801e=[];for(let _0x4c3a69=0x0;_0x4c3a69<_0x4d0f74[_0x4212a1(0x86f)];++_0x4c3a69){let _0x1aacc3=_0x4d0f74[_0x4c3a69];_0x3d5a4a&&(_0x1aacc3=_0x4c7fd4(_0x4d0f74[_0x4c3a69],_0x2f4c0f[_0x4212a1(0x3e9)],_0x2f4c0f['height'],_0x277698)),_0x2b801e['push'](new Uint8Array(_0x1aacc3[_0x4212a1(0xbeb)],_0x1aacc3['byteOffset'],_0x1aacc3[_0x4212a1(0x65f)]));}this[_0x4212a1(0x14f)][_0x4212a1(0x831)](_0x2b801e,_0x1881b6['underlyingResource'],_0x2f4c0f['width'],_0x2f4c0f['height'],_0x1881b6[_0x4212a1(0xb59)],_0x51f60b,!0x1,0x0,0x0),_0x2f4c0f['generateMipMaps']&&this[_0x4212a1(0x8f2)](_0x2f4c0f,this['_uploadEncoder']),_0x2f4c0f[_0x4212a1(0x3f1)]=!0x0;},_0x50fefb['f']['prototype']['createRawCubeTextureFromUrl']=function(_0xe08500,_0x231ff1,_0x5e716a,_0x59d22e,_0x52b3d0,_0xc2280b,_0x2995f7,_0x45ad7f,_0x382fe6=null,_0x5a031d=null,_0x1c8532=_0x2215be['g']['TEXTURE_TRILINEAR_SAMPLINGMODE'],_0x3824fd=!0x1){var _0x30cb5a=_0x147360;const _0x1d2dac=this[_0x30cb5a(0xb27)](null,_0x5e716a,_0x59d22e,_0x52b3d0,!_0xc2280b,_0x3824fd,_0x1c8532,null),_0x3d38ef=(null!=_0x231ff1&&_0x231ff1[_0x30cb5a(0xa2a)](_0x1d2dac),_0x1d2dac[_0x30cb5a(0x9fa)]=_0xe08500,this['_internalTexturesCache'][_0x30cb5a(0x725)](_0x1d2dac),_0x33bfc3=>{var _0x2a1238=_0x30cb5a,_0x6eb033=_0x1d2dac[_0x2a1238(0x3e9)],_0x52070c=_0x2995f7(_0x33bfc3);if(_0x52070c){var _0x216f9f=[0x0,0x2,0x4,0x1,0x3,0x5];if(_0x45ad7f){var _0x3eb383=_0x59d22e===_0x2215be['g']['TEXTUREFORMAT_RGB'],_0x95571d=_0x45ad7f(_0x52070c),_0x16bfb8=_0x1d2dac[_0x2a1238(0x49d)];const _0xf7573f=[0x0,0x1,0x2,0x3,0x4,0x5];for(let _0x2f7d37=0x0;_0x2f7d37<_0x95571d[_0x2a1238(0x86f)];_0x2f7d37++){var _0x38deb1=_0x6eb033>>_0x2f7d37;const _0x3b1fbc=[];for(let _0xb34c69=0x0;_0xb34c69<0x6;_0xb34c69++){let _0xf09ddb=_0x95571d[_0x2f7d37][_0xf7573f[_0xb34c69]];_0x3eb383&&(_0xf09ddb=_0x4c7fd4(_0xf09ddb,_0x38deb1,_0x38deb1,_0x52b3d0)),_0x3b1fbc[_0x2a1238(0x725)](new Uint8Array(_0xf09ddb[_0x2a1238(0xbeb)],_0xf09ddb[_0x2a1238(0x40a)],_0xf09ddb[_0x2a1238(0x65f)]));}this[_0x2a1238(0x14f)]['updateCubeTextures'](_0x3b1fbc,_0x16bfb8[_0x2a1238(0x913)],_0x38deb1,_0x38deb1,_0x16bfb8[_0x2a1238(0xb59)],_0x3824fd,!0x1,0x0,0x0);}}else{const _0x4ec68d=[];for(let _0x467e26=0x0;_0x467e26<0x6;_0x467e26++)_0x4ec68d['push'](_0x52070c[_0x216f9f[_0x467e26]]);this[_0x2a1238(0x9bf)](_0x1d2dac,_0x4ec68d,_0x59d22e,_0x52b3d0,_0x3824fd);}_0x1d2dac['isReady']=!0x0,null!=_0x231ff1&&_0x231ff1[_0x2a1238(0x456)](_0x1d2dac),_0x382fe6&&_0x382fe6();}});return this[_0x30cb5a(0xcf6)](_0xe08500,_0x27e9c8=>{_0x3d38ef(_0x27e9c8);},void 0x0,null==_0x231ff1?void 0x0:_0x231ff1['offlineProvider'],!0x0,(_0x320de4,_0x44e1a2)=>{var _0x21e1c6=_0x30cb5a;null!=_0x231ff1&&_0x231ff1[_0x21e1c6(0x456)](_0x1d2dac),_0x5a031d&&_0x320de4&&_0x5a031d(_0x320de4['status']+'\x20'+_0x320de4['statusText'],_0x44e1a2);}),_0x1d2dac;},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x556)]=function(_0x2b9993,_0x2ec1bb,_0x1fddfa,_0x4c70ad,_0x5bb6b1,_0x4f9955,_0xbded3e,_0x2e81dd,_0x1023e9=null,_0x27ce82=_0x2215be['g'][_0x147360(0x970)],_0x5c27c7=0x0){var _0x4fbbc2=_0x147360,_0x5084d8=_0x599434['S'][_0x4fbbc2(0xb35)];const _0x171b2f=new _0x599434['l'](this,_0x5084d8);return _0x171b2f['baseWidth']=_0x2ec1bb,_0x171b2f[_0x4fbbc2(0x929)]=_0x1fddfa,_0x171b2f['baseDepth']=_0x4c70ad,_0x171b2f['width']=_0x2ec1bb,_0x171b2f['height']=_0x1fddfa,_0x171b2f[_0x4fbbc2(0x711)]=_0x4c70ad,_0x171b2f[_0x4fbbc2(0xb59)]=_0x5bb6b1,_0x171b2f[_0x4fbbc2(0xb26)]=_0x27ce82,_0x171b2f[_0x4fbbc2(0xb22)]=_0x4f9955,_0x171b2f[_0x4fbbc2(0x9f4)]=_0x2e81dd,_0x171b2f[_0x4fbbc2(0x718)]=!0x0,this['_doNotHandleContextLost']||(_0x171b2f[_0x4fbbc2(0x9b0)]=_0x2b9993),this[_0x4fbbc2(0x14f)][_0x4fbbc2(0x483)](_0x171b2f,_0x2ec1bb,_0x1fddfa,void 0x0,_0x5c27c7),this[_0x4fbbc2(0x851)](_0x171b2f,_0x2b9993,_0x5bb6b1,_0xbded3e,_0x1023e9,_0x27ce82),this[_0x4fbbc2(0xd01)][_0x4fbbc2(0x725)](_0x171b2f),_0x171b2f;},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x851)]=function(_0x40bf71,_0x14355c,_0x351d2a,_0x5d116f,_0x4ed2ff=null,_0xfaf6b0=_0x2215be['g'][_0x147360(0x970)]){var _0x59fc61=_0x147360;this[_0x59fc61(0x464)]||(_0x40bf71[_0x59fc61(0x9b0)]=_0x14355c,_0x40bf71[_0x59fc61(0xb59)]=_0x351d2a,_0x40bf71[_0x59fc61(0x7b0)]=_0x5d116f,_0x40bf71[_0x59fc61(0x827)]=_0x4ed2ff),_0x14355c&&(_0x4ed2ff=_0x40bf71[_0x59fc61(0x49d)],_0x351d2a===_0x2215be['g'][_0x59fc61(0x255)]&&(_0x14355c=_0x4c7fd4(_0x14355c,_0x40bf71['width'],_0x40bf71[_0x59fc61(0x520)],_0xfaf6b0)),_0x351d2a=new Uint8Array(_0x14355c['buffer'],_0x14355c[_0x59fc61(0x40a)],_0x14355c[_0x59fc61(0x65f)]),this[_0x59fc61(0x14f)]['updateTexture'](_0x351d2a,_0x40bf71,_0x40bf71[_0x59fc61(0x3e9)],_0x40bf71[_0x59fc61(0x520)],_0x40bf71['depth'],_0x4ed2ff['format'],0x0,0x0,_0x5d116f,!0x1,0x0,0x0),_0x40bf71[_0x59fc61(0xb22)]&&this[_0x59fc61(0x8f2)](_0x40bf71,this[_0x59fc61(0x904)])),_0x40bf71[_0x59fc61(0x3f1)]=!0x0;},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0xa32)]=function(_0x101582,_0x4ecace,_0x108b25,_0x476878,_0x46293b,_0x20aa64,_0x4848f2,_0x495113,_0x55d934=null,_0x174958=_0x2215be['g'][_0x147360(0x970)],_0x4ca35f=0x0){var _0x3645bd=_0x147360,_0x1c3ee6=_0x599434['S'][_0x3645bd(0xcfe)];const _0x281023=new _0x599434['l'](this,_0x1c3ee6);return _0x281023['baseWidth']=_0x4ecace,_0x281023[_0x3645bd(0x929)]=_0x108b25,_0x281023[_0x3645bd(0x763)]=_0x476878,_0x281023['width']=_0x4ecace,_0x281023[_0x3645bd(0x520)]=_0x108b25,_0x281023[_0x3645bd(0x711)]=_0x476878,_0x281023[_0x3645bd(0xb59)]=_0x46293b,_0x281023[_0x3645bd(0xb26)]=_0x174958,_0x281023['generateMipMaps']=_0x20aa64,_0x281023['samplingMode']=_0x495113,_0x281023[_0x3645bd(0x7f4)]=!0x0,this[_0x3645bd(0x464)]||(_0x281023[_0x3645bd(0x9b0)]=_0x101582),this[_0x3645bd(0x14f)][_0x3645bd(0x483)](_0x281023,_0x4ecace,_0x108b25,_0x476878,_0x4ca35f),this['updateRawTexture2DArray'](_0x281023,_0x101582,_0x46293b,_0x4848f2,_0x55d934,_0x174958),this[_0x3645bd(0xd01)][_0x3645bd(0x725)](_0x281023),_0x281023;},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x565)]=function(_0xcca317,_0xd95dc9,_0x740507,_0x58290a,_0x349e8c=null,_0x4682e0=_0x2215be['g'][_0x147360(0x970)]){var _0x7c443c=_0x147360;this[_0x7c443c(0x464)]||(_0xcca317[_0x7c443c(0x9b0)]=_0xd95dc9,_0xcca317[_0x7c443c(0xb59)]=_0x740507,_0xcca317['invertY']=_0x58290a,_0xcca317[_0x7c443c(0x827)]=_0x349e8c),_0xd95dc9&&(_0x349e8c=_0xcca317[_0x7c443c(0x49d)],_0x740507===_0x2215be['g'][_0x7c443c(0x255)]&&(_0xd95dc9=_0x4c7fd4(_0xd95dc9,_0xcca317[_0x7c443c(0x3e9)],_0xcca317['height'],_0x4682e0)),_0x740507=new Uint8Array(_0xd95dc9[_0x7c443c(0xbeb)],_0xd95dc9[_0x7c443c(0x40a)],_0xd95dc9[_0x7c443c(0x65f)]),this[_0x7c443c(0x14f)][_0x7c443c(0x3ea)](_0x740507,_0xcca317,_0xcca317[_0x7c443c(0x3e9)],_0xcca317[_0x7c443c(0x520)],_0xcca317[_0x7c443c(0x711)],_0x349e8c[_0x7c443c(0xb59)],0x0,0x0,_0x58290a,!0x1,0x0,0x0),_0xcca317['generateMipMaps']&&this['_generateMipmaps'](_0xcca317,this[_0x7c443c(0x904)])),_0xcca317[_0x7c443c(0x3f1)]=!0x0;},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0xcf9)]=function(_0x4d9782,_0x9d2f51,_0x3e52a0,_0x1426dd=-0x1,_0x27f79f=0x0,_0x3c8006=null,_0x1a574c=!0x0,_0x775dda=!0x1,_0x2683dd=0x0,_0x16691c=0x0){var _0x17aea7=_0x147360;return _0x4d9782=_0x4d9782[_0x17aea7(0x49d)],(_0x1a574c&&this[_0x17aea7(0xadf)](),this[_0x17aea7(0x14f)]['readPixels'](_0x4d9782[_0x17aea7(0x913)],_0x2683dd,_0x16691c,_0x9d2f51,_0x3e52a0,_0x4d9782['format'],_0x1426dd,_0x27f79f,_0x3c8006,_0x775dda));},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x622)]=function(){var _0x514484=_0x147360;throw _0x514484(0x818);};class _0x5d4304 extends _0x2f446d(0x157cc)['r']{}_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0xa23)]=function(_0x4b6d75,_0x4de4f9,_0x3c95f5){var _0x3493a6=_0x147360;return _0x4b6d75=new _0x5d4304(_0x4b6d75,_0x4de4f9,_0x3c95f5,this),(this[_0x3493a6(0x7f1)][_0x3493a6(0x725)](_0x4b6d75),_0x4b6d75);},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x3d9)]=function(_0x5d5a5c,_0xd3e0e4){var _0x4306ed=_0x147360,_0x10c3eb;const _0x11469b=this[_0x4306ed(0xa23)](!0x1,!0x1,_0x5d5a5c),_0x1ff99a={},_0x141f04=(void 0x0!==_0xd3e0e4&&_0x4306ed(0x18a)==typeof _0xd3e0e4?(_0x1ff99a[_0x4306ed(0xb22)]=_0xd3e0e4[_0x4306ed(0xb22)],_0x1ff99a['generateDepthBuffer']=void 0x0===_0xd3e0e4[_0x4306ed(0x607)]||_0xd3e0e4['generateDepthBuffer'],_0x1ff99a[_0x4306ed(0x479)]=_0x1ff99a[_0x4306ed(0x607)]&&_0xd3e0e4[_0x4306ed(0x479)],_0x1ff99a[_0x4306ed(0x9f4)]=void 0x0===_0xd3e0e4[_0x4306ed(0x9f4)]?_0x2215be['g'][_0x4306ed(0x206)]:_0xd3e0e4[_0x4306ed(0x9f4)],_0x1ff99a[_0x4306ed(0x8c6)]=null!=(_0x10c3eb=_0xd3e0e4[_0x4306ed(0x8c6)])?_0x10c3eb:0x0,_0x1ff99a[_0x4306ed(0xa96)]=!!_0xd3e0e4['noColorAttachment'],_0x1ff99a[_0x4306ed(0x92d)]=_0xd3e0e4[_0x4306ed(0x92d)],_0x1ff99a[_0x4306ed(0xa2f)]=_0xd3e0e4[_0x4306ed(0xa2f)]):(_0x1ff99a[_0x4306ed(0xb22)]=_0xd3e0e4,_0x1ff99a[_0x4306ed(0x607)]=!0x0,_0x1ff99a[_0x4306ed(0x479)]=!0x1,_0x1ff99a[_0x4306ed(0x9f4)]=_0x2215be['g'][_0x4306ed(0x206)],_0x1ff99a[_0x4306ed(0x8c6)]=0x0,_0x1ff99a['noColorAttachment']=!0x1),_0x1ff99a[_0x4306ed(0xa96)]?null:this[_0x4306ed(0xabb)](_0x5d5a5c,_0xd3e0e4,!0x0,_0x599434['S']['RenderTarget']));return _0x11469b[_0x4306ed(0x714)]=null!=(_0x10c3eb=_0x1ff99a[_0x4306ed(0x92d)])?_0x10c3eb:0x1,_0x11469b[_0x4306ed(0x328)]=_0x1ff99a[_0x4306ed(0x607)],_0x11469b['_generateStencilBuffer']=!!_0x1ff99a[_0x4306ed(0x479)],_0x11469b[_0x4306ed(0xac0)](_0x141f04),(_0x11469b[_0x4306ed(0x328)]||_0x11469b[_0x4306ed(0x436)])&&_0x11469b['createDepthStencilTexture'](0x0,this[_0x4306ed(0x210)][_0x4306ed(0x46d)]&&(void 0x0===_0x1ff99a['samplingMode']||_0x1ff99a[_0x4306ed(0x9f4)]===_0x2215be['g'][_0x4306ed(0x29d)]||_0x1ff99a[_0x4306ed(0x9f4)]===_0x2215be['g'][_0x4306ed(0x163)]||_0x1ff99a[_0x4306ed(0x9f4)]===_0x2215be['g'][_0x4306ed(0x206)]||_0x1ff99a[_0x4306ed(0x9f4)]===_0x2215be['g']['TEXTURE_LINEAR_LINEAR_MIPLINEAR']||_0x1ff99a['samplingMode']===_0x2215be['g'][_0x4306ed(0x2b1)]||_0x1ff99a['samplingMode']===_0x2215be['g'][_0x4306ed(0xa4f)]||_0x1ff99a['samplingMode']===_0x2215be['g'][_0x4306ed(0xd09)]||_0x1ff99a[_0x4306ed(0x9f4)]===_0x2215be['g'][_0x4306ed(0xb80)]),_0x11469b[_0x4306ed(0x436)],_0x11469b['samples'],_0x1ff99a[_0x4306ed(0x479)]?_0x2215be['g'][_0x4306ed(0x5ec)]:_0x2215be['g']['TEXTUREFORMAT_DEPTH32_FLOAT'],_0x1ff99a[_0x4306ed(0xa2f)]?_0x1ff99a[_0x4306ed(0xa2f)]+_0x4306ed(0xc08):void 0x0),_0x141f04&&(void 0x0!==_0xd3e0e4&&_0x4306ed(0x18a)==typeof _0xd3e0e4&&_0xd3e0e4[_0x4306ed(0xcb3)]&&!_0x1ff99a[_0x4306ed(0xb22)]&&(_0x141f04['generateMipMaps']=!0x0),this[_0x4306ed(0x14f)]['createGPUTextureForInternalTexture'](_0x141f04,void 0x0,void 0x0,void 0x0,_0x1ff99a[_0x4306ed(0x8c6)]),void 0x0!==_0xd3e0e4&&_0x4306ed(0x18a)==typeof _0xd3e0e4&&_0xd3e0e4['createMipMaps']&&!_0x1ff99a[_0x4306ed(0xb22)]&&(_0x141f04[_0x4306ed(0xb22)]=!0x1)),_0x11469b;},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0xbcb)]=function(_0x57e112,_0x159a68){var _0xf3a8ab=_0x147360;const _0x596b90=new _0x599434['l'](this,_0x599434['S']['DepthStencil']);return _0x596b90[_0xf3a8ab(0xa2f)]=_0x159a68['label'],_0x159a68=Object['assign']({'bilinearFiltering':!0x1,'comparisonFunction':0x0,'generateStencil':!0x1,'samples':0x1,'depthTextureFormat':_0x159a68[_0xf3a8ab(0x478)]?_0x2215be['g'][_0xf3a8ab(0x5ec)]:_0x2215be['g'][_0xf3a8ab(0x596)]},_0x159a68),(_0x596b90[_0xf3a8ab(0xb59)]=_0x159a68[_0xf3a8ab(0x966)],this[_0xf3a8ab(0x276)](_0x596b90,_0x57e112,_0x159a68[_0xf3a8ab(0x478)],_0x159a68[_0xf3a8ab(0x204)],_0x159a68[_0xf3a8ab(0xcf7)],_0x159a68['samples']),this['_textureHelper'][_0xf3a8ab(0x483)](_0x596b90),this[_0xf3a8ab(0xd01)][_0xf3a8ab(0x725)](_0x596b90),_0x596b90);},_0x50fefb['f']['prototype'][_0x147360(0x276)]=function(_0x270243,_0x834d36,_0x519c45,_0xa23b1d,_0x2c2ba3,_0x4d62fc=0x1){var _0x4d0ae1=_0x147360,_0x10116c=_0x834d36[_0x4d0ae1(0x3e9)]||_0x834d36,_0x1996bc=_0x834d36[_0x4d0ae1(0x520)]||_0x834d36,_0x834d36=_0x834d36[_0x4d0ae1(0x6d2)]||0x0;_0x270243[_0x4d0ae1(0x3f4)]=_0x10116c,_0x270243[_0x4d0ae1(0x929)]=_0x1996bc,_0x270243[_0x4d0ae1(0x3e9)]=_0x10116c,_0x270243[_0x4d0ae1(0x520)]=_0x1996bc,_0x270243['is2DArray']=0x0<_0x834d36,_0x270243['depth']=_0x834d36,_0x270243[_0x4d0ae1(0x3f1)]=!0x0,_0x270243[_0x4d0ae1(0x92d)]=_0x4d62fc,_0x270243[_0x4d0ae1(0xb22)]=!0x1,_0x270243[_0x4d0ae1(0x9f4)]=_0xa23b1d?_0x2215be['g'][_0x4d0ae1(0x29d)]:_0x2215be['g']['TEXTURE_NEAREST_SAMPLINGMODE'],_0x270243[_0x4d0ae1(0xb26)]=_0x2215be['g'][_0x4d0ae1(0x403)],_0x270243[_0x4d0ae1(0x421)]=_0x2c2ba3,_0x270243['_cachedWrapU']=_0x2215be['g'][_0x4d0ae1(0xae9)],_0x270243[_0x4d0ae1(0x805)]=_0x2215be['g']['TEXTURE_CLAMP_ADDRESSMODE'];},_0x50fefb['f']['prototype'][_0x147360(0x7fc)]=function(_0x4e31a8,_0x539516){var _0x237a29=_0x147360;return _0x4e31a8&&_0x4e31a8[_0x237a29(0x800)]&&_0x4e31a8[_0x237a29(0x92d)]!==_0x539516?(_0x539516=Math['min'](_0x539516,this[_0x237a29(0x7b9)]()[_0x237a29(0x538)]),this['_textureHelper'][_0x237a29(0x2b9)](_0x4e31a8[_0x237a29(0x800)],_0x539516),_0x4e31a8['_depthStencilTexture']&&(this['_textureHelper'][_0x237a29(0x2b9)](_0x4e31a8[_0x237a29(0x219)],_0x539516),_0x4e31a8[_0x237a29(0x219)][_0x237a29(0x92d)]=_0x539516),_0x4e31a8[_0x237a29(0x714)]=_0x539516,_0x4e31a8[_0x237a29(0x800)][_0x237a29(0x92d)]=_0x539516):_0x539516;},_0x50fefb['f'][_0x147360(0x78e)]['createRenderTargetCubeTexture']=function(_0x38c4c7,_0x21d8ae){var _0x44fc4b=_0x147360;const _0x29a53f=this[_0x44fc4b(0xa23)](!0x1,!0x0,_0x38c4c7),_0x36304d=Object[_0x44fc4b(0x70a)]({'generateMipMaps':!0x0,'generateDepthBuffer':!0x0,'generateStencilBuffer':!0x1,'type':_0x2215be['g']['TEXTURETYPE_UNSIGNED_INT'],'samplingMode':_0x2215be['g'][_0x44fc4b(0x206)],'format':_0x2215be['g'][_0x44fc4b(0xc7c)],'samples':0x1},_0x21d8ae),_0xa74735=(_0x36304d['generateStencilBuffer']=_0x36304d['generateDepthBuffer']&&_0x36304d[_0x44fc4b(0x479)],_0x29a53f['_generateDepthBuffer']=_0x36304d[_0x44fc4b(0x607)],_0x29a53f[_0x44fc4b(0x436)]=_0x36304d[_0x44fc4b(0x479)],new _0x599434['l'](this,_0x599434['S']['RenderTarget']));return _0xa74735[_0x44fc4b(0x3e9)]=_0x38c4c7,_0xa74735[_0x44fc4b(0x520)]=_0x38c4c7,_0xa74735[_0x44fc4b(0x711)]=0x0,_0xa74735[_0x44fc4b(0x3f1)]=!0x0,_0xa74735['isCube']=!0x0,_0xa74735['samples']=_0x36304d[_0x44fc4b(0x92d)],_0xa74735[_0x44fc4b(0xb22)]=_0x36304d['generateMipMaps'],_0xa74735[_0x44fc4b(0x9f4)]=_0x36304d['samplingMode'],_0xa74735['type']=_0x36304d[_0x44fc4b(0xb26)],_0xa74735[_0x44fc4b(0xb59)]=_0x36304d['format'],this[_0x44fc4b(0xd01)]['push'](_0xa74735),_0x29a53f[_0x44fc4b(0xac0)](_0xa74735),(_0x29a53f[_0x44fc4b(0x328)]||_0x29a53f[_0x44fc4b(0x436)])&&_0x29a53f['createDepthStencilTexture'](0x0,void 0x0===_0x36304d[_0x44fc4b(0x9f4)]||_0x36304d['samplingMode']===_0x2215be['g']['TEXTURE_BILINEAR_SAMPLINGMODE']||_0x36304d[_0x44fc4b(0x9f4)]===_0x2215be['g'][_0x44fc4b(0x163)]||_0x36304d['samplingMode']===_0x2215be['g']['TEXTURE_TRILINEAR_SAMPLINGMODE']||_0x36304d[_0x44fc4b(0x9f4)]===_0x2215be['g'][_0x44fc4b(0x1ca)]||_0x36304d[_0x44fc4b(0x9f4)]===_0x2215be['g'][_0x44fc4b(0x2b1)]||_0x36304d[_0x44fc4b(0x9f4)]===_0x2215be['g']['TEXTURE_NEAREST_LINEAR_MIPLINEAR']||_0x36304d[_0x44fc4b(0x9f4)]===_0x2215be['g'][_0x44fc4b(0xd09)]||_0x36304d[_0x44fc4b(0x9f4)]===_0x2215be['g']['TEXTURE_LINEAR_LINEAR_MIPNEAREST'],_0x29a53f[_0x44fc4b(0x436)],_0x29a53f['samples']),_0x21d8ae&&_0x21d8ae[_0x44fc4b(0xcb3)]&&!_0x36304d[_0x44fc4b(0xb22)]&&(_0xa74735['generateMipMaps']=!0x0),this[_0x44fc4b(0x14f)][_0x44fc4b(0x483)](_0xa74735),_0x21d8ae&&_0x21d8ae[_0x44fc4b(0xcb3)]&&!_0x36304d[_0x44fc4b(0xb22)]&&(_0xa74735[_0x44fc4b(0xb22)]=!0x1),_0x29a53f;},_0x1128be['Q'][_0x147360(0x78e)][_0x147360(0x9c2)]=function(_0x299056,_0x14d3c3){var _0x2ee1e6=_0x147360;this[_0x2ee1e6(0x489)][_0x2ee1e6(0x9c2)](_0x299056,_0x14d3c3);},_0x50fefb['f'][_0x147360(0x78e)]['setTextureSampler']=function(_0x376f3f,_0x4ea651){var _0x2bd42c=_0x147360,_0x2abb4c;null!=(_0x2abb4c=this[_0x2bd42c(0x822)])&&_0x2abb4c[_0x2bd42c(0x733)](_0x376f3f,_0x4ea651);},_0x1128be['Q'][_0x147360(0x78e)][_0x147360(0x282)]=function(_0x56691c,_0x245451){var _0x1370c0=_0x147360;this[_0x1370c0(0x489)][_0x1370c0(0x282)](_0x56691c,_0x245451);},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x89e)]=function(_0x2a50d0,_0xe3bf49){var _0x4c7987=_0x147360;return this[_0x4c7987(0x86e)](_0x2a50d0,_0xe3bf49|_0x2215be['g'][_0x4c7987(0xa9a)]);},_0x50fefb['f']['prototype']['updateStorageBuffer']=function(_0x1008b8,_0x516f6e,_0x49a62d,_0x129895){var _0x533537=_0x147360;void 0x0===_0x49a62d&&(_0x49a62d=0x0);let _0x202041;void 0x0===_0x129895?_0x129895=(_0x202041=_0x516f6e instanceof Array?new Float32Array(_0x516f6e):_0x516f6e instanceof ArrayBuffer?new Uint8Array(_0x516f6e):_0x516f6e)[_0x533537(0x65f)]:_0x202041=_0x516f6e instanceof Array?new Float32Array(_0x516f6e):_0x516f6e instanceof ArrayBuffer?new Uint8Array(_0x516f6e):_0x516f6e,this[_0x533537(0x2cb)]['setSubData'](_0x1008b8,_0x49a62d,_0x202041,0x0,_0x129895);},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x226)]=function(_0xa01826,_0x1a27ff,_0x55c4b4,_0x15229f){var _0x5a3bba=_0x147360;_0x55c4b4=_0x55c4b4||_0xa01826[_0x5a3bba(0x572)];const _0x5f187c=this[_0x5a3bba(0x2cb)][_0x5a3bba(0x8e9)](_0x55c4b4,_0x2410e0['FB'][_0x5a3bba(0x686)]|_0x2410e0['FB'][_0x5a3bba(0xa26)]);return this[_0x5a3bba(0x3eb)][_0x5a3bba(0x5b2)](_0xa01826[_0x5a3bba(0x913)],null!=_0x1a27ff?_0x1a27ff:0x0,_0x5f187c,0x0,_0x55c4b4),new Promise((_0x20ed8b,_0x36fb7f)=>{var _0xb58e02=_0x5a3bba;this[_0xb58e02(0x780)][_0xb58e02(0xa3b)](()=>{var _0x7ea930=_0xb58e02;_0x5f187c[_0x7ea930(0x4ca)](_0x2410e0['gc'][_0x7ea930(0xa28)],0x0,_0x55c4b4)[_0x7ea930(0x6c0)](()=>{var _0x481e38=_0x7ea930,_0x21222d=_0x5f187c['getMappedRange'](0x0,_0x55c4b4);let _0x33fc5e=_0x15229f;if(void 0x0===_0x33fc5e)(_0x33fc5e=new Uint8Array(_0x55c4b4))[_0x481e38(0x6c1)](new Uint8Array(_0x21222d));else{const _0x21e359=_0x33fc5e['constructor'];(_0x33fc5e=new _0x21e359(_0x33fc5e[_0x481e38(0xbeb)]))[_0x481e38(0x6c1)](new _0x21e359(_0x21222d));}_0x5f187c[_0x481e38(0x738)](),this[_0x481e38(0x2cb)][_0x481e38(0x68b)](_0x5f187c),_0x20ed8b(_0x33fc5e);},_0x1490c8=>_0x36fb7f(_0x1490c8));});});},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0x282)]=function(_0xa1286f,_0x5dfe1f){var _0x21b1a8=_0x147360,_0x50d943;null!=(_0x50d943=this[_0x21b1a8(0xd04)])&&_0x50d943[_0x21b1a8(0xb25)](_0xa1286f,null!=(_0x50d943=null==_0x5dfe1f?void 0x0:_0x5dfe1f[_0x21b1a8(0x293)]())?_0x50d943:null);},_0x50fefb['f'][_0x147360(0x78e)]['createUniformBuffer']=function(_0x3928af){var _0x110257=_0x147360;return _0x3928af=_0x3928af instanceof Array?new Float32Array(_0x3928af):_0x3928af,this[_0x110257(0x2cb)][_0x110257(0x22a)](_0x3928af,_0x2410e0['FB'][_0x110257(0xaca)]|_0x2410e0['FB'][_0x110257(0xa26)]);},_0x50fefb['f'][_0x147360(0x78e)][_0x147360(0xcb6)]=function(_0x594c1c){var _0x381410=_0x147360;return this[_0x381410(0x353)](_0x594c1c);},_0x50fefb['f']['prototype'][_0x147360(0xcf1)]=function(_0x3fb9fc,_0x42c8b4,_0x547152,_0x4cbda8){var _0x593017=_0x147360;void 0x0===_0x547152&&(_0x547152=0x0);let _0x3af1f6;void 0x0===_0x4cbda8?_0x4cbda8=(_0x3af1f6=_0x42c8b4 instanceof Float32Array?_0x42c8b4:new Float32Array(_0x42c8b4))['byteLength']:_0x3af1f6=_0x42c8b4 instanceof Float32Array?_0x42c8b4:new Float32Array(_0x42c8b4),this[_0x593017(0x2cb)][_0x593017(0x302)](_0x3fb9fc,_0x547152,_0x3af1f6,0x0,_0x4cbda8);},_0x50fefb['f'][_0x147360(0x78e)]['bindUniformBufferBase']=function(_0x178bd1,_0x48434e,_0x58e2d0){var _0x342f16=_0x147360;this[_0x342f16(0xd04)][_0x342f16(0xb25)](_0x58e2d0,_0x178bd1);},_0x50fefb['f'][_0x147360(0x78e)]['bindUniformBlock']=function(){},_0x50fefb['f']['prototype'][_0x147360(0xcad)]=function(_0x4ac218,_0x2a6075,_0x512728){var _0x3ad679=_0x147360,_0x59e955;if(_0x4ac218&&!_0x4ac218[_0x3ad679(0xcc4)]){void 0x0===this[_0x3ad679(0x51e)]&&(this[_0x3ad679(0x51e)]=!0x0);let _0x4afc25=_0x4ac218[_0x3ad679(0x49d)];null!=(_0x59e955=_0x4ac218[_0x3ad679(0x49d)])&&_0x59e955['underlyingResource']||(_0x4afc25=this[_0x3ad679(0x14f)]['createGPUTextureForInternalTexture'](_0x4ac218)),_0x2a6075&&void 0x0!==_0x2a6075[_0x3ad679(0x913)]?(this['_textureHelper']['copyVideoToTexture'](_0x2a6075,_0x4ac218,_0x4afc25[_0x3ad679(0xb59)],!_0x512728),_0x4ac218[_0x3ad679(0xb22)]&&this[_0x3ad679(0x8f2)](_0x4ac218,this[_0x3ad679(0x904)]),_0x4ac218[_0x3ad679(0x3f1)]=!0x0):_0x2a6075&&this[_0x3ad679(0x3a9)](_0x2a6075)[_0x3ad679(0x6c0)](_0x57d83c=>{var _0x35655e=_0x3ad679;this[_0x35655e(0x14f)][_0x35655e(0x3ea)](_0x57d83c,_0x4ac218,_0x4ac218[_0x35655e(0x3e9)],_0x4ac218['height'],_0x4ac218[_0x35655e(0x711)],_0x4afc25['format'],0x0,0x0,!_0x512728,!0x1,0x0,0x0),_0x4ac218[_0x35655e(0xb22)]&&this[_0x35655e(0x8f2)](_0x4ac218,this['_uploadEncoder']),_0x4ac218[_0x35655e(0x3f1)]=!0x0;})[_0x3ad679(0x6fa)](()=>{var _0x578407=_0x3ad679;_0x4ac218[_0x578407(0x3f1)]=!0x0;});}};},0x9a9a:(_0x56e704,_0x5f6020,_0x4028f8)=>{var _0x16de8d=a7_0x3304fb;_0x4028f8['d'](_0x5f6020,{'V':()=>_0x7f66f9});var _0x248e0c=_0x4028f8(0x8ad5),_0x1d6537=_0x4028f8(0xc86b),_0x25dba1=_0x4028f8(0x1610),_0x5c25ba=_0x4028f8(0x6068),_0x4462d5=_0x4028f8(0x177e8);class _0x7f66f9{constructor(_0x1970de){var _0x5bfb52=a7_0x4135;this[_0x5bfb52(0x8ec)]=[],this[_0x5bfb52(0x38b)]=_0x1970de;}static[_0x16de8d(0xb87)](_0x4d0195){var _0x27003=_0x16de8d;return void 0x0===_0x4d0195[_0x27003(0x913)];}['createRawBuffer'](_0x3cd408,_0x1b9204,_0x4fa156=!0x1){var _0x5dad7e=_0x16de8d;return _0x3cd408=void 0x0!==_0x3cd408[_0x5dad7e(0x65f)]?_0x3cd408['byteLength']+0x3&-0x4:_0x3cd408+0x3&-0x4,this['_device']['createBuffer']({'mappedAtCreation':_0x4fa156,'size':_0x3cd408,'usage':_0x1b9204});}[_0x16de8d(0x22a)](_0x2c336e,_0x39fd5e){var _0x42607a=_0x16de8d,_0x2bf962=void 0x0!==_0x2c336e[_0x42607a(0x65f)],_0x39fd5e=this['createRawBuffer'](_0x2c336e,_0x39fd5e);const _0x4de9dc=new _0x248e0c['C'](_0x39fd5e);return _0x4de9dc[_0x42607a(0xce1)]=0x1,_0x4de9dc[_0x42607a(0x572)]=_0x2bf962?_0x2c336e[_0x42607a(0x65f)]:_0x2c336e,_0x2bf962&&this[_0x42607a(0x302)](_0x4de9dc,0x0,_0x2c336e),_0x4de9dc;}['setRawData'](_0x183ac1,_0x18cfdd,_0x3ff37f,_0x4ad4c6,_0x2b42f7){var _0x2f60af=_0x16de8d;this['_device']['queue']['writeBuffer'](_0x183ac1,_0x18cfdd,_0x3ff37f[_0x2f60af(0xbeb)],_0x4ad4c6,_0x2b42f7);}['setSubData'](_0x5e9a8d,_0x4a78f2,_0x553440,_0x862ad9=0x0,_0x2df1d1=0x0){var _0x230d54=_0x16de8d,_0xb7d39b=_0x5e9a8d[_0x230d54(0x913)];_0x2df1d1=_0x2df1d1||_0x553440[_0x230d54(0x65f)],_0x2df1d1=Math[_0x230d54(0x1e1)](_0x2df1d1,_0x5e9a8d[_0x230d54(0x572)]-_0x4a78f2);let _0x5c4bd8=_0x553440[_0x230d54(0x40a)]+_0x862ad9,_0x2636c0=_0x5c4bd8+_0x2df1d1;var _0x1bfa73,_0x5e9a8d=_0x2df1d1+0x3&-0x4,_0x358b84=(_0x5e9a8d!==_0x2df1d1&&(_0x1bfa73=new Uint8Array(_0x553440[_0x230d54(0xbeb)]['slice'](_0x5c4bd8,_0x2636c0)),(_0x553440=new Uint8Array(_0x5e9a8d))[_0x230d54(0x6c1)](_0x1bfa73),_0x862ad9=0x0,_0x5c4bd8=0x0,_0x2df1d1=_0x2636c0=_0x5e9a8d),0xf00000);let _0x13ca8e=0x0;for(;_0x2636c0-(_0x5c4bd8+_0x13ca8e)>_0x358b84;)this[_0x230d54(0x38b)][_0x230d54(0x4f6)][_0x230d54(0xba6)](_0xb7d39b,_0x4a78f2+_0x13ca8e,_0x553440[_0x230d54(0xbeb)],_0x5c4bd8+_0x13ca8e,_0x358b84),_0x13ca8e+=_0x358b84;this[_0x230d54(0x38b)][_0x230d54(0x4f6)][_0x230d54(0xba6)](_0xb7d39b,_0x4a78f2+_0x13ca8e,_0x553440[_0x230d54(0xbeb)],_0x5c4bd8+_0x13ca8e,_0x2df1d1-_0x13ca8e);}[_0x16de8d(0xc47)](_0xcd2067,_0x185945,_0xab7ff8){_0xab7ff8=_0xab7ff8||new Float32Array(_0xcd2067);for(var _0x597754=new Uint16Array(_0x185945);_0xcd2067--;)_0xab7ff8[_0xcd2067]=(0x0,_0x1d6537['qZ'])(_0x597754[_0xcd2067]);return _0xab7ff8;}[_0x16de8d(0xc49)](_0x4a984d,_0x407281,_0x5afa2b,_0x214fad,_0x522fa4,_0x1b2c5b,_0xdfab6f=_0x25dba1['g'][_0x16de8d(0x342)],_0x2fbedf=0x0,_0x5854f7=null,_0x4c758f=!0x0,_0x30bd85=!0x1){var _0x2b289c=_0x16de8d;const _0x17313=_0xdfab6f===_0x25dba1['g']['TEXTURETYPE_FLOAT']?0x2:_0xdfab6f===_0x25dba1['g'][_0x2b289c(0x208)]?0x1:0x0;return new Promise((_0xd8aeb6,_0x5561f1)=>{var _0xdd9f80=_0x2b289c;_0x4a984d[_0xdd9f80(0x4ca)](_0x4462d5['gc'][_0xdd9f80(0xa28)],_0x2fbedf,_0x407281)[_0xdd9f80(0x6c0)](()=>{var _0x50a1c9=_0xdd9f80,_0x4516fb=_0x4a984d['getMappedRange'](_0x2fbedf,_0x407281);let _0x49a511=_0x5854f7;if(_0x30bd85)_0x49a511=null===_0x49a511?(0x0,_0x5c25ba['A'])(_0xdfab6f,_0x407281,!0x0,_0x4516fb):(0x0,_0x5c25ba['A'])(_0xdfab6f,_0x49a511[_0x50a1c9(0xbeb)],void 0x0,_0x4516fb);else{if(null===_0x49a511)switch(_0x17313){case 0x0:(_0x49a511=new Uint8Array(_0x407281))[_0x50a1c9(0x6c1)](new Uint8Array(_0x4516fb));break;case 0x1:_0x49a511=this[_0x50a1c9(0xc47)](_0x407281/0x2,_0x4516fb);break;case 0x2:(_0x49a511=new Float32Array(_0x407281/0x4))[_0x50a1c9(0x6c1)](new Float32Array(_0x4516fb));}else switch(_0x17313){case 0x0:(_0x49a511=new Uint8Array(_0x49a511[_0x50a1c9(0xbeb)]))[_0x50a1c9(0x6c1)](new Uint8Array(_0x4516fb));break;case 0x1:_0x49a511=this[_0x50a1c9(0xc47)](_0x407281/0x2,_0x4516fb,_0x5854f7);break;case 0x2:(_0x49a511=new Float32Array(_0x49a511[_0x50a1c9(0xbeb)]))[_0x50a1c9(0x6c1)](new Float32Array(_0x4516fb));}}if(_0x522fa4!==_0x1b2c5b){0x1!=_0x17313||_0x30bd85||(_0x522fa4*=0x2,_0x1b2c5b*=0x2);const _0x4b16cd=new Uint8Array(_0x49a511['buffer']);let _0x24c0ff=_0x522fa4,_0x252836=0x0;for(let _0x1ec47c=0x1;_0x1ec47c<_0x214fad;++_0x1ec47c){_0x252836=_0x1ec47c*_0x1b2c5b;for(let _0xb3555f=0x0;_0xb3555f<_0x522fa4;++_0xb3555f)_0x4b16cd[_0x24c0ff++]=_0x4b16cd[_0x252836++];}_0x49a511=0x0==_0x17313||_0x30bd85?new Uint8Array(_0x4b16cd[_0x50a1c9(0xbeb)],0x0,_0x24c0ff):new Float32Array(_0x4b16cd[_0x50a1c9(0xbeb)],0x0,_0x24c0ff/0x4);}_0x4a984d[_0x50a1c9(0x738)](),_0x4c758f&&this[_0x50a1c9(0x68b)](_0x4a984d),_0xd8aeb6(_0x49a511);},_0x3e94d9=>_0x5561f1(_0x3e94d9));});}[_0x16de8d(0x68b)](_0x5d3887){var _0x1a9a98=_0x16de8d;return _0x7f66f9[_0x1a9a98(0xb87)](_0x5d3887)?(this[_0x1a9a98(0x8ec)][_0x1a9a98(0x725)](_0x5d3887),!0x0):(_0x5d3887[_0x1a9a98(0xce1)]--,0x0===_0x5d3887[_0x1a9a98(0xce1)]&&(this[_0x1a9a98(0x8ec)][_0x1a9a98(0x725)](_0x5d3887[_0x1a9a98(0x913)]),!0x0));}['destroyDeferredBuffers'](){var _0x15de9e=_0x16de8d;for(let _0x1d8612=0x0;_0x1d8612<this['_deferredReleaseBuffers'][_0x15de9e(0x86f)];++_0x1d8612)this[_0x15de9e(0x8ec)][_0x1d8612]['destroy']();this[_0x15de9e(0x8ec)]['length']=0x0;}}},0x12418:(_0x4490b1,_0x22e327,_0x4d9075)=>{var _0x1fc048=a7_0x3304fb;_0x4d9075['d'](_0x22e327,{'GB':()=>_0x4043a0,'fv':()=>_0x1e647e,'fw':()=>_0x4e6090,'kP':()=>_0x493578,'me':()=>_0x576f57,'nt':()=>_0x24f95d,'vr':()=>_0x41e588});class _0x1e647e{constructor(_0x4cc6de,_0x40edae,_0x4e0c42,_0x21c40c){var _0x1de7c9=a7_0x4135;this['x']=Math['floor'](_0x4cc6de),this['y']=Math[_0x1de7c9(0x17c)](_0x40edae),this['w']=Math[_0x1de7c9(0x17c)](_0x4e0c42),this['h']=Math[_0x1de7c9(0x17c)](_0x21c40c);}[_0x1fc048(0x176)](_0x49e0a4){var _0x12ba04=_0x1fc048;_0x49e0a4[_0x12ba04(0x3ff)](this['x'],this['y'],this['w'],this['h'],0x0,0x1);}[_0x1fc048(0x4fb)](){return new _0x1e647e(this['x'],this['y'],this['w'],this['h']);}}class _0x576f57{constructor(_0x3f9e89,_0x3750ed,_0x5a0b35,_0x56bd5e){this['x']=_0x3f9e89,this['y']=_0x3750ed,this['w']=_0x5a0b35,this['h']=_0x56bd5e;}[_0x1fc048(0x176)](_0x41ead8){var _0x154896=_0x1fc048;_0x41ead8[_0x154896(0x816)](this['x'],this['y'],this['w'],this['h']);}[_0x1fc048(0x4fb)](){return new _0x576f57(this['x'],this['y'],this['w'],this['h']);}}class _0x41e588{constructor(_0x328428){var _0x4dbeba=_0x1fc048;this[_0x4dbeba(0x6e3)]=_0x328428;}['run'](_0x181719){var _0xffd32d=_0x1fc048;_0x181719[_0xffd32d(0x7d1)](this['ref']);}['clone'](){var _0x23ab6b=_0x1fc048;return new _0x41e588(this[_0x23ab6b(0x6e3)]);}}class _0x493578{constructor(_0x1c6220){var _0x44533d=_0x1fc048;this[_0x44533d(0xc9e)]=_0x1c6220;}['run'](_0x9c7600){var _0x140beb=_0x1fc048;_0x9c7600[_0x140beb(0x234)](this[_0x140beb(0xc9e)]);}[_0x1fc048(0x4fb)](){var _0x1e1355=_0x1fc048;return new _0x493578(this[_0x1e1355(0xc9e)]);}}class _0x4043a0{constructor(_0x2349a1){var _0x4371c1=_0x1fc048;this[_0x4371c1(0xb15)]=_0x2349a1;}[_0x1fc048(0x176)](_0x1bb372){var _0x412330=_0x1fc048;_0x1bb372[_0x412330(0x598)](this[_0x412330(0xb15)]);}['clone'](){var _0x4d0d3d=_0x1fc048;return new _0x4043a0(this[_0x4d0d3d(0xb15)]);}}class _0x4e6090{constructor(){}[_0x1fc048(0x176)](_0x599917){var _0x23b044=_0x1fc048;_0x599917[_0x23b044(0xa92)]();}['clone'](){return new _0x4e6090();}}class _0xee113b{constructor(){var _0x3905fa=_0x1fc048;this[_0x3905fa(0x5fc)]=[];}[_0x1fc048(0x176)](_0xbd127b){var _0x5887bf=_0x1fc048;_0xbd127b[_0x5887bf(0x5ad)](this[_0x5887bf(0x5fc)]);}['clone'](){var _0x2bdf71=_0x1fc048;const _0x416fd8=new _0xee113b();return _0x416fd8['bundles']=this[_0x2bdf71(0x5fc)],_0x416fd8;}}class _0x24f95d{constructor(_0x352b4c){var _0x2b777a=_0x1fc048;this[_0x2b777a(0xd02)]=0x0,this[_0x2b777a(0x38b)]=_0x352b4c,this[_0x2b777a(0xb7b)]=new Array(0xa),this[_0x2b777a(0xb4a)]=0x0;}['addBundle'](_0x11031e){var _0x5d24cc=_0x1fc048,_0x408e8e;this[_0x5d24cc(0x431)]||(_0x408e8e=new _0xee113b(),this[_0x5d24cc(0xb7b)][this[_0x5d24cc(0xb4a)]++]=_0x408e8e,this[_0x5d24cc(0x4c0)]=_0x408e8e[_0x5d24cc(0x5fc)],this[_0x5d24cc(0x431)]=!0x0),_0x11031e&&this['_currentBundleList'][_0x5d24cc(0x725)](_0x11031e);}['_finishBundle'](){var _0x55f5bc=_0x1fc048;this['_currentItemIsBundle']&&this[_0x55f5bc(0x227)]&&(this[_0x55f5bc(0x4c0)][_0x55f5bc(0x725)](this[_0x55f5bc(0x227)][_0x55f5bc(0xb1d)]()),this['_bundleEncoder']=void 0x0,this['_currentItemIsBundle']=!0x1);}[_0x1fc048(0x9c6)](_0x663024){var _0x16197d=_0x1fc048;this[_0x16197d(0x646)](),this[_0x16197d(0xb7b)][this[_0x16197d(0xb4a)]++]=_0x663024,this['_currentItemIsBundle']=!0x1;}[_0x1fc048(0x305)](_0x22cdc7,_0x44b780,_0x4c3c58){var _0x1456b5=_0x1fc048;return this[_0x1456b5(0x431)]||(this[_0x1456b5(0x41e)](),this['_bundleEncoder']=this[_0x1456b5(0x38b)]['createRenderBundleEncoder']({'colorFormats':_0x22cdc7,'depthStencilFormat':_0x44b780,'sampleCount':_0x4c3c58})),this[_0x1456b5(0x227)];}[_0x1fc048(0x7f3)](){var _0x4a28ca=_0x1fc048;this[_0x4a28ca(0x646)]();}['run'](_0x13d6da){var _0x4dff2a=_0x1fc048;this[_0x4dff2a(0x7f3)]();for(let _0x1aca28=0x0;_0x1aca28<this[_0x4dff2a(0xb4a)];++_0x1aca28)this[_0x4dff2a(0xb7b)][_0x1aca28][_0x4dff2a(0x176)](_0x13d6da);}[_0x1fc048(0x4ac)](){var _0x19a73c=_0x1fc048;this[_0x19a73c(0xb4a)]=0x0,this['_currentItemIsBundle']=!0x1,this[_0x19a73c(0xd02)]=0x0;}[_0x1fc048(0x4fb)](){var _0x1980d7=_0x1fc048;this[_0x1980d7(0x7f3)]();const _0xe42ad7=new _0x24f95d(this['_device']);_0xe42ad7['_list']=new Array(this[_0x1980d7(0xb4a)]),_0xe42ad7['_listLength']=this[_0x1980d7(0xb4a)],_0xe42ad7['numDrawCalls']=this[_0x1980d7(0xd02)];for(let _0x1ce41f=0x0;_0x1ce41f<this[_0x1980d7(0xb4a)];++_0x1ce41f)_0xe42ad7[_0x1980d7(0xb7b)][_0x1ce41f]=this[_0x1980d7(0xb7b)][_0x1ce41f][_0x1980d7(0x4fb)]();return _0xe42ad7;}}},0xa96c:(_0x2c5622,_0x32f4b4,_0x28daaf)=>{var _0x3bd4b7=a7_0x3304fb;_0x28daaf['d'](_0x32f4b4,{'T':()=>_0x5573d2});var _0x3a706e=_0x28daaf(0x1610),_0x170802=_0x28daaf(0xfd78),_0x3450bc=_0x28daaf(0xcf70),_0x1f4845=_0x28daaf(0xfeca),_0x32f4b4=_0x28daaf(0x26fa);_0x32f4b4['v']['ShadersStore'][_0x3bd4b7(0xb44)]=_0x3bd4b7(0x8ad),_0x32f4b4['v']['ShadersStore'][_0x3bd4b7(0x7a7)]='uniform\x20vec4\x20color;\x0avoid\x20main()\x20{\x0agl_FragColor=color;\x0a}\x0a';class _0x5573d2{constructor(_0x25dc27,_0x42a536,_0x4c8e9a){var _0x18f9ad=_0x3bd4b7;this[_0x18f9ad(0x53e)]={},this[_0x18f9ad(0xaba)]={},this[_0x18f9ad(0x32c)]=[],this[_0x18f9ad(0x38b)]=_0x25dc27,this[_0x18f9ad(0x489)]=_0x42a536,this[_0x18f9ad(0x45a)]=new _0x170802['H'](this[_0x18f9ad(0x38b)],_0x4c8e9a,!_0x42a536[_0x18f9ad(0x210)]['textureFloatLinearFiltering']),this[_0x18f9ad(0x45a)][_0x18f9ad(0xa0a)](!0x1),this['_cacheRenderPipeline'][_0x18f9ad(0xc32)](0xff),this[_0x18f9ad(0x497)]=_0x42a536[_0x18f9ad(0x3ce)](_0x18f9ad(0x54c),[],[_0x18f9ad(0xc9e),_0x18f9ad(0x85d)]);}['setDepthStencilFormat'](_0x250a11){var _0x31f998=_0x3bd4b7;this[_0x31f998(0xa53)]=_0x250a11,this[_0x31f998(0x45a)][_0x31f998(0x3a6)](_0x250a11);}[_0x3bd4b7(0x748)](_0x1e250a){var _0x15e43c=_0x3bd4b7;this['_cacheRenderPipeline'][_0x15e43c(0x748)](_0x1e250a);}[_0x3bd4b7(0xb81)](_0x194889,_0x371d1e,_0x5e33cb){var _0xbb2f3f=_0x3bd4b7;this[_0xbb2f3f(0x45a)]['setMRT'](_0x371d1e,_0x5e33cb),this['_cacheRenderPipeline'][_0xbb2f3f(0xb81)](_0x194889);}['clear'](_0x2e9fb9,_0x459fd8,_0x79c0f9,_0x159985,_0x45b805=0x1){var _0x53f66f=_0x3bd4b7,_0x2ce02e;let _0x52cede,_0x4db1e3=null,_0x41caca;var _0x2ebfb3=!!this[_0x53f66f(0x489)][_0x53f66f(0x233)];if(_0x2e9fb9)_0x52cede=_0x2e9fb9;else{let _0x13b751=0x0;for(let _0x4ac186=this[_0x53f66f(0x32c)][_0x53f66f(0x86f)]=0x0;_0x4ac186<this['_cacheRenderPipeline'][_0x53f66f(0x8c9)]['length'];++_0x4ac186)this[_0x53f66f(0x32c)][_0x13b751++]=_0x1f4845['U'][null!=(_0x2ce02e=this['_cacheRenderPipeline'][_0x53f66f(0x8c9)][_0x4ac186])?_0x2ce02e:''];var _0x45e0d3=_0x1f4845['U'][null!=(_0x45e0d3=this[_0x53f66f(0xa53)])?_0x45e0d3:0x0];if(this[_0x53f66f(0x32c)][_0x13b751]=(_0x459fd8?_0x459fd8['r']+0x100*_0x459fd8['g']+0x100*_0x459fd8['b']*0x100+0x100*_0x459fd8['a']*0x100*0x100:0x0)+(_0x79c0f9?Math[_0x53f66f(0x5ca)](0x2,0x20):0x0)+(_0x159985?Math[_0x53f66f(0x5ca)](0x2,0x21):0x0)+(this[_0x53f66f(0x489)][_0x53f66f(0xb6c)]?Math[_0x53f66f(0x5ca)](0x2,0x22):0x0)+(_0x2ebfb3?Math[_0x53f66f(0x5ca)](0x2,0x23):0x0)+(0x1<_0x45b805?Math[_0x53f66f(0x5ca)](0x2,0x24):0x0)+_0x45e0d3*Math['pow'](0x2,0x25),_0x41caca=this[_0x53f66f(0x32c)]['join']('_'),_0x4db1e3=this[_0x53f66f(0xaba)][_0x41caca])return _0x4db1e3;_0x52cede=this[_0x53f66f(0x38b)][_0x53f66f(0x16a)]({'colorFormats':this['_cacheRenderPipeline']['colorFormats'],'depthStencilFormat':this[_0x53f66f(0xa53)],'sampleCount':_0x45b805});}this[_0x53f66f(0x45a)][_0x53f66f(0x46e)](!!_0x79c0f9),this['_cacheRenderPipeline'][_0x53f66f(0xa27)](!!_0x159985&&!!this[_0x53f66f(0xa53)]&&_0x1f4845['D'][_0x53f66f(0x4c6)](this['_depthTextureFormat'])),this[_0x53f66f(0x45a)][_0x53f66f(0x6b3)](_0x159985?0xff:0x0),this['_cacheRenderPipeline']['setStencilCompare'](_0x159985?_0x3a706e['g']['ALWAYS']:_0x3a706e['g'][_0x53f66f(0x48e)]),this[_0x53f66f(0x45a)][_0x53f66f(0xbdb)](_0x159985?_0x3a706e['g'][_0x53f66f(0x873)]:_0x3a706e['g'][_0x53f66f(0x2dc)]),this[_0x53f66f(0x45a)][_0x53f66f(0x191)](_0x459fd8?0xf:0x0),_0x45e0d3=this[_0x53f66f(0x45a)][_0x53f66f(0x3a2)](_0x3a706e['g']['MATERIAL_TriangleStripDrawMode'],this[_0x53f66f(0x497)],_0x45b805);const _0x59c1a2=this[_0x53f66f(0x497)][_0x53f66f(0xafa)];_0x459fd8&&this['_effect'][_0x53f66f(0x697)](_0x53f66f(0xc9e),_0x459fd8),this['_effect'][_0x53f66f(0x760)]('depthValue',this[_0x53f66f(0x489)][_0x53f66f(0xb6c)]?this[_0x53f66f(0x489)][_0x53f66f(0xa5a)]:this[_0x53f66f(0x489)][_0x53f66f(0x15a)]),_0x59c1a2[_0x53f66f(0xcb4)]['update'](),(_0x79c0f9=_0x2ebfb3?this[_0x53f66f(0x489)]['_ubInvertY']:this[_0x53f66f(0x489)][_0x53f66f(0x2c9)],_0x159985=_0x59c1a2[_0x53f66f(0xcb4)][_0x53f66f(0x293)](),_0x45b805=_0x159985[_0x53f66f(0xb76)]+'-'+_0x79c0f9[_0x53f66f(0xb76)]);let _0x12c6bc=this[_0x53f66f(0x53e)][_0x45b805];_0x12c6bc||(_0x459fd8=_0x59c1a2[_0x53f66f(0x19f)],(_0x12c6bc=this[_0x53f66f(0x53e)][_0x45b805]=[])[_0x53f66f(0x725)](this[_0x53f66f(0x38b)][_0x53f66f(0x79b)]({'layout':_0x459fd8[0x0],'entries':[]})),_0x3450bc['d'][_0x53f66f(0x639)]||_0x12c6bc[_0x53f66f(0x725)](this[_0x53f66f(0x38b)][_0x53f66f(0x79b)]({'layout':_0x459fd8[0x1],'entries':[]})),_0x12c6bc[_0x53f66f(0x725)](this[_0x53f66f(0x38b)][_0x53f66f(0x79b)]({'layout':_0x459fd8[_0x3450bc['d'][_0x53f66f(0x639)]?0x1:0x2],'entries':[{'binding':0x0,'resource':{'buffer':_0x79c0f9[_0x53f66f(0x913)],'size':_0x79c0f9[_0x53f66f(0x572)]}},{'binding':0x1,'resource':{'buffer':_0x159985[_0x53f66f(0x913)],'size':_0x159985[_0x53f66f(0x572)]}}]}))),_0x52cede[_0x53f66f(0x3a1)](_0x45e0d3);for(let _0x55e48b=0x0;_0x55e48b<_0x12c6bc['length'];++_0x55e48b)_0x52cede[_0x53f66f(0x1ac)](_0x55e48b,_0x12c6bc[_0x55e48b]);return _0x52cede[_0x53f66f(0x63b)](0x4,0x1,0x0,0x0),_0x2e9fb9||(_0x4db1e3=_0x52cede[_0x53f66f(0xb1d)](),this[_0x53f66f(0xaba)][_0x41caca]=_0x4db1e3),_0x4db1e3;}}},0x503c:(_0x91d31c,_0x4b9605,_0x116d38)=>{var _0x11ccf0=a7_0x3304fb;_0x116d38['d'](_0x4b9605,{'K':()=>_0x2cba52});class _0x2cba52 extends _0x116d38(0x6346)['k']{constructor(_0x3cc3f5){var _0x2f86f0=a7_0x4135;super(!0x1),this[_0x2f86f0(0x615)]=_0x3cc3f5,this[_0x2f86f0(0x4ac)]();}get[_0x11ccf0(0xcff)](){var _0x5c1800=_0x11ccf0;return this[_0x5c1800(0x81a)];}set[_0x11ccf0(0xcff)](_0x102671){var _0x69e69e=_0x11ccf0;this[_0x69e69e(0x81a)]!==_0x102671&&(this[_0x69e69e(0x81a)]=_0x102671,this[_0x69e69e(0xb64)]=!0x0,this[_0x69e69e(0x615)][_0x69e69e(0x3e0)](_0x102671));}get[_0x11ccf0(0x36d)](){var _0xbb4e86=_0x11ccf0;return this[_0xbb4e86(0x9a1)];}set[_0x11ccf0(0x36d)](_0x2cd716){var _0x1dbf31=_0x11ccf0;this[_0x1dbf31(0x9a1)]!==_0x2cd716&&(this['_zOffsetUnits']=_0x2cd716,this['_isZOffsetDirty']=!0x0,this[_0x1dbf31(0x615)][_0x1dbf31(0x7a3)](_0x2cd716));}get[_0x11ccf0(0x294)](){var _0x5ca01a=_0x11ccf0;return this[_0x5ca01a(0x3fd)];}set[_0x11ccf0(0x294)](_0x22a2f6){var _0x512477=_0x11ccf0;this[_0x512477(0x3fd)]!==_0x22a2f6&&(this[_0x512477(0x3fd)]=_0x22a2f6,this[_0x512477(0x742)]=!0x0,this[_0x512477(0x615)][_0x512477(0x82c)](null!=_0x22a2f6?_0x22a2f6:0x1));}get[_0x11ccf0(0x9f7)](){var _0x2b034e=_0x11ccf0;return this[_0x2b034e(0x24c)];}set[_0x11ccf0(0x9f7)](_0x13cda1){var _0x5b8ad1=_0x11ccf0;this['_cull']!==_0x13cda1&&(this[_0x5b8ad1(0x24c)]=_0x13cda1,this[_0x5b8ad1(0x6d1)]=!0x0,this[_0x5b8ad1(0x615)][_0x5b8ad1(0x7d3)](!!_0x13cda1));}get[_0x11ccf0(0x193)](){var _0x5f24f0=_0x11ccf0;return this[_0x5f24f0(0x791)];}set[_0x11ccf0(0x193)](_0x201be1){var _0x2c0e5f=_0x11ccf0;this[_0x2c0e5f(0x791)]!==_0x201be1&&(this[_0x2c0e5f(0x791)]=_0x201be1,this[_0x2c0e5f(0xce8)]=!0x0,this[_0x2c0e5f(0x615)]['setDepthCompare'](_0x201be1));}get[_0x11ccf0(0xcc0)](){return this['_depthMask'];}set['depthMask'](_0x15fa37){var _0x42710a=_0x11ccf0;this[_0x42710a(0x49a)]!==_0x15fa37&&(this['_depthMask']=_0x15fa37,this[_0x42710a(0x961)]=!0x0,this[_0x42710a(0x615)][_0x42710a(0x46e)](_0x15fa37));}get[_0x11ccf0(0x5a0)](){var _0x55d9d5=_0x11ccf0;return this[_0x55d9d5(0x6e7)];}set[_0x11ccf0(0x5a0)](_0x30312b){var _0x2110ed=_0x11ccf0;this[_0x2110ed(0x6e7)]!==_0x30312b&&(this[_0x2110ed(0x6e7)]=_0x30312b,this[_0x2110ed(0x7d8)]=!0x0,this['_cache'][_0x2110ed(0xa0a)](_0x30312b));}get[_0x11ccf0(0x7ba)](){var _0x1ade36=_0x11ccf0;return this[_0x1ade36(0x907)];}set['frontFace'](_0x39703f){var _0x113942=_0x11ccf0;this[_0x113942(0x907)]!==_0x39703f&&(this[_0x113942(0x907)]=_0x39703f,this[_0x113942(0x5eb)]=!0x0,this[_0x113942(0x615)][_0x113942(0x7db)](null!=_0x39703f?_0x39703f:0x2));}['reset'](){var _0x346991=_0x11ccf0;super[_0x346991(0x4ac)](),this[_0x346991(0x615)]['resetDepthCullingState']();}[_0x11ccf0(0x650)](){}}},0xa9c:(_0x25d42c,_0x31ce43,_0x39ddfe)=>{var _0x11b09f=a7_0x3304fb;_0x39ddfe['d'](_0x31ce43,{'Z':()=>_0x4a90bc});var _0x1a78b7=_0x39ddfe(0x17372),_0x486111=_0x39ddfe(0x177e8);class _0x4a90bc{constructor(_0x336a1f=null){var _0x588732=a7_0x4135;this[_0x588732(0xb59)]=_0x486111['EV'][_0x588732(0xcda)],this[_0x588732(0x320)]=0x0,this[_0x588732(0x7ab)]=0x0,this[_0x588732(0xae5)]=_0x336a1f,this[_0x588732(0x32d)]=null,this[_0x588732(0x611)]=null,this[_0x588732(0x3c0)]=null;}get[_0x11b09f(0x913)](){var _0x25b790=_0x11b09f;return this[_0x25b790(0xae5)];}['getMSAATexture'](_0x1f792b=0x0){var _0x4d4a7f;return null!=(_0x4d4a7f=null==(_0x4d4a7f=this['_webgpuMSAATexture'])?void 0x0:_0x4d4a7f[_0x1f792b])?_0x4d4a7f:null;}[_0x11b09f(0x452)](_0x133080,_0x56e859=-0x1){var _0x35cf22=_0x11b09f;this[_0x35cf22(0x32d)]||(this[_0x35cf22(0x32d)]=[]),-0x1===_0x56e859&&(_0x56e859=this[_0x35cf22(0x32d)][_0x35cf22(0x86f)]),this[_0x35cf22(0x32d)][_0x56e859]=_0x133080;}['releaseMSAATexture'](){var _0x20506e=_0x11b09f;if(this[_0x20506e(0x32d)]){for(const _0x4b8cdb of this[_0x20506e(0x32d)])_0x4b8cdb[_0x20506e(0x4e4)]();this[_0x20506e(0x32d)]=null;}}[_0x11b09f(0x6c1)](_0x39bb8f){this['_webgpuTexture']=_0x39bb8f;}[_0x11b09f(0x58c)](_0x8343d5,_0x3c57c8,_0x1368d6,_0x320f04,_0x585727){var _0x5d5946=_0x11b09f;this[_0x5d5946(0x946)]({'format':this[_0x5d5946(0xb59)],'dimension':_0x1368d6?_0x486111['p_']['Cube']:_0x486111['p_']['E2d'],'mipLevelCount':_0x3c57c8?_0x1a78b7['R'][_0x5d5946(0x8d9)](Math[_0x5d5946(0x3f8)](_0x320f04,_0x585727))+0x1:0x1,'baseArrayLayer':0x0,'baseMipLevel':0x0,'arrayLayerCount':_0x1368d6?0x6:0x1,'aspect':_0x486111['H7'][_0x5d5946(0xbe0)]});}[_0x11b09f(0x946)](_0x3dd2ee,_0x87d383=!0x1){var _0x4bf68a=_0x11b09f;this[_0x4bf68a(0x611)]=this['_webgpuTexture'][_0x4bf68a(0x946)](_0x3dd2ee),_0x87d383&&_0x3dd2ee&&(_0x87d383=_0x3dd2ee['mipLevelCount'],_0x3dd2ee['mipLevelCount']=0x1,this[_0x4bf68a(0x3c0)]=this[_0x4bf68a(0xae5)]['createView'](_0x3dd2ee),_0x3dd2ee[_0x4bf68a(0x5a5)]=_0x87d383);}[_0x11b09f(0x4ac)](){var _0x441362=_0x11b09f;this[_0x441362(0xae5)]=null,this[_0x441362(0x32d)]=null,this[_0x441362(0x611)]=null,this['viewForWriting']=null;}[_0x11b09f(0x27b)](){var _0x35a6e5=_0x11b09f,_0x27c39d;null!=(_0x27c39d=this[_0x35a6e5(0xae5)])&&_0x27c39d[_0x35a6e5(0x4e4)](),this[_0x35a6e5(0x705)](),null!=(_0x27c39d=this[_0x35a6e5(0x37d)])&&_0x27c39d['destroy'](),this[_0x35a6e5(0x4ac)]();}}},0x134b1:(_0x500b5e,_0x4d1b49,_0x32e8d8)=>{var _0x4cd38d=a7_0x3304fb;_0x32e8d8['d'](_0x4d1b49,{'D':()=>_0x4c6510});var _0x27ba6a=_0x32e8d8(0x6537),_0x443dc4=_0x32e8d8(0x1610),_0x40afb6=_0x32e8d8(0xa332);class _0x4c6510{constructor(){var _0x433b84=a7_0x4135;this[_0x433b84(0xb76)]=_0x4c6510['_Counter']++,this['updateId']=0x0,this[_0x433b84(0x4ac)]();}get[_0x4cd38d(0x3bc)](){var _0x20fe21=_0x4cd38d;return 0x0<this[_0x20fe21(0x56f)];}get[_0x4cd38d(0x6cf)](){return 0x0<this['_numFloatTextures'];}['reset'](){var _0x3a413e=_0x4cd38d;this[_0x3a413e(0x766)]={},this[_0x3a413e(0xa52)]={},this[_0x3a413e(0x8fc)]=!0x0,this[_0x3a413e(0xb37)]=0x0,this['_numExternalTextures']=0x0;}[_0x4cd38d(0x733)](_0xa16455,_0x481025){var _0xe98390=_0x4cd38d;let _0x49e389=this[_0xe98390(0x766)][_0xa16455],_0x30b3d6=-0x1;_0x49e389?_0x30b3d6=_0x49e389[_0xe98390(0xbf8)]:this[_0xe98390(0x766)][_0xa16455]=_0x49e389={'sampler':_0x481025,'hashCode':0x0},_0x49e389[_0xe98390(0xb3f)]=_0x481025,_0x49e389[_0xe98390(0xbf8)]=_0x481025?_0x40afb6['W'][_0xe98390(0xccb)](_0x481025):0x0,_0xa16455=_0x30b3d6!==_0x49e389[_0xe98390(0xbf8)],(_0xa16455&&this[_0xe98390(0x22c)]++,this[_0xe98390(0x8fc)]||(this[_0xe98390(0x8fc)]=_0xa16455));}[_0x4cd38d(0xbbc)](_0x914f2c,_0x42ba19){var _0x384353=_0x4cd38d,_0x5d6b1f;let _0x423c41=this['textures'][_0x914f2c],_0x24f20f=-0x1;_0x423c41?_0x24f20f=null!=(_0x5d6b1f=null==(_0x5d6b1f=_0x423c41[_0x384353(0x800)])?void 0x0:_0x5d6b1f[_0x384353(0xb76)])?_0x5d6b1f:-0x1:this[_0x384353(0xa52)][_0x914f2c]=_0x423c41={'texture':_0x42ba19,'isFloatTexture':!0x1,'isExternalTexture':!0x1},_0x423c41[_0x384353(0x6ad)]&&this[_0x384353(0x56f)]--,_0x423c41[_0x384353(0x564)]&&this[_0x384353(0xb37)]--,_0x42ba19?(_0x423c41[_0x384353(0x564)]=_0x42ba19[_0x384353(0xb26)]===_0x443dc4['g']['TEXTURETYPE_FLOAT'],_0x423c41['isExternalTexture']=_0x27ba6a['x'][_0x384353(0x44b)](_0x42ba19),_0x423c41[_0x384353(0x564)]&&this[_0x384353(0xb37)]++,_0x423c41['isExternalTexture']&&this[_0x384353(0x56f)]++):(_0x423c41['isFloatTexture']=!0x1,_0x423c41[_0x384353(0x6ad)]=!0x1),_0x423c41[_0x384353(0x800)]=_0x42ba19,_0x914f2c=_0x24f20f!==(null!=(_0x5d6b1f=null==_0x42ba19?void 0x0:_0x42ba19[_0x384353(0xb76)])?_0x5d6b1f:-0x1),(_0x914f2c&&this['updateId']++,this[_0x384353(0x8fc)]||(this[_0x384353(0x8fc)]=_0x914f2c));}}_0x4c6510[_0x4cd38d(0x644)]=0x0;},0x711d:(_0x9d48a5,_0x2c33c7,_0x57e60b)=>{var _0x5e6a57=a7_0x3304fb;_0x57e60b['d'](_0x2c33c7,{'D':()=>_0x25e95c});var _0x4d2d76=_0x57e60b(0x177e8),_0x94fa0a=_0x57e60b(0x13c77);class _0x25e95c{constructor(_0x473aaa,_0x220b52,_0xa1ca4a,_0x54667a=0x32,_0x563d39=0x64){var _0x5a321c=a7_0x4135;this[_0x5a321c(0x9df)]=[],this[_0x5a321c(0x489)]=_0x473aaa,this[_0x5a321c(0x38b)]=_0x220b52,this[_0x5a321c(0x2cb)]=_0xa1ca4a,this[_0x5a321c(0x783)]=-0x1,this[_0x5a321c(0x333)]=0x0,this[_0x5a321c(0xc92)]=_0x563d39,this[_0x5a321c(0xb1f)](_0x54667a);}get[_0x5e6a57(0x9c9)](){var _0x51d9ab=_0x5e6a57;return this[_0x51d9ab(0x66e)][_0x51d9ab(0x9c9)];}get[_0x5e6a57(0x341)](){var _0x1c5706=_0x5e6a57;return this['_currentTotalIndices']!==this[_0x1c5706(0x9df)][_0x1c5706(0x86f)];}get[_0x5e6a57(0xa8b)](){var _0x292b38=_0x5e6a57;switch(this['_engine'][_0x292b38(0x557)]()){case 0x0:return void 0x0!==this[_0x292b38(0x489)]['_mainRenderPassWrapper']['renderPassDescriptor']['occlusionQuerySet'];case 0x1:return void 0x0!==this[_0x292b38(0x489)]['_rttRenderPassWrapper'][_0x292b38(0xc21)][_0x292b38(0x5fa)];}return!0x1;}[_0x5e6a57(0xb7c)](){var _0x5051a4=_0x5e6a57;0x0===this[_0x5051a4(0x9df)][_0x5051a4(0x86f)]&&this[_0x5051a4(0xb1f)]();var _0x520533=this[_0x5051a4(0x9df)][this[_0x5051a4(0x9df)][_0x5051a4(0x86f)]-0x1];return this[_0x5051a4(0x9df)][_0x5051a4(0x86f)]--,_0x520533;}[_0x5e6a57(0xc66)](_0x56c1fb){var _0x47930e=_0x5e6a57;this[_0x47930e(0x9df)][this['_availableIndices'][_0x47930e(0x86f)]-0x1]=_0x56c1fb;}['isQueryResultAvailable'](_0x5d6d1f){var _0x34d20d=_0x5e6a57;return this['_retrieveQueryBuffer'](),!!this[_0x34d20d(0x899)]&&_0x5d6d1f<this[_0x34d20d(0x899)]['length'];}[_0x5e6a57(0x146)](_0x8b1f66){var _0x492365=_0x5e6a57,_0x41771c;return Number(null!=(_0x41771c=null==(_0x41771c=this[_0x492365(0x899)])?void 0x0:_0x41771c[_0x8b1f66])?_0x41771c:-0x1);}[_0x5e6a57(0x9ff)](){var _0x14fd38=_0x5e6a57;this[_0x14fd38(0x899)]&&this['_frameLastBuffer']===this[_0x14fd38(0x489)][_0x14fd38(0xcc1)]||this[_0x14fd38(0x783)]!==this[_0x14fd38(0x489)][_0x14fd38(0xcc1)]&&(this[_0x14fd38(0x783)]=this[_0x14fd38(0x489)][_0x14fd38(0xcc1)],this[_0x14fd38(0x66e)][_0x14fd38(0x26a)](0x0,this[_0x14fd38(0x333)])[_0x14fd38(0x6c0)](_0x204ee6=>{this['_lastBuffer']=_0x204ee6;}));}[_0x5e6a57(0xb1f)](_0x41ab59){var _0x468d31=_0x5e6a57;_0x41ab59=null!=_0x41ab59?_0x41ab59:this[_0x468d31(0xc92)],this[_0x468d31(0x30b)]();for(let _0x5e9e34=0x0;_0x5e9e34<_0x41ab59;++_0x5e9e34)this['_availableIndices'][_0x468d31(0x725)](this[_0x468d31(0x333)]+_0x5e9e34);this[_0x468d31(0x333)]+=_0x41ab59,this[_0x468d31(0x66e)]=new _0x94fa0a['t'](this[_0x468d31(0x333)],_0x4d2d76['xL'][_0x468d31(0x1b8)],this[_0x468d31(0x38b)],this[_0x468d31(0x2cb)],!0x1);}[_0x5e6a57(0x30b)](){var _0x5327da=_0x5e6a57;const _0x36ddc4=this[_0x5327da(0x66e)];_0x36ddc4&&setTimeout(()=>_0x36ddc4[_0x5327da(0xb4b)],0x3e8);}[_0x5e6a57(0xb4b)](){var _0x3837de=_0x5e6a57,_0x354fed;null!=(_0x354fed=this[_0x3837de(0x66e)])&&_0x354fed['dispose'](),this[_0x3837de(0x9df)][_0x3837de(0x86f)]=0x0;}}},0x10bb9:(_0x308234,_0x422866,_0x1c8625)=>{var _0xb3ea82=a7_0x3304fb;_0x1c8625['d'](_0x422866,{'$':()=>_0x5a74cb});var _0xc7ec35=_0x1c8625(0x181f4),_0x8acde3=_0x1c8625(0xa242);class _0x5a74cb{constructor(_0x146f44,_0x342677){var _0x2ea530=a7_0x4135;this['_name']='unnamed',this[_0x2ea530(0x931)]=_0x146f44,this[_0x2ea530(0x97c)]={},this[_0x2ea530(0x74a)]=_0x342677;}get[_0xb3ea82(0x43e)](){return!0x1;}get[_0xb3ea82(0x3f1)](){var _0x5a4ed8=_0xb3ea82;return!!this[_0x5a4ed8(0xb3c)];}[_0xb3ea82(0x717)](){}[_0xb3ea82(0x140)](_0x4669c4,_0x1d2270,_0x37938e,_0x517935,_0x340505,_0x22c805,_0x1a95da,_0x1f0a98){var _0x2b947b=_0xb3ea82;const _0x3b10ed=this[_0x2b947b(0x74a)];_0x4669c4[_0x2b947b(0x6af)]='',_0x4669c4['_vertexSourceCode']='';var _0x326a7c=this['shaderProcessingContext'][_0x2b947b(0x713)];let _0x1da89e;for(_0x1da89e=0x0;_0x1da89e<_0x340505[_0x2b947b(0x86f)];_0x1da89e++){var _0x14ee71=_0x340505[_0x1da89e];null==_0x326a7c[_0x340505[_0x1da89e]]?(_0x340505['splice'](_0x1da89e,0x1),_0x1da89e--):_0x22c805[_0x14ee71]=_0x1da89e;}for(const _0x3cf56d of _0x3b10ed[_0x2b947b(0xa81)](this,_0x1a95da))_0x1f0a98[_0x2b947b(0x725)](_0x3cf56d);this['buildUniformLayout']();const _0x586392=[],_0x31495a=[];for(_0x1da89e=0x0;_0x1da89e<_0x1a95da[_0x2b947b(0x86f)];_0x1da89e++){var _0x47210b=_0x1f0a98[_0x1da89e];0x0<=_0x47210b&&(_0x586392[_0x2b947b(0x725)](_0x1a95da[_0x1da89e]),_0x31495a[_0x2b947b(0x725)](_0x47210b));}this['shaderProcessingContext'][_0x2b947b(0xb12)]=_0x586392,this[_0x2b947b(0x931)][_0x2b947b(0x59c)]=_0x31495a;}[_0xb3ea82(0x1d5)](){var _0x28edcd=_0xb3ea82;if(this[_0x28edcd(0x931)]['leftOverUniforms']['length']){this[_0x28edcd(0xcb4)]=new _0xc7ec35['M'](this['engine'],void 0x0,void 0x0,_0x28edcd(0x5ab)+this['_name']);for(const _0x388182 of this[_0x28edcd(0x931)][_0x28edcd(0x187)]){var _0x24dfd0=_0x388182[_0x28edcd(0xb26)]['replace'](/^(.*?)(<.*>)?$/,'$1'),_0x24dfd0=_0x8acde3['e']['UniformSizes'][_0x24dfd0];this['uniformBuffer'][_0x28edcd(0x856)](_0x388182['name'],_0x24dfd0,_0x388182[_0x28edcd(0x86f)]),this[_0x28edcd(0x97c)][_0x388182[_0x28edcd(0x51b)]]=_0x388182['type'];}this['uniformBuffer']['create']();}}[_0xb3ea82(0xb4b)](){var _0x2b09f4=_0xb3ea82;this[_0x2b09f4(0xcb4)]&&this[_0x2b09f4(0xcb4)][_0x2b09f4(0xb4b)]();}[_0xb3ea82(0x213)](_0x37367d,_0xf28e2c){var _0xfe6f38=_0xb3ea82;this[_0xfe6f38(0xcb4)]&&this[_0xfe6f38(0x97c)][_0x37367d]&&this[_0xfe6f38(0xcb4)]['updateInt'](_0x37367d,_0xf28e2c);}['setInt2'](_0x59c486,_0x18eb9c,_0x830953){var _0x1c4bd5=_0xb3ea82;this['uniformBuffer']&&this['_leftOverUniformsByName'][_0x59c486]&&this[_0x1c4bd5(0xcb4)][_0x1c4bd5(0x749)](_0x59c486,_0x18eb9c,_0x830953);}[_0xb3ea82(0x326)](_0x361a79,_0x5b7727,_0x41c157,_0xf9032e){var _0x2cee00=_0xb3ea82;this[_0x2cee00(0xcb4)]&&this[_0x2cee00(0x97c)][_0x361a79]&&this['uniformBuffer']['updateInt3'](_0x361a79,_0x5b7727,_0x41c157,_0xf9032e);}[_0xb3ea82(0x2db)](_0x1e6ccf,_0x55b9d9,_0x498627,_0x26fada,_0xe288ed){var _0x1d1b0e=_0xb3ea82;this[_0x1d1b0e(0xcb4)]&&this[_0x1d1b0e(0x97c)][_0x1e6ccf]&&this[_0x1d1b0e(0xcb4)][_0x1d1b0e(0x83a)](_0x1e6ccf,_0x55b9d9,_0x498627,_0x26fada,_0xe288ed);}[_0xb3ea82(0x58f)](_0x4fab1e,_0x248d32){var _0x5991d2=_0xb3ea82;this[_0x5991d2(0xcb4)]&&this[_0x5991d2(0x97c)][_0x4fab1e]&&this[_0x5991d2(0xcb4)]['updateIntArray'](_0x4fab1e,_0x248d32);}[_0xb3ea82(0x888)](_0x4fdd54,_0x9e5639){var _0x5189b4=_0xb3ea82;this[_0x5189b4(0x58f)](_0x4fdd54,_0x9e5639);}[_0xb3ea82(0x3f6)](_0x2ecd69,_0x52a057){var _0x42189c=_0xb3ea82;this[_0x42189c(0x58f)](_0x2ecd69,_0x52a057);}[_0xb3ea82(0xc04)](_0x42316e,_0x4ad0b9){this['setIntArray'](_0x42316e,_0x4ad0b9);}[_0xb3ea82(0x3b2)](_0x47e9cb,_0x57698e){var _0x4e680a=_0xb3ea82;this[_0x4e680a(0xcb4)]&&this[_0x4e680a(0x97c)][_0x47e9cb]&&this[_0x4e680a(0xcb4)]['updateUInt'](_0x47e9cb,_0x57698e);}[_0xb3ea82(0x6b1)](_0x238165,_0x1bcf74,_0x2df155){var _0x92d493=_0xb3ea82;this[_0x92d493(0xcb4)]&&this[_0x92d493(0x97c)][_0x238165]&&this[_0x92d493(0xcb4)][_0x92d493(0x8ac)](_0x238165,_0x1bcf74,_0x2df155);}[_0xb3ea82(0x636)](_0x27c736,_0x39accb,_0x59c250,_0x3925a2){var _0x2b5b84=_0xb3ea82;this[_0x2b5b84(0xcb4)]&&this[_0x2b5b84(0x97c)][_0x27c736]&&this['uniformBuffer'][_0x2b5b84(0x3b7)](_0x27c736,_0x39accb,_0x59c250,_0x3925a2);}[_0xb3ea82(0x631)](_0xadbe9,_0x57f205,_0x30c96e,_0x46ca41,_0x430d2c){var _0x2fc078=_0xb3ea82;this[_0x2fc078(0xcb4)]&&this[_0x2fc078(0x97c)][_0xadbe9]&&this[_0x2fc078(0xcb4)][_0x2fc078(0x70b)](_0xadbe9,_0x57f205,_0x30c96e,_0x46ca41,_0x430d2c);}[_0xb3ea82(0x651)](_0x52620e,_0x240247){var _0x55be7b=_0xb3ea82;this[_0x55be7b(0xcb4)]&&this['_leftOverUniformsByName'][_0x52620e]&&this[_0x55be7b(0xcb4)][_0x55be7b(0x5df)](_0x52620e,_0x240247);}[_0xb3ea82(0x79e)](_0x47bb45,_0x27931d){this['setUIntArray'](_0x47bb45,_0x27931d);}['setUIntArray3'](_0x4599eb,_0x5c7e58){var _0x4081e8=_0xb3ea82;this[_0x4081e8(0x651)](_0x4599eb,_0x5c7e58);}[_0xb3ea82(0x875)](_0x2ea177,_0x3136b){this['setUIntArray'](_0x2ea177,_0x3136b);}[_0xb3ea82(0x69f)](_0x415a8e,_0x26d84a){var _0x202a1b=_0xb3ea82;this[_0x202a1b(0xcb4)]&&this['_leftOverUniformsByName'][_0x415a8e]&&this[_0x202a1b(0xcb4)][_0x202a1b(0x147)](_0x415a8e,_0x26d84a);}[_0xb3ea82(0x561)](_0xc71352,_0x404b6a){var _0x3b5ce5=_0xb3ea82;this[_0x3b5ce5(0x69f)](_0xc71352,_0x404b6a);}[_0xb3ea82(0xb20)](_0x7faf1f,_0x465061){var _0x1340d1=_0xb3ea82;this[_0x1340d1(0x69f)](_0x7faf1f,_0x465061);}[_0xb3ea82(0x7ce)](_0x42ef7c,_0x3c76e0){this['setArray'](_0x42ef7c,_0x3c76e0);}[_0xb3ea82(0x42c)](_0x4c2d30,_0x1c2388){var _0x35e239=_0xb3ea82;this[_0x35e239(0xcb4)]&&this[_0x35e239(0x97c)][_0x4c2d30]&&this[_0x35e239(0xcb4)][_0x35e239(0xba1)](_0x4c2d30,_0x1c2388);}['setMatrix'](_0x16526b,_0x222ffd){var _0x49f7f7=_0xb3ea82;this[_0x49f7f7(0xcb4)]&&this['_leftOverUniformsByName'][_0x16526b]&&this[_0x49f7f7(0xcb4)][_0x49f7f7(0x693)](_0x16526b,_0x222ffd);}[_0xb3ea82(0x42b)](_0x433ee2,_0x25b7a9){var _0x4e2419=_0xb3ea82;this['uniformBuffer']&&this['_leftOverUniformsByName'][_0x433ee2]&&this[_0x4e2419(0xcb4)]['updateMatrix3x3'](_0x433ee2,_0x25b7a9);}[_0xb3ea82(0x4b9)](_0x360e62,_0x40d251){var _0x130db1=_0xb3ea82;this[_0x130db1(0xcb4)]&&this[_0x130db1(0x97c)][_0x360e62]&&this['uniformBuffer'][_0x130db1(0x787)](_0x360e62,_0x40d251);}[_0xb3ea82(0x760)](_0x45d321,_0x5be403){var _0xc62680=_0xb3ea82;this['uniformBuffer']&&this[_0xc62680(0x97c)][_0x45d321]&&this[_0xc62680(0xcb4)][_0xc62680(0x6ac)](_0x45d321,_0x5be403);}[_0xb3ea82(0xb5d)](_0xb35249,_0x18d4ba){var _0x23e08c=_0xb3ea82;this[_0x23e08c(0xcef)](_0xb35249,_0x18d4ba['x'],_0x18d4ba['y']);}[_0xb3ea82(0xcef)](_0x5dc120,_0x87330d,_0x59f6e0){var _0x12ed65=_0xb3ea82;this['uniformBuffer']&&this['_leftOverUniformsByName'][_0x5dc120]&&this[_0x12ed65(0xcb4)][_0x12ed65(0x25f)](_0x5dc120,_0x87330d,_0x59f6e0);}[_0xb3ea82(0x418)](_0x5c6fbc,_0x31d47f){var _0x57a730=_0xb3ea82;this[_0x57a730(0x1f6)](_0x5c6fbc,_0x31d47f['x'],_0x31d47f['y'],_0x31d47f['z']);}[_0xb3ea82(0x1f6)](_0x27854d,_0x4cc002,_0x53bb29,_0x2afe1a){var _0x3cada2=_0xb3ea82;this[_0x3cada2(0xcb4)]&&this[_0x3cada2(0x97c)][_0x27854d]&&this['uniformBuffer']['updateFloat3'](_0x27854d,_0x4cc002,_0x53bb29,_0x2afe1a);}[_0xb3ea82(0x601)](_0x5bc98a,_0x1f110b){this['setFloat4'](_0x5bc98a,_0x1f110b['x'],_0x1f110b['y'],_0x1f110b['z'],_0x1f110b['w']);}['setQuaternion'](_0x388c4c,_0x2d6736){this['setFloat4'](_0x388c4c,_0x2d6736['x'],_0x2d6736['y'],_0x2d6736['z'],_0x2d6736['w']);}[_0xb3ea82(0x453)](_0x45426a,_0x47eada,_0xc09846,_0x4f11e0,_0x139cc8){var _0x54b9c0=_0xb3ea82;this[_0x54b9c0(0xcb4)]&&this['_leftOverUniformsByName'][_0x45426a]&&this[_0x54b9c0(0xcb4)]['updateFloat4'](_0x45426a,_0x47eada,_0xc09846,_0x4f11e0,_0x139cc8);}['setColor3'](_0x4852d8,_0x8a599){var _0x5186dd=_0xb3ea82;this[_0x5186dd(0x1f6)](_0x4852d8,_0x8a599['r'],_0x8a599['g'],_0x8a599['b']);}[_0xb3ea82(0x322)](_0xe73849,_0x1f492e,_0x1b03e9){var _0x1c515e=_0xb3ea82;this[_0x1c515e(0x453)](_0xe73849,_0x1f492e['r'],_0x1f492e['g'],_0x1f492e['b'],_0x1b03e9);}['setDirectColor4'](_0x2846ca,_0x313d2a){var _0x130286=_0xb3ea82;this[_0x130286(0x453)](_0x2846ca,_0x313d2a['r'],_0x313d2a['g'],_0x313d2a['b'],_0x313d2a['a']);}['_getVertexShaderCode'](){var _0x51b26f=_0xb3ea82,_0x5e2359;return null==(_0x5e2359=this[_0x51b26f(0xbc2)])?void 0x0:_0x5e2359['vertex'];}[_0xb3ea82(0xa84)](){var _0x20dd2d=_0xb3ea82,_0x13f7d3;return null==(_0x13f7d3=this['sources'])?void 0x0:_0x13f7d3[_0x20dd2d(0x20e)];}}},0x13c77:(_0x7b93e4,_0x552866,_0x2c70c2)=>{var _0x57ee29=a7_0x3304fb;_0x2c70c2['d'](_0x552866,{'t':()=>_0x249ecd});function _0x4529b4(_0x430fed,_0x1f0676,_0x39da46,_0x5f12b0){return new(_0x39da46=_0x39da46||Promise)(function(_0x27baf1,_0x233630){var _0x55613c=a7_0x4135;function _0xf4568(_0x1c4cab){var _0x1da89f=a7_0x4135;try{_0x42b648(_0x5f12b0[_0x1da89f(0x382)](_0x1c4cab));}catch(_0x297bd8){_0x233630(_0x297bd8);}}function _0x53b925(_0x11dc8f){var _0x260bd1=a7_0x4135;try{_0x42b648(_0x5f12b0[_0x260bd1(0x9ca)](_0x11dc8f));}catch(_0x58a672){_0x233630(_0x58a672);}}function _0x42b648(_0x1a1bba){var _0x115d91=a7_0x4135,_0x4824cd;_0x1a1bba[_0x115d91(0x277)]?_0x27baf1(_0x1a1bba[_0x115d91(0x197)]):((_0x4824cd=_0x1a1bba['value'])instanceof _0x39da46?_0x4824cd:new _0x39da46(function(_0x3b1cf3){_0x3b1cf3(_0x4824cd);}))[_0x115d91(0x6c0)](_0xf4568,_0x53b925);}_0x42b648((_0x5f12b0=_0x5f12b0[_0x55613c(0x650)](_0x430fed,_0x1f0676||[]))[_0x55613c(0x382)]());});}var _0x3b701f=_0x2c70c2(0x177e8);class _0x249ecd{constructor(_0x2f9f3e,_0x3a484a,_0x3b498e,_0x4c6e3b,_0x195087=!0x0){var _0x3bdf15=a7_0x4135;this['_dstBuffers']=[],this['_device']=_0x3b498e,this[_0x3bdf15(0x2cb)]=_0x4c6e3b,this[_0x3bdf15(0x286)]=_0x2f9f3e,this[_0x3bdf15(0xa19)]=_0x195087,this[_0x3bdf15(0x66e)]=_0x3b498e['createQuerySet']({'type':_0x3a484a,'count':_0x2f9f3e}),this[_0x3bdf15(0xaa6)]=_0x4c6e3b['createRawBuffer'](0x8*_0x2f9f3e,_0x3b701f['FB']['QueryResolve']|_0x3b701f['FB'][_0x3bdf15(0xd03)]),_0x195087||this['_dstBuffers'][_0x3bdf15(0x725)](this[_0x3bdf15(0x2cb)][_0x3bdf15(0x8e9)](0x8*this[_0x3bdf15(0x286)],_0x3b701f['FB'][_0x3bdf15(0x686)]|_0x3b701f['FB'][_0x3bdf15(0xa26)]));}get['querySet'](){var _0x139567=a7_0x4135;return this[_0x139567(0x66e)];}[_0x57ee29(0x569)](_0xaea452,_0x157a26){var _0x3c6288=_0x57ee29;if(!this['_canUseMultipleBuffers']&&0x0===this['_dstBuffers']['length'])return null;const _0x39c139=this[_0x3c6288(0x38b)][_0x3c6288(0x28f)]();let _0x28435c;return 0x0===this[_0x3c6288(0x869)]['length']?_0x28435c=this[_0x3c6288(0x2cb)][_0x3c6288(0x8e9)](0x8*this[_0x3c6288(0x286)],_0x3b701f['FB'][_0x3c6288(0x686)]|_0x3b701f['FB'][_0x3c6288(0xa26)]):(_0x28435c=this[_0x3c6288(0x869)][this[_0x3c6288(0x869)][_0x3c6288(0x86f)]-0x1],this[_0x3c6288(0x869)]['length']--),_0x39c139[_0x3c6288(0x87c)](this[_0x3c6288(0x66e)],_0xaea452,_0x157a26,this[_0x3c6288(0xaa6)],0x0),_0x39c139['copyBufferToBuffer'](this[_0x3c6288(0xaa6)],0x0,_0x28435c,0x0,0x8*_0x157a26),this['_device'][_0x3c6288(0x4f6)]['submit']([_0x39c139[_0x3c6288(0xb1d)]()]),_0x28435c;}[_0x57ee29(0x26a)](_0x57422a=0x0,_0x18a48a=0x1){return _0x4529b4(this,void 0x0,void 0x0,function*(){var _0x8a6122=a7_0x4135;const _0x38bf56=this[_0x8a6122(0x569)](_0x57422a,_0x18a48a);if(null===_0x38bf56)return null;yield _0x38bf56[_0x8a6122(0x4ca)](_0x3b701f['gc']['Read']);var _0x22418e=new BigUint64Array(_0x38bf56[_0x8a6122(0x466)]())[_0x8a6122(0x732)]();return _0x38bf56[_0x8a6122(0x738)](),this[_0x8a6122(0x869)][this[_0x8a6122(0x869)][_0x8a6122(0x86f)]]=_0x38bf56,_0x22418e;});}[_0x57ee29(0x4ff)](_0x11c692=0x0){return _0x4529b4(this,void 0x0,void 0x0,function*(){var _0x404a20=a7_0x4135;const _0x87133e=this[_0x404a20(0x569)](_0x11c692,0x1);if(null===_0x87133e)return null;yield _0x87133e[_0x404a20(0x4ca)](_0x3b701f['gc'][_0x404a20(0xa28)]);var _0x3664a2=new BigUint64Array(_0x87133e[_0x404a20(0x466)]()),_0x3664a2=Number(_0x3664a2[0x0]);return _0x87133e[_0x404a20(0x738)](),this['_dstBuffers'][this['_dstBuffers'][_0x404a20(0x86f)]]=_0x87133e,_0x3664a2;});}[_0x57ee29(0x21a)](_0x35fe1e=0x0){return _0x4529b4(this,void 0x0,void 0x0,function*(){var _0x32f788=a7_0x4135;const _0x28c85a=this[_0x32f788(0x569)](_0x35fe1e,0x2);if(null===_0x28c85a)return null;yield _0x28c85a[_0x32f788(0x4ca)](_0x3b701f['gc'][_0x32f788(0xa28)]);var _0x55c6fa=new BigUint64Array(_0x28c85a[_0x32f788(0x466)]()),_0x55c6fa=Number(_0x55c6fa[0x1]-_0x55c6fa[0x0]);return _0x28c85a[_0x32f788(0x738)](),this[_0x32f788(0x869)][this[_0x32f788(0x869)][_0x32f788(0x86f)]]=_0x28c85a,_0x55c6fa;});}['dispose'](){var _0x406150=_0x57ee29;this[_0x406150(0x66e)][_0x406150(0x4e4)](),this['_bufferManager']['releaseBuffer'](this[_0x406150(0xaa6)]);for(let _0x406652=0x0;_0x406652<this[_0x406150(0x869)][_0x406150(0x86f)];++_0x406652)this[_0x406150(0x2cb)][_0x406150(0x68b)](this['_dstBuffers'][_0x406652]);}}},0xb2b:(_0x3fbc2a,_0x540065,_0xa97bc9)=>{_0xa97bc9['d'](_0x540065,{'B':()=>_0xea3b69});class _0xea3b69{constructor(){var _0x1cfc80=a7_0x4135;this[_0x1cfc80(0xa20)]=[],this['reset']();}['reset'](_0x252446=!0x1){var _0x24d30e=a7_0x4135;this['renderPass']=null,_0x252446&&(this[_0x24d30e(0xc21)]=null,this['colorAttachmentViewDescriptor']=null,this[_0x24d30e(0x4a4)]=null,this['colorAttachmentGPUTextures']=[],this['depthTextureFormat']=void 0x0);}}},0xcf70:(_0x287f8a,_0x258690,_0xbd2478)=>{var _0x288419=a7_0x3304fb;_0xbd2478['d'](_0x258690,{'d':()=>_0xd2c628});const _0x4d705e={'mat2':0x2,'mat3':0x3,'mat4':0x4,'mat2x2':0x2,'mat3x3':0x3,'mat4x4':0x4};class _0xd2c628{constructor(_0xc7e64f){var _0x115c8f=a7_0x4135;this[_0x115c8f(0xbb5)]=_0xc7e64f,this[_0x115c8f(0xbef)]=0x0,this['_varyingNextLocation']=0x0,this[_0x115c8f(0x346)]=0x0,this['freeBindingIndex']=0x0,this[_0x115c8f(0xc15)]={},this[_0x115c8f(0x8f7)]={},this[_0x115c8f(0x8e7)]={},this[_0x115c8f(0x713)]={},this['availableSamplers']={},this[_0x115c8f(0x2d7)]=[],this[_0x115c8f(0x267)]=[],this[_0x115c8f(0x95d)]=[],this[_0x115c8f(0xbf0)]=[],this[_0x115c8f(0x435)]=[],this[_0x115c8f(0x9b2)]=[],this['samplerNames']=[],this[_0x115c8f(0x187)]=[],this['_findStartingGroupBinding']();}static get[_0x288419(0x1bb)](){var _0x592c55=_0x288419;return _0xd2c628[_0x592c55(0x639)]?_0xd2c628[_0x592c55(0x969)]:_0xd2c628['_KnownUBOs'];}[_0x288419(0xc24)](){var _0x125c05=_0x288419,_0x16f55a=_0xd2c628[_0x125c05(0x1bb)];const _0x244078=[];for(const _0x10f1a2 in _0x16f55a){var _0x1de1ec=_0x16f55a[_0x10f1a2][_0x125c05(0x9e9)];-0x1!==_0x1de1ec[_0x125c05(0x910)]&&(void 0x0===_0x244078[_0x1de1ec[_0x125c05(0x910)]]?_0x244078[_0x1de1ec['groupIndex']]=_0x1de1ec['bindingIndex']:_0x244078[_0x1de1ec[_0x125c05(0x910)]]=Math[_0x125c05(0x3f8)](_0x244078[_0x1de1ec['groupIndex']],_0x1de1ec['bindingIndex']));}this['freeGroupIndex']=_0x244078[_0x125c05(0x86f)]-0x1,0x0===this[_0x125c05(0x346)]?(this[_0x125c05(0x346)]++,this[_0x125c05(0x217)]=0x0):this['freeBindingIndex']=_0x244078[_0x244078[_0x125c05(0x86f)]-0x1]+0x1;}[_0x288419(0xba0)](_0x5777ac,_0x25fe0f=0x0){var _0x260edf=_0x288419,_0x6d9691=this[_0x260edf(0xbef)];return this[_0x260edf(0xbef)]+=(null!=(_0x5777ac=_0x4d705e[_0x5777ac])?_0x5777ac:0x1)*(_0x25fe0f||0x1),_0x6d9691;}[_0x288419(0xb9f)](_0x51bd44,_0x1bd97a=0x0){var _0x1058ea=_0x288419,_0x1cefd8=this[_0x1058ea(0x1cb)];return this['_varyingNextLocation']+=(null!=(_0x51bd44=_0x4d705e[_0x51bd44])?_0x51bd44:0x1)*(_0x1bd97a||0x1),_0x1cefd8;}[_0x288419(0x47e)](){return this['_getNextFreeBinding'](0x1);}[_0x288419(0xc30)](_0x300b03){var _0x97e71d=_0x288419;if(this[_0x97e71d(0x217)]>0x10000-_0x300b03&&(this[_0x97e71d(0x346)]++,this[_0x97e71d(0x217)]=0x0),0x4===this['freeGroupIndex'])throw _0x97e71d(0x4ef);var _0x53265f={'groupIndex':this['freeGroupIndex'],'bindingIndex':this[_0x97e71d(0x217)]};return this[_0x97e71d(0x217)]+=_0x300b03,_0x53265f;}}_0xd2c628[_0x288419(0x639)]=!0x0,_0xd2c628['_SimplifiedKnownUBOs']={'Scene':{'binding':{'groupIndex':0x0,'bindingIndex':0x0}},'Light0':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light1':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light2':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light3':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light4':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light5':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light6':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light7':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light8':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light9':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light10':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light11':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light12':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light13':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light14':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light15':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light16':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light17':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light18':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light19':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light20':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light21':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light22':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light23':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light24':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light25':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light26':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light27':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light28':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light29':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light30':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light31':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Material':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Mesh':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Internals':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}}},_0xd2c628[_0x288419(0xaff)]={'Scene':{'binding':{'groupIndex':0x0,'bindingIndex':0x0}},'Light0':{'binding':{'groupIndex':0x1,'bindingIndex':0x0}},'Light1':{'binding':{'groupIndex':0x1,'bindingIndex':0x1}},'Light2':{'binding':{'groupIndex':0x1,'bindingIndex':0x2}},'Light3':{'binding':{'groupIndex':0x1,'bindingIndex':0x3}},'Light4':{'binding':{'groupIndex':0x1,'bindingIndex':0x4}},'Light5':{'binding':{'groupIndex':0x1,'bindingIndex':0x5}},'Light6':{'binding':{'groupIndex':0x1,'bindingIndex':0x6}},'Light7':{'binding':{'groupIndex':0x1,'bindingIndex':0x7}},'Light8':{'binding':{'groupIndex':0x1,'bindingIndex':0x8}},'Light9':{'binding':{'groupIndex':0x1,'bindingIndex':0x9}},'Light10':{'binding':{'groupIndex':0x1,'bindingIndex':0xa}},'Light11':{'binding':{'groupIndex':0x1,'bindingIndex':0xb}},'Light12':{'binding':{'groupIndex':0x1,'bindingIndex':0xc}},'Light13':{'binding':{'groupIndex':0x1,'bindingIndex':0xd}},'Light14':{'binding':{'groupIndex':0x1,'bindingIndex':0xe}},'Light15':{'binding':{'groupIndex':0x1,'bindingIndex':0xf}},'Light16':{'binding':{'groupIndex':0x1,'bindingIndex':0x10}},'Light17':{'binding':{'groupIndex':0x1,'bindingIndex':0x11}},'Light18':{'binding':{'groupIndex':0x1,'bindingIndex':0x12}},'Light19':{'binding':{'groupIndex':0x1,'bindingIndex':0x13}},'Light20':{'binding':{'groupIndex':0x1,'bindingIndex':0x14}},'Light21':{'binding':{'groupIndex':0x1,'bindingIndex':0x15}},'Light22':{'binding':{'groupIndex':0x1,'bindingIndex':0x16}},'Light23':{'binding':{'groupIndex':0x1,'bindingIndex':0x17}},'Light24':{'binding':{'groupIndex':0x1,'bindingIndex':0x18}},'Light25':{'binding':{'groupIndex':0x1,'bindingIndex':0x19}},'Light26':{'binding':{'groupIndex':0x1,'bindingIndex':0x1a}},'Light27':{'binding':{'groupIndex':0x1,'bindingIndex':0x1b}},'Light28':{'binding':{'groupIndex':0x1,'bindingIndex':0x1c}},'Light29':{'binding':{'groupIndex':0x1,'bindingIndex':0x1d}},'Light30':{'binding':{'groupIndex':0x1,'bindingIndex':0x1e}},'Light31':{'binding':{'groupIndex':0x1,'bindingIndex':0x1f}},'Material':{'binding':{'groupIndex':0x2,'bindingIndex':0x0}},'Mesh':{'binding':{'groupIndex':0x2,'bindingIndex':0x1}},'Internals':{'binding':{'groupIndex':0x2,'bindingIndex':0x2}}};},0xa242:(_0x39b6cf,_0x2b4e36,_0x9ef212)=>{var _0x2a90f8=a7_0x3304fb;_0x9ef212['d'](_0x2b4e36,{'e':()=>_0xfc15da});var _0x1da429=_0x9ef212(0x12658),_0x279d72=_0x9ef212(0x177e8),_0x465bad=_0x9ef212(0x6214);class _0xfc15da{constructor(){var _0x57094c=a7_0x4135;this[_0x57094c(0xbb5)]=_0x1da429['x'][_0x57094c(0xcea)];}['_addUniformToLeftOverUBO'](_0x33c7b5,_0x10b4be,_0x591f53){var _0x28b894=a7_0x4135,_0x1ef405=0x0;[_0x33c7b5,_0x10b4be,_0x1ef405]=this['_getArraySize'](_0x33c7b5,_0x10b4be,_0x591f53);for(let _0x2254fc=0x0;_0x2254fc<this['_webgpuProcessingContext']['leftOverUniforms'][_0x28b894(0x86f)];_0x2254fc++)if(this[_0x28b894(0x35c)]['leftOverUniforms'][_0x2254fc]['name']===_0x33c7b5)return;this[_0x28b894(0x35c)][_0x28b894(0x187)][_0x28b894(0x725)]({'name':_0x33c7b5,'type':_0x10b4be,'length':_0x1ef405});}[_0x2a90f8(0x86a)](){var _0x17b7fa=_0x2a90f8;if(!this[_0x17b7fa(0x35c)][_0x17b7fa(0x187)]['length'])return'';var _0x1c42bf=_0xfc15da['LeftOvertUBOName'];let _0x654865=this[_0x17b7fa(0x35c)][_0x17b7fa(0x8e7)][_0x1c42bf];return _0x654865||(_0x654865={'binding':this[_0x17b7fa(0x35c)][_0x17b7fa(0x47e)]()},this[_0x17b7fa(0x35c)]['availableBuffers'][_0x1c42bf]=_0x654865,this[_0x17b7fa(0xace)](_0x1c42bf,_0x654865,_0x279d72['Rs'][_0x17b7fa(0xaca)],!0x0),this['_addBufferBindingDescription'](_0x1c42bf,_0x654865,_0x279d72['Rs']['Uniform'],!0x1)),this['_generateLeftOverUBOCode'](_0x1c42bf,_0x654865);}['_collectBindingNames'](){var _0x5e01b7=_0x2a90f8;for(let _0x1bb660=0x0;_0x1bb660<this[_0x5e01b7(0x35c)][_0x5e01b7(0x267)]['length'];_0x1bb660++){var _0x561e5f=this[_0x5e01b7(0x35c)][_0x5e01b7(0x267)][_0x1bb660];if(void 0x0===_0x561e5f)this[_0x5e01b7(0x35c)]['bindGroupLayoutEntries'][_0x1bb660]=[];else for(let _0x2e1a17=0x0;_0x2e1a17<_0x561e5f[_0x5e01b7(0x86f)];_0x2e1a17++){var _0x5810bc=this[_0x5e01b7(0x35c)][_0x5e01b7(0x267)][_0x1bb660][_0x2e1a17],_0x43483f=this[_0x5e01b7(0x35c)][_0x5e01b7(0x95d)][_0x1bb660][_0x5810bc['binding']][_0x5e01b7(0x51b)],_0x14703d=this[_0x5e01b7(0x35c)]['bindGroupLayoutEntryInfo'][_0x1bb660][_0x5810bc['binding']][_0x5e01b7(0x39f)];_0x5810bc&&(_0x5810bc[_0x5e01b7(0x800)]||_0x5810bc[_0x5e01b7(0x1b4)]||_0x5810bc[_0x5e01b7(0xa75)]?this[_0x5e01b7(0x35c)][_0x5e01b7(0x9b2)]['push'](_0x14703d):_0x5810bc[_0x5e01b7(0xb3f)]?this[_0x5e01b7(0x35c)]['samplerNames'][_0x5e01b7(0x725)](_0x43483f):_0x5810bc[_0x5e01b7(0xbeb)]&&this[_0x5e01b7(0x35c)][_0x5e01b7(0x435)]['push'](_0x43483f));}}}['_preCreateBindGroupEntries'](){var _0x336f6b=_0x2a90f8;const _0xf7cdad=this[_0x336f6b(0x35c)][_0x336f6b(0xbf0)];for(let _0x214461=0x0;_0x214461<this[_0x336f6b(0x35c)][_0x336f6b(0x267)][_0x336f6b(0x86f)];_0x214461++){var _0x51f666=this['_webgpuProcessingContext']['bindGroupLayoutEntries'][_0x214461];const _0x2d701=[];for(let _0x554b76=0x0;_0x554b76<_0x51f666[_0x336f6b(0x86f)];_0x554b76++){var _0x194513=this[_0x336f6b(0x35c)]['bindGroupLayoutEntries'][_0x214461][_0x554b76];_0x194513[_0x336f6b(0xb3f)]||_0x194513[_0x336f6b(0x800)]||_0x194513['storageTexture']||_0x194513[_0x336f6b(0x1b4)]?_0x2d701[_0x336f6b(0x725)]({'binding':_0x194513[_0x336f6b(0x9e9)],'resource':void 0x0}):_0x194513[_0x336f6b(0xbeb)]&&_0x2d701[_0x336f6b(0x725)]({'binding':_0x194513[_0x336f6b(0x9e9)],'resource':{'buffer':void 0x0,'offset':0x0,'size':0x0}});}_0xf7cdad[_0x214461]=_0x2d701;}}[_0x2a90f8(0x751)](_0x4988dd,_0x4c387e,_0x1c4ed5,_0x4023dd,_0x431287,_0xaef8d9){var _0x1c3e8c=_0x2a90f8;let {groupIndex:_0x1e2f19,bindingIndex:_0x5f0af7}=_0x4c387e[_0x1c3e8c(0xa52)][_0x1c4ed5];this[_0x1c3e8c(0x35c)][_0x1c3e8c(0x267)][_0x1e2f19]||(this[_0x1c3e8c(0x35c)][_0x1c3e8c(0x267)][_0x1e2f19]=[],this['_webgpuProcessingContext']['bindGroupLayoutEntryInfo'][_0x1e2f19]=[]),this['_webgpuProcessingContext'][_0x1c3e8c(0x95d)][_0x1e2f19][_0x5f0af7]||(_0x431287=null===_0x4023dd?this[_0x1c3e8c(0x35c)][_0x1c3e8c(0x267)][_0x1e2f19]['push']({'binding':_0x5f0af7,'visibility':0x0,'externalTexture':{}}):_0x431287?this[_0x1c3e8c(0x35c)]['bindGroupLayoutEntries'][_0x1e2f19][_0x1c3e8c(0x725)]({'binding':_0x5f0af7,'visibility':0x0,'storageTexture':{'access':_0x279d72['Gt'][_0x1c3e8c(0x580)],'format':_0x431287,'viewDimension':_0x4023dd}}):this[_0x1c3e8c(0x35c)]['bindGroupLayoutEntries'][_0x1e2f19][_0x1c3e8c(0x725)]({'binding':_0x5f0af7,'visibility':0x0,'texture':{'sampleType':_0x4c387e[_0x1c3e8c(0x41b)],'viewDimension':_0x4023dd,'multisampled':!0x1}}),_0x4023dd=_0x4c387e[_0x1c3e8c(0x96f)]?_0x4988dd+_0x1c4ed5:_0x4988dd,this[_0x1c3e8c(0x35c)][_0x1c3e8c(0x95d)][_0x1e2f19][_0x5f0af7]={'name':_0x4988dd,'index':_0x431287-0x1,'nameInArrayOfTexture':_0x4023dd}),_0x5f0af7=this[_0x1c3e8c(0x35c)][_0x1c3e8c(0x95d)][_0x1e2f19][_0x5f0af7][_0x1c3e8c(0x712)],this[_0x1c3e8c(0x35c)][_0x1c3e8c(0x267)][_0x1e2f19][_0x5f0af7][_0x1c3e8c(0x655)]|=_0xaef8d9?_0x279d72['$X'][_0x1c3e8c(0x84a)]:_0x279d72['$X'][_0x1c3e8c(0x874)];}[_0x2a90f8(0xbfb)](_0x1e1f49,_0x285c2c,_0x555d2f){var _0x2eaeda=_0x2a90f8;let {groupIndex:_0x2cf564,bindingIndex:_0x68ac57}=_0x285c2c[_0x2eaeda(0x9e9)];this[_0x2eaeda(0x35c)][_0x2eaeda(0x267)][_0x2cf564]||(this[_0x2eaeda(0x35c)][_0x2eaeda(0x267)][_0x2cf564]=[],this[_0x2eaeda(0x35c)][_0x2eaeda(0x95d)][_0x2cf564]=[]),this[_0x2eaeda(0x35c)][_0x2eaeda(0x95d)][_0x2cf564][_0x68ac57]||(_0x285c2c=this[_0x2eaeda(0x35c)][_0x2eaeda(0x267)][_0x2cf564][_0x2eaeda(0x725)]({'binding':_0x68ac57,'visibility':0x0,'sampler':{'type':_0x285c2c[_0x2eaeda(0xb26)]}}),this[_0x2eaeda(0x35c)]['bindGroupLayoutEntryInfo'][_0x2cf564][_0x68ac57]={'name':_0x1e1f49,'index':_0x285c2c-0x1}),_0x68ac57=this[_0x2eaeda(0x35c)]['bindGroupLayoutEntryInfo'][_0x2cf564][_0x68ac57]['index'],this[_0x2eaeda(0x35c)][_0x2eaeda(0x267)][_0x2cf564][_0x68ac57]['visibility']|=_0x555d2f?_0x279d72['$X']['Vertex']:_0x279d72['$X']['Fragment'];}[_0x2a90f8(0xace)](_0x4050ca,_0x253261,_0x597f4e,_0x39a615){var _0x44f818=_0x2a90f8;let {groupIndex:_0x5f3c2b,bindingIndex:_0x11e7b7}=_0x253261[_0x44f818(0x9e9)];this[_0x44f818(0x35c)][_0x44f818(0x267)][_0x5f3c2b]||(this['_webgpuProcessingContext'][_0x44f818(0x267)][_0x5f3c2b]=[],this[_0x44f818(0x35c)][_0x44f818(0x95d)][_0x5f3c2b]=[]),this[_0x44f818(0x35c)][_0x44f818(0x95d)][_0x5f3c2b][_0x11e7b7]||(_0x253261=this[_0x44f818(0x35c)][_0x44f818(0x267)][_0x5f3c2b][_0x44f818(0x725)]({'binding':_0x11e7b7,'visibility':0x0,'buffer':{'type':_0x597f4e}}),this[_0x44f818(0x35c)][_0x44f818(0x95d)][_0x5f3c2b][_0x11e7b7]={'name':_0x4050ca,'index':_0x253261-0x1}),_0x11e7b7=this[_0x44f818(0x35c)][_0x44f818(0x95d)][_0x5f3c2b][_0x11e7b7][_0x44f818(0x712)],this[_0x44f818(0x35c)][_0x44f818(0x267)][_0x5f3c2b][_0x11e7b7]['visibility']|=_0x39a615?_0x279d72['$X'][_0x44f818(0x84a)]:_0x279d72['$X'][_0x44f818(0x874)];}['_injectStartingAndEndingCode'](_0x33107f,_0xb1dd42,_0x3b30a1,_0x1e6047){var _0x43af6a=_0x2a90f8;let _0x1c2ccc=_0x33107f['indexOf'](_0xb1dd42);if(_0x1c2ccc<0x0)return _0x465bad[_0x43af6a(0xbbf)](_0x43af6a(0x53a)),_0x33107f;if(_0x3b30a1){for(;_0x1c2ccc++<_0x33107f[_0x43af6a(0x86f)]&&'{'!=_0x33107f['charAt'](_0x1c2ccc););_0x1c2ccc<_0x33107f[_0x43af6a(0x86f)]&&(_0x33107f=_0x33107f[_0x43af6a(0x563)](0x0,_0x1c2ccc+0x1)+_0x3b30a1+_0x33107f[_0x43af6a(0x563)](_0x1c2ccc+0x1));}return _0x1e6047&&(_0xb1dd42=_0x33107f[_0x43af6a(0x7da)]('}'),_0x33107f=_0x33107f[_0x43af6a(0x563)](0x0,_0xb1dd42),_0x33107f+=_0x1e6047+'\x0a}'),_0x33107f;}}_0xfc15da[_0x2a90f8(0x77f)]=_0x2a90f8(0xd05),_0xfc15da[_0x2a90f8(0x5c9)]=_0x2a90f8(0xbff),_0xfc15da['InternalsUBOName']='Internals',_0xfc15da[_0x2a90f8(0x990)]={'bool':0x1,'int':0x1,'float':0x1,'vec2':0x2,'ivec2':0x2,'vec3':0x3,'ivec3':0x3,'vec4':0x4,'ivec4':0x4,'mat2':0x4,'mat3':0xc,'mat4':0x10,'i32':0x1,'u32':0x1,'f32':0x1,'mat2x2':0x4,'mat3x3':0xc,'mat4x4':0x10},_0xfc15da[_0x2a90f8(0x1d2)]={'sampler2D':_0x2a90f8(0x3e5),'sampler2DArray':_0x2a90f8(0x9b7),'sampler2DShadow':'sampler2DShadow','sampler2DArrayShadow':_0x2a90f8(0x878),'samplerCube':_0x2a90f8(0x2ef),'sampler3D':_0x2a90f8(0x278)},_0xfc15da[_0x2a90f8(0x329)]={'sampler2D':_0x2a90f8(0x368),'sampler2DArray':'texture2DArray','sampler2DShadow':_0x2a90f8(0x368),'sampler2DArrayShadow':_0x2a90f8(0x424),'samplerCube':_0x2a90f8(0xa83),'samplerCubeArray':_0x2a90f8(0x69b),'sampler3D':_0x2a90f8(0x69e)},_0xfc15da[_0x2a90f8(0x37c)]={'textureCube':_0x279d72['p_']['Cube'],'textureCubeArray':_0x279d72['p_'][_0x2a90f8(0xc76)],'texture2D':_0x279d72['p_'][_0x2a90f8(0x9d8)],'texture2DArray':_0x279d72['p_'][_0x2a90f8(0x231)],'texture3D':_0x279d72['p_'][_0x2a90f8(0x1e8)]},_0xfc15da['_SamplerTypeByWebGLSamplerType']={'sampler2DShadow':_0x2a90f8(0x885),'sampler2DArrayShadow':_0x2a90f8(0x885)},_0xfc15da[_0x2a90f8(0x537)]={'samplerShadow':!0x0,'samplerArrayShadow':!0x0,'sampler':!0x1};},0x7ccc:(_0x28d712,_0x231fc2,_0x25556d)=>{var _0x3426f3=a7_0x3304fb;_0x25556d['d'](_0x231fc2,{'s':()=>_0x224962});var _0x353307=_0x25556d(0xcf70),_0x582eaf=_0x25556d(0x177e8),_0x867455=_0x25556d(0x9a70),_0xd74176=_0x25556d(0xa242),_0x6e2f03=_0x25556d(0x12658);class _0x224962 extends _0xd74176['e']{constructor(){var _0x538411=a7_0x4135;super(...arguments),this['_missingVaryings']=[],this['_textureArrayProcessing']=[],this[_0x538411(0xb2e)]=!0x1,this['_fragmentIsGLES3']=!0x1,this['shaderLanguage']=_0x6e2f03['x'][_0x538411(0xcea)],this[_0x538411(0x4cb)]=!0x0;}[_0x3426f3(0x43d)](_0x56720e,_0x4795fb,_0x349fb5){var _0x4ff5c6=_0x3426f3;let _0x43af78=0x0;var _0x191aaa=_0x56720e[_0x4ff5c6(0xbd5)]('['),_0x4f7ce1=_0x56720e[_0x4ff5c6(0xbd5)](']');if(0x0<_0x191aaa&&0x0<_0x4f7ce1){const _0x5ca908=_0x56720e[_0x4ff5c6(0x563)](_0x191aaa+0x1,_0x4f7ce1);_0x43af78=+_0x5ca908,isNaN(_0x43af78)&&(_0x43af78=+_0x349fb5[_0x5ca908['trim']()]),_0x56720e=_0x56720e[_0x4ff5c6(0x804)](0x0,_0x191aaa);}return[_0x56720e,_0x4795fb,_0x43af78];}[_0x3426f3(0x9d6)](_0x3f72b0){var _0x50b25c=_0x3426f3;this[_0x50b25c(0x35c)]=_0x3f72b0,this[_0x50b25c(0x36a)][_0x50b25c(0x86f)]=0x0,this[_0x50b25c(0x26d)][_0x50b25c(0x86f)]=0x0,this['attributeKeywordName']=void 0x0,this[_0x50b25c(0x609)]=void 0x0,this[_0x50b25c(0x1e2)]=void 0x0;}[_0x3426f3(0x458)](_0x8f4b2b,_0x33a3aa){var _0x2a0991=_0x3426f3,_0x1b4bf7='//\x20Internals\x20UBO\x0d\x0auniform\x20'+_0xd74176['e'][_0x2a0991(0xc95)]+_0x2a0991(0x781),_0x4db913=-0x1!==_0x8f4b2b[_0x2a0991(0xbd5)](_0x2a0991(0x85b));return _0x33a3aa?(this[_0x2a0991(0x8e4)]=-0x1!==_0x8f4b2b[_0x2a0991(0xbd5)](_0x2a0991(0x3ab)),this[_0x2a0991(0x8e4)]&&(this[_0x2a0991(0x1e2)]='in'),_0x4db913?_0x8f4b2b:_0x1b4bf7+_0x2a0991(0x694)+_0x8f4b2b):(this['_vertexIsGLES3']=-0x1!==_0x8f4b2b['indexOf'](_0x2a0991(0x3ab)),this[_0x2a0991(0xb2e)]&&(this[_0x2a0991(0xa08)]='in',this[_0x2a0991(0x609)]=_0x2a0991(0xb69)),_0x4db913?_0x8f4b2b:_0x1b4bf7+_0x8f4b2b);}[_0x3426f3(0x38c)](_0x2ab278,_0x3e367c,_0x17673b){var _0x3cb3c7=_0x3426f3;this[_0x3cb3c7(0x995)]=_0x17673b;const _0x6ce8f2=_0x3e367c&&this[_0x3cb3c7(0x8e4)]?/\s*in\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm:!_0x3e367c&&this[_0x3cb3c7(0xb2e)]?/\s*out\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm:/\s*varying\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm;var _0x43e3e0=_0x6ce8f2['exec'](_0x2ab278);if(null!==_0x43e3e0){var _0x417746=_0x43e3e0[0x1],_0x12e3bc=_0x43e3e0[0x2];let _0x4131d3;_0x3e367c?(_0x4131d3=this[_0x3cb3c7(0x35c)][_0x3cb3c7(0xc15)][_0x12e3bc],this[_0x3cb3c7(0x36a)][_0x4131d3]='',void 0x0===_0x4131d3&&_0x867455['Y']['Warn'](_0x3cb3c7(0x165)+_0x12e3bc+_0x3cb3c7(0x8e2))):(_0x4131d3=this[_0x3cb3c7(0x35c)]['getVaryingNextLocation'](_0x417746,this['_getArraySize'](_0x12e3bc,_0x417746,_0x17673b)[0x2]),this[_0x3cb3c7(0x35c)][_0x3cb3c7(0xc15)][_0x12e3bc]=_0x4131d3,this[_0x3cb3c7(0x36a)][_0x4131d3]=_0x3cb3c7(0x719)+_0x4131d3+_0x3cb3c7(0x9cf)+_0x417746+'\x20'+_0x12e3bc+';'),_0x2ab278=_0x2ab278[_0x3cb3c7(0x89b)](_0x43e3e0[0x0],void 0x0===_0x4131d3?'':'layout(location\x20=\x20'+_0x4131d3+')\x20'+(_0x3e367c?'in':_0x3cb3c7(0xb69))+'\x20'+_0x417746+'\x20'+_0x12e3bc+';');}return _0x2ab278;}[_0x3426f3(0x901)](_0x418c6e,_0x2f0833){var _0x458e57=_0x3426f3;this[_0x458e57(0x995)]=_0x2f0833;const _0x3f3412=this['_vertexIsGLES3']?/\s*in\s+(\S+)\s+(\S+)\s*;/gm:/\s*attribute\s+(\S+)\s+(\S+)\s*;/gm;var _0xca4539,_0x464953,_0x76a908=_0x3f3412[_0x458e57(0x922)](_0x418c6e);return null!==_0x76a908&&(_0xca4539=_0x76a908[0x1],_0x464953=_0x76a908[0x2],_0x2f0833=this[_0x458e57(0x35c)][_0x458e57(0xba0)](_0xca4539,this[_0x458e57(0x43d)](_0x464953,_0xca4539,_0x2f0833)[0x2]),this[_0x458e57(0x35c)][_0x458e57(0x8f7)][_0x464953]=_0x2f0833,this[_0x458e57(0x35c)]['orderedAttributes'][_0x2f0833]=_0x464953,_0x418c6e=_0x418c6e[_0x458e57(0x89b)](_0x76a908[0x0],'layout(location\x20=\x20'+_0x2f0833+_0x458e57(0x9cf)+_0xca4539+'\x20'+_0x464953+';')),_0x418c6e;}['uniformProcessor'](_0x147403,_0x2515d0,_0x5f4cb1){var _0x494de4=_0x3426f3;this['_preProcessors']=_0x5f4cb1;var _0x312293=/\s*uniform\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm[_0x494de4(0x922)](_0x147403);if(null!==_0x312293){let _0x208ee1=_0x312293[0x1],_0x525040=_0x312293[0x2];if(0x0===_0x208ee1[_0x494de4(0xbd5)](_0x494de4(0xb3f))||0x1===_0x208ee1[_0x494de4(0xbd5)](_0x494de4(0xb3f))){let _0x2f8dc0=0x0,_0x15819c=([_0x525040,_0x208ee1,_0x2f8dc0]=this[_0x494de4(0x43d)](_0x525040,_0x208ee1,_0x5f4cb1),this[_0x494de4(0x35c)][_0x494de4(0x713)][_0x525040]);if(!_0x15819c){_0x15819c={'autoBindSampler':!0x0,'isTextureArray':0x0<_0x2f8dc0,'isStorageTexture':!0x1,'textures':[],'sampleType':_0x582eaf['oD'][_0x494de4(0x8d8)]};for(let _0xf7f6ba=0x0;_0xf7f6ba<(_0x2f8dc0||0x1);++_0xf7f6ba)_0x15819c[_0x494de4(0xa52)][_0x494de4(0x725)](this[_0x494de4(0x35c)][_0x494de4(0x47e)]());}var _0x312293=null!=(_0x312293=_0xd74176['e']['_SamplerTypeByWebGLSamplerType'][_0x208ee1])?_0x312293:'sampler',_0x231166=!!_0xd74176['e'][_0x494de4(0x537)][_0x312293],_0x1f1bbe=_0x231166?_0x582eaf['dV'][_0x494de4(0x1dd)]:_0x582eaf['dV'][_0x494de4(0x726)],_0x449aa5=_0x525040+_0xd74176['e'][_0x494de4(0x77f)],_0x1f1bbe=this[_0x494de4(0x35c)][_0x494de4(0x7cd)][_0x449aa5]||{'binding':this[_0x494de4(0x35c)][_0x494de4(0x47e)](),'type':_0x1f1bbe},_0xfef185='u'===_0x208ee1[_0x494de4(0x691)](0x0)?'u':'i'===_0x208ee1[_0x494de4(0x691)](0x0)?'i':'',_0x231166=(_0xfef185&&(_0x208ee1=_0x208ee1[_0x494de4(0x804)](0x1)),_0x231166?_0x582eaf['oD'][_0x494de4(0xbc5)]:'u'==_0xfef185?_0x582eaf['oD'][_0x494de4(0x73c)]:'i'==_0xfef185?_0x582eaf['oD'][_0x494de4(0xc09)]:_0x582eaf['oD']['Float']),_0x231166=(_0x15819c[_0x494de4(0x41b)]=_0x231166,0x0<_0x2f8dc0),_0xb0b67e=_0x1f1bbe[_0x494de4(0x9e9)][_0x494de4(0x910)],_0x5e6fcb=_0x1f1bbe[_0x494de4(0x9e9)][_0x494de4(0x975)],_0x4f26c9=_0xd74176['e'][_0x494de4(0x1d2)][_0x208ee1],_0x34485b=_0xd74176['e']['_TextureTypeByWebGLSamplerType'][_0x208ee1],_0x333837=_0xd74176['e'][_0x494de4(0x37c)][_0x34485b];if(_0x231166){const _0x4a3b43=[];_0x4a3b43['push'](_0x494de4(0x481)+_0xb0b67e+_0x494de4(0x5b3)+_0x5e6fcb+')\x20uniform\x20'+_0xfef185+_0x312293+'\x20'+_0x449aa5+';'),_0x147403='\x0d\x0a';for(let _0x26ff71=0x0;_0x26ff71<_0x2f8dc0;++_0x26ff71){var _0x53a392=_0x15819c[_0x494de4(0xa52)][_0x26ff71][_0x494de4(0x910)],_0x58f79b=_0x15819c['textures'][_0x26ff71][_0x494de4(0x975)];_0x4a3b43[_0x494de4(0x725)](_0x494de4(0x481)+_0x53a392+_0x494de4(0x5b3)+_0x58f79b+_0x494de4(0x67c)+_0x34485b+'\x20'+_0x525040+_0x494de4(0x314)+_0x26ff71+';'),_0x147403+=(0x0<_0x26ff71?'\x0d\x0a':'')+_0x494de4(0x2a3)+_0x525040+_0x26ff71+'\x20'+_0xfef185+_0x4f26c9+'('+_0x525040+_0x494de4(0x314)+_0x26ff71+',\x20'+_0x449aa5+')';}_0x147403=_0x4a3b43[_0x494de4(0xb4e)]('\x0d\x0a')+_0x147403,this[_0x494de4(0x26d)]['push'](_0x525040);}else _0x2f8dc0=0x1,_0x147403=_0x494de4(0x481)+_0xb0b67e+_0x494de4(0x5b3)+_0x5e6fcb+_0x494de4(0x67c)+_0xfef185+_0x312293+'\x20'+_0x449aa5+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20layout(set\x20=\x20'+_0x15819c[_0x494de4(0xa52)][0x0][_0x494de4(0x910)]+_0x494de4(0x5b3)+_0x15819c[_0x494de4(0xa52)][0x0]['bindingIndex']+_0x494de4(0x67c)+_0x34485b+'\x20'+_0x525040+_0x494de4(0x806)+_0x525040+'\x20'+_0xfef185+_0x4f26c9+'('+_0x525040+'Texture,\x20'+_0x449aa5+')';this['_webgpuProcessingContext'][_0x494de4(0x713)][_0x525040]=_0x15819c,this[_0x494de4(0x35c)]['availableSamplers'][_0x449aa5]=_0x1f1bbe,this[_0x494de4(0xbfb)](_0x449aa5,_0x1f1bbe,!_0x2515d0);for(let _0xc646ee=0x0;_0xc646ee<_0x2f8dc0;++_0xc646ee)this[_0x494de4(0x751)](_0x525040,_0x15819c,_0xc646ee,_0x333837,null,!_0x2515d0);}else this['_addUniformToLeftOverUBO'](_0x525040,_0x208ee1,_0x5f4cb1),_0x147403='';}return _0x147403;}['uniformBufferProcessor'](_0x47d8d8,_0x509d23){var _0x2debec=_0x3426f3,_0xabc274=/uniform\s+(\w+)/gm[_0x2debec(0x922)](_0x47d8d8);if(null!==_0xabc274){var _0x4099b9,_0xabc274=_0xabc274[0x1];let _0x42e568=this[_0x2debec(0x35c)]['availableBuffers'][_0xabc274];_0x42e568||(_0x4099b9=(_0x4099b9=_0x353307['d'][_0x2debec(0x1bb)][_0xabc274])&&-0x1!==_0x4099b9[_0x2debec(0x9e9)]['groupIndex']?_0x4099b9[_0x2debec(0x9e9)]:this[_0x2debec(0x35c)][_0x2debec(0x47e)](),_0x42e568={'binding':_0x4099b9},this[_0x2debec(0x35c)][_0x2debec(0x8e7)][_0xabc274]=_0x42e568),this['_addBufferBindingDescription'](_0xabc274,_0x42e568,_0x582eaf['Rs'][_0x2debec(0xaca)],!_0x509d23),_0x47d8d8=_0x47d8d8[_0x2debec(0x89b)](_0x2debec(0xbe1),_0x2debec(0x481)+_0x42e568[_0x2debec(0x9e9)][_0x2debec(0x910)]+_0x2debec(0x5b3)+_0x42e568[_0x2debec(0x9e9)][_0x2debec(0x975)]+')\x20uniform');}return _0x47d8d8;}[_0x3426f3(0x13f)](_0x380021,_0x5778d2,_0x5bcc60,_0x55e939,_0x4796e5){var _0x7b4ebe=_0x3426f3,_0x368daf=-0x1!==_0x380021[_0x7b4ebe(0x437)](/#extension.+GL_EXT_draw_buffers.+require/);if(_0x380021=(_0x380021=_0x380021[_0x7b4ebe(0x89b)](/#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g,''))[_0x7b4ebe(0x89b)](/texture2D\s*\(/g,_0x7b4ebe(0x722)),_0x5bcc60){var _0x175492,_0xea2cb3=0x0<=_0x380021['indexOf']('gl_FragCoord'),_0x2ad4d5=_0xea2cb3?'vec4\x20glFragCoord_;\x0a':'';_0x380021=(_0x380021=(_0x380021=(_0x380021=(_0x380021=(_0x380021=(_0x380021=_0x380021[_0x7b4ebe(0x89b)](/texture2DLodEXT\s*\(/g,'textureLod('))['replace'](/textureCubeLodEXT\s*\(/g,_0x7b4ebe(0x692)))[_0x7b4ebe(0x89b)](/textureCube\s*\(/g,_0x7b4ebe(0x722)))[_0x7b4ebe(0x89b)](/gl_FragDepthEXT/g,'gl_FragDepth'))[_0x7b4ebe(0x89b)](/gl_FragColor/g,_0x7b4ebe(0x2da)))[_0x7b4ebe(0x89b)](/gl_FragData/g,'glFragData'))[_0x7b4ebe(0x89b)](/gl_FragCoord/g,'glFragCoord_'),this['_fragmentIsGLES3']?null!==(_0x175492=/^\s*out\s+\S+\s+\S+\s*;/gm[_0x7b4ebe(0x922)](_0x380021))&&(_0x380021=_0x380021[_0x7b4ebe(0x563)](0x0,_0x175492[_0x7b4ebe(0x712)])+_0x7b4ebe(0x71a)+_0x380021[_0x7b4ebe(0x563)](_0x175492[_0x7b4ebe(0x712)])):_0x380021=_0x380021[_0x7b4ebe(0x89b)](/void\s+?main\s*\(/g,(_0x368daf?'':'layout(location\x20=\x200)\x20out\x20vec4\x20glFragColor;\x0a')+_0x7b4ebe(0x920)),_0x380021=(_0x380021=_0x380021[_0x7b4ebe(0x89b)](/dFdy/g,_0x7b4ebe(0x2d5)))[_0x7b4ebe(0x89b)]('##INJECTCODE##',_0x2ad4d5),_0xea2cb3&&(_0x380021=this[_0x7b4ebe(0xad9)](_0x380021,_0x7b4ebe(0xb77),'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20glFragCoord_\x20=\x20gl_FragCoord;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(yFactor_\x20==\x201.)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20glFragCoord_.y\x20=\x20textureOutputHeight_\x20-\x20glFragCoord_.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'));}else{if(_0x380021=(_0x380021=_0x380021[_0x7b4ebe(0x89b)](/gl_InstanceID/g,_0x7b4ebe(0x28d)))[_0x7b4ebe(0x89b)](/gl_VertexID/g,_0x7b4ebe(0x925)),-0x1!==_0x5778d2[_0x7b4ebe(0xbd5)](_0x7b4ebe(0x84d)))return _0x7b4ebe(0xbc8)+_0x380021;}return _0x5bcc60||(_0x175492=_0x380021[_0x7b4ebe(0x7da)]('}'),_0x380021=_0x380021[_0x7b4ebe(0x563)](0x0,_0x175492),_0x380021+=_0x7b4ebe(0xa4c),_0x4796e5[_0x7b4ebe(0x740)]||(_0x380021+=_0x7b4ebe(0x53f)),_0x380021+='}'),_0x380021;}[_0x3426f3(0x374)](_0x26d044,_0x2e8543){var _0x25ec30=_0x3426f3;const _0x26da6b=new RegExp(_0x2e8543+_0x25ec30(0xadd),'gm');let _0x593a73=_0x26da6b['exec'](_0x26d044);for(;null!==_0x593a73;){const _0x56bd6f=_0x593a73[0x1];let _0x24e68f=+_0x56bd6f;this['_preProcessors']&&isNaN(_0x24e68f)&&(_0x24e68f=+this['_preProcessors'][_0x56bd6f[_0x25ec30(0xc8c)]()]),_0x26d044=_0x26d044[_0x25ec30(0x89b)](_0x593a73[0x0],_0x2e8543+_0x24e68f),_0x593a73=_0x26da6b[_0x25ec30(0x922)](_0x26d044);}return _0x26d044;}[_0x3426f3(0x2aa)](_0x1e0c92,_0x701dd1){var _0x247d06=_0x3426f3;let _0x42a87c=_0x247d06(0x481)+_0x701dd1[_0x247d06(0x9e9)][_0x247d06(0x910)]+_0x247d06(0x5b3)+_0x701dd1['binding'][_0x247d06(0x975)]+_0x247d06(0x67c)+_0x1e0c92+'\x20{\x0a\x20\x20\x20\x20';for(const _0x292297 of this[_0x247d06(0x35c)][_0x247d06(0x187)])0x0<_0x292297[_0x247d06(0x86f)]?_0x42a87c+=_0x247d06(0xa79)+_0x292297[_0x247d06(0xb26)]+'\x20'+_0x292297[_0x247d06(0x51b)]+'['+_0x292297[_0x247d06(0x86f)]+_0x247d06(0x574):_0x42a87c+=_0x247d06(0xa79)+_0x292297[_0x247d06(0xb26)]+'\x20'+_0x292297[_0x247d06(0x51b)]+';\x0a';return _0x42a87c+=_0x247d06(0x155);}[_0x3426f3(0xc88)](_0x195f53,_0x1cb65b){var _0x14cb20=_0x3426f3;for(let _0x5d0eff=0x0;_0x5d0eff<this[_0x14cb20(0x26d)][_0x14cb20(0x86f)];++_0x5d0eff){var _0x3c14f5=this[_0x14cb20(0x26d)][_0x5d0eff];_0x195f53=this[_0x14cb20(0x374)](_0x195f53,_0x3c14f5),_0x1cb65b=this[_0x14cb20(0x374)](_0x1cb65b,_0x3c14f5);}for(let _0x4c2964=0x0;_0x4c2964<this[_0x14cb20(0x36a)][_0x14cb20(0x86f)];++_0x4c2964){var _0x20cc8b=this[_0x14cb20(0x36a)][_0x4c2964];_0x20cc8b&&0x0<_0x20cc8b[_0x14cb20(0x86f)]&&(_0x1cb65b=_0x20cc8b+'\x0a'+_0x1cb65b);}var _0x4b9087=this[_0x14cb20(0x86a)]();return _0x195f53=_0x4b9087+_0x195f53,_0x1cb65b=_0x4b9087+_0x1cb65b,this[_0x14cb20(0x291)](),this['_preCreateBindGroupEntries'](),this[_0x14cb20(0x995)]=null,{'vertexCode':_0x195f53,'fragmentCode':_0x1cb65b};}}},0x1574b:(_0x2e6c86,_0x8790c9,_0x3d56e)=>{var _0x4df60b=a7_0x3304fb;_0x3d56e['d'](_0x8790c9,{'o':()=>_0x113a0b});var _0x27a5de=_0x3d56e(0xcf70),_0x311684=_0x3d56e(0x177e8),_0x361c53=_0x3d56e(0x9a70),_0x3c8dff=_0x3d56e(0xa242),_0x369e02=_0x3d56e(0xeecb),_0x8790c9=_0x3d56e(0x26fa),_0x494b4e=(_0x8790c9['v'][_0x4df60b(0x957)][_0x4df60b(0x57b)]=_0x4df60b(0x99c),_0x8790c9['v'][_0x4df60b(0x957)][_0x4df60b(0x7c7)]=_0x4df60b(0x7bd),_0x8790c9['v'][_0x4df60b(0x957)][_0x4df60b(0x681)]=_0x4df60b(0x908),_0x8790c9['v'][_0x4df60b(0x957)][_0x4df60b(0xce9)]=_0x4df60b(0xcf2),_0x8790c9['v'][_0x4df60b(0x957)][_0x4df60b(0x429)]=_0x4df60b(0x7a1),_0x8790c9['v'][_0x4df60b(0x957)]['clipPlaneFragmentDeclaration']=_0x4df60b(0xbf3),_0x8790c9['v'][_0x4df60b(0x957)]['clipPlaneVertex']=_0x4df60b(0x2af),_0x8790c9['v'][_0x4df60b(0x957)][_0x4df60b(0x1c0)]=_0x4df60b(0x3df),_0x8790c9['v'][_0x4df60b(0x957)][_0x4df60b(0x246)]=_0x4df60b(0xa31),_0x8790c9['v'][_0x4df60b(0x957)]['instancesVertex']='#ifdef\x20INSTANCES\x0avar\x20finalWorld=mat4x4<f32>(vertexInputs.world0,vertexInputs.world1,vertexInputs.world2,vertexInputs.world3);\x0a#if\x20defined(PREPASS_VELOCITY)\x20||\x20defined(VELOCITY)\x0avar\x20finalPreviousWorld=mat4x4<f32>(previousWorld0,previousWorld1,previousWorld2,previousWorld3);\x0a#endif\x0a#ifdef\x20THIN_INSTANCES\x0a#if\x20!defined(WORLD_UBO)\x0afinalWorld=uniforms.world*finalWorld;\x0a#else\x0afinalWorld=mesh.world*finalWorld;\x0a#endif\x0a#if\x20defined(PREPASS_VELOCITY)\x20||\x20defined(VELOCITY)\x0afinalPreviousWorld=previousWorld*finalPreviousWorld;\x0a#endif\x0a#endif\x0a#else\x0a#if\x20!defined(WORLD_UBO)\x0avar\x20finalWorld=uniforms.world;\x0a#else\x0avar\x20finalWorld=mesh.world;\x0a#endif\x0a#if\x20defined(PREPASS_VELOCITY)\x20||\x20defined(VELOCITY)\x0avar\x20finalPreviousWorld=previousWorld;\x0a#endif\x0a#endif\x0a',_0x8790c9['v'][_0x4df60b(0x957)][_0x4df60b(0x936)]=_0x4df60b(0xa17),_0x8790c9['v'][_0x4df60b(0x957)][_0x4df60b(0x5e7)]='#ifdef\x20MORPHTARGETS\x0a#ifdef\x20MORPHTARGETS_TEXTURE\x20\x0avertexID=f32(vertexInputs.vertexIndex)*uniforms.morphTargetTextureInfo.x;\x0apositionUpdated=positionUpdated+(readVector3FromRawSampler({X},vertexID)-vertexInputs.position)*uniforms.morphTargetInfluences[{X}];\x0avertexID=vertexID+1.0;\x0a#ifdef\x20MORPHTARGETS_NORMAL\x0anormalUpdated=normalUpdated+(readVector3FromRawSampler({X},vertexID)\x20-vertexInputs.normal)*uniforms.morphTargetInfluences[{X}];\x0avertexID=vertexID+1.0;\x0a#endif\x0a#ifdef\x20MORPHTARGETS_UV\x0auvUpdated=uvUpdated+(readVector3FromRawSampler({X},vertexID).xy-vertexInputs.uv)*uniforms.morphTargetInfluences[{X}];\x0avertexID=vertexID+1.0;\x0a#endif\x0a#ifdef\x20MORPHTARGETS_TANGENT\x0atangentUpdated.xyz=tangentUpdated.xyz+(readVector3FromRawSampler({X},vertexID)\x20-vertexInputs.tangent.xyz)*uniforms.morphTargetInfluences[{X}];\x0a#endif\x0a#else\x0apositionUpdated=positionUpdated+(position{X}-vertexInputs.position)*uniforms.morphTargetInfluences[{X}];\x0a#ifdef\x20MORPHTARGETS_NORMAL\x0anormalUpdated+=(normal{X}-vertexInputs.normal)*uniforms.morphTargetInfluences[{X}];\x0a#endif\x0a#ifdef\x20MORPHTARGETS_TANGENT\x0atangentUpdated.xyz=tangentUpdated.xyz+(tangent{X}-vertexInputs.tangent.xyz)*uniforms.morphTargetInfluences[{X}];\x0a#endif\x0a#ifdef\x20MORPHTARGETS_UV\x0auvUpdated=uvUpdated+(uv_{X}-vertexInputs.uv)*uniforms.morphTargetInfluences[{X}];\x0a#endif\x0a#endif\x0a#endif\x0a',_0x8790c9['v'][_0x4df60b(0x957)]['morphTargetsVertexDeclaration']=_0x4df60b(0x991),_0x8790c9['v'][_0x4df60b(0x957)][_0x4df60b(0x142)]=_0x4df60b(0xcb9),_0x8790c9['v']['IncludesShadersStoreWGSL'][_0x4df60b(0x169)]=_0x4df60b(0x228),_0x8790c9['v'][_0x4df60b(0x957)][_0x4df60b(0x85e)]=_0x4df60b(0xb98),_0x3d56e(0x12658));const _0x5cae62=_0x4df60b(0xd0d),_0x463628={'texture_1d':_0x311684['p_'][_0x4df60b(0x35e)],'texture_2d':_0x311684['p_']['E2d'],'texture_2d_array':_0x311684['p_'][_0x4df60b(0x231)],'texture_3d':_0x311684['p_']['E3d'],'texture_cube':_0x311684['p_'][_0x4df60b(0x2d1)],'texture_cube_array':_0x311684['p_'][_0x4df60b(0xc76)],'texture_multisampled_2d':_0x311684['p_'][_0x4df60b(0x9d8)],'texture_depth_2d':_0x311684['p_'][_0x4df60b(0x9d8)],'texture_depth_2d_array':_0x311684['p_'][_0x4df60b(0x231)],'texture_depth_cube':_0x311684['p_']['Cube'],'texture_depth_cube_array':_0x311684['p_'][_0x4df60b(0xc76)],'texture_depth_multisampled_2d':_0x311684['p_']['E2d'],'texture_storage_1d':_0x311684['p_'][_0x4df60b(0x35e)],'texture_storage_2d':_0x311684['p_'][_0x4df60b(0x9d8)],'texture_storage_2d_array':_0x311684['p_'][_0x4df60b(0x231)],'texture_storage_3d':_0x311684['p_'][_0x4df60b(0x1e8)],'texture_external':null};class _0x113a0b extends _0x3c8dff['e']{constructor(){var _0x2ff5ee=_0x4df60b;super(...arguments),this[_0x2ff5ee(0xbb5)]=_0x494b4e['x'][_0x2ff5ee(0x451)],this[_0x2ff5ee(0x408)]=/uniform\s+(\w+)\s*:\s*(.+)\s*;/,this[_0x2ff5ee(0xa38)]=/var\s+(\w+)\s*:\s*((array<\s*)?(texture_\w+)\s*(<\s*(.+)\s*>)?\s*(,\s*\w+\s*>\s*)?);/,this[_0x2ff5ee(0x461)]=!0x0;}[_0x4df60b(0x43d)](_0x17b180,_0x141064,_0x293654){var _0x23b67a=_0x4df60b;let _0x1c2b56=0x0;var _0x5b3d42=_0x141064['lastIndexOf']('>');if(0x0<=_0x141064[_0x23b67a(0xbd5)](_0x23b67a(0x4c7))&&0x0<_0x5b3d42){let _0x5174cb=_0x5b3d42;for(;0x0<_0x5174cb&&'\x20'!==_0x141064[_0x23b67a(0x691)](_0x5174cb)&&','!==_0x141064[_0x23b67a(0x691)](_0x5174cb);)_0x5174cb--;const _0x5dd593=_0x141064['substring'](_0x5174cb+0x1,_0x5b3d42);for(_0x1c2b56=+_0x5dd593,isNaN(_0x1c2b56)&&(_0x1c2b56=+_0x293654[_0x5dd593[_0x23b67a(0xc8c)]()]);0x0<_0x5174cb&&('\x20'===_0x141064[_0x23b67a(0x691)](_0x5174cb)||','===_0x141064[_0x23b67a(0x691)](_0x5174cb));)_0x5174cb--;_0x141064=_0x141064[_0x23b67a(0x563)](_0x141064[_0x23b67a(0xbd5)]('<')+0x1,_0x5174cb+0x1);}return[_0x17b180,_0x141064,_0x1c2b56];}['initializeShaders'](_0x3624d9){var _0x47d887=_0x4df60b;this[_0x47d887(0x35c)]=_0x3624d9,this[_0x47d887(0xa8e)]=[],this[_0x47d887(0x17f)]=[],this['_varyingNamesWGSL']=[],this['_stridedUniformArrays']=[];}['preProcessShaderCode'](_0x5eaedf){var _0xd890c1=_0x4df60b;return _0xd890c1(0x4b3)+_0x3c8dff['e']['InternalsUBOName']+_0xd890c1(0x2a5)+_0x3c8dff['e']['InternalsUBOName']+';\x0a'+(0x0,_0x369e02['Kt'])(_0x5eaedf);}['varyingProcessor'](_0xde451b,_0x5c5f57,_0x1720d6){var _0x1ca49f=_0x4df60b,_0x37e244=/\s*varying\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s*:\s*(.+)\s*;/gm[_0x1ca49f(0x922)](_0xde451b);if(null!==_0x37e244){var _0x3ec380=_0x37e244[0x2],_0x37e244=_0x37e244[0x1];let _0x2838c0;_0x5c5f57?void 0x0===(_0x2838c0=this[_0x1ca49f(0x35c)]['availableVaryings'][_0x37e244])&&_0x361c53['Y']['Warn'](_0x1ca49f(0x165)+_0x37e244+_0x1ca49f(0x8e2)):(_0x2838c0=this[_0x1ca49f(0x35c)][_0x1ca49f(0xb9f)](_0x3ec380,this[_0x1ca49f(0x43d)](_0x37e244,_0x3ec380,_0x1720d6)[0x2]),this[_0x1ca49f(0x35c)][_0x1ca49f(0xc15)][_0x37e244]=_0x2838c0,this[_0x1ca49f(0x17f)][_0x1ca49f(0x725)](_0x1ca49f(0xb90)+_0x2838c0+')\x20'+_0x37e244+_0x1ca49f(0x35d)+_0x3ec380+','),this['_varyingNamesWGSL'][_0x1ca49f(0x725)](_0x37e244)),_0xde451b='';}return _0xde451b;}[_0x4df60b(0x901)](_0x240362,_0x563ee3){var _0x5ef56b=_0x4df60b,_0x3740af,_0x244364=/\s*attribute\s+(\S+)\s*:\s*(.+)\s*;/gm[_0x5ef56b(0x922)](_0x240362);return null!==_0x244364&&(_0x3740af=_0x244364[0x2],_0x244364=_0x244364[0x1],_0x563ee3=this[_0x5ef56b(0x35c)][_0x5ef56b(0xba0)](_0x3740af,this[_0x5ef56b(0x43d)](_0x244364,_0x3740af,_0x563ee3)[0x2]),this[_0x5ef56b(0x35c)][_0x5ef56b(0x8f7)][_0x244364]=_0x563ee3,this[_0x5ef56b(0x35c)][_0x5ef56b(0x2d7)][_0x563ee3]=_0x244364,this[_0x5ef56b(0xa8e)][_0x5ef56b(0x725)](_0x5ef56b(0x16e)+_0x563ee3+')\x20'+_0x244364+'\x20:\x20'+_0x3740af+','),_0x240362=''),_0x240362;}[_0x4df60b(0x82b)](_0x5c87e9,_0x3a0835,_0x1dc1f1){var _0x188523=_0x4df60b,_0x26cc9b,_0x1b1778=this[_0x188523(0x408)]['exec'](_0x5c87e9);return null!==_0x1b1778&&(_0x26cc9b=_0x1b1778[0x2],_0x1b1778=_0x1b1778[0x1],this[_0x188523(0xc27)](_0x1b1778,_0x26cc9b,_0x1dc1f1),_0x5c87e9=''),_0x5c87e9;}[_0x4df60b(0x770)](_0x210303,_0x3345ce,_0x28f809){var _0x2e4af6=_0x4df60b,_0x1fdfa9=this[_0x2e4af6(0xa38)][_0x2e4af6(0x922)](_0x210303);if(null!==_0x1fdfa9){var _0x57a2fb=_0x1fdfa9[0x1],_0x4b5cc8=_0x1fdfa9[0x2],_0x357af3=!!_0x1fdfa9[0x3];const _0x7ae650=_0x1fdfa9[0x4];var _0x3176e4=0x0<_0x7ae650[_0x2e4af6(0xbd5)]('storage');const _0x349d59=_0x1fdfa9[0x6];var _0xb88d70=_0x3176e4?_0x349d59[_0x2e4af6(0x563)](0x0,_0x349d59[_0x2e4af6(0xbd5)](','))[_0x2e4af6(0xc8c)]():null;let _0x5c9423=_0x357af3?this['_getArraySize'](_0x57a2fb,_0x4b5cc8,_0x28f809)[0x2]:0x0,_0x46c1d1=this[_0x2e4af6(0x35c)][_0x2e4af6(0x713)][_0x57a2fb];if(_0x46c1d1)_0x5c9423=_0x46c1d1['textures'][_0x2e4af6(0x86f)];else{_0x46c1d1={'isTextureArray':0x0<_0x5c9423,'isStorageTexture':_0x3176e4,'textures':[],'sampleType':_0x311684['oD']['Float']},_0x5c9423=_0x5c9423||0x1;for(let _0x5c569b=0x0;_0x5c569b<_0x5c9423;++_0x5c569b)_0x46c1d1[_0x2e4af6(0xa52)][_0x2e4af6(0x725)](this[_0x2e4af6(0x35c)][_0x2e4af6(0x47e)]());}this['_webgpuProcessingContext']['availableTextures'][_0x57a2fb]=_0x46c1d1;var _0x1fdfa9=0x0<_0x7ae650[_0x2e4af6(0xbd5)](_0x2e4af6(0x711)),_0x2fb216=_0x463628[_0x7ae650],_0x357af3=_0x1fdfa9?_0x311684['oD'][_0x2e4af6(0xbc5)]:_0x2e4af6(0x20c)===_0x349d59?_0x311684['oD']['Uint']:_0x2e4af6(0x9b3)===_0x349d59?_0x311684['oD'][_0x2e4af6(0xc09)]:_0x311684['oD'][_0x2e4af6(0x8d8)];if(_0x46c1d1[_0x2e4af6(0x41b)]=_0x357af3,void 0x0===_0x2fb216)throw _0x2e4af6(0xa95)+_0x7ae650+'\x22!';for(let _0x133fd5=0x0;_0x133fd5<_0x5c9423;++_0x133fd5){var {groupIndex:_0x74615d,bindingIndex:_0x25af6e}=_0x46c1d1[_0x2e4af6(0xa52)][_0x133fd5];0x0===_0x133fd5&&(_0x210303=_0x2e4af6(0xc74)+_0x74615d+')\x20@binding('+_0x25af6e+')\x20'+_0x210303),this[_0x2e4af6(0x751)](_0x57a2fb,_0x46c1d1,_0x133fd5,_0x2fb216,_0xb88d70,!_0x3345ce);}}return _0x210303;}['postProcessor'](_0xbeb87c){return _0xbeb87c;}['finalizeShaders'](_0x61bffe,_0x262dc1){var _0x198874=_0x4df60b,_0xf88dec=0x0<=_0x262dc1[_0x198874(0xbd5)]('fragmentInputs.position')?_0x198874(0x78c):'',_0x309887=(_0x61bffe=this[_0x198874(0x541)](_0x61bffe,!0x0),_0x262dc1=this[_0x198874(0x541)](_0x262dc1,!0x1),_0x61bffe=this['_processCustomBuffers'](_0x61bffe,!0x0),_0x262dc1=this['_processCustomBuffers'](_0x262dc1,!0x1),this[_0x198874(0x86a)]());_0x262dc1=_0x309887+_0x262dc1,_0x61bffe=(_0x61bffe=_0x309887+_0x61bffe)['replace'](/#define /g,_0x198874(0x612)),_0x61bffe=this['_processStridedUniformArrays'](_0x61bffe);let _0x425582=_0x198874(0x602),_0x461fb9=(0x0<this[_0x198874(0xa8e)][_0x198874(0x86f)]&&(_0x425582+=this['_attributesWGSL'][_0x198874(0xb4e)]('\x0a')),_0x425582+=_0x198874(0xb04),'struct\x20FragmentInputs\x20{\x0a\x20\x20@builtin(position)\x20position\x20:\x20vec4<f32>,\x0a'),_0x5cb255=(0x0<this[_0x198874(0x17f)][_0x198874(0x86f)]&&(_0x461fb9+=this[_0x198874(0x17f)]['join']('\x0a')),_0x461fb9+='\x0a};\x0avar<private>\x20vertexOutputs\x20:\x20FragmentInputs;\x0a',_0x61bffe=_0x425582+_0x461fb9+_0x61bffe,_0x61bffe=this[_0x198874(0xad9)](_0x61bffe,_0x198874(0x9af),_0x198874(0x279),'\x20\x20vertexOutputs.position.y\x20=\x20vertexOutputs.position.y\x20*\x20internals.yFactor_;\x0a\x20\x20return\x20vertexOutputs;'),_0x262dc1=_0x262dc1[_0x198874(0x89b)](/#define /g,'//#define\x20'),_0x262dc1=(_0x262dc1=this[_0x198874(0xa5f)](_0x262dc1))['replace'](/dpdy/g,_0x198874(0xb43)),'struct\x20FragmentInputs\x20{\x0a\x20\x20@builtin(position)\x20position\x20:\x20vec4<f32>,\x0a\x20\x20@builtin(front_facing)\x20frontFacing\x20:\x20bool,\x0a'),_0x1ac6e2=(0x0<this[_0x198874(0x17f)][_0x198874(0x86f)]&&(_0x5cb255+=this[_0x198874(0x17f)][_0x198874(0xb4e)]('\x0a')),_0x5cb255+=_0x198874(0xa66),'struct\x20FragmentOutputs\x20{\x0a\x20\x20@location(0)\x20color\x20:\x20vec4<f32>,\x0a'),_0xf15d55=!0x1,_0x40c62c=0x0;for(;!(_0xf15d55||(_0x40c62c=_0x262dc1[_0x198874(0xbd5)](_0x5cae62,_0x40c62c))<0x0);){var _0x409c78=_0x40c62c;for(_0xf15d55=!0x0;0x1<_0x40c62c&&'\x0a'!==_0x262dc1[_0x198874(0x691)](_0x40c62c);){if('/'===_0x262dc1[_0x198874(0x691)](_0x40c62c)&&'/'===_0x262dc1[_0x198874(0x691)](_0x40c62c-0x1)){_0xf15d55=!0x1;break;}_0x40c62c--;}_0x40c62c=_0x409c78+_0x5cae62[_0x198874(0x86f)];}return _0xf15d55&&(_0x1ac6e2+=_0x198874(0x5e9)),_0x1ac6e2+=_0x198874(0x883),_0x262dc1=_0x5cb255+_0x1ac6e2+_0x262dc1,_0x262dc1=this[_0x198874(0xad9)](_0x262dc1,_0x198874(0x9af),_0x198874(0x743)+_0xf88dec,_0x198874(0x36e)),this['_collectBindingNames'](),this[_0x198874(0x546)](),{'vertexCode':_0x61bffe,'fragmentCode':_0x262dc1};}[_0x4df60b(0x2aa)](_0xd4d665,_0x49b00b){var _0x5b894e=_0x4df60b;let _0x276005='',_0x2bae78='struct\x20'+_0xd4d665+_0x5b894e(0x94d);for(const _0x29c27c of this[_0x5b894e(0x35c)][_0x5b894e(0x187)]){var _0x3ace3b=_0x29c27c['type'][_0x5b894e(0x89b)](/^(.*?)(<.*>)?$/,'$1'),_0x1a02d0=_0x3c8dff['e']['UniformSizes'][_0x3ace3b];0x0<_0x29c27c[_0x5b894e(0x86f)]?_0x1a02d0<=0x2?(_0x1a02d0=_0xd4d665+'_'+this['_stridedUniformArrays'][_0x5b894e(0x86f)]+_0x5b894e(0x301),_0x276005+='struct\x20'+_0x1a02d0+_0x5b894e(0xb19)+_0x3ace3b+',\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}',this[_0x5b894e(0x5ea)]['push'](_0x29c27c['name']),_0x2bae78+=_0x5b894e(0x828)+_0x29c27c['name']+_0x5b894e(0x67e)+_0x1a02d0+',\x20'+_0x29c27c[_0x5b894e(0x86f)]+_0x5b894e(0x9ef)):_0x2bae78+='\x20'+_0x29c27c['name']+_0x5b894e(0x67e)+_0x29c27c[_0x5b894e(0xb26)]+',\x20'+_0x29c27c[_0x5b894e(0x86f)]+_0x5b894e(0x9ef):_0x2bae78+='\x20\x20'+_0x29c27c[_0x5b894e(0x51b)]+_0x5b894e(0x35d)+_0x29c27c['type']+',\x0a';}return _0x2bae78+='};\x0a',_0x2bae78=_0x276005+'\x0a'+_0x2bae78,_0x2bae78+=_0x5b894e(0xc74)+_0x49b00b['binding'][_0x5b894e(0x910)]+_0x5b894e(0xcac)+_0x49b00b[_0x5b894e(0x9e9)][_0x5b894e(0x975)]+')\x20var<uniform>\x20uniforms\x20:\x20'+_0xd4d665+';\x0a';}[_0x4df60b(0x541)](_0x44a514,_0x211465){var _0x39d048=_0x4df60b;const _0x57f748=/var\s+(\w+Sampler)\s*:\s*(sampler|sampler_comparison)\s*;/gm;for(;;){var _0x34351f=_0x57f748[_0x39d048(0x922)](_0x44a514);if(null===_0x34351f)break;const _0x5a52ba=_0x34351f[0x1];var _0x502adf=_0x34351f[0x2],_0x9e60b4=_0x5a52ba[_0x39d048(0xbd5)](_0x3c8dff['e'][_0x39d048(0x77f)])===_0x5a52ba[_0x39d048(0x86f)]-_0x3c8dff['e'][_0x39d048(0x77f)]['length']?_0x5a52ba[_0x39d048(0x563)](0x0,_0x5a52ba[_0x39d048(0xbd5)](_0x3c8dff['e'][_0x39d048(0x77f)])):null,_0x502adf=_0x39d048(0xa56)===_0x502adf?_0x311684['dV'][_0x39d048(0x1dd)]:_0x311684['dV']['Filtering'];if(_0x9e60b4){const _0x4b351f=this['_webgpuProcessingContext'][_0x39d048(0x713)][_0x9e60b4];_0x4b351f&&(_0x4b351f[_0x39d048(0xc72)]=!0x0);}let _0x4423cc=this[_0x39d048(0x35c)]['availableSamplers'][_0x5a52ba];_0x4423cc||(_0x4423cc={'binding':this[_0x39d048(0x35c)][_0x39d048(0x47e)](),'type':_0x502adf},this['_webgpuProcessingContext'][_0x39d048(0x7cd)][_0x5a52ba]=_0x4423cc),this[_0x39d048(0xbfb)](_0x5a52ba,_0x4423cc,_0x211465),(_0x9e60b4=_0x44a514[_0x39d048(0x563)](0x0,_0x34351f[_0x39d048(0x712)]),_0x502adf='@group('+_0x4423cc[_0x39d048(0x9e9)][_0x39d048(0x910)]+_0x39d048(0xcac)+_0x4423cc[_0x39d048(0x9e9)][_0x39d048(0x975)]+')\x20'),(_0x44a514=_0x9e60b4+_0x502adf+_0x44a514['substring'](_0x34351f[_0x39d048(0x712)]),_0x57f748[_0x39d048(0x5ef)]+=_0x502adf['length']);}return _0x44a514;}[_0x4df60b(0x1a3)](_0x1654ff,_0x3c13d1){var _0x430273=_0x4df60b;const _0x3984dd=/var<\s*(uniform|storage)\s*(,\s*(read|read_write)\s*)?>\s+(\S+)\s*:\s*(\S+)\s*;/gm;for(;;){var _0x49371d=_0x3984dd[_0x430273(0x922)](_0x1654ff);if(null===_0x49371d)break;var _0x3b7833=_0x49371d[0x1],_0x5d7f21=_0x49371d[0x3];let _0x2c60fb=_0x49371d[0x4];var _0x5a6250=_0x49371d[0x5];let _0x2fcd56=this[_0x430273(0x35c)]['availableBuffers'][_0x2c60fb];if(!_0x2fcd56){var _0x5850fa=_0x430273(0xbe1)===_0x3b7833?_0x27a5de['d']['KnownUBOs'][_0x5a6250]:null;let _0x3c96b2;_0x5850fa?(_0x2c60fb=_0x5a6250,-0x1===(_0x3c96b2=_0x5850fa[_0x430273(0x9e9)])['groupIndex']&&(_0x3c96b2=this[_0x430273(0x35c)][_0x430273(0x47e)]())):_0x3c96b2=this[_0x430273(0x35c)]['getNextFreeUBOBinding'](),_0x2fcd56={'binding':_0x3c96b2},this[_0x430273(0x35c)]['availableBuffers'][_0x2c60fb]=_0x2fcd56;}this['_addBufferBindingDescription'](_0x2c60fb,this[_0x430273(0x35c)][_0x430273(0x8e7)][_0x2c60fb],_0x430273(0x122)===_0x5d7f21?_0x311684['Rs']['Storage']:_0x430273(0x472)===_0x3b7833?_0x311684['Rs']['ReadOnlyStorage']:_0x311684['Rs'][_0x430273(0xaca)],_0x3c13d1),_0x5a6250=_0x430273(0xc74)+_0x2fcd56['binding'][_0x430273(0x910)]+_0x430273(0xcac)+_0x2fcd56[_0x430273(0x9e9)][_0x430273(0x975)]+')\x20',(_0x1654ff=_0x1654ff['substring'](0x0,_0x49371d[_0x430273(0x712)])+_0x5a6250+_0x1654ff['substring'](_0x49371d[_0x430273(0x712)]),_0x3984dd['lastIndex']+=_0x5a6250[_0x430273(0x86f)]);}return _0x1654ff;}[_0x4df60b(0xa5f)](_0x1be71f){var _0x596bef=_0x4df60b;for(const _0x104dcc of this[_0x596bef(0x5ea)])_0x1be71f=_0x1be71f['replace'](new RegExp(_0x104dcc+_0x596bef(0x782),'g'),_0x104dcc+_0x596bef(0x149));return _0x1be71f;}}},0x11ad3:(_0x15e897,_0xbed201,_0x2e9b19)=>{var _0xb8e3d8=a7_0x3304fb;_0x2e9b19['d'](_0xbed201,{'w':()=>_0x45d043});var _0x329c33=_0x2e9b19(0x1610);class _0x45d043{constructor(_0x498aa4,_0x582c80,_0x40910f,_0x4e7717){var _0x5a8dd9=a7_0x4135;this['_record']=!0x1,this[_0x5a8dd9(0x1f0)]=!0x1,this[_0x5a8dd9(0xada)]=[],this['_enabled']=!0x1,this[_0x5a8dd9(0x489)]=_0x498aa4,this[_0x5a8dd9(0x49c)]=_0x582c80,this['_bundleList']=_0x40910f,this['_bundleListRenderTarget']=_0x4e7717;}get['enabled'](){var _0x5a90f4=a7_0x4135;return this[_0x5a90f4(0x398)];}get[_0xb8e3d8(0x5c6)](){var _0xd1d427=_0xb8e3d8;return this[_0xd1d427(0x1f0)];}get['record'](){var _0x5e4e08=_0xb8e3d8;return this[_0x5e4e08(0xc9a)];}set['enabled'](_0x43b34b){var _0x51eca8=_0xb8e3d8;this['_mainPassBundleList'][_0x51eca8(0x86f)]=0x0,this['_record']=this[_0x51eca8(0x398)]=_0x43b34b,this[_0x51eca8(0x1f0)]=!0x1,_0x43b34b&&(this[_0x51eca8(0xa50)]=this[_0x51eca8(0x49c)],this[_0x51eca8(0x49c)]=_0x329c33['g'][_0x51eca8(0x2e0)]);}get[_0xb8e3d8(0x765)](){var _0x399b00=_0xb8e3d8;return this[_0x399b00(0x49c)];}set[_0xb8e3d8(0x765)](_0x39c9c9){var _0x1a5ea6=_0xb8e3d8;this[_0x1a5ea6(0xc9a)]?this['_modeSaved']=_0x39c9c9:this[_0x1a5ea6(0x49c)]=_0x39c9c9;}['endMainRenderPass'](){var _0x41542f=_0xb8e3d8;this[_0x41542f(0xc9a)]&&this['_mainPassBundleList'][_0x41542f(0x725)](this['_bundleList'][_0x41542f(0x4fb)]());}[_0xb8e3d8(0x577)](_0x13f537,_0x285383){var _0x4c0982=_0xb8e3d8,_0x11fca3;if(this['_play'])null!=(_0x11fca3=null==(_0x11fca3=_0x285383[_0x4c0982(0x762)])?void 0x0:_0x11fca3[_0x285383[_0x4c0982(0x45b)]])&&_0x11fca3[_0x4c0982(0x176)](_0x13f537),this['_mode']===_0x329c33['g'][_0x4c0982(0x46f)]&&this[_0x4c0982(0x489)][_0x4c0982(0x499)](null==(_0x11fca3=null==(_0x11fca3=_0x285383['_bundleLists'])?void 0x0:_0x11fca3[_0x285383['_currentLayer']])?void 0x0:_0x11fca3['numDrawCalls']);else{if(!this[_0x4c0982(0xc9a)])return!0x1;_0x285383[_0x4c0982(0x762)]||(_0x285383[_0x4c0982(0x762)]=[]),_0x285383[_0x4c0982(0x762)][_0x285383['_currentLayer']]=this[_0x4c0982(0x657)][_0x4c0982(0x4fb)](),_0x285383[_0x4c0982(0x762)][_0x285383[_0x4c0982(0x45b)]][_0x4c0982(0x176)](_0x13f537),this['_bundleListRenderTarget'][_0x4c0982(0x4ac)]();}return!0x0;}['endFrame'](_0x4a8e35){var _0x48f456=_0xb8e3d8;if(this['_record']&&(this[_0x48f456(0xada)]['push'](this[_0x48f456(0x27d)]['clone']()),this[_0x48f456(0xc9a)]=!0x1,this[_0x48f456(0x1f0)]=!0x0,this[_0x48f456(0x49c)]=this[_0x48f456(0xa50)]),null!==_0x4a8e35&&this['_play']){for(let _0x4ab8b8=0x0;_0x4ab8b8<this[_0x48f456(0xada)][_0x48f456(0x86f)];++_0x4ab8b8)this[_0x48f456(0xada)][_0x4ab8b8]['run'](_0x4a8e35),this[_0x48f456(0x49c)]===_0x329c33['g']['SNAPSHOTRENDERING_FAST']&&this['_engine'][_0x48f456(0x499)](this[_0x48f456(0xada)][_0x4ab8b8][_0x48f456(0xd02)]);}}[_0xb8e3d8(0x4ac)](){var _0xf61631=_0xb8e3d8;this[_0xf61631(0x34e)]=!0x1,this[_0xf61631(0x34e)]=!0x0;}}},0xa482:(_0xbc24cf,_0x2da26c,_0x1adbe1)=>{var _0x1c8425=a7_0x3304fb;_0x1adbe1['d'](_0x2da26c,{'F':()=>_0x4df6c4});class _0x4df6c4 extends _0x1adbe1(0x14e41)['C']{constructor(_0x960622){var _0x102e6c=a7_0x4135;super(!0x1),this[_0x102e6c(0x615)]=_0x960622,this['reset']();}get[_0x1c8425(0xa98)](){var _0x42cb2a=_0x1c8425;return this[_0x42cb2a(0x7b1)];}set[_0x1c8425(0xa98)](_0x151275){var _0x59b444=_0x1c8425;this['_func']!==_0x151275&&(this[_0x59b444(0x7b1)]=_0x151275,this['_cache'][_0x59b444(0xa05)](_0x151275));}get[_0x1c8425(0x517)](){var _0x1fec01=_0x1c8425;return this[_0x1fec01(0xae7)];}set['funcMask'](_0x2d5f38){var _0x153008=_0x1c8425;this[_0x153008(0xae7)]!==_0x2d5f38&&(this[_0x153008(0xae7)]=_0x2d5f38,this[_0x153008(0x615)][_0x153008(0xc32)](_0x2d5f38));}get[_0x1c8425(0x97d)](){var _0x252fd2=_0x1c8425;return this[_0x252fd2(0x5e2)];}set['opStencilFail'](_0x5e1feb){var _0x5461b5=_0x1c8425;this[_0x5461b5(0x5e2)]!==_0x5e1feb&&(this[_0x5461b5(0x5e2)]=_0x5e1feb,this[_0x5461b5(0x615)][_0x5461b5(0x4d4)](_0x5e1feb));}get[_0x1c8425(0xc82)](){return this['_opDepthFail'];}set['opDepthFail'](_0x214e26){var _0x5f2a4a=_0x1c8425;this[_0x5f2a4a(0x371)]!==_0x214e26&&(this[_0x5f2a4a(0x371)]=_0x214e26,this[_0x5f2a4a(0x615)][_0x5f2a4a(0x166)](_0x214e26));}get[_0x1c8425(0x778)](){var _0xcf8108=_0x1c8425;return this[_0xcf8108(0x680)];}set[_0x1c8425(0x778)](_0x2c7af6){var _0x4b9aa0=_0x1c8425;this['_opStencilDepthPass']!==_0x2c7af6&&(this[_0x4b9aa0(0x680)]=_0x2c7af6,this['_cache'][_0x4b9aa0(0xbdb)](_0x2c7af6));}get[_0x1c8425(0xc86)](){return this['_mask'];}set['mask'](_0x4c4246){var _0x295eb9=_0x1c8425;this[_0x295eb9(0x7e1)]!==_0x4c4246&&(this[_0x295eb9(0x7e1)]=_0x4c4246,this['_cache'][_0x295eb9(0x6b3)](_0x4c4246));}get[_0x1c8425(0x34e)](){var _0x5b8f83=_0x1c8425;return this[_0x5b8f83(0x398)];}set['enabled'](_0x56970b){var _0x2e3c40=_0x1c8425;this[_0x2e3c40(0x398)]!==_0x56970b&&(this[_0x2e3c40(0x398)]=_0x56970b,this[_0x2e3c40(0x615)][_0x2e3c40(0xa27)](_0x56970b));}[_0x1c8425(0x4ac)](){var _0x37989f=_0x1c8425;super[_0x37989f(0x4ac)](),this[_0x37989f(0x615)][_0x37989f(0x832)]();}[_0x1c8425(0x650)](){var _0x2ba1f4=_0x1c8425,_0x424ffa=null==(_0x424ffa=this[_0x2ba1f4(0x2f8)])?void 0x0:_0x424ffa[_0x2ba1f4(0x34e)];this[_0x2ba1f4(0x34e)]=(_0x424ffa?this[_0x2ba1f4(0x2f8)]:this[_0x2ba1f4(0x8f8)])[_0x2ba1f4(0x34e)],this[_0x2ba1f4(0x34e)]&&(this[_0x2ba1f4(0xa98)]=(_0x424ffa?this[_0x2ba1f4(0x2f8)]:this[_0x2ba1f4(0x8f8)])[_0x2ba1f4(0xa98)],this[_0x2ba1f4(0x825)]=(_0x424ffa?this[_0x2ba1f4(0x2f8)]:this[_0x2ba1f4(0x8f8)])['funcRef'],this[_0x2ba1f4(0x517)]=(_0x424ffa?this[_0x2ba1f4(0x2f8)]:this[_0x2ba1f4(0x8f8)])['funcMask'],this[_0x2ba1f4(0x97d)]=(_0x424ffa?this[_0x2ba1f4(0x2f8)]:this[_0x2ba1f4(0x8f8)])[_0x2ba1f4(0x97d)],this[_0x2ba1f4(0xc82)]=(_0x424ffa?this[_0x2ba1f4(0x2f8)]:this[_0x2ba1f4(0x8f8)])[_0x2ba1f4(0xc82)],this[_0x2ba1f4(0x778)]=(_0x424ffa?this[_0x2ba1f4(0x2f8)]:this[_0x2ba1f4(0x8f8)])['opStencilDepthPass'],this['mask']=(_0x424ffa?this[_0x2ba1f4(0x2f8)]:this['stencilGlobal'])['mask']);}}},0xfeca:(_0x286007,_0x6890a4,_0x57cb82)=>{var _0x451749=a7_0x3304fb;_0x57cb82['d'](_0x6890a4,{'D':()=>_0x7ae081,'U':()=>_0x2416d0});var _0x276697,_0x1567fa,_0x2241ac=_0x57cb82(0x177e8),_0x21cab2=_0x57cb82(0x17372),_0x1b2e2f=_0x57cb82(0x1610),_0x5b5d44=_0x57cb82(0x138df),_0x216f2a=_0x57cb82(0xa9c);_0x276697={'MipMap':0x0,0x0:'MipMap','InvertYPremultiplyAlpha':0x1,0x1:'InvertYPremultiplyAlpha','Clear':0x2,0x2:_0x451749(0x60d),'InvertYPremultiplyAlphaWithOfst':0x3,0x3:_0x451749(0x2c3)},_0x1567fa={'DontInvertY':0x0,0x0:_0x451749(0x7a4),'InvertY':0x1,0x1:_0x451749(0x8a5)};const _0x23ef16=[{'vertex':'\x0a\x20\x20\x20\x20const\x20vec2\x20pos[4]\x20=\x20vec2[4](vec2(-1.0f,\x201.0f),\x20vec2(1.0f,\x201.0f),\x20vec2(-1.0f,\x20-1.0f),\x20vec2(1.0f,\x20-1.0f));\x0a\x20\x20\x20\x20const\x20vec2\x20tex[4]\x20=\x20vec2[4](vec2(0.0f,\x200.0f),\x20vec2(1.0f,\x200.0f),\x20vec2(0.0f,\x201.0f),\x20vec2(1.0f,\x201.0f));\x0a\x0a\x20\x20\x20\x20layout(location\x20=\x200)\x20out\x20vec2\x20vTex;\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vTex\x20=\x20tex[gl_VertexIndex];\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20vec4(pos[gl_VertexIndex],\x200.0,\x201.0);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','fragment':_0x451749(0xb29)},{'vertex':'\x0a\x20\x20\x20\x20#extension\x20GL_EXT_samplerless_texture_functions\x20:\x20enable\x0a\x0a\x20\x20\x20\x20const\x20vec2\x20pos[4]\x20=\x20vec2[4](vec2(-1.0f,\x201.0f),\x20vec2(1.0f,\x201.0f),\x20vec2(-1.0f,\x20-1.0f),\x20vec2(1.0f,\x20-1.0f));\x0a\x20\x20\x20\x20const\x20vec2\x20tex[4]\x20=\x20vec2[4](vec2(0.0f,\x200.0f),\x20vec2(1.0f,\x200.0f),\x20vec2(0.0f,\x201.0f),\x20vec2(1.0f,\x201.0f));\x0a\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x200)\x20uniform\x20texture2D\x20img;\x0a\x0a\x20\x20\x20\x20#ifdef\x20INVERTY\x0a\x20\x20\x20\x20\x20\x20\x20\x20layout(location\x20=\x200)\x20out\x20flat\x20ivec2\x20vTextureSize;\x0a\x20\x20\x20\x20#endif\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20INVERTY\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vTextureSize\x20=\x20textureSize(img,\x200);\x0a\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20vec4(pos[gl_VertexIndex],\x200.0,\x201.0);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','fragment':_0x451749(0x7e3)},{'vertex':_0x451749(0x7a6),'fragment':_0x451749(0x2ec)},{'vertex':_0x451749(0xc53),'fragment':_0x451749(0x4b1)}],_0x2416d0={'':0x0,'r8unorm':0x1,'r8uint':0x2,'r8sint':0x3,'r16uint':0x4,'r16sint':0x5,'r16float':0x6,'rg8unorm':0x7,'rg8uint':0x8,'rg8sint':0x9,'r32uint':0xa,'r32sint':0xb,'r32float':0xc,'rg16uint':0xd,'rg16sint':0xe,'rg16float':0xf,'rgba8unorm':0x10,'rgba8unorm-srgb':0x11,'rgba8uint':0x12,'rgba8sint':0x13,'bgra8unorm':0x14,'bgra8unorm-srgb':0x15,'rgb10a2unorm':0x16,'rg32uint':0x17,'rg32sint':0x18,'rg32float':0x19,'rgba16uint':0x1a,'rgba16sint':0x1b,'rgba16float':0x1c,'rgba32uint':0x1d,'rgba32sint':0x1e,'rgba32float':0x1f,'stencil8':0x20,'depth16unorm':0x21,'depth24plus':0x22,'depth24plus-stencil8':0x23,'depth32float':0x24,'depth24unorm-stencil8':0x25,'depth32float-stencil8':0x26};class _0x7ae081{constructor(_0x3296f9,_0x32b8cb,_0x400c6,_0x2e5664){var _0x3eb9f7=_0x451749;this[_0x3eb9f7(0x6cb)]={},this[_0x3eb9f7(0x4c9)]=[],this[_0x3eb9f7(0x7f0)]={},this[_0x3eb9f7(0x5d9)]=[],this[_0x3eb9f7(0x33e)]=[],this[_0x3eb9f7(0x38b)]=_0x3296f9,this[_0x3eb9f7(0x8ea)]=_0x32b8cb,this['_tintWASM']=_0x400c6,this[_0x3eb9f7(0x2cb)]=_0x2e5664,this[_0x3eb9f7(0x467)]=_0x3296f9[_0x3eb9f7(0x44a)]({'minFilter':_0x2241ac['X9'][_0x3eb9f7(0xb5b)]}),this[_0x3eb9f7(0xb8e)]=_0x3296f9[_0x3eb9f7(0x44a)]({'minFilter':_0x2241ac['X9'][_0x3eb9f7(0xb5b)]}),this[_0x3eb9f7(0xc60)]=this['_bufferManager'][_0x3eb9f7(0x22a)](0x10,_0x2241ac['FB'][_0x3eb9f7(0xaca)]|_0x2241ac['FB'][_0x3eb9f7(0xa26)])['underlyingResource'],this[_0x3eb9f7(0x6c2)](_0x2241ac['EV'][_0x3eb9f7(0xcda)]),this[_0x3eb9f7(0x868)](_0x2241ac['EV'][_0x3eb9f7(0xcda)]);}static['ComputeNumMipmapLevels'](_0x26b7cb,_0x48dddc){var _0x537a0d=_0x451749;return _0x21cab2['R'][_0x537a0d(0x8d9)](Math[_0x537a0d(0x3f8)](_0x26b7cb,_0x48dddc))+0x1;}[_0x451749(0x6c2)](_0x444d1f,_0x1f0dff=_0x276697['MipMap'],_0x2b20cc){var _0x924c53=_0x451749,_0x4805e0=_0x1f0dff===_0x276697[_0x924c53(0x447)]?0x1:_0x1f0dff===_0x276697[_0x924c53(0x181)]?((_0x2b20cc[_0x924c53(0x7b0)]?0x1:0x0)<<0x1)+((_0x2b20cc[_0x924c53(0xcd8)]?0x1:0x0)<<0x2):_0x1f0dff===_0x276697[_0x924c53(0x60d)]?0x8:_0x1f0dff===_0x276697[_0x924c53(0x2c3)]?((_0x2b20cc[_0x924c53(0x7b0)]?0x1:0x0)<<0x4)+((_0x2b20cc[_0x924c53(0xcd8)]?0x1:0x0)<<0x5):0x0;this[_0x924c53(0x6cb)][_0x444d1f]||(this['_pipelines'][_0x444d1f]=[]);let _0x414c49=this[_0x924c53(0x6cb)][_0x444d1f][_0x4805e0];if(!_0x414c49){let _0x247a6a=_0x924c53(0x516),_0x4e1f0e=(_0x1f0dff!==_0x276697[_0x924c53(0x181)]&&_0x1f0dff!==_0x276697[_0x924c53(0x2c3)]||(_0x2b20cc[_0x924c53(0x7b0)]&&(_0x247a6a+=_0x924c53(0x906)),_0x2b20cc[_0x924c53(0xcd8)]&&(_0x247a6a+=_0x924c53(0x9fb))),this[_0x924c53(0x4c9)][_0x4805e0]);if(!_0x4e1f0e){let _0x5a89d9=this[_0x924c53(0x8ea)][_0x924c53(0x4d8)](_0x247a6a+_0x23ef16[_0x1f0dff][_0x924c53(0x6ca)],'vertex'),_0x5a0110=this[_0x924c53(0x8ea)][_0x924c53(0x4d8)](_0x247a6a+_0x23ef16[_0x1f0dff][_0x924c53(0x20e)],_0x924c53(0x20e));this[_0x924c53(0x81b)]&&(_0x5a89d9=this[_0x924c53(0x81b)]['convertSpirV2WGSL'](_0x5a89d9),_0x5a0110=this[_0x924c53(0x81b)]['convertSpirV2WGSL'](_0x5a0110)),(_0x2b20cc=this[_0x924c53(0x38b)]['createShaderModule']({'code':_0x5a89d9}),_0x1f0dff=this[_0x924c53(0x38b)][_0x924c53(0x758)]({'code':_0x5a0110})),_0x4e1f0e=this[_0x924c53(0x4c9)][_0x4805e0]=[_0x2b20cc,_0x1f0dff];}const _0x5beef7=this[_0x924c53(0x38b)]['createRenderPipeline']({'layout':_0x2241ac['fu'][_0x924c53(0xa1c)],'vertex':{'module':_0x4e1f0e[0x0],'entryPoint':_0x924c53(0x5bf)},'fragment':{'module':_0x4e1f0e[0x1],'entryPoint':_0x924c53(0x5bf),'targets':[{'format':_0x444d1f}]},'primitive':{'topology':_0x2241ac['YV'][_0x924c53(0xd13)],'stripIndexFormat':_0x2241ac['iD'][_0x924c53(0x7eb)]}});_0x414c49=this[_0x924c53(0x6cb)][_0x444d1f][_0x4805e0]=[_0x5beef7,_0x5beef7[_0x924c53(0x97e)](0x0)];}return _0x414c49;}[_0x451749(0x868)](_0xe2b4e6,_0x27a614=_0x1567fa['DontInvertY']){var _0x487152=_0x451749,_0x2dec41,_0x427022,_0x27a614=_0x27a614===_0x1567fa[_0x487152(0x8a5)]?0x1:0x0;this[_0x487152(0x7f0)][_0xe2b4e6]||(this[_0x487152(0x7f0)][_0xe2b4e6]=[]);let _0x19f031=this['_videoPipelines'][_0xe2b4e6][_0x27a614];if(!_0x19f031){let _0x28cfb5=this['_videoCompiledShaders'][_0x27a614];_0x28cfb5||(_0x2dec41=this[_0x487152(0x38b)]['createShaderModule']({'code':'\x0a\x20\x20\x20\x20struct\x20VertexOutput\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20@builtin(position)\x20Position\x20:\x20vec4<f32>,\x0a\x20\x20\x20\x20\x20\x20\x20\x20@location(0)\x20fragUV\x20:\x20vec2<f32>\x0a\x20\x20\x20\x20}\x0a\x20\x20\x0a\x20\x20\x20\x20@vertex\x0a\x20\x20\x20\x20fn\x20main(\x0a\x20\x20\x20\x20\x20\x20\x20\x20@builtin(vertex_index)\x20VertexIndex\x20:\x20u32\x0a\x20\x20\x20\x20)\x20->\x20VertexOutput\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20pos\x20=\x20array<vec2<f32>,\x204>(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(-1.0,\x20\x201.0),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(\x201.0,\x20\x201.0),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(-1.0,\x20-1.0),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(\x201.0,\x20-1.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20tex\x20=\x20array<vec2<f32>,\x204>(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(0.0,\x200.0),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(1.0,\x200.0),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(0.0,\x201.0),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(1.0,\x201.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20output:\x20VertexOutput;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20output.Position\x20=\x20vec4<f32>(pos[VertexIndex],\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20output.fragUV\x20=\x20tex[VertexIndex];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20output;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20'}),_0x427022=this[_0x487152(0x38b)][_0x487152(0x758)]({'code':0x0==_0x27a614?_0x487152(0xc63):_0x487152(0xcdf)}),_0x28cfb5=this[_0x487152(0x5d9)][_0x27a614]=[_0x2dec41,_0x427022]);const _0x1618fe=this[_0x487152(0x38b)]['createRenderPipeline']({'label':_0x487152(0x250)+_0xe2b4e6+'_'+(0x0==_0x27a614?_0x487152(0x7a4):'InvertY'),'layout':_0x2241ac['fu'][_0x487152(0xa1c)],'vertex':{'module':_0x28cfb5[0x0],'entryPoint':_0x487152(0x5bf)},'fragment':{'module':_0x28cfb5[0x1],'entryPoint':'main','targets':[{'format':_0xe2b4e6}]},'primitive':{'topology':_0x2241ac['YV'][_0x487152(0xd13)],'stripIndexFormat':_0x2241ac['iD'][_0x487152(0x7eb)]}});_0x19f031=this['_videoPipelines'][_0xe2b4e6][_0x27a614]=[_0x1618fe,_0x1618fe['getBindGroupLayout'](0x0)];}return _0x19f031;}static['_GetTextureTypeFromFormat'](_0x3f8bb8){var _0x1a6ddb=_0x451749;switch(_0x3f8bb8){case _0x2241ac['EV'][_0x1a6ddb(0xa01)]:case _0x2241ac['EV']['R8Snorm']:case _0x2241ac['EV'][_0x1a6ddb(0x597)]:case _0x2241ac['EV']['R8Sint']:case _0x2241ac['EV']['RG8Unorm']:case _0x2241ac['EV'][_0x1a6ddb(0x893)]:case _0x2241ac['EV']['RG8Uint']:case _0x2241ac['EV'][_0x1a6ddb(0x469)]:case _0x2241ac['EV'][_0x1a6ddb(0xcda)]:case _0x2241ac['EV'][_0x1a6ddb(0x984)]:case _0x2241ac['EV']['RGBA8Snorm']:case _0x2241ac['EV'][_0x1a6ddb(0x59d)]:case _0x2241ac['EV'][_0x1a6ddb(0x750)]:case _0x2241ac['EV']['BGRA8Unorm']:case _0x2241ac['EV'][_0x1a6ddb(0x387)]:case _0x2241ac['EV'][_0x1a6ddb(0xb10)]:case _0x2241ac['EV'][_0x1a6ddb(0x1a4)]:case _0x2241ac['EV'][_0x1a6ddb(0xc01)]:case _0x2241ac['EV'][_0x1a6ddb(0x39c)]:case _0x2241ac['EV'][_0x1a6ddb(0xb42)]:case _0x2241ac['EV'][_0x1a6ddb(0xac1)]:case _0x2241ac['EV'][_0x1a6ddb(0x550)]:case _0x2241ac['EV'][_0x1a6ddb(0x739)]:case _0x2241ac['EV'][_0x1a6ddb(0xcdd)]:case _0x2241ac['EV'][_0x1a6ddb(0x668)]:case _0x2241ac['EV'][_0x1a6ddb(0x3e6)]:case _0x2241ac['EV']['BC3RGBAUnorm']:case _0x2241ac['EV'][_0x1a6ddb(0x940)]:case _0x2241ac['EV'][_0x1a6ddb(0x65b)]:case _0x2241ac['EV'][_0x1a6ddb(0x7b7)]:case _0x2241ac['EV']['BC4RUnorm']:case _0x2241ac['EV']['BC4RSnorm']:case _0x2241ac['EV']['BC1RGBAUnorm']:case _0x2241ac['EV']['BC1RGBAUnormSRGB']:case _0x2241ac['EV'][_0x1a6ddb(0x4e8)]:case _0x2241ac['EV'][_0x1a6ddb(0xaa2)]:case _0x2241ac['EV']['ETC2RGB8A1Unorm']:case _0x2241ac['EV'][_0x1a6ddb(0x4ad)]:case _0x2241ac['EV'][_0x1a6ddb(0x65c)]:case _0x2241ac['EV'][_0x1a6ddb(0x507)]:case _0x2241ac['EV'][_0x1a6ddb(0x4a6)]:case _0x2241ac['EV'][_0x1a6ddb(0x7a8)]:case _0x2241ac['EV'][_0x1a6ddb(0xb70)]:case _0x2241ac['EV'][_0x1a6ddb(0xa8c)]:case _0x2241ac['EV']['ASTC4x4Unorm']:case _0x2241ac['EV'][_0x1a6ddb(0x3b3)]:case _0x2241ac['EV'][_0x1a6ddb(0xb63)]:case _0x2241ac['EV'][_0x1a6ddb(0x2ab)]:case _0x2241ac['EV'][_0x1a6ddb(0x6d8)]:case _0x2241ac['EV'][_0x1a6ddb(0xc4d)]:case _0x2241ac['EV'][_0x1a6ddb(0x53b)]:case _0x2241ac['EV'][_0x1a6ddb(0x934)]:case _0x2241ac['EV']['ASTC6x6Unorm']:case _0x2241ac['EV'][_0x1a6ddb(0x981)]:case _0x2241ac['EV'][_0x1a6ddb(0x1db)]:case _0x2241ac['EV'][_0x1a6ddb(0x3cc)]:case _0x2241ac['EV'][_0x1a6ddb(0x4f4)]:case _0x2241ac['EV'][_0x1a6ddb(0x6b4)]:case _0x2241ac['EV'][_0x1a6ddb(0x3f7)]:case _0x2241ac['EV']['ASTC8x8UnormSRGB']:case _0x2241ac['EV'][_0x1a6ddb(0x7f8)]:case _0x2241ac['EV'][_0x1a6ddb(0x16d)]:case _0x2241ac['EV']['ASTC10x6Unorm']:case _0x2241ac['EV']['ASTC10x6UnormSRGB']:case _0x2241ac['EV'][_0x1a6ddb(0x8b0)]:case _0x2241ac['EV'][_0x1a6ddb(0x8ed)]:case _0x2241ac['EV']['ASTC10x10Unorm']:case _0x2241ac['EV'][_0x1a6ddb(0xd00)]:case _0x2241ac['EV'][_0x1a6ddb(0xc77)]:case _0x2241ac['EV'][_0x1a6ddb(0x1af)]:case _0x2241ac['EV'][_0x1a6ddb(0x450)]:case _0x2241ac['EV'][_0x1a6ddb(0xa68)]:return _0x1b2e2f['g'][_0x1a6ddb(0x342)];case _0x2241ac['EV'][_0x1a6ddb(0x7f2)]:case _0x2241ac['EV'][_0x1a6ddb(0x9be)]:case _0x2241ac['EV'][_0x1a6ddb(0x98e)]:case _0x2241ac['EV']['RG16Sint']:case _0x2241ac['EV'][_0x1a6ddb(0x5e1)]:case _0x2241ac['EV']['RGBA16Sint']:case _0x2241ac['EV'][_0x1a6ddb(0x6dc)]:return _0x1b2e2f['g'][_0x1a6ddb(0x8ae)];case _0x2241ac['EV'][_0x1a6ddb(0x258)]:case _0x2241ac['EV'][_0x1a6ddb(0xa03)]:case _0x2241ac['EV']['RGBA16Float']:return _0x1b2e2f['g'][_0x1a6ddb(0x208)];case _0x2241ac['EV']['R32Uint']:case _0x2241ac['EV'][_0x1a6ddb(0xb7f)]:case _0x2241ac['EV']['RG32Uint']:case _0x2241ac['EV'][_0x1a6ddb(0x1fd)]:case _0x2241ac['EV'][_0x1a6ddb(0x178)]:case _0x2241ac['EV'][_0x1a6ddb(0x950)]:return _0x1b2e2f['g']['TEXTURETYPE_UNSIGNED_INTEGER'];case _0x2241ac['EV'][_0x1a6ddb(0x4a3)]:case _0x2241ac['EV'][_0x1a6ddb(0x47a)]:case _0x2241ac['EV'][_0x1a6ddb(0x340)]:case _0x2241ac['EV'][_0x1a6ddb(0x78a)]:return _0x1b2e2f['g']['TEXTURETYPE_FLOAT'];case _0x2241ac['EV'][_0x1a6ddb(0x6e6)]:throw _0x1a6ddb(0x252);case _0x2241ac['EV']['Depth24Plus']:throw _0x1a6ddb(0x638);case _0x2241ac['EV'][_0x1a6ddb(0xcf8)]:throw'No\x20fixed\x20size\x20for\x20Depth24PlusStencil8\x20format!';}return _0x1b2e2f['g'][_0x1a6ddb(0x342)];}static[_0x451749(0x528)](_0x576db2){var _0x453bb2=_0x451749;switch(_0x576db2){case _0x2241ac['EV']['R8Unorm']:case _0x2241ac['EV']['R8Snorm']:case _0x2241ac['EV'][_0x453bb2(0x597)]:case _0x2241ac['EV']['R8Sint']:return{'width':0x1,'height':0x1,'length':0x1};case _0x2241ac['EV'][_0x453bb2(0x7f2)]:case _0x2241ac['EV'][_0x453bb2(0x9be)]:case _0x2241ac['EV']['R16Float']:case _0x2241ac['EV']['RG8Unorm']:case _0x2241ac['EV'][_0x453bb2(0x893)]:case _0x2241ac['EV'][_0x453bb2(0x647)]:case _0x2241ac['EV']['RG8Sint']:return{'width':0x1,'height':0x1,'length':0x2};case _0x2241ac['EV'][_0x453bb2(0x10c)]:case _0x2241ac['EV'][_0x453bb2(0xb7f)]:case _0x2241ac['EV']['R32Float']:case _0x2241ac['EV'][_0x453bb2(0x98e)]:case _0x2241ac['EV'][_0x453bb2(0x6a3)]:case _0x2241ac['EV'][_0x453bb2(0xa03)]:case _0x2241ac['EV'][_0x453bb2(0xcda)]:case _0x2241ac['EV'][_0x453bb2(0x984)]:case _0x2241ac['EV'][_0x453bb2(0x69a)]:case _0x2241ac['EV'][_0x453bb2(0x59d)]:case _0x2241ac['EV']['RGBA8Sint']:case _0x2241ac['EV']['BGRA8Unorm']:case _0x2241ac['EV'][_0x453bb2(0x387)]:case _0x2241ac['EV'][_0x453bb2(0x1a4)]:case _0x2241ac['EV'][_0x453bb2(0xb10)]:case _0x2241ac['EV']['RG11B10UFloat']:return{'width':0x1,'height':0x1,'length':0x4};case _0x2241ac['EV'][_0x453bb2(0x7d0)]:case _0x2241ac['EV'][_0x453bb2(0x1fd)]:case _0x2241ac['EV'][_0x453bb2(0x47a)]:case _0x2241ac['EV'][_0x453bb2(0x5e1)]:case _0x2241ac['EV'][_0x453bb2(0x88b)]:case _0x2241ac['EV'][_0x453bb2(0x32b)]:return{'width':0x1,'height':0x1,'length':0x8};case _0x2241ac['EV']['RGBA32Uint']:case _0x2241ac['EV'][_0x453bb2(0x950)]:case _0x2241ac['EV'][_0x453bb2(0x340)]:return{'width':0x1,'height':0x1,'length':0x10};case _0x2241ac['EV'][_0x453bb2(0x6e6)]:throw _0x453bb2(0x252);case _0x2241ac['EV']['Depth16Unorm']:return{'width':0x1,'height':0x1,'length':0x2};case _0x2241ac['EV'][_0x453bb2(0x7ed)]:throw _0x453bb2(0x638);case _0x2241ac['EV'][_0x453bb2(0xcf8)]:throw _0x453bb2(0x5d3);case _0x2241ac['EV']['Depth32Float']:case _0x2241ac['EV'][_0x453bb2(0x39c)]:return{'width':0x1,'height':0x1,'length':0x4};case _0x2241ac['EV'][_0x453bb2(0xb42)]:return{'width':0x1,'height':0x1,'length':0x5};case _0x2241ac['EV'][_0x453bb2(0xac1)]:case _0x2241ac['EV']['BC7RGBAUnormSRGB']:case _0x2241ac['EV'][_0x453bb2(0x739)]:case _0x2241ac['EV'][_0x453bb2(0xcdd)]:case _0x2241ac['EV'][_0x453bb2(0x668)]:case _0x2241ac['EV'][_0x453bb2(0x3e6)]:case _0x2241ac['EV']['BC3RGBAUnorm']:case _0x2241ac['EV'][_0x453bb2(0x940)]:case _0x2241ac['EV']['BC2RGBAUnorm']:case _0x2241ac['EV'][_0x453bb2(0x7b7)]:return{'width':0x4,'height':0x4,'length':0x10};case _0x2241ac['EV']['BC4RUnorm']:case _0x2241ac['EV']['BC4RSnorm']:case _0x2241ac['EV']['BC1RGBAUnorm']:case _0x2241ac['EV'][_0x453bb2(0x7e5)]:return{'width':0x4,'height':0x4,'length':0x8};case _0x2241ac['EV'][_0x453bb2(0x4e8)]:case _0x2241ac['EV'][_0x453bb2(0xaa2)]:case _0x2241ac['EV']['ETC2RGB8A1Unorm']:case _0x2241ac['EV'][_0x453bb2(0x4ad)]:case _0x2241ac['EV'][_0x453bb2(0x4a6)]:case _0x2241ac['EV']['EACR11Snorm']:return{'width':0x4,'height':0x4,'length':0x8};case _0x2241ac['EV'][_0x453bb2(0x65c)]:case _0x2241ac['EV'][_0x453bb2(0x507)]:case _0x2241ac['EV']['EACRG11Unorm']:case _0x2241ac['EV'][_0x453bb2(0xa8c)]:return{'width':0x4,'height':0x4,'length':0x10};case _0x2241ac['EV'][_0x453bb2(0x688)]:case _0x2241ac['EV'][_0x453bb2(0x3b3)]:return{'width':0x4,'height':0x4,'length':0x10};case _0x2241ac['EV'][_0x453bb2(0xb63)]:case _0x2241ac['EV'][_0x453bb2(0x2ab)]:return{'width':0x5,'height':0x4,'length':0x10};case _0x2241ac['EV'][_0x453bb2(0x6d8)]:case _0x2241ac['EV']['ASTC5x5UnormSRGB']:return{'width':0x5,'height':0x5,'length':0x10};case _0x2241ac['EV'][_0x453bb2(0x53b)]:case _0x2241ac['EV'][_0x453bb2(0x934)]:return{'width':0x6,'height':0x5,'length':0x10};case _0x2241ac['EV'][_0x453bb2(0xc1a)]:case _0x2241ac['EV']['ASTC6x6UnormSRGB']:return{'width':0x6,'height':0x6,'length':0x10};case _0x2241ac['EV'][_0x453bb2(0x1db)]:case _0x2241ac['EV']['ASTC8x5UnormSRGB']:return{'width':0x8,'height':0x5,'length':0x10};case _0x2241ac['EV'][_0x453bb2(0x4f4)]:case _0x2241ac['EV'][_0x453bb2(0x6b4)]:return{'width':0x8,'height':0x6,'length':0x10};case _0x2241ac['EV'][_0x453bb2(0x3f7)]:case _0x2241ac['EV'][_0x453bb2(0x591)]:return{'width':0x8,'height':0x8,'length':0x10};case _0x2241ac['EV'][_0x453bb2(0x7f8)]:case _0x2241ac['EV'][_0x453bb2(0x16d)]:return{'width':0xa,'height':0x5,'length':0x10};case _0x2241ac['EV']['ASTC10x6Unorm']:case _0x2241ac['EV'][_0x453bb2(0x9da)]:return{'width':0xa,'height':0x6,'length':0x10};case _0x2241ac['EV']['ASTC10x8Unorm']:case _0x2241ac['EV'][_0x453bb2(0x8ed)]:return{'width':0xa,'height':0x8,'length':0x10};case _0x2241ac['EV'][_0x453bb2(0x1d4)]:case _0x2241ac['EV'][_0x453bb2(0xd00)]:return{'width':0xa,'height':0xa,'length':0x10};case _0x2241ac['EV'][_0x453bb2(0xc77)]:case _0x2241ac['EV'][_0x453bb2(0x1af)]:return{'width':0xc,'height':0xa,'length':0x10};case _0x2241ac['EV'][_0x453bb2(0x450)]:case _0x2241ac['EV'][_0x453bb2(0xa68)]:return{'width':0xc,'height':0xc,'length':0x10};}return{'width':0x1,'height':0x1,'length':0x4};}static[_0x451749(0x2a0)](_0x5e6a44){var _0x5a0ab7=_0x451749;return!!_0x5e6a44[_0x5a0ab7(0x27b)];}static[_0x451749(0xc4c)](_0x531893){var _0x20a846=_0x451749;return!!_0x531893[_0x20a846(0xb4b)];}static[_0x451749(0x921)](_0x2751f4){var _0x4ae44a=_0x451749;return void 0x0!==_0x2751f4[_0x4ae44a(0x7f3)];}static[_0x451749(0x97a)](_0x1e73f2){var _0x2412b3=_0x451749;return Array['isArray'](_0x1e73f2)&&void 0x0!==_0x1e73f2[0x0][_0x2412b3(0x7f3)];}[_0x451749(0x8bc)](_0x4253b9){var _0x34c558=_0x451749;this[_0x34c558(0x22e)]=_0x4253b9;}static['IsCompressedFormat'](_0x562dee){var _0xfc65ed=_0x451749;switch(_0x562dee){case _0x2241ac['EV']['BC7RGBAUnormSRGB']:case _0x2241ac['EV'][_0xfc65ed(0xac1)]:case _0x2241ac['EV'][_0xfc65ed(0xcdd)]:case _0x2241ac['EV'][_0xfc65ed(0x739)]:case _0x2241ac['EV'][_0xfc65ed(0x3e6)]:case _0x2241ac['EV'][_0xfc65ed(0x668)]:case _0x2241ac['EV'][_0xfc65ed(0x699)]:case _0x2241ac['EV']['BC4RUnorm']:case _0x2241ac['EV'][_0xfc65ed(0x940)]:case _0x2241ac['EV'][_0xfc65ed(0x63d)]:case _0x2241ac['EV'][_0xfc65ed(0x7b7)]:case _0x2241ac['EV'][_0xfc65ed(0x65b)]:case _0x2241ac['EV'][_0xfc65ed(0x7e5)]:case _0x2241ac['EV']['BC1RGBAUnorm']:case _0x2241ac['EV']['ETC2RGB8Unorm']:case _0x2241ac['EV']['ETC2RGB8UnormSRGB']:case _0x2241ac['EV'][_0xfc65ed(0xb0d)]:case _0x2241ac['EV'][_0xfc65ed(0x4ad)]:case _0x2241ac['EV'][_0xfc65ed(0x65c)]:case _0x2241ac['EV'][_0xfc65ed(0x507)]:case _0x2241ac['EV'][_0xfc65ed(0x4a6)]:case _0x2241ac['EV']['EACR11Snorm']:case _0x2241ac['EV'][_0xfc65ed(0xb70)]:case _0x2241ac['EV'][_0xfc65ed(0xa8c)]:case _0x2241ac['EV']['ASTC4x4Unorm']:case _0x2241ac['EV'][_0xfc65ed(0x3b3)]:case _0x2241ac['EV']['ASTC5x4Unorm']:case _0x2241ac['EV'][_0xfc65ed(0x2ab)]:case _0x2241ac['EV'][_0xfc65ed(0x6d8)]:case _0x2241ac['EV']['ASTC5x5UnormSRGB']:case _0x2241ac['EV'][_0xfc65ed(0x53b)]:case _0x2241ac['EV'][_0xfc65ed(0x934)]:case _0x2241ac['EV'][_0xfc65ed(0xc1a)]:case _0x2241ac['EV'][_0xfc65ed(0x981)]:case _0x2241ac['EV'][_0xfc65ed(0x1db)]:case _0x2241ac['EV'][_0xfc65ed(0x3cc)]:case _0x2241ac['EV']['ASTC8x6Unorm']:case _0x2241ac['EV'][_0xfc65ed(0x6b4)]:case _0x2241ac['EV'][_0xfc65ed(0x3f7)]:case _0x2241ac['EV'][_0xfc65ed(0x591)]:case _0x2241ac['EV']['ASTC10x5Unorm']:case _0x2241ac['EV'][_0xfc65ed(0x16d)]:case _0x2241ac['EV'][_0xfc65ed(0x6cc)]:case _0x2241ac['EV'][_0xfc65ed(0x9da)]:case _0x2241ac['EV'][_0xfc65ed(0x8b0)]:case _0x2241ac['EV'][_0xfc65ed(0x8ed)]:case _0x2241ac['EV']['ASTC10x10Unorm']:case _0x2241ac['EV'][_0xfc65ed(0xd00)]:case _0x2241ac['EV'][_0xfc65ed(0xc77)]:case _0x2241ac['EV']['ASTC12x10UnormSRGB']:case _0x2241ac['EV'][_0xfc65ed(0x450)]:case _0x2241ac['EV'][_0xfc65ed(0xa68)]:return!0x0;}return!0x1;}static[_0x451749(0xc3b)](_0x1d993b,_0x29379d,_0x2f41f7=!0x1){var _0x52b14b=_0x451749;switch(_0x29379d){case _0x1b2e2f['g'][_0x52b14b(0x260)]:return _0x2241ac['EV'][_0x52b14b(0x6dc)];case _0x1b2e2f['g'][_0x52b14b(0xad3)]:return _0x2241ac['EV'][_0x52b14b(0x7ed)];case _0x1b2e2f['g']['TEXTUREFORMAT_DEPTH24_STENCIL8']:return _0x2241ac['EV']['Depth24PlusStencil8'];case _0x1b2e2f['g']['TEXTUREFORMAT_DEPTH32_FLOAT']:return _0x2241ac['EV'][_0x52b14b(0x78a)];case _0x1b2e2f['g'][_0x52b14b(0x7bb)]:return _0x2241ac['EV'][_0x52b14b(0x39c)];case _0x1b2e2f['g'][_0x52b14b(0x4ee)]:return _0x2241ac['EV'][_0x52b14b(0xb42)];case _0x1b2e2f['g'][_0x52b14b(0x72c)]:return _0x2241ac['EV'][_0x52b14b(0x6e6)];case _0x1b2e2f['g']['TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM']:return _0x2f41f7?_0x2241ac['EV'][_0x52b14b(0x550)]:_0x2241ac['EV'][_0x52b14b(0xac1)];case _0x1b2e2f['g'][_0x52b14b(0xb9d)]:return _0x2241ac['EV']['BC6HRGBUFloat'];case _0x1b2e2f['g'][_0x52b14b(0xc6e)]:return _0x2241ac['EV'][_0x52b14b(0xcdd)];case _0x1b2e2f['g'][_0x52b14b(0x552)]:return _0x2f41f7?_0x2241ac['EV'][_0x52b14b(0x940)]:_0x2241ac['EV'][_0x52b14b(0x63d)];case _0x1b2e2f['g']['TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3']:return _0x2f41f7?_0x2241ac['EV'][_0x52b14b(0x7b7)]:_0x2241ac['EV'][_0x52b14b(0x65b)];case _0x1b2e2f['g']['TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1']:case _0x1b2e2f['g'][_0x52b14b(0xb91)]:return _0x2f41f7?_0x2241ac['EV'][_0x52b14b(0x7e5)]:_0x2241ac['EV'][_0x52b14b(0x7d2)];case _0x1b2e2f['g'][_0x52b14b(0x6f5)]:return _0x2f41f7?_0x2241ac['EV'][_0x52b14b(0x3b3)]:_0x2241ac['EV']['ASTC4x4Unorm'];case _0x1b2e2f['g'][_0x52b14b(0xbd9)]:case _0x1b2e2f['g'][_0x52b14b(0xc18)]:return _0x2f41f7?_0x2241ac['EV'][_0x52b14b(0xaa2)]:_0x2241ac['EV']['ETC2RGB8Unorm'];case _0x1b2e2f['g'][_0x52b14b(0x4f5)]:return _0x2f41f7?_0x2241ac['EV'][_0x52b14b(0x507)]:_0x2241ac['EV'][_0x52b14b(0x65c)];}switch(_0x1d993b){case _0x1b2e2f['g'][_0x52b14b(0x62c)]:switch(_0x29379d){case _0x1b2e2f['g']['TEXTUREFORMAT_RED']:return _0x2241ac['EV']['R8Snorm'];case _0x1b2e2f['g'][_0x52b14b(0x50d)]:return _0x2241ac['EV'][_0x52b14b(0x893)];case _0x1b2e2f['g'][_0x52b14b(0x255)]:throw _0x52b14b(0xbdd);case _0x1b2e2f['g']['TEXTUREFORMAT_RED_INTEGER']:return _0x2241ac['EV']['R8Sint'];case _0x1b2e2f['g'][_0x52b14b(0x87b)]:return _0x2241ac['EV'][_0x52b14b(0x469)];case _0x1b2e2f['g'][_0x52b14b(0xa89)]:throw'RGB_INTEGER\x20format\x20not\x20supported\x20in\x20WebGPU';case _0x1b2e2f['g'][_0x52b14b(0x9f2)]:return _0x2241ac['EV'][_0x52b14b(0x750)];default:return _0x2241ac['EV'][_0x52b14b(0x69a)];}case _0x1b2e2f['g']['TEXTURETYPE_UNSIGNED_BYTE']:switch(_0x29379d){case _0x1b2e2f['g']['TEXTUREFORMAT_RED']:return _0x2241ac['EV'][_0x52b14b(0xa01)];case _0x1b2e2f['g'][_0x52b14b(0x50d)]:return _0x2241ac['EV'][_0x52b14b(0x3de)];case _0x1b2e2f['g'][_0x52b14b(0x255)]:throw _0x52b14b(0xa62);case _0x1b2e2f['g'][_0x52b14b(0xc7c)]:return _0x2f41f7?_0x2241ac['EV'][_0x52b14b(0x984)]:_0x2241ac['EV'][_0x52b14b(0xcda)];case _0x1b2e2f['g'][_0x52b14b(0xbb9)]:return _0x2f41f7?_0x2241ac['EV'][_0x52b14b(0x387)]:_0x2241ac['EV']['BGRA8Unorm'];case _0x1b2e2f['g'][_0x52b14b(0xbc3)]:return _0x2241ac['EV'][_0x52b14b(0x597)];case _0x1b2e2f['g']['TEXTUREFORMAT_RG_INTEGER']:return _0x2241ac['EV'][_0x52b14b(0x647)];case _0x1b2e2f['g']['TEXTUREFORMAT_RGB_INTEGER']:throw'RGB_INTEGER\x20format\x20not\x20supported\x20in\x20WebGPU';case _0x1b2e2f['g']['TEXTUREFORMAT_RGBA_INTEGER']:return _0x2241ac['EV'][_0x52b14b(0x59d)];case _0x1b2e2f['g'][_0x52b14b(0x823)]:throw _0x52b14b(0x455);case _0x1b2e2f['g']['TEXTUREFORMAT_LUMINANCE']:throw _0x52b14b(0xc9c);case _0x1b2e2f['g'][_0x52b14b(0x824)]:throw _0x52b14b(0x7e8);default:return _0x2241ac['EV']['RGBA8Unorm'];}case _0x1b2e2f['g'][_0x52b14b(0x6e0)]:switch(_0x29379d){case _0x1b2e2f['g']['TEXTUREFORMAT_RED_INTEGER']:return _0x2241ac['EV'][_0x52b14b(0x9be)];case _0x1b2e2f['g'][_0x52b14b(0x87b)]:return _0x2241ac['EV'][_0x52b14b(0x6a3)];case _0x1b2e2f['g'][_0x52b14b(0xa89)]:throw _0x52b14b(0x539);default:return _0x1b2e2f['g'][_0x52b14b(0x9f2)],_0x2241ac['EV'][_0x52b14b(0x88b)];}case _0x1b2e2f['g']['TEXTURETYPE_UNSIGNED_SHORT']:switch(_0x29379d){case _0x1b2e2f['g']['TEXTUREFORMAT_RED_INTEGER']:return _0x2241ac['EV'][_0x52b14b(0x7f2)];case _0x1b2e2f['g'][_0x52b14b(0x87b)]:return _0x2241ac['EV'][_0x52b14b(0x98e)];case _0x1b2e2f['g'][_0x52b14b(0xa89)]:throw'TEXTUREFORMAT_RGB_INTEGER\x20format\x20not\x20supported\x20in\x20WebGPU';default:return _0x1b2e2f['g'][_0x52b14b(0x9f2)],_0x2241ac['EV'][_0x52b14b(0x5e1)];}case _0x1b2e2f['g'][_0x52b14b(0x83d)]:switch(_0x29379d){case _0x1b2e2f['g']['TEXTUREFORMAT_RED_INTEGER']:return _0x2241ac['EV'][_0x52b14b(0xb7f)];case _0x1b2e2f['g'][_0x52b14b(0x87b)]:return _0x2241ac['EV'][_0x52b14b(0x1fd)];case _0x1b2e2f['g'][_0x52b14b(0xa89)]:throw _0x52b14b(0x539);default:return _0x1b2e2f['g'][_0x52b14b(0x9f2)],_0x2241ac['EV'][_0x52b14b(0x950)];}case _0x1b2e2f['g'][_0x52b14b(0x443)]:switch(_0x29379d){case _0x1b2e2f['g']['TEXTUREFORMAT_RED_INTEGER']:return _0x2241ac['EV'][_0x52b14b(0x10c)];case _0x1b2e2f['g'][_0x52b14b(0x87b)]:return _0x2241ac['EV'][_0x52b14b(0x7d0)];case _0x1b2e2f['g'][_0x52b14b(0xa89)]:throw _0x52b14b(0x539);default:return _0x1b2e2f['g']['TEXTUREFORMAT_RGBA_INTEGER'],_0x2241ac['EV'][_0x52b14b(0x178)];}case _0x1b2e2f['g']['TEXTURETYPE_FLOAT']:switch(_0x29379d){case _0x1b2e2f['g'][_0x52b14b(0x412)]:return _0x2241ac['EV'][_0x52b14b(0x4a3)];case _0x1b2e2f['g'][_0x52b14b(0x50d)]:return _0x2241ac['EV']['RG32Float'];case _0x1b2e2f['g'][_0x52b14b(0x255)]:throw _0x52b14b(0xa62);default:return _0x1b2e2f['g'][_0x52b14b(0xc7c)],_0x2241ac['EV'][_0x52b14b(0x340)];}case _0x1b2e2f['g'][_0x52b14b(0x208)]:switch(_0x29379d){case _0x1b2e2f['g'][_0x52b14b(0x412)]:return _0x2241ac['EV'][_0x52b14b(0x258)];case _0x1b2e2f['g']['TEXTUREFORMAT_RG']:return _0x2241ac['EV'][_0x52b14b(0xa03)];case _0x1b2e2f['g']['TEXTUREFORMAT_RGB']:throw _0x52b14b(0xa62);default:return _0x1b2e2f['g'][_0x52b14b(0xc7c)],_0x2241ac['EV'][_0x52b14b(0x32b)];}case _0x1b2e2f['g'][_0x52b14b(0xc4a)]:throw'TEXTURETYPE_UNSIGNED_SHORT_5_6_5\x20format\x20not\x20supported\x20in\x20WebGPU';case _0x1b2e2f['g'][_0x52b14b(0x1fc)]:throw _0x52b14b(0x1f2);case _0x1b2e2f['g'][_0x52b14b(0x2f2)]:throw'TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV\x20format\x20not\x20supported\x20in\x20WebGPU';case _0x1b2e2f['g'][_0x52b14b(0xa29)]:throw _0x52b14b(0x533);case _0x1b2e2f['g']['TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1']:throw _0x52b14b(0xc6b);case _0x1b2e2f['g'][_0x52b14b(0x4e9)]:switch(_0x29379d){case _0x1b2e2f['g']['TEXTUREFORMAT_RGBA']:return _0x2241ac['EV'][_0x52b14b(0xb10)];case _0x1b2e2f['g'][_0x52b14b(0x9f2)]:throw _0x52b14b(0x235);default:return _0x2241ac['EV'][_0x52b14b(0xb10)];}}return _0x2f41f7?_0x2241ac['EV'][_0x52b14b(0x984)]:_0x2241ac['EV'][_0x52b14b(0xcda)];}static[_0x451749(0x7c1)](_0x58ead8){var _0x598e7e=_0x451749;switch(_0x58ead8){case _0x2241ac['EV']['R8Unorm']:case _0x2241ac['EV'][_0x598e7e(0x248)]:case _0x2241ac['EV']['R8Uint']:case _0x2241ac['EV'][_0x598e7e(0x965)]:case _0x2241ac['EV'][_0x598e7e(0x952)]:case _0x2241ac['EV'][_0x598e7e(0x699)]:case _0x2241ac['EV'][_0x598e7e(0x7f2)]:case _0x2241ac['EV'][_0x598e7e(0x9be)]:case _0x2241ac['EV'][_0x598e7e(0x6dc)]:case _0x2241ac['EV'][_0x598e7e(0x258)]:case _0x2241ac['EV'][_0x598e7e(0x10c)]:case _0x2241ac['EV']['R32Sint']:case _0x2241ac['EV'][_0x598e7e(0x4a3)]:case _0x2241ac['EV']['Depth32Float']:case _0x2241ac['EV']['Stencil8']:case _0x2241ac['EV'][_0x598e7e(0x7ed)]:case _0x2241ac['EV'][_0x598e7e(0x4a6)]:case _0x2241ac['EV'][_0x598e7e(0x7a8)]:return 0x1;case _0x2241ac['EV'][_0x598e7e(0x3de)]:case _0x2241ac['EV'][_0x598e7e(0x893)]:case _0x2241ac['EV'][_0x598e7e(0x647)]:case _0x2241ac['EV'][_0x598e7e(0x469)]:case _0x2241ac['EV']['Depth24UnormStencil8']:case _0x2241ac['EV'][_0x598e7e(0xb42)]:case _0x2241ac['EV'][_0x598e7e(0x668)]:case _0x2241ac['EV'][_0x598e7e(0x3e6)]:case _0x2241ac['EV'][_0x598e7e(0x98e)]:case _0x2241ac['EV']['RG16Sint']:case _0x2241ac['EV'][_0x598e7e(0xa03)]:case _0x2241ac['EV'][_0x598e7e(0x7d0)]:case _0x2241ac['EV'][_0x598e7e(0x1fd)]:case _0x2241ac['EV'][_0x598e7e(0x47a)]:case _0x2241ac['EV'][_0x598e7e(0xcf8)]:case _0x2241ac['EV'][_0x598e7e(0xb70)]:case _0x2241ac['EV'][_0x598e7e(0xa8c)]:return 0x2;case _0x2241ac['EV'][_0x598e7e(0x1a4)]:case _0x2241ac['EV'][_0x598e7e(0xc01)]:case _0x2241ac['EV'][_0x598e7e(0x739)]:case _0x2241ac['EV'][_0x598e7e(0xcdd)]:case _0x2241ac['EV'][_0x598e7e(0x4e8)]:case _0x2241ac['EV']['ETC2RGB8UnormSRGB']:return 0x3;case _0x2241ac['EV'][_0x598e7e(0xcda)]:case _0x2241ac['EV'][_0x598e7e(0x984)]:case _0x2241ac['EV'][_0x598e7e(0x69a)]:case _0x2241ac['EV']['RGBA8Uint']:case _0x2241ac['EV'][_0x598e7e(0x750)]:case _0x2241ac['EV'][_0x598e7e(0x849)]:case _0x2241ac['EV'][_0x598e7e(0x387)]:case _0x2241ac['EV'][_0x598e7e(0xb10)]:case _0x2241ac['EV'][_0x598e7e(0xac1)]:case _0x2241ac['EV'][_0x598e7e(0x550)]:case _0x2241ac['EV'][_0x598e7e(0x63d)]:case _0x2241ac['EV'][_0x598e7e(0x940)]:case _0x2241ac['EV'][_0x598e7e(0x65b)]:case _0x2241ac['EV'][_0x598e7e(0x7b7)]:case _0x2241ac['EV'][_0x598e7e(0x7d2)]:case _0x2241ac['EV'][_0x598e7e(0x7e5)]:case _0x2241ac['EV'][_0x598e7e(0x5e1)]:case _0x2241ac['EV']['RGBA16Sint']:case _0x2241ac['EV'][_0x598e7e(0x32b)]:case _0x2241ac['EV']['RGBA32Uint']:case _0x2241ac['EV'][_0x598e7e(0x950)]:case _0x2241ac['EV'][_0x598e7e(0x340)]:case _0x2241ac['EV'][_0x598e7e(0xb0d)]:case _0x2241ac['EV'][_0x598e7e(0x4ad)]:case _0x2241ac['EV'][_0x598e7e(0x65c)]:case _0x2241ac['EV'][_0x598e7e(0x507)]:case _0x2241ac['EV'][_0x598e7e(0x688)]:case _0x2241ac['EV']['ASTC4x4UnormSRGB']:case _0x2241ac['EV'][_0x598e7e(0xb63)]:case _0x2241ac['EV'][_0x598e7e(0x2ab)]:case _0x2241ac['EV'][_0x598e7e(0x6d8)]:case _0x2241ac['EV']['ASTC5x5UnormSRGB']:case _0x2241ac['EV'][_0x598e7e(0x53b)]:case _0x2241ac['EV'][_0x598e7e(0x934)]:case _0x2241ac['EV'][_0x598e7e(0xc1a)]:case _0x2241ac['EV']['ASTC6x6UnormSRGB']:case _0x2241ac['EV'][_0x598e7e(0x1db)]:case _0x2241ac['EV'][_0x598e7e(0x3cc)]:case _0x2241ac['EV'][_0x598e7e(0x4f4)]:case _0x2241ac['EV'][_0x598e7e(0x6b4)]:case _0x2241ac['EV']['ASTC8x8Unorm']:case _0x2241ac['EV'][_0x598e7e(0x591)]:case _0x2241ac['EV'][_0x598e7e(0x7f8)]:case _0x2241ac['EV'][_0x598e7e(0x16d)]:case _0x2241ac['EV'][_0x598e7e(0x6cc)]:case _0x2241ac['EV'][_0x598e7e(0x9da)]:case _0x2241ac['EV'][_0x598e7e(0x8b0)]:case _0x2241ac['EV'][_0x598e7e(0x8ed)]:case _0x2241ac['EV']['ASTC10x10Unorm']:case _0x2241ac['EV']['ASTC10x10UnormSRGB']:case _0x2241ac['EV'][_0x598e7e(0xc77)]:case _0x2241ac['EV'][_0x598e7e(0x1af)]:case _0x2241ac['EV'][_0x598e7e(0x450)]:case _0x2241ac['EV']['ASTC12x12UnormSRGB']:return 0x4;}throw _0x598e7e(0x16f)+_0x58ead8+'!';}static[_0x451749(0x4c6)](_0x48b8da){var _0x288d1d=_0x451749;switch(_0x48b8da){case _0x2241ac['EV'][_0x288d1d(0x6e6)]:case _0x2241ac['EV'][_0x288d1d(0x39c)]:case _0x2241ac['EV'][_0x288d1d(0xb42)]:case _0x2241ac['EV'][_0x288d1d(0xcf8)]:return!0x0;}return!0x1;}static[_0x451749(0x296)](_0x47c3da){var _0x2dbe96=_0x451749;switch(_0x47c3da){case _0x2241ac['EV'][_0x2dbe96(0x39c)]:case _0x2241ac['EV'][_0x2dbe96(0xb42)]:case _0x2241ac['EV'][_0x2dbe96(0xcf8)]:return!0x0;}return!0x1;}static[_0x451749(0xc55)](_0x344aad){var _0x26bcf9=_0x451749;switch(_0x344aad){case _0x2241ac['EV'][_0x26bcf9(0x6dc)]:return _0x2241ac['EV']['Depth16Unorm'];case _0x2241ac['EV'][_0x26bcf9(0x7ed)]:case _0x2241ac['EV']['Depth24PlusStencil8']:case _0x2241ac['EV'][_0x26bcf9(0x39c)]:return _0x2241ac['EV'][_0x26bcf9(0x7ed)];case _0x2241ac['EV'][_0x26bcf9(0x78a)]:case _0x2241ac['EV'][_0x26bcf9(0xb42)]:return _0x2241ac['EV'][_0x26bcf9(0x78a)];}return _0x344aad;}[_0x451749(0x215)](_0x5c24c9,_0x16af08,_0x1b91e0,_0x45694b=!0x1,_0x573dbb){var _0x2cd336=_0x451749,_0x2c9790=void 0x0===_0x573dbb,[_0x257b89,_0x4f54bb]=this[_0x2cd336(0x868)](_0x1b91e0,_0x45694b?_0x1567fa['InvertY']:_0x1567fa[_0x2cd336(0x7a4)]);null!=(_0x26c502=(_0xd9a845=_0x573dbb=_0x2c9790?this[_0x2cd336(0x38b)]['createCommandEncoder']({}):_0x573dbb)[_0x2cd336(0x3c6)])&&_0x26c502[_0x2cd336(0xa85)](_0xd9a845,'copy\x20video\x20to\x20texture\x20-\x20invertY='+_0x45694b);const _0xb4f1b8=_0x16af08[_0x2cd336(0x49d)];var _0x26c502={'colorAttachments':[{'view':_0xb4f1b8[_0x2cd336(0x913)][_0x2cd336(0x946)]({'format':_0x1b91e0,'dimension':_0x2241ac['p_'][_0x2cd336(0x9d8)],'mipLevelCount':0x1,'baseArrayLayer':0x0,'baseMipLevel':0x0,'arrayLayerCount':0x1,'aspect':_0x2241ac['H7'][_0x2cd336(0xbe0)]}),'loadOp':_0x2241ac['Ws']['Load'],'storeOp':_0x2241ac['EG'][_0x2cd336(0x8f0)]}]};const _0x1a05d5=_0x573dbb[_0x2cd336(0x79a)](_0x26c502);var _0xd9a845={'layout':_0x4f54bb,'entries':[{'binding':0x0,'resource':this[_0x2cd336(0xb8e)]},{'binding':0x1,'resource':this[_0x2cd336(0x38b)][_0x2cd336(0x727)]({'source':_0x5c24c9[_0x2cd336(0x913)]})}]},_0x45694b=this[_0x2cd336(0x38b)]['createBindGroup'](_0xd9a845);_0x1a05d5[_0x2cd336(0x3a1)](_0x257b89),_0x1a05d5[_0x2cd336(0x1ac)](0x0,_0x45694b),_0x1a05d5[_0x2cd336(0x63b)](0x4,0x1,0x0,0x0),_0x1a05d5[_0x2cd336(0x77b)](),null!=(_0x1b91e0=(_0x16af08=_0x573dbb)[_0x2cd336(0x6b9)])&&_0x1b91e0[_0x2cd336(0xa85)](_0x16af08),_0x2c9790&&this[_0x2cd336(0x38b)]['queue'][_0x2cd336(0xcd3)]([_0x573dbb[_0x2cd336(0xb1d)]()]);}[_0x451749(0xb58)](_0x5d7b06,_0x55c4f4,_0x53b733,_0x55bc78,_0x3f2994=!0x1,_0x4d76d0=!0x1,_0xafb883=0x0,_0x5e3087=0x0,_0x43f48c=0x1,_0x5d7223=0x0,_0x62bab5=0x0,_0x5ba12d=0x0,_0x2e0cef=0x0,_0x2fc7f1,_0x15765c){var _0x5986ed=_0x451749,_0x15af96,_0xe51fad,_0xe681fe=0x0!==_0x5ba12d,_0x2e10ef=void 0x0===_0x2fc7f1,[_0x9f289a,_0x3ab434]=this[_0x5986ed(0x6c2)](_0x55bc78,_0xe681fe?_0x276697[_0x5986ed(0x2c3)]:_0x276697['InvertYPremultiplyAlpha'],{'invertY':_0x3f2994,'premultiplyAlpha':_0x4d76d0});_0xafb883=Math[_0x5986ed(0x3f8)](_0xafb883,0x0),null!=(_0x15af96=(_0xe51fad=_0x2fc7f1=_0x2e10ef?this[_0x5986ed(0x38b)][_0x5986ed(0x28f)]({}):_0x2fc7f1)[_0x5986ed(0x3c6)])&&_0x15af96['call'](_0xe51fad,'internal\x20process\x20texture\x20-\x20invertY='+_0x3f2994+_0x5986ed(0x734)+_0x4d76d0);let _0x3f4f92;if(_0x7ae081[_0x5986ed(0x2a0)](_0x5d7b06)?(_0x3f4f92=_0x5d7b06[_0x5986ed(0x913)],_0x3f2994&&!_0x4d76d0&&0x1===_0x43f48c&&0x0===_0xafb883||(_0x5d7b06=void 0x0)):(_0x3f4f92=_0x5d7b06,_0x5d7b06=void 0x0),_0x3f4f92){_0xe681fe&&this[_0x5986ed(0x2cb)][_0x5986ed(0xacf)](this['_ubCopyWithOfst'],0x0,new Float32Array([_0x5d7223,_0x62bab5,_0x5ba12d,_0x2e0cef]),0x0,0x10);const _0x292687=_0x5d7b06,_0x11ade9=null!=(_0x15af96=null===_0x292687||void 0x0===_0x292687?void 0x0:_0x292687['_copyInvertYTempTexture'])?_0x15af96:this['createTexture']({'width':_0x55c4f4,'height':_0x53b733,'layers':0x1},!0x1,!0x1,!0x1,!0x1,!0x1,_0x55bc78,0x1,_0x2fc7f1,_0x2241ac['v2'][_0x5986ed(0xd03)]|_0x2241ac['v2'][_0x5986ed(0xcd1)]|_0x2241ac['v2'][_0x5986ed(0x9a6)],void 0x0,_0x5986ed(0xba7));_0x3f2994=null!=(_0xe51fad=null===_0x292687||void 0x0===_0x292687?void 0x0:_0x292687['_copyInvertYRenderPassDescr'])?_0xe51fad:{'colorAttachments':[{'view':_0x11ade9[_0x5986ed(0x946)]({'format':_0x55bc78,'dimension':_0x2241ac['p_'][_0x5986ed(0x9d8)],'baseMipLevel':0x0,'mipLevelCount':0x1,'arrayLayerCount':0x1,'baseArrayLayer':0x0}),'loadOp':_0x2241ac['Ws'][_0x5986ed(0x120)],'storeOp':_0x2241ac['EG'][_0x5986ed(0x8f0)]}]};const _0x34c4de=_0x2fc7f1[_0x5986ed(0x79a)](_0x3f2994);let _0x53a62c=_0xe681fe?null===_0x292687||void 0x0===_0x292687?void 0x0:_0x292687[_0x5986ed(0xa86)]:null===_0x292687||void 0x0===_0x292687?void 0x0:_0x292687[_0x5986ed(0x5de)];if(!_0x53a62c){const _0x558589={'layout':_0x3ab434,'entries':[{'binding':0x0,'resource':_0x3f4f92[_0x5986ed(0x946)]({'format':_0x55bc78,'dimension':_0x2241ac['p_'][_0x5986ed(0x9d8)],'baseMipLevel':_0x5e3087,'mipLevelCount':0x1,'arrayLayerCount':_0x43f48c,'baseArrayLayer':_0xafb883})}]};_0xe681fe&&_0x558589[_0x5986ed(0xd06)]['push']({'binding':0x1,'resource':{'buffer':this[_0x5986ed(0xc60)]}}),_0x53a62c=this[_0x5986ed(0x38b)][_0x5986ed(0x79b)](_0x558589);}_0x34c4de['setPipeline'](_0x9f289a),_0x34c4de['setBindGroup'](0x0,_0x53a62c),_0x34c4de[_0x5986ed(0x63b)](0x4,0x1,0x0,0x0),_0x34c4de[_0x5986ed(0x77b)](),_0x2fc7f1[_0x5986ed(0x9eb)]({'texture':_0x11ade9},{'texture':_0x3f4f92,'mipLevel':_0x5e3087,'origin':{'x':0x0,'y':0x0,'z':_0xafb883}},{'width':_0x55c4f4,'height':_0x53b733,'depthOrArrayLayers':0x1}),_0x292687?(_0x292687[_0x5986ed(0x37d)]=_0x11ade9,_0x292687[_0x5986ed(0x983)]=_0x3f2994,_0xe681fe?_0x292687['_copyInvertYBindGroupWithOfst']=_0x53a62c:_0x292687['_copyInvertYBindGroup']=_0x53a62c):this[_0x5986ed(0x33e)]['push']([_0x11ade9,null]),null!=(_0x5d7223=(_0x4d76d0=_0x2fc7f1)[_0x5986ed(0x6b9)])&&_0x5d7223[_0x5986ed(0xa85)](_0x4d76d0),_0x2e10ef&&this[_0x5986ed(0x38b)]['queue'][_0x5986ed(0xcd3)]([_0x2fc7f1['finish']()]);}}[_0x451749(0xa25)](_0xdb4f2,_0x573094,_0x3dd9f1,_0xdae74c){var _0x43c04f=_0x451749,_0x15a950,_0x1bf396=void 0x0===_0xdae74c,[_0x573094,_0x30f179]=this[_0x43c04f(0x6c2)](_0x573094,_0x276697[_0x43c04f(0x181)],{'invertY':!0x0,'premultiplyAlpha':!0x1});null!=(_0x50e8b1=(_0x15a950=_0xdae74c=_0x1bf396?this[_0x43c04f(0x38b)][_0x43c04f(0x28f)]({}):_0xdae74c)['pushDebugGroup'])&&_0x50e8b1[_0x43c04f(0xa85)](_0x15a950,_0x43c04f(0x28a));const _0x24ba3b=_0xdae74c['beginRenderPass'](_0x3dd9f1);var _0x50e8b1=this[_0x43c04f(0x38b)]['createBindGroup']({'layout':_0x30f179,'entries':[{'binding':0x0,'resource':_0xdb4f2}]});_0x24ba3b[_0x43c04f(0x3a1)](_0x573094),_0x24ba3b[_0x43c04f(0x1ac)](0x0,_0x50e8b1),_0x24ba3b[_0x43c04f(0x63b)](0x4,0x1,0x0,0x0),_0x24ba3b[_0x43c04f(0x77b)](),null!=(_0x3dd9f1=(_0x15a950=_0xdae74c)[_0x43c04f(0x6b9)])&&_0x3dd9f1[_0x43c04f(0xa85)](_0x15a950),_0x1bf396&&this[_0x43c04f(0x38b)][_0x43c04f(0x4f6)][_0x43c04f(0xcd3)]([_0xdae74c[_0x43c04f(0xb1d)]()]);}[_0x451749(0x9d2)](_0xe4e88,_0x1dbb5c=!0x1,_0x215c28=!0x1,_0x2a5244=!0x1,_0x4c5d1e=!0x1,_0x2bc6ab=!0x1,_0x462616=_0x2241ac['EV'][_0x451749(0xcda)],_0x174cb2=0x1,_0x21a370,_0x1ad825=-0x1,_0xc7e668=0x0,_0x40bce4){var _0x182066=_0x451749;0x1<_0x174cb2&&(_0x174cb2=0x4);var _0xe9288b=_0xe4e88['layers']||0x1,_0xa96cdd={'width':_0xe4e88['width'],'height':_0xe4e88[_0x182066(0x520)],'depthOrArrayLayers':_0xe9288b},_0x54cb8f=_0x7ae081[_0x182066(0x2dd)](_0x462616),_0x598177=_0x1dbb5c?_0x7ae081[_0x182066(0xb2a)](_0xe4e88[_0x182066(0x3e9)],_0xe4e88[_0x182066(0x520)]):0x1,_0x1ad825=0x0<=_0x1ad825?_0x1ad825:_0x2241ac['v2'][_0x182066(0xd03)]|_0x2241ac['v2'][_0x182066(0xa26)]|_0x2241ac['v2'][_0x182066(0x9a6)],_0x54cb8f=(_0xc7e668|=_0x1dbb5c&&!_0x54cb8f?_0x2241ac['v2'][_0x182066(0xd03)]|_0x2241ac['v2'][_0x182066(0xcd1)]:0x0,_0x54cb8f||_0x2bc6ab||(_0xc7e668|=_0x2241ac['v2'][_0x182066(0xcd1)]|_0x2241ac['v2'][_0x182066(0xa26)]),this[_0x182066(0x38b)]['createTexture']({'label':_0x182066(0x314)+(_0x2bc6ab?'3D':'2D')+'_'+(_0x40bce4?_0x40bce4+'_':'')+_0xa96cdd[_0x182066(0x3e9)]+'x'+_0xa96cdd[_0x182066(0x520)]+'x'+_0xa96cdd[_0x182066(0xb18)]+'_'+(_0x1dbb5c?_0x182066(0x6cd):_0x182066(0x5cd))+'_'+_0x462616+_0x182066(0x714)+_0x174cb2,'size':_0xa96cdd,'dimension':_0x2bc6ab?_0x2241ac['kd'][_0x182066(0x1e8)]:_0x2241ac['kd'][_0x182066(0x9d8)],'format':_0x462616,'usage':_0x1ad825|_0xc7e668,'sampleCount':_0x174cb2,'mipLevelCount':_0x598177}));return _0x7ae081['IsImageBitmap'](_0xe4e88)&&(this[_0x182066(0x3ea)](_0xe4e88,_0x54cb8f,_0xe4e88['width'],_0xe4e88[_0x182066(0x520)],_0xe9288b,_0x462616,0x0,0x0,_0x2a5244,_0x4c5d1e,0x0,0x0),_0x1dbb5c&&_0x215c28&&this[_0x182066(0x1e0)](_0x54cb8f,_0x462616,_0x598177,0x0,_0x21a370)),_0x54cb8f;}['createCubeTexture'](_0x434631,_0x7e5f32=!0x1,_0x257473=!0x1,_0x34fdde=!0x1,_0x275a12=!0x1,_0x14d9e0=_0x2241ac['EV'][_0x451749(0xcda)],_0x10b8e3=0x1,_0x120b35,_0x501c9e=-0x1,_0x5069f0=0x0,_0x1ad460){var _0x5eef69=_0x451749;0x1<_0x10b8e3&&(_0x10b8e3=0x4);var _0x513211=(_0x7ae081[_0x5eef69(0x97a)](_0x434631)?_0x434631[0x0]:_0x434631)[_0x5eef69(0x3e9)],_0x4e60a3=(_0x7ae081[_0x5eef69(0x97a)](_0x434631)?_0x434631[0x0]:_0x434631)['height'],_0x1480b3=_0x7ae081[_0x5eef69(0x2dd)](_0x14d9e0),_0x2e9c1e=_0x7e5f32?_0x7ae081[_0x5eef69(0xb2a)](_0x513211,_0x4e60a3):0x1,_0x501c9e=0x0<=_0x501c9e?_0x501c9e:_0x2241ac['v2'][_0x5eef69(0xd03)]|_0x2241ac['v2'][_0x5eef69(0xa26)]|_0x2241ac['v2'][_0x5eef69(0x9a6)],_0x1480b3=(_0x5069f0|=_0x7e5f32&&!_0x1480b3?_0x2241ac['v2'][_0x5eef69(0xd03)]|_0x2241ac['v2'][_0x5eef69(0xcd1)]:0x0,_0x1480b3||(_0x5069f0|=_0x2241ac['v2'][_0x5eef69(0xcd1)]|_0x2241ac['v2']['CopyDst']),this[_0x5eef69(0x38b)][_0x5eef69(0x9d2)]({'label':'TextureCube_'+(_0x1ad460?_0x1ad460+'_':'')+_0x513211+'x'+_0x4e60a3+_0x5eef69(0x3c5)+(_0x7e5f32?_0x5eef69(0x6cd):_0x5eef69(0x5cd))+'_'+_0x14d9e0+_0x5eef69(0x714)+_0x10b8e3,'size':{'width':_0x513211,'height':_0x4e60a3,'depthOrArrayLayers':0x6},'dimension':_0x2241ac['kd'][_0x5eef69(0x9d8)],'format':_0x14d9e0,'usage':_0x501c9e|_0x5069f0,'sampleCount':_0x10b8e3,'mipLevelCount':_0x2e9c1e}));return _0x7ae081[_0x5eef69(0x97a)](_0x434631)&&(this['updateCubeTextures'](_0x434631,_0x1480b3,_0x513211,_0x4e60a3,_0x14d9e0,_0x34fdde,_0x275a12,0x0,0x0),_0x7e5f32&&_0x257473&&this['generateCubeMipmaps'](_0x1480b3,_0x14d9e0,_0x2e9c1e,_0x120b35)),_0x1480b3;}[_0x451749(0x8ce)](_0x119e28,_0x50b2e4,_0x35eef0,_0x2e690c){var _0x20b4ff=_0x451749,_0x312d20,_0x155b65,_0x5342b4=void 0x0===_0x2e690c;null!=(_0x312d20=(_0x155b65=_0x2e690c=_0x5342b4?this[_0x20b4ff(0x38b)][_0x20b4ff(0x28f)]({}):_0x2e690c)['pushDebugGroup'])&&_0x312d20['call'](_0x155b65,_0x20b4ff(0x8b3)+_0x35eef0+'\x20levels');for(let _0x4eba26=0x0;_0x4eba26<0x6;++_0x4eba26)this[_0x20b4ff(0x1e0)](_0x119e28,_0x50b2e4,_0x35eef0,_0x4eba26,_0x2e690c);null!=(_0x155b65=(_0x312d20=_0x2e690c)[_0x20b4ff(0x6b9)])&&_0x155b65[_0x20b4ff(0xa85)](_0x312d20),_0x5342b4&&this[_0x20b4ff(0x38b)][_0x20b4ff(0x4f6)][_0x20b4ff(0xcd3)]([_0x2e690c['finish']()]);}[_0x451749(0x1e0)](_0x5b628f,_0x11a7ec,_0x708695,_0x43d4b8=0x0,_0x2f9a9c){var _0x4fe602=_0x451749,_0x543c8a,_0x170fde,_0x2629cc=void 0x0===_0x2f9a9c,[_0x58ccc7,_0x5d108f]=this[_0x4fe602(0x6c2)](_0x11a7ec);_0x43d4b8=Math[_0x4fe602(0x3f8)](_0x43d4b8,0x0),null!=(_0x543c8a=(_0x170fde=_0x2f9a9c=_0x2629cc?this[_0x4fe602(0x38b)][_0x4fe602(0x28f)]({}):_0x2f9a9c)[_0x4fe602(0x3c6)])&&_0x543c8a[_0x4fe602(0xa85)](_0x170fde,_0x4fe602(0x658)+_0x43d4b8+'\x20-\x20'+_0x708695+'\x20levels');let _0x4ff80c;if(_0x7ae081['_IsHardwareTexture'](_0x5b628f)?(_0x4ff80c=_0x5b628f[_0x4fe602(0x913)],_0x5b628f['_mipmapGenRenderPassDescr']=_0x5b628f[_0x4fe602(0xac9)]||[],_0x5b628f[_0x4fe602(0x886)]=_0x5b628f['_mipmapGenBindGroup']||[]):(_0x4ff80c=_0x5b628f,_0x5b628f=void 0x0),_0x4ff80c){const _0x4326e0=_0x5b628f;for(let _0x1cf2f8=0x1;_0x1cf2f8<_0x708695;++_0x1cf2f8){var _0x4e6755=null!=(_0x4e6755=null==(_0x4e6755=null===_0x4326e0||void 0x0===_0x4326e0?void 0x0:_0x4326e0[_0x4fe602(0xac9)][_0x43d4b8])?void 0x0:_0x4e6755[_0x1cf2f8-0x1])?_0x4e6755:{'colorAttachments':[{'view':_0x4ff80c[_0x4fe602(0x946)]({'format':_0x11a7ec,'dimension':_0x2241ac['p_']['E2d'],'baseMipLevel':_0x1cf2f8,'mipLevelCount':0x1,'arrayLayerCount':0x1,'baseArrayLayer':_0x43d4b8}),'loadOp':_0x2241ac['Ws'][_0x4fe602(0x120)],'storeOp':_0x2241ac['EG']['Store']}]};_0x4326e0&&(_0x4326e0[_0x4fe602(0xac9)][_0x43d4b8]=_0x4326e0[_0x4fe602(0xac9)][_0x43d4b8]||[],_0x4326e0['_mipmapGenRenderPassDescr'][_0x43d4b8][_0x1cf2f8-0x1]=_0x4e6755);const _0x38d79b=_0x2f9a9c[_0x4fe602(0x79a)](_0x4e6755);_0x4e6755=null!=(_0x4e6755=null==(_0x4e6755=null===_0x4326e0||void 0x0===_0x4326e0?void 0x0:_0x4326e0[_0x4fe602(0x886)][_0x43d4b8])?void 0x0:_0x4e6755[_0x1cf2f8-0x1])?_0x4e6755:this['_device'][_0x4fe602(0x79b)]({'layout':_0x5d108f,'entries':[{'binding':0x0,'resource':this['_mipmapSampler']},{'binding':0x1,'resource':_0x4ff80c[_0x4fe602(0x946)]({'format':_0x11a7ec,'dimension':_0x2241ac['p_']['E2d'],'baseMipLevel':_0x1cf2f8-0x1,'mipLevelCount':0x1,'arrayLayerCount':0x1,'baseArrayLayer':_0x43d4b8})}]}),(_0x4326e0&&(_0x4326e0[_0x4fe602(0x886)][_0x43d4b8]=_0x4326e0[_0x4fe602(0x886)][_0x43d4b8]||[],_0x4326e0[_0x4fe602(0x886)][_0x43d4b8][_0x1cf2f8-0x1]=_0x4e6755),_0x38d79b[_0x4fe602(0x3a1)](_0x58ccc7),_0x38d79b[_0x4fe602(0x1ac)](0x0,_0x4e6755),_0x38d79b[_0x4fe602(0x63b)](0x4,0x1,0x0,0x0),_0x38d79b[_0x4fe602(0x77b)]());}null!=(_0x170fde=(_0x543c8a=_0x2f9a9c)[_0x4fe602(0x6b9)])&&_0x170fde[_0x4fe602(0xa85)](_0x543c8a),_0x2629cc&&this['_device'][_0x4fe602(0x4f6)][_0x4fe602(0xcd3)]([_0x2f9a9c[_0x4fe602(0xb1d)]()]);}}[_0x451749(0x483)](_0xfb5b8d,_0xfe0844,_0x2030ac,_0x54bf94,_0x16694f){var _0x1d4ca4=_0x451749;_0xfb5b8d['_hardwareTexture']||(_0xfb5b8d[_0x1d4ca4(0x49d)]=new _0x216f2a['Z']()),void 0x0===_0xfe0844&&(_0xfe0844=_0xfb5b8d[_0x1d4ca4(0x3e9)]),void 0x0===_0x2030ac&&(_0x2030ac=_0xfb5b8d['height']),void 0x0===_0x54bf94&&(_0x54bf94=_0xfb5b8d[_0x1d4ca4(0x711)]);const _0x1aff34=_0xfb5b8d[_0x1d4ca4(0x49d)];var _0x1bd80d,_0x16694f=0x0!=((null!=_0x16694f?_0x16694f:0x0)&_0x1b2e2f['g'][_0x1d4ca4(0x168)]),_0x53d9ed=(_0x1aff34[_0x1d4ca4(0xb59)]=_0x7ae081[_0x1d4ca4(0xc3b)](_0xfb5b8d[_0x1d4ca4(0xb26)],_0xfb5b8d[_0x1d4ca4(0xb59)],_0xfb5b8d[_0x1d4ca4(0x7ef)]),_0x1aff34[_0x1d4ca4(0x320)]=_0xfb5b8d[_0x1d4ca4(0xb0c)]===_0x5b5d44['S'][_0x1d4ca4(0xae0)]||_0xfb5b8d['source']===_0x5b5d44['S'][_0x1d4ca4(0x571)]?_0x2241ac['v2'][_0x1d4ca4(0x9a6)]|_0x2241ac['v2']['CopySrc']|_0x2241ac['v2'][_0x1d4ca4(0xcd1)]:_0xfb5b8d[_0x1d4ca4(0xb0c)]===_0x5b5d44['S'][_0x1d4ca4(0x405)]?_0x2241ac['v2'][_0x1d4ca4(0x9a6)]|_0x2241ac['v2'][_0x1d4ca4(0xcd1)]:-0x1,_0x1aff34['textureAdditionalUsages']=_0x16694f?_0x2241ac['v2'][_0x1d4ca4(0x365)]:0x0,_0xfb5b8d[_0x1d4ca4(0xb22)]),_0x2401f7=_0x54bf94||0x1,_0x53d9ed=null!==_0xfb5b8d['_maxLodLevel']?_0xfb5b8d[_0x1d4ca4(0x826)]:_0x53d9ed?_0x7ae081[_0x1d4ca4(0xb2a)](_0xfe0844,_0x2030ac):0x1;return _0xfb5b8d[_0x1d4ca4(0xac3)]?(_0x1bd80d=this['createCubeTexture']({'width':_0xfe0844,'height':_0x2030ac},_0xfb5b8d[_0x1d4ca4(0xb22)],_0xfb5b8d['generateMipMaps'],_0xfb5b8d[_0x1d4ca4(0x7b0)],!0x1,_0x1aff34[_0x1d4ca4(0xb59)],0x1,this[_0x1d4ca4(0x22e)],_0x1aff34['textureUsages'],_0x1aff34[_0x1d4ca4(0x7ab)],_0xfb5b8d[_0x1d4ca4(0xa2f)]),_0x1aff34['set'](_0x1bd80d),_0x1aff34[_0x1d4ca4(0x946)]({'format':_0x7ae081[_0x1d4ca4(0xc55)](_0x1aff34[_0x1d4ca4(0xb59)]),'dimension':_0x2241ac['p_'][_0x1d4ca4(0x2d1)],'mipLevelCount':_0x53d9ed,'baseArrayLayer':0x0,'baseMipLevel':0x0,'arrayLayerCount':0x6,'aspect':_0x7ae081[_0x1d4ca4(0x296)](_0x1aff34[_0x1d4ca4(0xb59)])?_0x2241ac['H7'][_0x1d4ca4(0xa73)]:_0x2241ac['H7'][_0x1d4ca4(0xbe0)]},_0x16694f)):(_0x1bd80d=this['createTexture']({'width':_0xfe0844,'height':_0x2030ac,'layers':_0x2401f7},_0xfb5b8d['generateMipMaps'],_0xfb5b8d[_0x1d4ca4(0xb22)],_0xfb5b8d[_0x1d4ca4(0x7b0)],!0x1,_0xfb5b8d[_0x1d4ca4(0x718)],_0x1aff34[_0x1d4ca4(0xb59)],0x1,this['_commandEncoderForCreation'],_0x1aff34[_0x1d4ca4(0x320)],_0x1aff34[_0x1d4ca4(0x7ab)],_0xfb5b8d[_0x1d4ca4(0xa2f)]),_0x1aff34[_0x1d4ca4(0x6c1)](_0x1bd80d),_0x1aff34['createView']({'format':_0x7ae081['GetDepthFormatOnly'](_0x1aff34[_0x1d4ca4(0xb59)]),'dimension':_0xfb5b8d[_0x1d4ca4(0x7f4)]?_0x2241ac['p_'][_0x1d4ca4(0x231)]:_0xfb5b8d[_0x1d4ca4(0x718)]?_0x2241ac['kd'][_0x1d4ca4(0x1e8)]:_0x2241ac['p_']['E2d'],'mipLevelCount':_0x53d9ed,'baseArrayLayer':0x0,'baseMipLevel':0x0,'arrayLayerCount':_0xfb5b8d['is3D']?0x1:_0x2401f7,'aspect':_0x7ae081[_0x1d4ca4(0x296)](_0x1aff34[_0x1d4ca4(0xb59)])?_0x2241ac['H7'][_0x1d4ca4(0xa73)]:_0x2241ac['H7']['All']},_0x16694f)),_0xfb5b8d[_0x1d4ca4(0x3e9)]=_0xfb5b8d['baseWidth']=_0xfe0844,_0xfb5b8d[_0x1d4ca4(0x520)]=_0xfb5b8d[_0x1d4ca4(0x929)]=_0x2030ac,_0xfb5b8d[_0x1d4ca4(0x711)]=_0xfb5b8d['baseDepth']=_0x54bf94,this['createMSAATexture'](_0xfb5b8d,_0xfb5b8d[_0x1d4ca4(0x92d)]),_0x1aff34;}[_0x451749(0x2b9)](_0x225dec,_0x291d13,_0x46f0a7=!0x0,_0x4c3894=-0x1){var _0x108c27=_0x451749;const _0x58e8ac=_0x225dec[_0x108c27(0x49d)];var _0x517287;_0x46f0a7&&null!==_0x58e8ac&&void 0x0!==_0x58e8ac&&_0x58e8ac[_0x108c27(0x705)](),!_0x58e8ac||(null!=_0x291d13?_0x291d13:0x1)<=0x1||(_0x46f0a7=_0x225dec[_0x108c27(0x3e9)],_0x517287=_0x225dec[_0x108c27(0x520)],_0x46f0a7=this[_0x108c27(0x9d2)]({'width':_0x46f0a7,'height':_0x517287,'layers':0x1},!0x1,!0x1,!0x1,!0x1,!0x1,_0x58e8ac[_0x108c27(0xb59)],_0x291d13,this['_commandEncoderForCreation'],_0x2241ac['v2'][_0x108c27(0xcd1)],0x0,_0x225dec[_0x108c27(0xa2f)]?'MSAA'+_0x225dec['label']:void 0x0),_0x58e8ac[_0x108c27(0x452)](_0x46f0a7,_0x4c3894));}[_0x451749(0x831)](_0x2c7fd6,_0x30562a,_0x2de6e6,_0x174a8f,_0x3d01d7,_0x27cbac=!0x1,_0x2f08b1=!0x1,_0x595d7f=0x0,_0x48247c=0x0){var _0x3e0273=_0x451749,_0x4dbdc9=[0x0,0x3,0x1,0x4,0x2,0x5];for(let _0x55f47c=0x0;_0x55f47c<_0x4dbdc9[_0x3e0273(0x86f)];++_0x55f47c){var _0x16a60=_0x2c7fd6[_0x4dbdc9[_0x55f47c]];this[_0x3e0273(0x3ea)](_0x16a60,_0x30562a,_0x2de6e6,_0x174a8f,0x1,_0x3d01d7,_0x55f47c,0x0,_0x27cbac,_0x2f08b1,_0x595d7f,_0x48247c);}}['updateTexture'](_0x269c75,_0x1628a0,_0x5010b4,_0x53e1ef,_0x2856a1,_0x58aa4e,_0x330cd8=0x0,_0x3530e1=0x0,_0x3ba34c=!0x1,_0x2f25e4=!0x1,_0x45398a=0x0,_0x469556=0x0,_0x29deef){var _0x3a2326=_0x451749,_0x5d0125=_0x7ae081['_IsInternalTexture'](_0x1628a0)?_0x1628a0[_0x3a2326(0x49d)][_0x3a2326(0x913)]:_0x1628a0,_0x28252d=_0x7ae081[_0x3a2326(0x528)](_0x58aa4e),_0x531c97=_0x7ae081[_0x3a2326(0xc4c)](_0x1628a0)?_0x1628a0[_0x3a2326(0x49d)]:_0x1628a0;const _0x525b40={'texture':_0x5d0125,'origin':{'x':_0x45398a,'y':_0x469556,'z':Math[_0x3a2326(0x3f8)](_0x330cd8,0x0)},'mipLevel':_0x3530e1,'premultipliedAlpha':_0x2f25e4},_0x53f3cd={'width':Math[_0x3a2326(0x618)](_0x5010b4/_0x28252d[_0x3a2326(0x3e9)])*_0x28252d[_0x3a2326(0x3e9)],'height':Math[_0x3a2326(0x618)](_0x53e1ef/_0x28252d[_0x3a2326(0x520)])*_0x28252d['height'],'depthOrArrayLayers':_0x2856a1||0x1};if(void 0x0!==_0x269c75[_0x3a2326(0x65f)]){_0x5d0125=Math[_0x3a2326(0x618)](_0x5010b4/_0x28252d[_0x3a2326(0x3e9)])*_0x28252d[_0x3a2326(0x86f)];if(0x100*Math['ceil'](_0x5d0125/0x100)==_0x5d0125){const _0x135e63=this[_0x3a2326(0x38b)]['createCommandEncoder']({}),_0x591a62=this['_bufferManager']['createRawBuffer'](_0x269c75[_0x3a2326(0x65f)],_0x2241ac['FB'][_0x3a2326(0x84f)]|_0x2241ac['FB']['CopySrc'],!0x0);_0x28252d=_0x591a62[_0x3a2326(0x466)](),(new Uint8Array(_0x28252d)['set'](_0x269c75),_0x591a62['unmap'](),_0x135e63['copyBufferToTexture']({'buffer':_0x591a62,'offset':0x0,'bytesPerRow':_0x5d0125,'rowsPerImage':_0x53e1ef},_0x525b40,_0x53f3cd),this[_0x3a2326(0x38b)][_0x3a2326(0x4f6)]['submit']([_0x135e63['finish']()]),this['_bufferManager']['releaseBuffer'](_0x591a62));}else this[_0x3a2326(0x38b)][_0x3a2326(0x4f6)]['writeTexture'](_0x525b40,_0x269c75,{'offset':0x0,'bytesPerRow':_0x5d0125,'rowsPerImage':_0x53e1ef},_0x53f3cd);if(_0x3ba34c||_0x2f25e4){if(!_0x7ae081['_IsInternalTexture'](_0x1628a0))throw _0x3a2326(0x9e5);_0x28252d=0x0===_0x45398a&&0x0===_0x469556&&_0x5010b4===_0x1628a0[_0x3a2326(0x3e9)]&&_0x53e1ef===_0x1628a0['height'],this[_0x3a2326(0xb58)](_0x531c97,_0x1628a0['width'],_0x1628a0['height'],_0x58aa4e,_0x3ba34c,_0x2f25e4,_0x330cd8,_0x3530e1,_0x2856a1||0x1,_0x45398a,_0x469556,_0x28252d?0x0:_0x5010b4,_0x28252d?0x0:_0x53e1ef,void 0x0,_0x29deef);}}else{if(_0x3ba34c){if(_0x525b40[_0x3a2326(0x629)]=!0x1,_0x7ae081['_IsInternalTexture'](_0x1628a0)&&0x0===_0x45398a&&0x0===_0x469556&&_0x5010b4===_0x1628a0['width']&&_0x53e1ef===_0x1628a0[_0x3a2326(0x520)])this['_device'][_0x3a2326(0x4f6)]['copyExternalImageToTexture']({'source':_0x269c75},_0x525b40,_0x53f3cd),this[_0x3a2326(0xb58)](_0x531c97,_0x5010b4,_0x53e1ef,_0x58aa4e,_0x3ba34c,_0x2f25e4,_0x330cd8,_0x3530e1,_0x2856a1||0x1,0x0,0x0,0x0,0x0,void 0x0,_0x29deef);else{const _0x5d6f43=this[_0x3a2326(0x38b)][_0x3a2326(0x28f)]({});_0x5d0125=this['createTexture']({'width':_0x5010b4,'height':_0x53e1ef,'layers':0x1},!0x1,!0x1,!0x1,!0x1,!0x1,_0x58aa4e,0x1,_0x5d6f43,_0x2241ac['v2']['CopySrc']|_0x2241ac['v2'][_0x3a2326(0x9a6)],void 0x0,'TempTextureForUpdateTexture'),(this[_0x3a2326(0x33e)][_0x3a2326(0x725)]([_0x5d0125,null]),_0x53f3cd[_0x3a2326(0xb18)]=0x1,this['_device']['queue'][_0x3a2326(0x695)]({'source':_0x269c75},{'texture':_0x5d0125},_0x53f3cd),_0x53f3cd[_0x3a2326(0xb18)]=_0x2856a1||0x1,this[_0x3a2326(0xb58)](_0x5d0125,_0x5010b4,_0x53e1ef,_0x58aa4e,_0x3ba34c,_0x2f25e4,_0x330cd8,_0x3530e1,_0x2856a1||0x1,0x0,0x0,0x0,0x0,_0x5d6f43,_0x29deef),_0x5d6f43[_0x3a2326(0x9eb)]({'texture':_0x5d0125},_0x525b40,_0x53f3cd),this[_0x3a2326(0x38b)][_0x3a2326(0x4f6)]['submit']([_0x5d6f43[_0x3a2326(0xb1d)]()]));}}else this[_0x3a2326(0x38b)][_0x3a2326(0x4f6)][_0x3a2326(0x695)]({'source':_0x269c75},_0x525b40,_0x53f3cd);}}[_0x451749(0x22b)](_0x61e98b,_0x3cb61d,_0x3783e4,_0x3afc41,_0x4d8511,_0x476631,_0x2f4333=0x0,_0xf8d44f=0x0,_0x405dfd=null,_0x34bca3=!0x1){var _0x2c1854=_0x451749,_0x1d3553=_0x7ae081[_0x2c1854(0x528)](_0x476631),_0x1d3553=Math['ceil'](_0x3afc41/_0x1d3553['width'])*_0x1d3553[_0x2c1854(0x86f)],_0x578f21=0x100*Math[_0x2c1854(0x618)](_0x1d3553/0x100),_0x2fe867=_0x578f21*_0x4d8511,_0x5cbac0=this[_0x2c1854(0x2cb)][_0x2c1854(0x8e9)](_0x2fe867,_0x2241ac['FB']['MapRead']|_0x2241ac['FB']['CopyDst']);const _0x5a18fe=this['_device'][_0x2c1854(0x28f)]({});return _0x5a18fe[_0x2c1854(0x724)]({'texture':_0x61e98b,'mipLevel':_0xf8d44f,'origin':{'x':_0x3cb61d,'y':_0x3783e4,'z':Math['max'](_0x2f4333,0x0)}},{'buffer':_0x5cbac0,'offset':0x0,'bytesPerRow':_0x578f21},{'width':_0x3afc41,'height':_0x4d8511,'depthOrArrayLayers':0x1}),this[_0x2c1854(0x38b)][_0x2c1854(0x4f6)][_0x2c1854(0xcd3)]([_0x5a18fe[_0x2c1854(0xb1d)]()]),this[_0x2c1854(0x2cb)]['readDataFromBuffer'](_0x5cbac0,_0x2fe867,_0x3afc41,_0x4d8511,_0x1d3553,_0x578f21,_0x7ae081[_0x2c1854(0x93b)](_0x476631),0x0,_0x405dfd,!0x0,_0x34bca3);}[_0x451749(0x3be)](_0x35b6d1){var _0x4de212=_0x451749,_0x12a095,_0x525c37;_0x7ae081[_0x4de212(0xc4c)](_0x35b6d1)?(_0x12a095=_0x35b6d1[_0x4de212(0x49d)],_0x525c37=_0x35b6d1[_0x4de212(0x971)],this[_0x4de212(0x33e)][_0x4de212(0x725)]([_0x12a095,_0x525c37])):this['_deferredReleaseTextures'][_0x4de212(0x725)]([_0x35b6d1,null]);}[_0x451749(0x1e6)](){var _0x442689=_0x451749;for(let _0x3e9d3c=0x0;_0x3e9d3c<this[_0x442689(0x33e)][_0x442689(0x86f)];++_0x3e9d3c){const [_0xd5d3f2,_0x37867b]=this[_0x442689(0x33e)][_0x3e9d3c];_0xd5d3f2&&(_0x7ae081['_IsHardwareTexture'](_0xd5d3f2)?_0xd5d3f2['release']():_0xd5d3f2['destroy']()),null!==_0x37867b&&void 0x0!==_0x37867b&&_0x37867b[_0x442689(0xb4b)]();}this[_0x442689(0x33e)][_0x442689(0x86f)]=0x0;}}},0x1666f:(_0x2a7524,_0x429217,_0x58971f)=>{var _0x2b80a9=a7_0x3304fb;_0x58971f['d'](_0x429217,{'b':()=>_0xeb572a});var _0x497b9b=_0x58971f(0x177e8),_0x2103c9=_0x58971f(0x13697),_0x55303d=_0x58971f(0x13c77);class _0xeb572a{constructor(_0x18c96f,_0x3178d5){var _0x5ee22f=a7_0x4135;this[_0x5ee22f(0x398)]=!0x1,this[_0x5ee22f(0x9b8)]=new _0x2103c9['z'](),this['_measureDurationState']=0x0,this[_0x5ee22f(0x38b)]=_0x18c96f,this[_0x5ee22f(0x2cb)]=_0x3178d5;}get[_0x2b80a9(0x898)](){var _0x515f42=_0x2b80a9;return this[_0x515f42(0x9b8)];}get[_0x2b80a9(0x625)](){var _0x5cb566=_0x2b80a9;return this[_0x5cb566(0x398)];}set[_0x2b80a9(0x625)](_0x3cdf8c){var _0x3f133a=_0x2b80a9;this[_0x3f133a(0x398)]!==_0x3cdf8c&&(this['_enabled']=_0x3cdf8c,this['_measureDurationState']=0x0,_0x3cdf8c?this[_0x3f133a(0x866)]=new _0x510f62(this[_0x3f133a(0x38b)],this[_0x3f133a(0x2cb)]):this[_0x3f133a(0x866)]['dispose']());}[_0x2b80a9(0x88c)](_0x37421f){var _0x4954cf=_0x2b80a9;this[_0x4954cf(0x398)]&&0x0===this[_0x4954cf(0x88a)]&&(this['_measureDuration'][_0x4954cf(0x845)](_0x37421f),this[_0x4954cf(0x88a)]=0x1);}[_0x2b80a9(0x12e)](_0x41bb76){var _0x446a94=_0x2b80a9;0x1===this[_0x446a94(0x88a)]&&(this['_measureDurationState']=0x2,this[_0x446a94(0x866)]['stop'](_0x41bb76)['then'](_0x2dd560=>{var _0x57968a=_0x446a94;null!==_0x2dd560&&0x0<=_0x2dd560&&(this[_0x57968a(0x9b8)]['fetchNewFrame'](),this[_0x57968a(0x9b8)][_0x57968a(0x131)](_0x2dd560,!0x0)),this[_0x57968a(0x88a)]=0x0;}));}}class _0x510f62{constructor(_0x19569b,_0x3be14a){var _0x36dec5=_0x2b80a9;this[_0x36dec5(0x66e)]=new _0x55303d['t'](0x2,_0x497b9b['xL'][_0x36dec5(0x540)],_0x19569b,_0x3be14a);}['start'](_0x56a9f8){_0x56a9f8['writeTimestamp'](this['_querySet']['querySet'],0x0);}[_0x2b80a9(0x5b7)](_0x50533a){return _0x2e30c4=this,_0x32a148=function*(){var _0x4c3d70=a7_0x4135;return _0x50533a['writeTimestamp'](this[_0x4c3d70(0x66e)][_0x4c3d70(0x9c9)],0x1),this[_0x4c3d70(0x66e)][_0x4c3d70(0x21a)](0x0);},new(_0x3fa3eb=(_0x3fa3eb=_0x46dffe=void 0x0)||Promise)(function(_0xd08d5b,_0x41ba56){var _0x18e40a=a7_0x4135;function _0xa68919(_0x48e2d2){var _0x198743=a7_0x4135;try{_0x5e371b(_0x32a148[_0x198743(0x382)](_0x48e2d2));}catch(_0x49d6ac){_0x41ba56(_0x49d6ac);}}function _0x560b8a(_0x1da1d5){var _0x23df96=a7_0x4135;try{_0x5e371b(_0x32a148[_0x23df96(0x9ca)](_0x1da1d5));}catch(_0x2ee31b){_0x41ba56(_0x2ee31b);}}function _0x5e371b(_0x475dde){var _0x5d61e2=a7_0x4135,_0x528419;_0x475dde[_0x5d61e2(0x277)]?_0xd08d5b(_0x475dde[_0x5d61e2(0x197)]):((_0x528419=_0x475dde[_0x5d61e2(0x197)])instanceof _0x3fa3eb?_0x528419:new _0x3fa3eb(function(_0x1bec15){_0x1bec15(_0x528419);}))['then'](_0xa68919,_0x560b8a);}_0x5e371b((_0x32a148=_0x32a148[_0x18e40a(0x650)](_0x2e30c4,_0x46dffe||[]))[_0x18e40a(0x382)]());});var _0x2e30c4,_0x46dffe,_0x3fa3eb,_0x32a148;}['dispose'](){var _0x2afe7f=_0x2b80a9;this[_0x2afe7f(0x66e)][_0x2afe7f(0xb4b)]();}}},0x9bb2:(_0x4649fa,_0x5f2535,_0x2eebbd)=>{var _0x489158=a7_0x3304fb;_0x2eebbd['d'](_0x5f2535,{'o':()=>_0x337b10});var _0x5f2535=_0x2eebbd(0x13b02),_0x58b152=_0x2eebbd(0x94e3),_0x6f31=_0x2eebbd(0x12cad),_0x40a9e2=_0x2eebbd(0x5ad0),_0x15957d=_0x2eebbd(0x16a94),_0x4ec480=_0x2eebbd(0xa896),_0x386d47=_0x2eebbd(0xd53f),_0x8d4776=_0x2eebbd(0xd079);class _0x337b10 extends _0x5f2535['Y']{constructor(_0x7c4b2c,_0x553e59,_0x2591b0,_0x3193bf,_0x36cce6=null){var _0x2e9312=a7_0x4135;super(_0x7c4b2c,_0x3193bf),this[_0x2e9312(0xc39)]=_0x36cce6,this[_0x2e9312(0x857)]=!0x1,this[_0x2e9312(0xb7a)]=!0x1,this[_0x2e9312(0x2de)]=!0x1,this['_textureMode']=_0x337b10[_0x2e9312(0x502)],this[_0x2e9312(0xa42)]=null,this[_0x2e9312(0x7b3)]=new _0x4ec480['y$'](),this[_0x2e9312(0xac4)]=new _0x4ec480['y$'](),_0x3193bf=this[_0x2e9312(0xb68)](),_0x7c4b2c=_0x7c4b2c||'textureDome',_0x2591b0[_0x2e9312(0x682)]=0x0|Math[_0x2e9312(0x9c3)](_0x2591b0[_0x2e9312(0x682)])||0x20,_0x2591b0[_0x2e9312(0xc25)]=Boolean(_0x2591b0[_0x2e9312(0xc25)]),_0x2591b0['autoPlay']=void 0x0===_0x2591b0[_0x2e9312(0xa36)]||Boolean(_0x2591b0[_0x2e9312(0xa36)]),_0x2591b0[_0x2e9312(0x676)]=void 0x0===_0x2591b0['loop']||Boolean(_0x2591b0[_0x2e9312(0x676)]),_0x2591b0[_0x2e9312(0x586)]=Math[_0x2e9312(0x9c3)](_0x2591b0[_0x2e9312(0x586)])||(_0x3193bf[_0x2e9312(0x112)]?0.48*_0x3193bf['activeCamera'][_0x2e9312(0xceb)]:0x3e8),void 0x0===_0x2591b0[_0x2e9312(0x399)]?this[_0x2e9312(0x2de)]=!0x0:this[_0x2e9312(0x2de)]=_0x2591b0['useDirectMapping'],void 0x0===_0x2591b0['faceForward']&&(_0x2591b0[_0x2e9312(0xc38)]=!0x0),this[_0x2e9312(0xb06)](!0x1),_0x2591b0['mesh']?this[_0x2e9312(0xc10)]=_0x2591b0[_0x2e9312(0x174)]:this[_0x2e9312(0xc10)]=(0x0,_0x15957d['Qk'])(_0x7c4b2c+_0x2e9312(0xc10),{'segments':_0x2591b0[_0x2e9312(0x682)],'diameter':_0x2591b0[_0x2e9312(0x586)],'updatable':!0x1,'sideOrientation':_0x58b152['Kj'][_0x2e9312(0xa0b)]},_0x3193bf);const _0x1728ba=this[_0x2e9312(0x99b)]=new _0x40a9e2['I'](_0x7c4b2c+_0x2e9312(0x99b),_0x3193bf);_0x1728ba[_0x2e9312(0x34a)]=!0x0,_0x1728ba[_0x2e9312(0x928)]=0x1,_0x1728ba[_0x2e9312(0x4b7)]=!0x1,_0x36cce6=this[_0x2e9312(0x156)](_0x553e59,_0x3193bf,_0x2591b0);if(this['texture']=_0x36cce6,this[_0x2e9312(0xc10)][_0x2e9312(0xba9)]=_0x1728ba,(this['_mesh'][_0x2e9312(0x2fc)]=this)[_0x2e9312(0x91e)]=(0x0,_0x15957d['Qk'])('',{'slice':0.5,'diameter':0.98*_0x2591b0['size'],'segments':0x2*_0x2591b0['resolution'],'sideOrientation':_0x58b152['Kj'][_0x2e9312(0xa0b)]},_0x3193bf),this[_0x2e9312(0x91e)]['rotate'](_0x8d4776['RD']['X'],-Math['PI']/0x2),this[_0x2e9312(0x91e)][_0x2e9312(0x2fc)]=this[_0x2e9312(0xc10)],this[_0x2e9312(0x857)]=!!_0x2591b0[_0x2e9312(0x125)],this[_0x2e9312(0x91e)]['setEnabled'](this[_0x2e9312(0x857)]),this[_0x2e9312(0xb7a)]=!!_0x2591b0[_0x2e9312(0x338)],this[_0x2e9312(0x6fb)][_0x2e9312(0x8b8)]=0x1,this[_0x2e9312(0x6fb)][_0x2e9312(0xac4)]['addOnce'](()=>{var _0xae9a3=_0x2e9312;this[_0xae9a3(0xb06)](!0x0);}),_0x2591b0[_0x2e9312(0xc38)]&&_0x3193bf[_0x2e9312(0x112)]){const _0x11e5c5=_0x3193bf[_0x2e9312(0x112)];_0x7c4b2c=_0x386d47['P'][_0x2e9312(0x7d9)]();const _0x3fd7d8=_0x386d47['P'][_0x2e9312(0xc41)](_0x7c4b2c,_0x11e5c5['getViewMatrix']());_0x3fd7d8[_0x2e9312(0x2e5)](),this['rotation']['y']=Math['acos'](_0x386d47['P']['Dot'](_0x7c4b2c,_0x3fd7d8));}this[_0x2e9312(0x4c4)](this[_0x2e9312(0x32f)]);}get['texture'](){var _0x202ea5=a7_0x4135;return this[_0x202ea5(0x6fb)];}set[_0x489158(0x800)](_0x42b00e){var _0x39f955=_0x489158;this['_texture']!==_0x42b00e&&(this[_0x39f955(0x6fb)]=_0x42b00e,this[_0x39f955(0x2de)]?(this[_0x39f955(0x6fb)][_0x39f955(0x145)]=_0x6f31['x']['CLAMP_ADDRESSMODE'],this['_texture']['wrapV']=_0x6f31['x'][_0x39f955(0x402)],this['_material'][_0x39f955(0xba8)]=this[_0x39f955(0x6fb)]):(this[_0x39f955(0x6fb)][_0x39f955(0x71d)]=_0x6f31['x'][_0x39f955(0x4ba)],this[_0x39f955(0x6fb)]['wrapV']=_0x6f31['x'][_0x39f955(0x402)],this[_0x39f955(0x99b)][_0x39f955(0x662)]=this[_0x39f955(0x6fb)]),this[_0x39f955(0x4c4)](this[_0x39f955(0x32f)]));}get[_0x489158(0x174)](){return this['_mesh'];}get[_0x489158(0x928)](){var _0x3d4840=_0x489158;return this['_material'][_0x3d4840(0x928)];}set[_0x489158(0x928)](_0x5a5117){var _0x294209=_0x489158;this['_material'][_0x294209(0x928)]=_0x5a5117;}get[_0x489158(0x4de)](){var _0x3e72e3=_0x489158;return this[_0x3e72e3(0x32f)];}set[_0x489158(0x4de)](_0x5520e9){var _0x144b01=_0x489158;this[_0x144b01(0x32f)]!==_0x5520e9&&this[_0x144b01(0x4c4)](_0x5520e9);}get[_0x489158(0x44d)](){var _0x2f8930=_0x489158;return this[_0x2f8930(0x857)];}set[_0x489158(0x44d)](_0x2c0fdc){var _0x28b491=_0x489158;this[_0x28b491(0x857)]=_0x2c0fdc,this[_0x28b491(0x91e)][_0x28b491(0xb8a)](_0x2c0fdc),this[_0x28b491(0x4c4)](this[_0x28b491(0x32f)]);}set[_0x489158(0xbf7)](_0x4f7493){var _0x3732be=_0x489158;this[_0x3732be(0xb7a)]=_0x4f7493,this[_0x3732be(0x4c4)](this[_0x3732be(0x32f)]);}get[_0x489158(0xbf7)](){var _0x1bdcf2=_0x489158;return this[_0x1bdcf2(0xb7a)];}get[_0x489158(0xba9)](){var _0xe563b9=_0x489158;return this[_0xe563b9(0x99b)];}['_changeTextureMode'](_0x3020be){var _0x4a0510=_0x489158;switch(this[_0x4a0510(0x789)]['onBeforeCameraRenderObservable'][_0x4a0510(0xa7e)](this[_0x4a0510(0xa42)]),this['_textureMode']=_0x3020be,this['_texture'][_0x4a0510(0x3a4)]=0x1,this[_0x4a0510(0x6fb)][_0x4a0510(0x630)]=0x1,this[_0x4a0510(0x6fb)]['uOffset']=0x0,this['_texture'][_0x4a0510(0xa37)]=0x0,this['_texture'][_0x4a0510(0x29a)]=0x0,_0x3020be){case _0x337b10[_0x4a0510(0x502)]:this[_0x4a0510(0x857)]&&(this['_texture'][_0x4a0510(0x3a4)]=0x2,this['_texture'][_0x4a0510(0xc48)]=-0x1);break;case _0x337b10[_0x4a0510(0xc29)]:{this[_0x4a0510(0x6fb)]['uScale']=this[_0x4a0510(0x857)]?0.99999:0.5;const _0x17b5ab=this[_0x4a0510(0x857)]?0x0:0.5,_0x57cbb4=this[_0x4a0510(0x857)]?-0.5:0x0;this['_onBeforeCameraRenderObserver']=this['_scene'][_0x4a0510(0x275)]['add'](_0x3f5121=>{var _0x33fbb1=_0x4a0510;let _0x11740f=_0x3f5121['isRightCamera'];(_0x11740f=this[_0x33fbb1(0xb7a)]?!_0x11740f:_0x11740f)?this['_texture'][_0x33fbb1(0xc48)]=_0x17b5ab:this[_0x33fbb1(0x6fb)][_0x33fbb1(0xc48)]=_0x57cbb4;});break;}case _0x337b10[_0x4a0510(0x4da)]:this[_0x4a0510(0x6fb)][_0x4a0510(0x630)]=this[_0x4a0510(0x857)]?0.99999:0.5,this['_onBeforeCameraRenderObserver']=this[_0x4a0510(0x789)][_0x4a0510(0x275)][_0x4a0510(0x8d3)](_0x5ddbb8=>{var _0x33b9d5=_0x4a0510;let _0x42e873=_0x5ddbb8[_0x33b9d5(0x9f3)];this[_0x33b9d5(0xb7a)]&&(_0x42e873=!_0x42e873),this[_0x33b9d5(0x6fb)][_0x33b9d5(0xa37)]=_0x42e873?0.5:0x0;});}}['dispose'](_0x1944ae,_0x87180e=!0x1){var _0x1f068a=_0x489158;this[_0x1f068a(0x6fb)][_0x1f068a(0xb4b)](),this[_0x1f068a(0xc10)][_0x1f068a(0xb4b)](),this[_0x1f068a(0x99b)][_0x1f068a(0xb4b)](),this[_0x1f068a(0x789)][_0x1f068a(0x275)][_0x1f068a(0xa7e)](this[_0x1f068a(0xa42)]),this['onLoadErrorObservable'][_0x1f068a(0xa3e)](),this[_0x1f068a(0xac4)][_0x1f068a(0xa3e)](),super[_0x1f068a(0xb4b)](_0x1944ae,_0x87180e);}}_0x337b10[_0x489158(0x502)]=0x0,_0x337b10[_0x489158(0x4da)]=0x1,_0x337b10['MODE_SIDEBYSIDE']=0x2;},0xf50e:(_0x32fce8,_0x351fe6,_0x33bff7)=>{var _0x441731=a7_0x3304fb;_0x33bff7['d'](_0x351fe6,{'$':()=>_0x447430});var _0x44e895=_0x33bff7(0x9390),_0x3a5275=_0x33bff7(0x8cbf),_0x38e0ef=_0x33bff7(0xfcd4),_0x32dd26=_0x33bff7(0xd53f),_0x1126cb=_0x33bff7(0x1610),_0xab06ba=_0x33bff7(0x166fc),_0x18b201=_0x33bff7(0xce2f),_0x1c98a7=_0x33bff7(0x37c9),_0x1de39a=_0x33bff7(0x5a3f),_0x3b1d40=_0x33bff7(0x11096);class _0x399aaa{constructor(){var _0x5def32=a7_0x4135;this[_0x5def32(0x7ee)]=!0x1,this['_doubleClick']=!0x1,this[_0x5def32(0xcc6)]=!0x1,this['_ignore']=!0x1;}get[_0x441731(0x351)](){return this['_singleClick'];}get[_0x441731(0x813)](){var _0x533341=_0x441731;return this[_0x533341(0xa3d)];}get['hasSwiped'](){var _0x2b1845=_0x441731;return this[_0x2b1845(0xcc6)];}get[_0x441731(0x771)](){var _0xb245f3=_0x441731;return this[_0xb245f3(0x496)];}set[_0x441731(0x351)](_0x1b0eaf){var _0x40618f=_0x441731;this[_0x40618f(0x7ee)]=_0x1b0eaf;}set['doubleClick'](_0x2db9ea){var _0x22007e=_0x441731;this[_0x22007e(0xa3d)]=_0x2db9ea;}set['hasSwiped'](_0x1f69d3){var _0x591ef3=_0x441731;this[_0x591ef3(0xcc6)]=_0x1f69d3;}set[_0x441731(0x771)](_0x18c69b){this['_ignore']=_0x18c69b;}}class _0x447430{constructor(_0x1885b5){var _0x146152=_0x441731;this[_0x146152(0x7b4)]=!0x1,this[_0x146152(0x4f2)]=!0x1,this['_currentPickResult']=null,this[_0x146152(0xa55)]=null,this[_0x146152(0x6b7)]=0x0,this[_0x146152(0x1cc)]=!0x1,this['_isSwiping']=!0x1,this['_swipeButtonPressed']=-0x1,this[_0x146152(0x58d)]=!0x1,this[_0x146152(0x8bf)]=!0x1,this['_pointerX']=0x0,this[_0x146152(0x656)]=0x0,this[_0x146152(0x8df)]=new _0x32dd26['FM'](0x0,0x0),this[_0x146152(0x5cc)]=new _0x32dd26['FM'](0x0,0x0),this[_0x146152(0x9f1)]=0x0,this[_0x146152(0x186)]=0x0,this['_pointerCaptures']={},this[_0x146152(0x1c3)]={},this[_0x146152(0xb38)]=null,this[_0x146152(0x3fe)]=0x0,this[_0x146152(0x493)]=[null,null,null,null,null],this[_0x146152(0x595)]=null,this[_0x146152(0x789)]=_0x1885b5||_0x3b1d40['l']['LastCreatedScene'],this[_0x146152(0x789)];}get[_0x441731(0x298)](){var _0x4ae82e=_0x441731;return this[_0x4ae82e(0xb38)]&&(this[_0x4ae82e(0xb38)][_0x4ae82e(0x2a8)](),this[_0x4ae82e(0xb38)]=null),this['_pointerOverMesh'];}['getMeshUnderPointerByPointerId'](_0x1459b7){var _0x3a710c=_0x441731;return this[_0x3a710c(0x1c3)][_0x1459b7]||null;}get['unTranslatedPointer'](){var _0x6c5110=_0x441731;return new _0x32dd26['FM'](this[_0x6c5110(0x2c5)],this[_0x6c5110(0x6e5)]);}get[_0x441731(0x779)](){var _0x38385b=_0x441731;return this[_0x38385b(0x33b)];}set[_0x441731(0x779)](_0x1aaecb){var _0x33e5d4=_0x441731;this[_0x33e5d4(0x33b)]=_0x1aaecb;}get[_0x441731(0x6fc)](){var _0xbc8ef7=_0x441731;return this[_0xbc8ef7(0x656)];}set[_0x441731(0x6fc)](_0x4ee530){this['_pointerY']=_0x4ee530;}[_0x441731(0x42e)](_0x24ae3a){var _0x435672=_0x441731,_0x2df621=this[_0x435672(0x789)][_0x435672(0xc8e)]()[_0x435672(0xa0e)]();_0x2df621&&(this[_0x435672(0x33b)]=_0x24ae3a['clientX']-_0x2df621[_0x435672(0x9a3)],this[_0x435672(0x656)]=_0x24ae3a['clientY']-_0x2df621[_0x435672(0x81e)],this[_0x435672(0x2c5)]=this['_pointerX'],this['_unTranslatedPointerY']=this[_0x435672(0x656)]);}[_0x441731(0x18f)](_0x3849c1,_0x12bd8f){var _0x5cf70c=_0x441731;const _0x3c94f0=this[_0x5cf70c(0x789)],_0x4516f3=_0x3c94f0[_0x5cf70c(0xc8e)](),_0xdcde46=_0x4516f3['getInputElement']();_0xdcde46&&(_0xdcde46[_0x5cf70c(0xab1)]=_0x4516f3[_0x5cf70c(0x2ba)],_0x3c94f0['doNotHandleCursors']||(_0xdcde46[_0x5cf70c(0xa18)][_0x5cf70c(0xabc)]=_0x3c94f0['defaultCursor'])),this['_setCursorAndPointerOverMesh'](_0x3849c1,_0x12bd8f,_0x3c94f0);for(const _0x5f4da8 of _0x3c94f0[_0x5cf70c(0x1d6)]){var _0x222989=!(null==_0x3849c1||!_0x3849c1[_0x5cf70c(0x5a7)]);_0x3849c1=_0x5f4da8[_0x5cf70c(0x579)](this['_unTranslatedPointerX'],this['_unTranslatedPointerY'],_0x3849c1,_0x222989,_0xdcde46);}var _0x2e3fd9=_0x12bd8f[_0x5cf70c(0x7a0)]>=_0x1c98a7['Fz'][_0x5cf70c(0xb28)]&&_0x12bd8f[_0x5cf70c(0x7a0)]<=_0x1c98a7['Fz'][_0x5cf70c(0x1cf)]?_0x44e895['kD']['POINTERWHEEL']:_0x44e895['kD'][_0x5cf70c(0x8d1)];_0x3c94f0[_0x5cf70c(0xbc1)]&&(_0x3849c1=_0x3849c1||this[_0x5cf70c(0x8ee)](_0x12bd8f),_0x3c94f0['onPointerMove'](_0x12bd8f,_0x3849c1,_0x2e3fd9));let _0x120679;_0x3849c1?(_0x120679=new _0x44e895['R5'](_0x2e3fd9,_0x12bd8f,_0x3849c1),this[_0x5cf70c(0x58a)](_0x3849c1,_0x12bd8f)):(_0x120679=new _0x44e895['R5'](_0x2e3fd9,_0x12bd8f,null,this),this[_0x5cf70c(0xb38)]=_0x120679),_0x3c94f0[_0x5cf70c(0xc3d)]['hasObservers']()&&_0x3c94f0[_0x5cf70c(0xc3d)]['notifyObservers'](_0x120679,_0x2e3fd9);}[_0x441731(0x58a)](_0x664936,_0x4dc202){var _0x29198b=_0x441731;const _0x5a04b1=this[_0x29198b(0x789)];_0x664936&&_0x5a04b1[_0x29198b(0x74b)]&&(_0x664936[_0x29198b(0x92c)]||(_0x664936[_0x29198b(0x92c)]=_0x5a04b1[_0x29198b(0x959)](_0x4dc202[_0x29198b(0xa1e)],_0x4dc202[_0x29198b(0x4eb)],_0x32dd26['y3'][_0x29198b(0x87d)](),_0x5a04b1[_0x29198b(0x112)])));}[_0x441731(0x54d)](_0x21b65a,_0xea9e25){var _0x2ad99a=_0x441731;return this['_cameraObserverCount']++,this[_0x2ad99a(0x789)][_0x2ad99a(0xc3d)]['add'](_0x21b65a,_0xea9e25);}[_0x441731(0x84c)](_0x465ddf){var _0x264e66=_0x441731;return this[_0x264e66(0x3fe)]--,this[_0x264e66(0x789)][_0x264e66(0xc3d)][_0x264e66(0xa7e)](_0x465ddf);}[_0x441731(0x34c)](){var _0xfe940b=_0x441731;return!!(this[_0xfe940b(0x789)][_0xfe940b(0xc3d)]['observers'][_0xfe940b(0x86f)]>this[_0xfe940b(0x3fe)]||this[_0xfe940b(0x789)]['onPointerPick']);}[_0x441731(0x21d)](_0x1ac8a0,_0x12fbd2,_0x283b0f){var _0x2f7879=_0x441731;const _0x1cdd86=this['_scene'],_0x39928c=new _0x44e895['FV'](_0x283b0f,_0x12fbd2,this['_unTranslatedPointerX'],this[_0x2f7879(0x6e5)]);return _0x1ac8a0&&(_0x39928c[_0x2f7879(0xbe2)]=_0x1ac8a0,_0x39928c['ray']=_0x1ac8a0['ray'],_0x1ac8a0['originMesh']&&(_0x39928c['nearInteractionPickingInfo']=_0x1ac8a0)),_0x1cdd86[_0x2f7879(0xbe6)][_0x2f7879(0x94c)](_0x39928c,_0x283b0f),!!_0x39928c[_0x2f7879(0x37b)];}[_0x441731(0x8ee)](_0x107c63){var _0x64a555=_0x441731;const _0x52108c=this[_0x64a555(0x789)];var _0x3dd9b5=_0x52108c[_0x64a555(0x945)](this[_0x64a555(0x2c5)],this[_0x64a555(0x6e5)],_0x52108c[_0x64a555(0x62d)],!0x1,_0x52108c[_0x64a555(0x11c)],_0x52108c['pointerMoveTrianglePredicate']);return this['_setCursorAndPointerOverMesh'](_0x3dd9b5,_0x107c63,_0x52108c),_0x3dd9b5;}[_0x441731(0xca8)](_0x4a6a67,_0x34968f,_0x131031){var _0x2e4902=_0x441731;const _0x2fe826=_0x131031['getEngine'](),_0x212a4b=_0x2fe826[_0x2e4902(0x5cf)]();var _0x196415;null!=_0x4a6a67&&_0x4a6a67[_0x2e4902(0x5a7)]?(this[_0x2e4902(0x3ba)](_0x4a6a67[_0x2e4902(0x5a7)],_0x34968f[_0x2e4902(0x7f7)],_0x4a6a67,_0x34968f),!_0x131031[_0x2e4902(0x12a)]&&_0x212a4b&&this[_0x2e4902(0x628)]&&(_0x196415=this['_pointerOverMesh']['_getActionManagerForTrigger']())&&_0x196415['hasPointerTriggers']&&(_0x212a4b[_0x2e4902(0xa18)][_0x2e4902(0xabc)]=_0x196415['hoverCursor']||_0x131031[_0x2e4902(0x5f0)])):this[_0x2e4902(0x3ba)](null,_0x34968f[_0x2e4902(0x7f7)],_0x4a6a67,_0x34968f);}[_0x441731(0x25a)](_0x4a4eeb,_0x4f34b4){var _0x12e502=_0x441731;const _0x66f45f=new PointerEvent(_0x12e502(0x3af),_0x4f34b4);_0x66f45f[_0x12e502(0x7a0)]=_0x1c98a7['Fz']['Move'],this[_0x12e502(0x21d)](_0x4a4eeb,_0x66f45f,_0x44e895['kD'][_0x12e502(0x8d1)])||this[_0x12e502(0x18f)](_0x4a4eeb,_0x66f45f);}['simulatePointerDown'](_0x1f8306,_0x341dd5){var _0x3a5c80=_0x441731;const _0x336b68=new PointerEvent('pointerdown',_0x341dd5);_0x336b68[_0x3a5c80(0x7a0)]=_0x336b68[_0x3a5c80(0x1bd)]+0x2,this[_0x3a5c80(0x21d)](_0x1f8306,_0x336b68,_0x44e895['kD'][_0x3a5c80(0x9a0)])||this['_processPointerDown'](_0x1f8306,_0x336b68);}[_0x441731(0x38a)](_0x50accc,_0x84cf05){var _0x5093ef=_0x441731;const _0x243d2a=this['_scene'];if(null!=_0x50accc&&_0x50accc[_0x5093ef(0x5a7)]){this[_0x5093ef(0x32a)]=_0x50accc[_0x5093ef(0x5a7)];const _0x5a46d9=_0x50accc[_0x5093ef(0x5a7)]['_getActionManagerForTrigger']();if(_0x5a46d9){if(_0x5a46d9[_0x5093ef(0x241)])switch(_0x5a46d9['processTrigger'](_0x1126cb['g'][_0x5093ef(0x401)],_0xab06ba['V'][_0x5093ef(0x790)](_0x50accc[_0x5093ef(0x5a7)],_0x84cf05)),_0x84cf05[_0x5093ef(0x1bd)]){case 0x0:_0x5a46d9[_0x5093ef(0x801)](_0x1126cb['g']['ACTION_OnLeftPickTrigger'],_0xab06ba['V'][_0x5093ef(0x790)](_0x50accc['pickedMesh'],_0x84cf05));break;case 0x1:_0x5a46d9[_0x5093ef(0x801)](_0x1126cb['g'][_0x5093ef(0x236)],_0xab06ba['V']['CreateNew'](_0x50accc[_0x5093ef(0x5a7)],_0x84cf05));break;case 0x2:_0x5a46d9[_0x5093ef(0x801)](_0x1126cb['g']['ACTION_OnRightPickTrigger'],_0xab06ba['V']['CreateNew'](_0x50accc[_0x5093ef(0x5a7)],_0x84cf05));}_0x5a46d9[_0x5093ef(0x60f)](_0x1126cb['g'][_0x5093ef(0x308)])&&window['setTimeout'](()=>{var _0x2743b8=_0x5093ef,_0x4a082a=_0x243d2a[_0x2743b8(0x945)](this[_0x2743b8(0x2c5)],this['_unTranslatedPointerY'],_0x249b87=>_0x249b87[_0x2743b8(0xa78)]&&_0x249b87['isVisible']&&_0x249b87[_0x2743b8(0x3f1)]()&&_0x249b87['actionManager']&&_0x249b87[_0x2743b8(0x1f1)]['hasSpecificTrigger'](_0x1126cb['g']['ACTION_OnLongPressTrigger'])&&_0x249b87===this[_0x2743b8(0x32a)],!0x1,_0x243d2a['cameraToUseForPointers']);null!=_0x4a082a&&_0x4a082a['pickedMesh']&&_0x5a46d9&&0x0!==this[_0x2743b8(0x6b7)]&&Date[_0x2743b8(0xa6b)]()-this['_startingPointerTime']>_0x447430[_0x2743b8(0x560)]&&!this[_0x2743b8(0x706)]()&&(this[_0x2743b8(0x9f1)]=0x0,_0x5a46d9['processTrigger'](_0x1126cb['g'][_0x2743b8(0x308)],_0xab06ba['V'][_0x2743b8(0x790)](_0x4a082a[_0x2743b8(0x5a7)],_0x84cf05)));},_0x447430[_0x5093ef(0x560)]);}}else{for(const _0x482d41 of _0x243d2a[_0x5093ef(0x3dc)])_0x50accc=_0x482d41['action'](this[_0x5093ef(0x2c5)],this['_unTranslatedPointerY'],_0x50accc,_0x84cf05,!0x1);}let _0x651003;var _0x262466=_0x44e895['kD'][_0x5093ef(0x9a0)];_0x50accc?(_0x243d2a[_0x5093ef(0x6c7)]&&_0x243d2a[_0x5093ef(0x6c7)](_0x84cf05,_0x50accc,_0x262466),_0x651003=new _0x44e895['R5'](_0x262466,_0x84cf05,_0x50accc),this[_0x5093ef(0x58a)](_0x50accc,_0x84cf05)):_0x651003=new _0x44e895['R5'](_0x262466,_0x84cf05,null,this),_0x243d2a[_0x5093ef(0xc3d)]['hasObservers']()&&_0x243d2a[_0x5093ef(0xc3d)][_0x5093ef(0x94c)](_0x651003,_0x262466);}[_0x441731(0x706)](){var _0x2dc76c=_0x441731;return this[_0x2dc76c(0xbbd)];}[_0x441731(0xa0f)](_0x283da0,_0x2bafce,_0x3ebeae){var _0x6a8cd2=_0x441731;const _0x35fb2a=new PointerEvent(_0x6a8cd2(0x88e),_0x2bafce),_0x597212=(_0x35fb2a[_0x6a8cd2(0x7a0)]=_0x1c98a7['Fz']['Move'],new _0x399aaa());_0x3ebeae?_0x597212[_0x6a8cd2(0x813)]=!0x0:_0x597212[_0x6a8cd2(0x351)]=!0x0,this[_0x6a8cd2(0x21d)](_0x283da0,_0x35fb2a,_0x44e895['kD'][_0x6a8cd2(0x1cd)])||this[_0x6a8cd2(0xaa3)](_0x283da0,_0x35fb2a,_0x597212);}['_processPointerUp'](_0x4e5caf,_0x44fd6c,_0x31ca75){var _0x494842=_0x441731;const _0x35bbf5=this['_scene'];if(null!=_0x4e5caf&&_0x4e5caf[_0x494842(0x5a7)]){this[_0x494842(0x594)]=_0x4e5caf[_0x494842(0x5a7)],this[_0x494842(0x32a)]===this['_pickedUpMesh']&&(_0x35bbf5['onPointerPick']&&_0x35bbf5['onPointerPick'](_0x44fd6c,_0x4e5caf),_0x31ca75[_0x494842(0x351)]&&!_0x31ca75[_0x494842(0x771)]&&_0x35bbf5['onPointerObservable'][_0x494842(0x2c8)]['length']>this['_cameraObserverCount']&&(_0x2d4da3=_0x44e895['kD'][_0x494842(0x608)],_0x4b7369=new _0x44e895['R5'](_0x2d4da3,_0x44fd6c,_0x4e5caf),this[_0x494842(0x58a)](_0x4e5caf,_0x44fd6c),_0x35bbf5[_0x494842(0xc3d)][_0x494842(0x94c)](_0x4b7369,_0x2d4da3)));const _0x200f97=_0x4e5caf[_0x494842(0x5a7)][_0x494842(0xb97)]();if(_0x200f97&&!_0x31ca75[_0x494842(0x771)]){_0x200f97[_0x494842(0x801)](_0x1126cb['g'][_0x494842(0x357)],_0xab06ba['V'][_0x494842(0x790)](_0x4e5caf[_0x494842(0x5a7)],_0x44fd6c,_0x4e5caf)),!_0x31ca75[_0x494842(0x974)]&&_0x31ca75[_0x494842(0x351)]&&_0x200f97['processTrigger'](_0x1126cb['g'][_0x494842(0x407)],_0xab06ba['V'][_0x494842(0x790)](_0x4e5caf['pickedMesh'],_0x44fd6c,_0x4e5caf));const _0x1cc22e=_0x4e5caf[_0x494842(0x5a7)][_0x494842(0xb97)](_0x1126cb['g'][_0x494842(0x347)]);_0x31ca75[_0x494842(0x813)]&&_0x1cc22e&&_0x1cc22e[_0x494842(0x801)](_0x1126cb['g'][_0x494842(0x347)],_0xab06ba['V']['CreateNew'](_0x4e5caf[_0x494842(0x5a7)],_0x44fd6c,_0x4e5caf));}}else{if(!_0x31ca75['ignore']){for(const _0x158e72 of _0x35bbf5['_pointerUpStage'])_0x4e5caf=_0x158e72[_0x494842(0x579)](this['_unTranslatedPointerX'],this['_unTranslatedPointerY'],_0x4e5caf,_0x44fd6c,_0x31ca75[_0x494842(0x813)]);}}if(this[_0x494842(0x32a)]&&this['_pickedDownMesh']!==this[_0x494842(0x594)]){const _0x42355a=this['_pickedDownMesh'][_0x494842(0xb97)](_0x1126cb['g']['ACTION_OnPickOutTrigger']);_0x42355a&&_0x42355a[_0x494842(0x801)](_0x1126cb['g'][_0x494842(0x21e)],_0xab06ba['V'][_0x494842(0x790)](this[_0x494842(0x32a)],_0x44fd6c));}if(!_0x31ca75['ignore']){var _0x2d4da3,_0x4b7369=new _0x44e895['R5'](_0x44e895['kD'][_0x494842(0x1cd)],_0x44fd6c,_0x4e5caf);if(this[_0x494842(0x58a)](_0x4e5caf,_0x44fd6c),_0x35bbf5[_0x494842(0xc3d)][_0x494842(0x94c)](_0x4b7369,_0x44e895['kD'][_0x494842(0x1cd)]),_0x35bbf5[_0x494842(0x575)]&&_0x35bbf5[_0x494842(0x575)](_0x44fd6c,_0x4e5caf,_0x44e895['kD'][_0x494842(0x1cd)]),!_0x31ca75[_0x494842(0x974)]&&!this['_skipPointerTap']&&!this[_0x494842(0x8bf)]){let _0xd9167c=0x0;_0x31ca75[_0x494842(0x351)]?_0xd9167c=_0x44e895['kD'][_0x494842(0xce3)]:_0x31ca75[_0x494842(0x813)]&&(_0xd9167c=_0x44e895['kD']['POINTERDOUBLETAP']),_0xd9167c&&(_0x2d4da3=new _0x44e895['R5'](_0xd9167c,_0x44fd6c,_0x4e5caf),_0x35bbf5['onPointerObservable'][_0x494842(0xb0f)]()&&_0x35bbf5[_0x494842(0xc3d)][_0x494842(0x848)](_0xd9167c)&&_0x35bbf5['onPointerObservable'][_0x494842(0x94c)](_0x2d4da3,_0xd9167c));}}}['isPointerCaptured'](_0x1f7ab9=0x0){return this['_pointerCaptures'][_0x1f7ab9];}['attachControl'](_0x5bfe98=!0x0,_0x14b645=!0x0,_0x29c888=!0x0,_0x424f71=null){var _0xbbcc92=_0x441731;const _0x5dfbbf=this[_0xbbcc92(0x789)],_0x5c3a6c=_0x5dfbbf[_0xbbcc92(0xc8e)]();_0x424f71=_0x424f71||_0x5c3a6c['getInputElement'](),this['_alreadyAttached']&&this[_0xbbcc92(0xa12)](),_0x424f71&&(this[_0xbbcc92(0x5d2)]=_0x424f71),this[_0xbbcc92(0x595)]=new _0x1de39a['U'](_0x5c3a6c),this[_0xbbcc92(0x8c4)]=_0x47afa5=>{var _0x1f15fd=_0xbbcc92;if(!this[_0x1f15fd(0x4f2)]){const _0x5bb66d=_0x5dfbbf[_0x1f15fd(0x4d7)]||0x0===_0x5dfbbf[_0x1f15fd(0xab3)]&&!this['_checkForPicking']()&&!_0x5dfbbf[_0x1f15fd(0x575)]?null:_0x5dfbbf[_0x1f15fd(0x945)](this[_0x1f15fd(0x2c5)],this[_0x1f15fd(0x6e5)],_0x5dfbbf['pointerUpPredicate'],!0x1,_0x5dfbbf[_0x1f15fd(0x11c)]);(this[_0x1f15fd(0xa45)]=_0x5bb66d)&&(_0x47afa5=_0x5bb66d['hit']&&_0x5bb66d[_0x1f15fd(0x5a7)]?_0x5bb66d[_0x1f15fd(0x5a7)][_0x1f15fd(0xb97)]():null),this[_0x1f15fd(0x4f2)]=!0x0;}return _0x47afa5;},this[_0xbbcc92(0x5f2)]=(_0x59ea18,_0x4d1504,_0x5314b6)=>{var _0xd4f815=_0xbbcc92,_0x4ae390;(Date[_0xd4f815(0xa6b)]()-this['_previousStartingPointerTime']>_0x447430[_0xd4f815(0xa16)]&&!this[_0xd4f815(0x1cc)]||_0x59ea18!==this['_previousButtonPressed'])&&(this[_0xd4f815(0x1cc)]=!0x1,_0x4d1504[_0xd4f815(0x351)]=!0x0,_0x4d1504[_0xd4f815(0x771)]=!0x1,this['_delayedClicks'][_0x59ea18]&&(_0x4d1504=this[_0xd4f815(0x493)][_0x59ea18][_0xd4f815(0x64d)],_0x4ae390=_0x44e895['kD'][_0xd4f815(0xce3)],_0x4d1504=new _0x44e895['R5'](_0x4ae390,_0x4d1504,this[_0xd4f815(0xa45)]),_0x5dfbbf[_0xd4f815(0xc3d)][_0xd4f815(0xb0f)]()&&_0x5dfbbf[_0xd4f815(0xc3d)]['hasSpecificMask'](_0x4ae390)&&_0x5dfbbf[_0xd4f815(0xc3d)][_0xd4f815(0x94c)](_0x4d1504,_0x4ae390),this['_delayedClicks'][_0x59ea18]=null));},this[_0xbbcc92(0x755)]=(_0x445a31,_0x2c0d34,_0x280952,_0x399c6e)=>{var _0x575136=_0xbbcc92;const _0x29109b=new _0x399aaa();let _0x1084fd=this[_0x575136(0xa45)]=null,_0x1eb4aa=_0x445a31[_0x575136(0x848)](_0x44e895['kD'][_0x575136(0x608)])||_0x2c0d34[_0x575136(0x848)](_0x44e895['kD'][_0x575136(0x608)])||_0x445a31[_0x575136(0x848)](_0x44e895['kD'][_0x575136(0xce3)])||_0x2c0d34['hasSpecificMask'](_0x44e895['kD']['POINTERTAP'])||_0x445a31['hasSpecificMask'](_0x44e895['kD'][_0x575136(0x5d7)])||_0x2c0d34[_0x575136(0x848)](_0x44e895['kD'][_0x575136(0x5d7)]),_0x9b9c5b=!0x1;if(_0x1eb4aa=!_0x1eb4aa&&_0x3a5275['O']&&(_0x1084fd=this[_0x575136(0x8c4)](_0x1084fd,_0x29109b))?_0x1084fd['hasPickTriggers']:_0x1eb4aa){var _0x1dbca3=_0x280952['button'];if(_0x29109b[_0x575136(0x974)]=this['_isPointerSwiping'](),!_0x29109b[_0x575136(0x974)]){let _0x4cc631=!_0x447430[_0x575136(0x4e0)],_0xaa196b=(_0x4cc631||(_0x4cc631=!_0x445a31[_0x575136(0x848)](_0x44e895['kD'][_0x575136(0x5d7)])&&!_0x2c0d34['hasSpecificMask'](_0x44e895['kD'][_0x575136(0x5d7)]))&&!_0x3a5275['O']['HasSpecificTrigger'](_0x1126cb['g'][_0x575136(0x347)])&&(_0x1084fd=this[_0x575136(0x8c4)](_0x1084fd,_0x29109b))&&(_0x4cc631=!_0x1084fd[_0x575136(0x60f)](_0x1126cb['g'][_0x575136(0x347)])),_0x4cc631?(Date[_0x575136(0xa6b)]()-this[_0x575136(0x186)]>_0x447430[_0x575136(0xa16)]||_0x1dbca3!==this['_previousButtonPressed'])&&(_0x29109b[_0x575136(0x351)]=!0x0,_0x399c6e(_0x29109b,this[_0x575136(0xa45)]),_0x9b9c5b=!0x0):(_0x280952={'evt':_0x280952,'clickInfo':_0x29109b,'timeoutId':window[_0x575136(0x29b)](this[_0x575136(0x5f2)][_0x575136(0x9ee)](this,_0x1dbca3,_0x29109b,_0x399c6e),_0x447430[_0x575136(0xa16)])},this[_0x575136(0x493)][_0x1dbca3]=_0x280952),_0x445a31[_0x575136(0x848)](_0x44e895['kD']['POINTERDOUBLETAP'])||_0x2c0d34['hasSpecificMask'](_0x44e895['kD'][_0x575136(0x5d7)]));(_0xaa196b=!_0xaa196b&&_0x3a5275['O'][_0x575136(0xa59)](_0x1126cb['g'][_0x575136(0x347)])&&(_0x1084fd=this[_0x575136(0x8c4)](_0x1084fd,_0x29109b))?_0x1084fd[_0x575136(0x60f)](_0x1126cb['g'][_0x575136(0x347)]):_0xaa196b)&&(_0x1dbca3===this[_0x575136(0xc2a)]&&Date[_0x575136(0xa6b)]()-this[_0x575136(0x186)]<_0x447430[_0x575136(0xa16)]&&!this[_0x575136(0x1cc)]?(_0x29109b[_0x575136(0x974)]||this['_isPointerSwiping']()?(this['_doubleClickOccured']=!0x1,this['_previousStartingPointerTime']=this[_0x575136(0x9f1)],this['_previousStartingPointerPosition']['x']=this[_0x575136(0x8df)]['x'],this[_0x575136(0x5cc)]['y']=this[_0x575136(0x8df)]['y'],this['_previousButtonPressed']=_0x1dbca3,_0x447430[_0x575136(0x4e0)]?(this['_delayedClicks'][_0x1dbca3]&&(clearTimeout(null==(_0x280952=this[_0x575136(0x493)][_0x1dbca3])?void 0x0:_0x280952['timeoutId']),this[_0x575136(0x493)][_0x1dbca3]=null),_0x399c6e(_0x29109b,this[_0x575136(0xa55)])):_0x399c6e(_0x29109b,this[_0x575136(0xa45)])):(this[_0x575136(0x186)]=0x0,this[_0x575136(0x1cc)]=!0x0,_0x29109b[_0x575136(0x813)]=!0x0,_0x29109b[_0x575136(0x771)]=!0x1,_0x447430[_0x575136(0x4e0)]&&this['_delayedClicks'][_0x1dbca3]&&(clearTimeout(null==(_0x445a31=this['_delayedClicks'][_0x1dbca3])?void 0x0:_0x445a31[_0x575136(0xa47)]),this[_0x575136(0x493)][_0x1dbca3]=null),_0x399c6e(_0x29109b,this[_0x575136(0xa45)])),_0x9b9c5b=!0x0):(this[_0x575136(0x1cc)]=!0x1,this[_0x575136(0x186)]=this[_0x575136(0x9f1)],this[_0x575136(0x5cc)]['x']=this[_0x575136(0x8df)]['x'],this['_previousStartingPointerPosition']['y']=this[_0x575136(0x8df)]['y'],this[_0x575136(0xc2a)]=_0x1dbca3));}}_0x9b9c5b||_0x399c6e(_0x29109b,this[_0x575136(0xa45)]);},this[_0xbbcc92(0x62b)]=_0x3ed343=>{var _0x3f12bd=_0xbbcc92,_0x462e6c;this['_updatePointerPosition'](_0x3ed343),this[_0x3f12bd(0xbbd)]||-0x1===this[_0x3f12bd(0x7c3)]||(this['_isSwiping']=Math[_0x3f12bd(0x9c3)](this[_0x3f12bd(0x8df)]['x']-this['_pointerX'])>_0x447430[_0x3f12bd(0x9b1)]||Math[_0x3f12bd(0x9c3)](this[_0x3f12bd(0x8df)]['y']-this[_0x3f12bd(0x656)])>_0x447430[_0x3f12bd(0x9b1)]),_0x5c3a6c[_0x3f12bd(0xbd4)]&&_0x5c3a6c['_verifyPointerLock'](),this[_0x3f12bd(0x21d)](null,_0x3ed343,_0x3ed343[_0x3f12bd(0x7a0)]>=_0x1c98a7['Fz'][_0x3f12bd(0xb28)]&&_0x3ed343[_0x3f12bd(0x7a0)]<=_0x1c98a7['Fz'][_0x3f12bd(0x1cf)]?_0x44e895['kD'][_0x3f12bd(0x6c8)]:_0x44e895['kD'][_0x3f12bd(0x8d1)])||(_0x5dfbbf['cameraToUseForPointers']||_0x5dfbbf[_0x3f12bd(0x112)])&&(_0x5dfbbf[_0x3f12bd(0x254)]?this[_0x3f12bd(0x18f)](new _0x38e0ef['p'](),_0x3ed343):(_0x5dfbbf[_0x3f12bd(0x62d)]||(_0x5dfbbf[_0x3f12bd(0x62d)]=_0x97fec1=>_0x97fec1['isPickable']&&_0x97fec1[_0x3f12bd(0x359)]&&_0x97fec1['isReady']()&&_0x97fec1[_0x3f12bd(0x185)]()&&(_0x97fec1[_0x3f12bd(0x884)]||_0x5dfbbf[_0x3f12bd(0xa04)]||null!==_0x97fec1[_0x3f12bd(0xb97)]())&&(!_0x5dfbbf['cameraToUseForPointers']||0x0!=(_0x5dfbbf[_0x3f12bd(0x11c)]['layerMask']&_0x97fec1[_0x3f12bd(0x8cf)]))),_0x462e6c=0x0<_0x5dfbbf['_registeredActions']?this[_0x3f12bd(0x8ee)](_0x3ed343):null,this[_0x3f12bd(0x18f)](_0x462e6c,_0x3ed343)));},this[_0xbbcc92(0xac6)]=_0xee961b=>{var _0x12d58c=_0xbbcc92,_0x16f881;if(this['_totalPointersPressed']++,this['_pickedDownMesh']=null,this['_meshPickProceed']=!0x1,_0x447430['ExclusiveDoubleClickMode']){for(let _0x5db522=0x0;_0x5db522<this[_0x12d58c(0x493)]['length'];_0x5db522++)if(this['_delayedClicks'][_0x5db522]){if(_0xee961b['button']===_0x5db522)clearTimeout(null==(_0x57e21a=this['_delayedClicks'][_0x5db522])?void 0x0:_0x57e21a['timeoutId']);else{const _0x4b7c17=this[_0x12d58c(0x493)][_0x5db522][_0x12d58c(0xbe5)];this[_0x12d58c(0x1cc)]=!0x1,_0x4b7c17['singleClick']=!0x0,_0x4b7c17['ignore']=!0x1;var _0x57e21a=this[_0x12d58c(0x493)][_0x5db522][_0x12d58c(0x64d)],_0x51fefc=_0x44e895['kD'][_0x12d58c(0xce3)],_0x18d40d=new _0x44e895['R5'](_0x51fefc,_0x57e21a,this['_currentPickResult']);_0x5dfbbf[_0x12d58c(0xc3d)][_0x12d58c(0xb0f)]()&&_0x5dfbbf[_0x12d58c(0xc3d)][_0x12d58c(0x848)](_0x51fefc)&&_0x5dfbbf['onPointerObservable'][_0x12d58c(0x94c)](_0x18d40d,_0x51fefc),this[_0x12d58c(0x493)][_0x5db522]=null;}}}this[_0x12d58c(0x42e)](_0xee961b),-0x1===this[_0x12d58c(0x7c3)]&&(this['_swipeButtonPressed']=_0xee961b['button']),_0x5dfbbf['preventDefaultOnPointerDown']&&_0x424f71&&(_0xee961b[_0x12d58c(0x5ff)](),_0x424f71[_0x12d58c(0x6f3)]()),this[_0x12d58c(0x8df)]['x']=this[_0x12d58c(0x33b)],this[_0x12d58c(0x8df)]['y']=this[_0x12d58c(0x656)],this[_0x12d58c(0x9f1)]=Date[_0x12d58c(0xa6b)](),this[_0x12d58c(0x21d)](null,_0xee961b,_0x44e895['kD'][_0x12d58c(0x9a0)])||!_0x5dfbbf[_0x12d58c(0x11c)]&&!_0x5dfbbf[_0x12d58c(0x112)]||(this['_pointerCaptures'][_0xee961b[_0x12d58c(0x7f7)]]=!0x0,_0x5dfbbf[_0x12d58c(0x4e6)]||(_0x5dfbbf[_0x12d58c(0x4e6)]=_0x2a6e0f=>_0x2a6e0f[_0x12d58c(0xa78)]&&_0x2a6e0f[_0x12d58c(0x359)]&&_0x2a6e0f[_0x12d58c(0x3f1)]()&&_0x2a6e0f['isEnabled']()&&(!_0x5dfbbf[_0x12d58c(0x11c)]||0x0!=(_0x5dfbbf['cameraToUseForPointers'][_0x12d58c(0x8cf)]&_0x2a6e0f['layerMask']))),this[_0x12d58c(0x32a)]=null,_0x16f881=_0x5dfbbf[_0x12d58c(0x652)]||0x0===_0x5dfbbf[_0x12d58c(0xab3)]&&!this[_0x12d58c(0x34c)]()&&!_0x5dfbbf[_0x12d58c(0x6c7)]?new _0x38e0ef['p']():_0x5dfbbf[_0x12d58c(0x945)](this['_unTranslatedPointerX'],this[_0x12d58c(0x6e5)],_0x5dfbbf[_0x12d58c(0x4e6)],!0x1,_0x5dfbbf[_0x12d58c(0x11c)]),this[_0x12d58c(0x38a)](_0x16f881,_0xee961b));},this['_onPointerUp']=_0x4ac344=>{var _0xfc3c14=_0xbbcc92;0x0!==this['_totalPointersPressed']&&(this[_0xfc3c14(0x6b7)]--,this['_pickedUpMesh']=null,this[_0xfc3c14(0x4f2)]=!0x1,this[_0xfc3c14(0x42e)](_0x4ac344),_0x5dfbbf[_0xfc3c14(0x23b)]&&_0x424f71&&(_0x4ac344[_0xfc3c14(0x5ff)](),_0x424f71[_0xfc3c14(0x6f3)]()),this[_0xfc3c14(0x755)](_0x5dfbbf[_0xfc3c14(0xbe6)],_0x5dfbbf[_0xfc3c14(0xc3d)],_0x4ac344,(_0x45c20b,_0x197843)=>{var _0x4f36b2=_0xfc3c14;if(_0x5dfbbf['onPrePointerObservable'][_0x4f36b2(0xb0f)]()&&(this[_0x4f36b2(0x58d)]=!0x1,!_0x45c20b['ignore'])){if(this[_0x4f36b2(0x21d)](null,_0x4ac344,_0x44e895['kD'][_0x4f36b2(0x1cd)]))return void(this['_swipeButtonPressed']===_0x4ac344['button']&&(this[_0x4f36b2(0xbbd)]=!0x1,this[_0x4f36b2(0x7c3)]=-0x1));_0x45c20b['hasSwiped']||(_0x45c20b[_0x4f36b2(0x351)]&&_0x5dfbbf[_0x4f36b2(0xbe6)][_0x4f36b2(0x848)](_0x44e895['kD'][_0x4f36b2(0xce3)])&&this[_0x4f36b2(0x21d)](null,_0x4ac344,_0x44e895['kD']['POINTERTAP'])&&(this[_0x4f36b2(0x58d)]=!0x0),_0x45c20b[_0x4f36b2(0x813)]&&_0x5dfbbf[_0x4f36b2(0xbe6)][_0x4f36b2(0x848)](_0x44e895['kD'][_0x4f36b2(0x5d7)])&&this[_0x4f36b2(0x21d)](null,_0x4ac344,_0x44e895['kD'][_0x4f36b2(0x5d7)])&&(this[_0x4f36b2(0x58d)]=!0x0));}this[_0x4f36b2(0x1f7)][_0x4ac344[_0x4f36b2(0x7f7)]]?(0x0===_0x4ac344[_0x4f36b2(0x475)]&&(this[_0x4f36b2(0x1f7)][_0x4ac344[_0x4f36b2(0x7f7)]]=!0x1),(_0x5dfbbf[_0x4f36b2(0x11c)]||_0x5dfbbf[_0x4f36b2(0x112)])&&(_0x5dfbbf[_0x4f36b2(0x980)]||(_0x5dfbbf[_0x4f36b2(0x980)]=_0x28f1f7=>_0x28f1f7[_0x4f36b2(0xa78)]&&_0x28f1f7['isVisible']&&_0x28f1f7[_0x4f36b2(0x3f1)]()&&_0x28f1f7[_0x4f36b2(0x185)]()&&(!_0x5dfbbf[_0x4f36b2(0x11c)]||0x0!=(_0x5dfbbf[_0x4f36b2(0x11c)][_0x4f36b2(0x8cf)]&_0x28f1f7['layerMask']))),!this[_0x4f36b2(0x4f2)]&&(_0x3a5275['O']&&_0x3a5275['O'][_0x4f36b2(0xb4d)]||this[_0x4f36b2(0x34c)]()||_0x5dfbbf[_0x4f36b2(0x575)])&&this['_initActionManager'](null,_0x45c20b),_0x197843=_0x197843||this[_0x4f36b2(0xa45)],this[_0x4f36b2(0xaa3)](_0x197843,_0x4ac344,_0x45c20b),this[_0x4f36b2(0xa55)]=this[_0x4f36b2(0xa45)],this['_swipeButtonPressed']===_0x4ac344[_0x4f36b2(0x1bd)]&&(this[_0x4f36b2(0xbbd)]=!0x1,this[_0x4f36b2(0x7c3)]=-0x1))):this[_0x4f36b2(0x7c3)]===_0x4ac344['button']&&(this['_isSwiping']=!0x1,this[_0x4f36b2(0x7c3)]=-0x1);}));},this[_0xbbcc92(0x4e2)]=_0x1cb555=>{var _0xa14b86=_0xbbcc92,_0x2cc497=_0x18b201['OG'][_0xa14b86(0x4f7)];if(_0x5dfbbf[_0xa14b86(0x64f)]['hasObservers']()){var _0x4cc56a=new _0x18b201['WZ'](_0x2cc497,_0x1cb555);if(_0x5dfbbf[_0xa14b86(0x64f)][_0xa14b86(0x94c)](_0x4cc56a,_0x2cc497),_0x4cc56a[_0xa14b86(0x8af)])return;}_0x5dfbbf[_0xa14b86(0x5a3)][_0xa14b86(0xb0f)]()&&(_0x4cc56a=new _0x18b201['NG'](_0x2cc497,_0x1cb555),_0x5dfbbf[_0xa14b86(0x5a3)]['notifyObservers'](_0x4cc56a,_0x2cc497)),_0x5dfbbf['actionManager']&&_0x5dfbbf['actionManager'][_0xa14b86(0x801)](_0x1126cb['g']['ACTION_OnKeyDownTrigger'],_0xab06ba['V'][_0xa14b86(0x8a1)](_0x5dfbbf,_0x1cb555));},this[_0xbbcc92(0x52d)]=_0x22a8f8=>{var _0x5f445c=_0xbbcc92,_0x146c5b=_0x18b201['OG']['KEYUP'];if(_0x5dfbbf[_0x5f445c(0x64f)]['hasObservers']()){var _0x27d089=new _0x18b201['WZ'](_0x146c5b,_0x22a8f8);if(_0x5dfbbf[_0x5f445c(0x64f)][_0x5f445c(0x94c)](_0x27d089,_0x146c5b),_0x27d089[_0x5f445c(0x8af)])return;}_0x5dfbbf[_0x5f445c(0x5a3)][_0x5f445c(0xb0f)]()&&(_0x27d089=new _0x18b201['NG'](_0x146c5b,_0x22a8f8),_0x5dfbbf['onKeyboardObservable'][_0x5f445c(0x94c)](_0x27d089,_0x146c5b)),_0x5dfbbf[_0x5f445c(0x1f1)]&&_0x5dfbbf[_0x5f445c(0x1f1)][_0x5f445c(0x801)](_0x1126cb['g'][_0x5f445c(0x441)],_0xab06ba['V'][_0x5f445c(0x8a1)](_0x5dfbbf,_0x22a8f8));},this[_0xbbcc92(0x595)][_0xbbcc92(0x316)]['add'](_0x31b0ac=>{var _0x57dee9=_0xbbcc92;_0x31b0ac[_0x57dee9(0x138)]===_0x1c98a7['Yi'][_0x57dee9(0x348)]?_0x31b0ac[_0x57dee9(0x205)]['add'](_0x1a95fd=>{var _0x206173=_0x57dee9;_0x1a95fd[_0x206173(0x7a0)]===_0x1c98a7['Fz'][_0x206173(0x45c)]||_0x1a95fd[_0x206173(0x7a0)]===_0x1c98a7['Fz']['MiddleClick']||_0x1a95fd[_0x206173(0x7a0)]===_0x1c98a7['Fz'][_0x206173(0x19b)]||_0x1a95fd[_0x206173(0x7a0)]===_0x1c98a7['Fz']['BrowserBack']||_0x1a95fd[_0x206173(0x7a0)]===_0x1c98a7['Fz']['BrowserForward']?_0x14b645&&0x1===_0x31b0ac[_0x206173(0x635)](_0x1a95fd[_0x206173(0x7a0)])?this['_onPointerDown'](_0x1a95fd):_0x5bfe98&&0x0===_0x31b0ac['getInput'](_0x1a95fd[_0x206173(0x7a0)])&&this[_0x206173(0x24a)](_0x1a95fd):!_0x29c888||_0x1a95fd[_0x206173(0x7a0)]!==_0x1c98a7['Fz'][_0x206173(0x761)]&&_0x1a95fd[_0x206173(0x7a0)]!==_0x1c98a7['Fz'][_0x206173(0xb28)]&&_0x1a95fd[_0x206173(0x7a0)]!==_0x1c98a7['Fz'][_0x206173(0x2b8)]&&_0x1a95fd[_0x206173(0x7a0)]!==_0x1c98a7['Fz'][_0x206173(0x1cf)]||this[_0x206173(0x62b)](_0x1a95fd);}):_0x31b0ac[_0x57dee9(0x138)]===_0x1c98a7['Yi']['Touch']?_0x31b0ac[_0x57dee9(0x205)][_0x57dee9(0x8d3)](_0x4d91b9=>{var _0x23d1e7=_0x57dee9;_0x4d91b9[_0x23d1e7(0x7a0)]===_0x1c98a7['Fz']['LeftClick']&&(_0x14b645&&0x1===_0x31b0ac[_0x23d1e7(0x635)](_0x4d91b9[_0x23d1e7(0x7a0)])?(this[_0x23d1e7(0xac6)](_0x4d91b9),0x1<this['_totalPointersPressed']&&(this[_0x23d1e7(0x8bf)]=!0x0)):_0x5bfe98&&0x0===_0x31b0ac[_0x23d1e7(0x635)](_0x4d91b9[_0x23d1e7(0x7a0)])&&(this[_0x23d1e7(0x24a)](_0x4d91b9),0x0===this[_0x23d1e7(0x6b7)]&&(this[_0x23d1e7(0x8bf)]=!0x1))),_0x29c888&&_0x4d91b9[_0x23d1e7(0x7a0)]===_0x1c98a7['Fz']['Move']&&this[_0x23d1e7(0x62b)](_0x4d91b9);}):_0x31b0ac[_0x57dee9(0x138)]===_0x1c98a7['Yi'][_0x57dee9(0x97b)]&&_0x31b0ac[_0x57dee9(0x205)][_0x57dee9(0x8d3)](_0x1743f8=>{var _0x334d30=_0x57dee9;'keydown'===_0x1743f8[_0x334d30(0xb26)]?this['_onKeyDown'](_0x1743f8):_0x334d30(0x73e)===_0x1743f8['type']&&this[_0x334d30(0x52d)](_0x1743f8);});}),this[_0xbbcc92(0x7b4)]=!0x0;}[_0x441731(0xa12)](){var _0x48b790=_0x441731;this[_0x48b790(0x7b4)]&&(this[_0x48b790(0x595)]['dispose'](),this[_0x48b790(0x595)]=null,this[_0x48b790(0x5d2)]&&!this[_0x48b790(0x789)][_0x48b790(0x12a)]&&(this[_0x48b790(0x5d2)][_0x48b790(0xa18)][_0x48b790(0xabc)]=this[_0x48b790(0x789)]['defaultCursor']),this[_0x48b790(0x7b4)]=!0x1,this[_0x48b790(0x5d2)]=null);}[_0x441731(0x3ba)](_0xf45d20,_0x28bc5c=0x0,_0x1843ad,_0x129d7b){var _0x26589b=_0x441731;if(this[_0x26589b(0x1c3)][_0x28bc5c]!==_0xf45d20||_0xf45d20&&_0xf45d20[_0x26589b(0x68a)][_0x26589b(0xc0f)]){const _0x20c3e6=this['_meshUnderPointerId'][_0x28bc5c];let _0x225dc8;_0x20c3e6&&(_0x225dc8=_0x20c3e6[_0x26589b(0xb97)](_0x1126cb['g'][_0x26589b(0x4bd)]))&&_0x225dc8[_0x26589b(0x801)](_0x1126cb['g']['ACTION_OnPointerOutTrigger'],_0xab06ba['V'][_0x26589b(0x790)](_0x20c3e6,_0x129d7b,{'pointerId':_0x28bc5c})),_0xf45d20?(this[_0x26589b(0x1c3)][_0x28bc5c]=_0xf45d20,this['_pointerOverMesh']=_0xf45d20,(_0x225dc8=_0xf45d20[_0x26589b(0xb97)](_0x1126cb['g'][_0x26589b(0x70e)]))&&_0x225dc8['processTrigger'](_0x1126cb['g'][_0x26589b(0x70e)],_0xab06ba['V'][_0x26589b(0x790)](_0xf45d20,_0x129d7b,{'pointerId':_0x28bc5c,'pickResult':_0x1843ad}))):(delete this[_0x26589b(0x1c3)][_0x28bc5c],this[_0x26589b(0x628)]=null);}}['getPointerOverMesh'](){return this['meshUnderPointer'];}[_0x441731(0x15e)](_0x2d9ab8){var _0x369599=_0x441731;this[_0x369599(0x628)]===_0x2d9ab8&&(this[_0x369599(0x628)]=null),this[_0x369599(0x32a)]===_0x2d9ab8&&(this[_0x369599(0x32a)]=null),this[_0x369599(0x594)]===_0x2d9ab8&&(this[_0x369599(0x594)]=null);for(const _0x231d70 in this[_0x369599(0x1c3)])this[_0x369599(0x1c3)][_0x231d70]===_0x2d9ab8&&delete this[_0x369599(0x1c3)][_0x231d70];}}_0x447430[_0x441731(0x9b1)]=0xa,_0x447430[_0x441731(0x560)]=0x1f4,_0x447430['DoubleClickDelay']=0x12c,_0x447430[_0x441731(0x4e0)]=!0x1;},0x14b3a:(_0x1eb86d,_0x575654,_0x2ef3b1)=>{_0x2ef3b1['d'](_0x575654,{'W':()=>_0x4fbd82});class _0x4fbd82{constructor(){var _0x3910b1=a7_0x4135;this[_0x3910b1(0xa7d)]=!0x1;}}},0x2e6f:(_0x39765a,_0x563f6d,_0x51cb69)=>{var _0x5a3a6f=a7_0x3304fb;_0x51cb69['d'](_0x563f6d,{'m':()=>_0x78375d});class _0x78375d{static[_0x5a3a6f(0x343)](_0x574776,_0x3b12d7){var _0x22e442=_0x5a3a6f;return _0x574776['shadowEnabled']!==_0x3b12d7[_0x22e442(0xaae)]?(_0x3b12d7[_0x22e442(0xaae)]?0x1:0x0)-(_0x574776[_0x22e442(0xaae)]?0x1:0x0):_0x3b12d7[_0x22e442(0x8c8)]-_0x574776[_0x22e442(0x8c8)];}}_0x78375d[_0x5a3a6f(0x134)]=0x0,_0x78375d[_0x5a3a6f(0xc13)]=0x1,_0x78375d['FALLOFF_GLTF']=0x2,_0x78375d[_0x5a3a6f(0x3fc)]=0x3,_0x78375d[_0x5a3a6f(0x7d7)]=0x0,_0x78375d['LIGHTMAP_SPECULAR']=0x1,_0x78375d['LIGHTMAP_SHADOWSONLY']=0x2,_0x78375d[_0x5a3a6f(0x7af)]=0x0,_0x78375d['INTENSITYMODE_LUMINOUSPOWER']=0x1,_0x78375d[_0x5a3a6f(0x162)]=0x2,_0x78375d[_0x5a3a6f(0xa8f)]=0x3,_0x78375d[_0x5a3a6f(0x171)]=0x4,_0x78375d[_0x5a3a6f(0x3bd)]=0x0,_0x78375d[_0x5a3a6f(0x285)]=0x1,_0x78375d[_0x5a3a6f(0xa65)]=0x2,_0x78375d[_0x5a3a6f(0xcc7)]=0x3;},0x16d29:(_0x2e5d34,_0x1c7022,_0x4c8558)=>{var _0x1607ce=a7_0x3304fb,_0x5889c4=_0x4c8558(0x26fa);_0x4c8558(0x8cd3),_0x4c8558(0x15cb9),_0x4c8558(0xf0d3),_0x4c8558(0x10bc4),_0x4c8558(0x1817f),_0x4c8558(0x13fa8),_0x4c8558(0x17b64),_0x4c8558(0x10716),_0x4c8558(0xace7),_0x4c8558(0x2144),_0x4c8558(0xf45c),_0x4c8558(0xa9cf),_0x5889c4['v'][_0x1607ce(0xba5)][_0x1607ce(0xb2d)]=_0x1607ce(0xc8b);},0xe465:(_0x1a5032,_0x195ea5,_0x4cc511)=>{var _0x292a9d=a7_0x3304fb,_0x30bcef=_0x4cc511(0x26fa);_0x4cc511(0x11c69),_0x4cc511(0x2648),_0x4cc511(0xe7da),_0x4cc511(0xd4f3),_0x4cc511(0x1162f),_0x4cc511(0x15cb9),_0x4cc511(0xf0d3),_0x4cc511(0x16c62),_0x4cc511(0x9e45),_0x4cc511(0x1396d),_0x4cc511(0xc24a),_0x4cc511(0xeda3),_0x4cc511(0xf1cf),_0x4cc511(0x4730),_0x30bcef['v']['ShadersStore']['cellVertexShader']=_0x292a9d(0x91c);},0x11bd4:(_0xd9b16d,_0x15d231,_0x3cfe32)=>{var _0x43c583=a7_0x3304fb,_0x5859e4=_0x3cfe32(0x26fa);_0x3cfe32(0x13fa8),_0x3cfe32(0x17b64),_0x3cfe32(0x10716),_0x3cfe32(0xace7),_0x3cfe32(0xf45c),_0x3cfe32(0xa9cf),_0x5859e4['v'][_0x43c583(0xba5)][_0x43c583(0x12f)]=_0x43c583(0xb55);},0xe800:(_0x48c255,_0xed301f,_0x47cf61)=>{var _0x12a551=a7_0x3304fb,_0x18e925=_0x47cf61(0x26fa);_0x47cf61(0x11c69),_0x47cf61(0x2648),_0x47cf61(0xe7da),_0x47cf61(0xd4f3),_0x47cf61(0x1162f),_0x47cf61(0x16c62),_0x47cf61(0x9e45),_0x47cf61(0x1396d),_0x47cf61(0xc24a),_0x47cf61(0xeda3),_0x47cf61(0x4730),_0x18e925['v'][_0x12a551(0xba5)][_0x12a551(0xc2b)]=_0x12a551(0x325);},0x16b6d:(_0x4ced5,_0x3cd5d0,_0x149ba2)=>{var _0x342cf3=a7_0x3304fb,_0x5f83bf=_0x149ba2(0x26fa);_0x149ba2(0x8cd3),_0x149ba2(0x15cb9),_0x149ba2(0xf0d3),_0x149ba2(0x10bc4),_0x149ba2(0x1817f),_0x149ba2(0x17b64),_0x149ba2(0x13fa8),_0x149ba2(0x10716),_0x149ba2(0xace7),_0x149ba2(0x2144),_0x149ba2(0xf45c),_0x149ba2(0xa9cf),_0x5f83bf['v'][_0x342cf3(0xba5)]['furPixelShader']=_0x342cf3(0x842);},0x5b1:(_0x164249,_0xb8bf14,_0x1852e7)=>{var _0x34bd7c=a7_0x3304fb,_0x2a5b38=_0x1852e7(0x26fa);_0x1852e7(0x11c69),_0x1852e7(0x2648),_0x1852e7(0xe7da),_0x1852e7(0xd4f3),_0x1852e7(0x1162f),_0x1852e7(0x15cb9),_0x1852e7(0xf0d3),_0x1852e7(0x16c62),_0x1852e7(0x9e45),_0x1852e7(0x1396d),_0x1852e7(0xc24a),_0x1852e7(0xeda3),_0x1852e7(0xf1cf),_0x1852e7(0x4730),_0x2a5b38['v']['ShadersStore'][_0x34bd7c(0x4df)]='precision\x20highp\x20float;attribute\x20vec3\x20position;attribute\x20vec3\x20normal;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0auniform\x20float\x20furLength;uniform\x20float\x20furAngle;\x0a#ifdef\x20HIGHLEVEL\x0auniform\x20float\x20furOffset;uniform\x20vec3\x20furGravity;uniform\x20float\x20furTime;uniform\x20float\x20furSpacing;uniform\x20float\x20furDensity;\x0a#endif\x0a#ifdef\x20HEIGHTMAP\x0auniform\x20sampler2D\x20heightTexture;\x0a#endif\x0a#ifdef\x20HIGHLEVEL\x0avarying\x20vec2\x20vFurUV;\x0a#endif\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;uniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;uniform\x20mat4\x20diffuseMatrix;uniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0avarying\x20float\x20vfur_length;\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0afloat\x20Rand(vec3\x20rv)\x20{float\x20x=dot(rv,vec3(12.9898,78.233,24.65487));return\x20fract(sin(x)*43758.5453);}\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0afloat\x20r=Rand(position);\x0a#ifdef\x20HEIGHTMAP\x0a#if\x20__VERSION__>100\x0avfur_length=furLength*texture(heightTexture,uv).x;\x0a#else\x0avfur_length=furLength*texture2D(heightTexture,uv).r;\x0a#endif\x0a#else\x20\x0avfur_length=(furLength*r);\x0a#endif\x0avec3\x20tangent1=vec3(normal.y,-normal.x,0);vec3\x20tangent2=vec3(-normal.z,0,normal.x);r=Rand(tangent1*r);float\x20J=(2.0+4.0*r);r=Rand(tangent2*r);float\x20K=(2.0+2.0*r);tangent1=tangent1*J+tangent2*K;tangent1=normalize(tangent1);vec3\x20newPosition=position+normal*vfur_length*cos(furAngle)+tangent1*vfur_length*sin(furAngle);\x0a#ifdef\x20HIGHLEVEL\x0avec3\x20forceDirection=vec3(0.0,0.0,0.0);forceDirection.x=sin(furTime+position.x*0.05)*0.2;forceDirection.y=cos(furTime*0.7+position.y*0.04)*0.2;forceDirection.z=sin(furTime*0.7+position.z*0.04)*0.2;vec3\x20displacement=vec3(0.0,0.0,0.0);displacement=furGravity+forceDirection;float\x20displacementFactor=pow(furOffset,3.0);vec3\x20aNormal=normal;aNormal.xyz+=displacement*displacementFactor;newPosition=vec3(newPosition.x,newPosition.y,newPosition.z)+(normalize(aNormal)*furOffset*furSpacing);\x0a#endif\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0agl_Position=viewProjection*finalWorld*vec4(newPosition,1.0);vec4\x20worldPos=finalWorld*vec4(newPosition,1.0);vPositionW=vec3(worldPos);\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0aif\x20(vDiffuseInfos.x==0.)\x0a{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}\x0aelse\x0a{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}\x0a#ifdef\x20HIGHLEVEL\x0avFurUV=vDiffuseUV*furDensity;\x0a#endif\x0a#else\x0a#ifdef\x20HIGHLEVEL\x0avFurUV=uv*furDensity;\x0a#endif\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a';},0x73f:(_0x408e07,_0x5b6ae9,_0x3a52cd)=>{var _0x31ec4b=a7_0x3304fb,_0x5865fd=_0x3a52cd(0x26fa);_0x3a52cd(0x8cd3),_0x3a52cd(0x15cb9),_0x3a52cd(0xf0d3),_0x3a52cd(0x10bc4),_0x3a52cd(0x1817f),_0x3a52cd(0x13fa8),_0x3a52cd(0x17b64),_0x3a52cd(0x10716),_0x3a52cd(0xace7),_0x3a52cd(0x2144),_0x3a52cd(0xf45c),_0x3a52cd(0xa9cf),_0x5865fd['v'][_0x31ec4b(0xba5)][_0x31ec4b(0x473)]=_0x31ec4b(0xb1c);},0xc5d7:(_0x2be3d5,_0x47b3ee,_0x204b06)=>{var _0x2901f1=a7_0x3304fb,_0x34d675=_0x204b06(0x26fa);_0x204b06(0x11c69),_0x204b06(0x2648),_0x204b06(0xe7da),_0x204b06(0xd4f3),_0x204b06(0x1162f),_0x204b06(0x15cb9),_0x204b06(0xf0d3),_0x204b06(0x16c62),_0x204b06(0x9e45),_0x204b06(0x1396d),_0x204b06(0xc24a),_0x204b06(0xeda3),_0x204b06(0xf1cf),_0x204b06(0x4730),_0x34d675['v'][_0x2901f1(0xba5)][_0x2901f1(0x99e)]=_0x2901f1(0x661);},0x141c3:(_0x2be3ff,_0x2e1dc8,_0x366d85)=>{var _0x58bd2d=a7_0x3304fb,_0x12d7b3=_0x366d85(0x26fa);_0x366d85(0x17b64),_0x366d85(0xf45c),_0x366d85(0xa9cf),_0x12d7b3['v'][_0x58bd2d(0xba5)][_0x58bd2d(0x372)]=_0x58bd2d(0x5c1);},0xdc32:(_0x4bb267,_0x15d35f,_0x323b22)=>{var _0x4e427d=a7_0x3304fb,_0x22b50b=_0x323b22(0x26fa);_0x323b22(0xe7da),_0x323b22(0x1162f),_0x323b22(0x16c62),_0x323b22(0xeda3),_0x22b50b['v'][_0x4e427d(0xba5)]['gridVertexShader']=_0x4e427d(0xce6);},0x8827:(_0x456ca9,_0x3f71d4,_0x5bfe11)=>{var _0x4a971e=a7_0x3304fb,_0x3a0edc=_0x5bfe11(0x26fa);_0x5bfe11(0x8cd3),_0x5bfe11(0x15cb9),_0x5bfe11(0xf0d3),_0x5bfe11(0x10bc4),_0x5bfe11(0x1817f),_0x5bfe11(0x13fa8),_0x5bfe11(0x17b64),_0x5bfe11(0x10716),_0x5bfe11(0xace7),_0x5bfe11(0x2144),_0x5bfe11(0xf45c),_0x5bfe11(0xa9cf),_0x3a0edc['v'][_0x4a971e(0xba5)][_0x4a971e(0x393)]='precision\x20highp\x20float;uniform\x20vec4\x20vEyePosition;uniform\x20vec4\x20vDiffuseColor;varying\x20vec3\x20vPositionW;uniform\x20float\x20time;uniform\x20float\x20speed;uniform\x20float\x20movingSpeed;uniform\x20vec3\x20fogColor;uniform\x20sampler2D\x20noiseTexture;uniform\x20float\x20fogDensity;varying\x20float\x20noise;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0]\x0a#include<__decl__lightFragment>[1]\x0a#include<__decl__lightFragment>[2]\x0a#include<__decl__lightFragment>[3]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;uniform\x20sampler2D\x20diffuseSampler;uniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0afloat\x20random(\x20vec3\x20scale,float\x20seed\x20){return\x20fract(\x20sin(\x20dot(\x20gl_FragCoord.xyz+seed,scale\x20)\x20)*43758.5453+seed\x20)\x20;}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4\x20baseColor=vec4(1.,1.,1.,1.);vec3\x20diffuseColor=vDiffuseColor.rgb;float\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20DIFFUSE\x0avec4\x20noiseTex=texture2D(\x20noiseTexture,vDiffuseUV\x20);vec2\x20T1=vDiffuseUV+vec2(\x201.5,-1.5\x20)*time\x20*0.02;vec2\x20T2=vDiffuseUV+vec2(\x20-0.5,2.0\x20)*time*0.01*speed;T1.x+=noiseTex.x*2.0;T1.y+=noiseTex.y*2.0;T2.x-=noiseTex.y*0.2+time*0.001*movingSpeed;T2.y+=noiseTex.z*0.2+time*0.002*movingSpeed;float\x20p=texture2D(\x20noiseTexture,T1*3.0\x20).a;vec4\x20lavaColor=texture2D(\x20diffuseSampler,T2*4.0);vec4\x20temp=lavaColor*(\x20vec4(\x20p,p,p,p\x20)*2.\x20)+(\x20lavaColor*lavaColor-0.1\x20);baseColor=temp;float\x20depth=gl_FragCoord.z*4.0;const\x20float\x20LOG2=1.442695;float\x20fogFactor=exp2(-fogDensity*fogDensity*depth*depth*LOG2\x20);fogFactor=1.0-clamp(\x20fogFactor,0.0,1.0\x20);baseColor=mix(\x20baseColor,vec4(\x20fogColor,baseColor.w\x20),fogFactor\x20);diffuseColor=baseColor.rgb;\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0abaseColor.rgb*=vDiffuseInfos.y;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0a#ifdef\x20UNLIT\x0avec3\x20diffuseBase=vec3(1.,1.,1.);\x0a#else\x0avec3\x20diffuseBase=vec3(0.,0.,0.);lightingInfo\x20info;float\x20shadow=1.;float\x20glossiness=0.;\x0a#include<lightFragment>[0]\x0a#include<lightFragment>[1]\x0a#include<lightFragment>[2]\x0a#include<lightFragment>[3]\x0a#endif\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;vec4\x20color=vec4(finalDiffuse,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}';},0x15b46:(_0x3a1dc3,_0x494f09,_0x482bde)=>{var _0x12040a=a7_0x3304fb,_0x390b2c=_0x482bde(0x26fa);_0x482bde(0x11c69),_0x482bde(0x2648),_0x482bde(0xe7da),_0x482bde(0xd4f3),_0x482bde(0x1162f),_0x482bde(0x15cb9),_0x482bde(0xf0d3),_0x482bde(0x16c62),_0x482bde(0x9e45),_0x482bde(0x1396d),_0x482bde(0xc24a),_0x482bde(0xeda3),_0x482bde(0xf1cf),_0x482bde(0x4730),_0x390b2c['v'][_0x12040a(0xba5)][_0x12040a(0x1ed)]='precision\x20highp\x20float;uniform\x20float\x20time;uniform\x20float\x20lowFrequencySpeed;varying\x20float\x20noise;attribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;uniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;uniform\x20mat4\x20diffuseMatrix;uniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a/*\x20NOISE\x20FUNCTIONS\x20*/\x0avec3\x20mod289(vec3\x20x)\x0a{return\x20x-floor(x*(1.0/289.0))*289.0;}\x0avec4\x20mod289(vec4\x20x)\x0a{return\x20x-floor(x*(1.0/289.0))*289.0;}\x0avec4\x20permute(vec4\x20x)\x0a{return\x20mod289(((x*34.0)+1.0)*x);}\x0avec4\x20taylorInvSqrt(vec4\x20r)\x0a{return\x201.79284291400159-0.85373472095314*r;}\x0avec3\x20fade(vec3\x20t)\x20{return\x20t*t*t*(t*(t*6.0-15.0)+10.0);}\x0afloat\x20pnoise(vec3\x20P,vec3\x20rep)\x0a{vec3\x20Pi0=mod(floor(P),rep);\x20\x0avec3\x20Pi1=mod(Pi0+vec3(1.0),rep);\x20\x0aPi0=mod289(Pi0);Pi1=mod289(Pi1);vec3\x20Pf0=fract(P);\x20\x0avec3\x20Pf1=Pf0-vec3(1.0);\x20\x0avec4\x20ix=vec4(Pi0.x,Pi1.x,Pi0.x,Pi1.x);vec4\x20iy=vec4(Pi0.yy,Pi1.yy);vec4\x20iz0=Pi0.zzzz;vec4\x20iz1=Pi1.zzzz;vec4\x20ixy=permute(permute(ix)+iy);vec4\x20ixy0=permute(ixy+iz0);vec4\x20ixy1=permute(ixy+iz1);vec4\x20gx0=ixy0*(1.0/7.0);vec4\x20gy0=fract(floor(gx0)*(1.0/7.0))-0.5;gx0=fract(gx0);vec4\x20gz0=vec4(0.5)-abs(gx0)-abs(gy0);vec4\x20sz0=step(gz0,vec4(0.0));gx0-=sz0*(step(0.0,gx0)-0.5);gy0-=sz0*(step(0.0,gy0)-0.5);vec4\x20gx1=ixy1*(1.0/7.0);vec4\x20gy1=fract(floor(gx1)*(1.0/7.0))-0.5;gx1=fract(gx1);vec4\x20gz1=vec4(0.5)-abs(gx1)-abs(gy1);vec4\x20sz1=step(gz1,vec4(0.0));gx1-=sz1*(step(0.0,gx1)-0.5);gy1-=sz1*(step(0.0,gy1)-0.5);vec3\x20g000=vec3(gx0.x,gy0.x,gz0.x);vec3\x20g100=vec3(gx0.y,gy0.y,gz0.y);vec3\x20g010=vec3(gx0.z,gy0.z,gz0.z);vec3\x20g110=vec3(gx0.w,gy0.w,gz0.w);vec3\x20g001=vec3(gx1.x,gy1.x,gz1.x);vec3\x20g101=vec3(gx1.y,gy1.y,gz1.y);vec3\x20g011=vec3(gx1.z,gy1.z,gz1.z);vec3\x20g111=vec3(gx1.w,gy1.w,gz1.w);vec4\x20norm0=taylorInvSqrt(vec4(dot(g000,g000),dot(g010,g010),dot(g100,g100),dot(g110,g110)));g000*=norm0.x;g010*=norm0.y;g100*=norm0.z;g110*=norm0.w;vec4\x20norm1=taylorInvSqrt(vec4(dot(g001,g001),dot(g011,g011),dot(g101,g101),dot(g111,g111)));g001*=norm1.x;g011*=norm1.y;g101*=norm1.z;g111*=norm1.w;float\x20n000=dot(g000,Pf0);float\x20n100=dot(g100,vec3(Pf1.x,Pf0.yz));float\x20n010=dot(g010,vec3(Pf0.x,Pf1.y,Pf0.z));float\x20n110=dot(g110,vec3(Pf1.xy,Pf0.z));float\x20n001=dot(g001,vec3(Pf0.xy,Pf1.z));float\x20n101=dot(g101,vec3(Pf1.x,Pf0.y,Pf1.z));float\x20n011=dot(g011,vec3(Pf0.x,Pf1.yz));float\x20n111=dot(g111,Pf1);vec3\x20fade_xyz=fade(Pf0);vec4\x20n_z=mix(vec4(n000,n100,n010,n110),vec4(n001,n101,n011,n111),fade_xyz.z);vec2\x20n_yz=mix(n_z.xy,n_z.zw,fade_xyz.y);float\x20n_xyz=mix(n_yz.x,n_yz.y,fade_xyz.x);return\x202.2*n_xyz;}\x0a/*\x20END\x20FUNCTION\x20*/\x0afloat\x20turbulence(\x20vec3\x20p\x20)\x20{float\x20w=100.0;float\x20t=-.5;for\x20(float\x20f=1.0\x20;\x20f<=10.0\x20;\x20f++\x20){float\x20power=pow(\x202.0,f\x20);t+=abs(\x20pnoise(\x20vec3(\x20power*p\x20),vec3(\x2010.0,10.0,10.0\x20)\x20)/power\x20);}\x0areturn\x20t;}\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0a#ifdef\x20NORMAL\x0anoise=10.0*\x20-.10*turbulence(\x20.5*normal+time*1.15\x20);float\x20b=lowFrequencySpeed*5.0*pnoise(\x200.05*position\x20+vec3(time*1.025),vec3(\x20100.0\x20)\x20);float\x20displacement=-\x201.5*noise+b;vec3\x20newPosition=position+normal*displacement;gl_Position=viewProjection*finalWorld*vec4(\x20newPosition,1.0\x20);vec4\x20worldPos=finalWorld*vec4(newPosition,1.0);vPositionW=vec3(worldPos);vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0aif\x20(vDiffuseInfos.x==0.)\x0a{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}\x0aelse\x0a{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}';},0x166ac:(_0x5f2950,_0x2d0e63,_0xccdc68)=>{var _0x4b9461=a7_0x3304fb,_0x5af8a3=_0xccdc68(0x26fa);_0xccdc68(0x8cd3),_0xccdc68(0x15cb9),_0xccdc68(0xf0d3),_0xccdc68(0x10bc4),_0xccdc68(0x1817f),_0xccdc68(0x13fa8),_0xccdc68(0x17b64),_0xccdc68(0x10716),_0xccdc68(0xace7),_0xccdc68(0x2144),_0xccdc68(0xf45c),_0xccdc68(0xa9cf),_0x5af8a3['v'][_0x4b9461(0xba5)][_0x4b9461(0x9cb)]=_0x4b9461(0x413);},0x12bcc:(_0x1ede21,_0x3506dc,_0x289a64)=>{var _0x2ca275=a7_0x3304fb,_0x3d9291=_0x289a64(0x26fa);_0x289a64(0x11c69),_0x289a64(0x2648),_0x289a64(0xe7da),_0x289a64(0xd4f3),_0x289a64(0x1162f),_0x289a64(0x15cb9),_0x289a64(0xf0d3),_0x289a64(0x16c62),_0x289a64(0x9e45),_0x289a64(0x1396d),_0x289a64(0xc24a),_0x289a64(0xeda3),_0x289a64(0xf1cf),_0x289a64(0x4730),_0x3d9291['v'][_0x2ca275(0xba5)][_0x2ca275(0x47b)]='precision\x20highp\x20float;attribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;uniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vTextureUV;uniform\x20mat4\x20textureMatrix;uniform\x20vec2\x20vTextureInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0aif\x20(vTextureInfos.x==0.)\x0a{vTextureUV=vec2(textureMatrix*vec4(uv,1.0,0.0));}\x0aelse\x0a{vTextureUV=vec2(textureMatrix*vec4(uv2,1.0,0.0));}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a';},0x2dfd:(_0x397199,_0x1f3587,_0x16acb4)=>{var _0x42115f=a7_0x3304fb,_0x169554=_0x16acb4(0x26fa);_0x16acb4(0x8cd3),_0x16acb4(0x15cb9),_0x16acb4(0xf0d3),_0x16acb4(0x10bc4),_0x16acb4(0x1817f),_0x16acb4(0x13fa8),_0x16acb4(0x17b64),_0x16acb4(0x10716),_0x16acb4(0xace7),_0x16acb4(0x2144),_0x16acb4(0xf45c),_0x16acb4(0xa9cf),_0x169554['v'][_0x42115f(0xba5)][_0x42115f(0x6c9)]='precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20LIGHTING\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0]\x0a#include<__decl__lightFragment>[1]\x0a#include<__decl__lightFragment>[2]\x0a#include<__decl__lightFragment>[3]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#endif\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;\x0auniform\x20sampler2D\x20diffuseSampler;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20baseColor=vec4(1.,1.,1.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20DIFFUSE\x0abaseColor=texture2D(diffuseSampler,vDiffuseUV);\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0abaseColor.rgb*=vDiffuseInfos.y;\x0a#endif\x0a#ifdef\x20NORMAL\x0abaseColor=mix(baseColor,vec4(vNormalW,1.0),0.5);\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0a#ifdef\x20LIGHTING\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0afloat\x20glossiness=0.;\x0a#include<lightFragment>[0]\x0a#include<lightFragment>[1]\x0a#include<lightFragment>[2]\x0a#include<lightFragment>[3]\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\x0a#else\x0avec3\x20finalDiffuse=\x20baseColor.rgb;\x0a#endif\x0avec4\x20color=vec4(finalDiffuse,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}';},0xe551:(_0x3b3cd0,_0x2bad68,_0x39aa13)=>{var _0x44276a=a7_0x3304fb,_0x3592ac=_0x39aa13(0x26fa);_0x39aa13(0x11c69),_0x39aa13(0x2648),_0x39aa13(0xe7da),_0x39aa13(0xd4f3),_0x39aa13(0x1162f),_0x39aa13(0x15cb9),_0x39aa13(0xf0d3),_0x39aa13(0x16c62),_0x39aa13(0x9e45),_0x39aa13(0x1396d),_0x39aa13(0xc24a),_0x39aa13(0xeda3),_0x39aa13(0xf1cf),_0x3592ac['v']['ShadersStore'][_0x44276a(0xbb8)]=_0x44276a(0xab5);},0x17e5:(_0x21f6a9,_0x250c08,_0x2a5c6d)=>{var _0x46f38a=a7_0x3304fb,_0x5944cd=_0x2a5c6d(0x26fa);_0x2a5c6d(0x8cd3),_0x2a5c6d(0x15cb9),_0x2a5c6d(0xf0d3),_0x2a5c6d(0x10bc4),_0x2a5c6d(0x1817f),_0x2a5c6d(0x13fa8),_0x2a5c6d(0x17b64),_0x2a5c6d(0x10716),_0x2a5c6d(0x2144),_0x2a5c6d(0xf45c),_0x2a5c6d(0xa9cf),_0x5944cd['v'][_0x46f38a(0xba5)][_0x46f38a(0x70c)]=_0x46f38a(0x9f6);},0x118c2:(_0x3ed117,_0x362e4a,_0x17bec9)=>{var _0x4af2c3=a7_0x3304fb,_0x41439b=_0x17bec9(0x26fa);_0x17bec9(0x11c69),_0x17bec9(0x2648),_0x17bec9(0xe7da),_0x17bec9(0xd4f3),_0x17bec9(0x1162f),_0x17bec9(0x15cb9),_0x17bec9(0xf0d3),_0x17bec9(0x16c62),_0x17bec9(0x9e45),_0x17bec9(0x1396d),_0x17bec9(0xc24a),_0x17bec9(0xeda3),_0x17bec9(0xf1cf),_0x41439b['v'][_0x4af2c3(0xba5)][_0x4af2c3(0x281)]='precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0agl_Position=viewProjection*worldPos;\x0avPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a';},0x7e6a:(_0x1eaeed,_0x3d9b1f,_0x408007)=>{var _0x4266bd=a7_0x3304fb,_0x46eb70=_0x408007(0x26fa);_0x408007(0x8cd3),_0x408007(0x15cb9),_0x408007(0xf0d3),_0x408007(0x10bc4),_0x408007(0x1817f),_0x408007(0x13fa8),_0x408007(0x17b64),_0x408007(0x10716),_0x408007(0xace7),_0x408007(0x2144),_0x408007(0xf45c),_0x408007(0xa9cf),_0x46eb70['v'][_0x4266bd(0xba5)][_0x4266bd(0xae3)]=_0x4266bd(0x810);},0x29cf:(_0x45475b,_0x10de83,_0x180a3a)=>{var _0x1216d1=a7_0x3304fb,_0x3f16c8=_0x180a3a(0x26fa);_0x180a3a(0x11c69),_0x180a3a(0x2648),_0x180a3a(0xe7da),_0x180a3a(0xd4f3),_0x180a3a(0x1162f),_0x180a3a(0x15cb9),_0x180a3a(0xf0d3),_0x180a3a(0x16c62),_0x180a3a(0x9e45),_0x180a3a(0x1396d),_0x180a3a(0xc24a),_0x180a3a(0xeda3),_0x180a3a(0xf1cf),_0x180a3a(0x4730),_0x3f16c8['v'][_0x1216d1(0xba5)]['simpleVertexShader']=_0x1216d1(0xd0a);},0xf2a3:(_0x544fc9,_0x5bc123,_0x30a5b8)=>{var _0x491f9c=a7_0x3304fb,_0x3cf254=_0x30a5b8(0x26fa);_0x30a5b8(0x13fa8),_0x30a5b8(0x17b64),_0x30a5b8(0x8cd3),_0x30a5b8(0x10716),_0x30a5b8(0xf45c),_0x30a5b8(0xa9cf),_0x3cf254['v'][_0x491f9c(0xba5)]['skyPixelShader']=_0x491f9c(0xcb7);},0xaa88:(_0x4cd394,_0x43b183,_0x13bb87)=>{var _0x432b4b=a7_0x3304fb,_0x31fa7a=_0x13bb87(0x26fa);_0x13bb87(0xd4f3),_0x13bb87(0x1162f),_0x13bb87(0xc24a),_0x13bb87(0xeda3),_0x31fa7a['v'][_0x432b4b(0xba5)][_0x432b4b(0xa7a)]='precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0auniform\x20mat4\x20world;\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0agl_Position=viewProjection*world*vec4(position,1.0);\x0avec4\x20worldPos=world*vec4(position,1.0);\x0avPositionW=vec3(worldPos);\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#ifdef\x20VERTEXCOLOR\x0avColor=color;\x0a#endif\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a';},0x3314:(_0x3c0ebf,_0x5eed82,_0x57e664)=>{var _0x3b6880=a7_0x3304fb,_0x3e7273=_0x57e664(0x26fa);_0x57e664(0x8cd3),_0x57e664(0x15cb9),_0x57e664(0xf0d3),_0x57e664(0x10bc4),_0x57e664(0x1817f),_0x57e664(0x13fa8),_0x57e664(0x17b64),_0x57e664(0x10716),_0x57e664(0xace7),_0x57e664(0x2144),_0x57e664(0xf45c),_0x57e664(0xa9cf),_0x3e7273['v'][_0x3b6880(0xba5)][_0x3b6880(0x859)]=_0x3b6880(0xa33);},0x16d8:(_0x545f4f,_0x5169a7,_0x586018)=>{var _0x55255f=a7_0x3304fb,_0x282ddc=_0x586018(0x26fa);_0x586018(0x11c69),_0x586018(0x2648),_0x586018(0xe7da),_0x586018(0xd4f3),_0x586018(0x1162f),_0x586018(0x15cb9),_0x586018(0xf0d3),_0x586018(0x16c62),_0x586018(0x9e45),_0x586018(0x1396d),_0x586018(0xc24a),_0x586018(0xeda3),_0x586018(0xf1cf),_0x586018(0x4730),_0x282ddc['v'][_0x55255f(0xba5)]['terrainVertexShader']='precision\x20highp\x20float;attribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;uniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vTextureUV;uniform\x20mat4\x20textureMatrix;uniform\x20vec2\x20vTextureInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0aif\x20(vTextureInfos.x==0.)\x0a{vTextureUV=vec2(textureMatrix*vec4(uv,1.0,0.0));}\x0aelse\x0a{vTextureUV=vec2(textureMatrix*vec4(uv2,1.0,0.0));}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a';},0x10a45:(_0x35124b,_0x55aeee,_0x569005)=>{var _0x4cda61=a7_0x3304fb,_0x59834e=_0x569005(0x26fa);_0x569005(0x8cd3),_0x569005(0x15cb9),_0x569005(0xf0d3),_0x569005(0x10bc4),_0x569005(0x1817f),_0x569005(0x13fa8),_0x569005(0x17b64),_0x569005(0x10716),_0x569005(0xace7),_0x569005(0x2144),_0x569005(0xf45c),_0x569005(0xa9cf),_0x59834e['v'][_0x4cda61(0xba5)][_0x4cda61(0x3d5)]=_0x4cda61(0x75a);},0x16847:(_0x1eeb49,_0x41323b,_0xd67529)=>{var _0x105445=a7_0x3304fb,_0x9890c8=_0xd67529(0x26fa);_0xd67529(0x11c69),_0xd67529(0x2648),_0xd67529(0xe7da),_0xd67529(0xd4f3),_0xd67529(0x1162f),_0xd67529(0x15cb9),_0xd67529(0xf0d3),_0xd67529(0x16c62),_0xd67529(0x9e45),_0xd67529(0x1396d),_0xd67529(0xc24a),_0xd67529(0xeda3),_0xd67529(0xf1cf),_0xd67529(0x4730),_0x9890c8['v'][_0x105445(0xba5)][_0x105445(0x50e)]=_0x105445(0x752);},0x7b01:(_0x1613b1,_0x3fc826,_0xb83c1f)=>{var _0x4bbe45=a7_0x3304fb,_0x2a9fa9=_0xb83c1f(0x26fa);_0xb83c1f(0x8cd3),_0xb83c1f(0x12f21),_0xb83c1f(0x171c4),_0xb83c1f(0x15cb9),_0xb83c1f(0xf0d3),_0xb83c1f(0x10bc4),_0xb83c1f(0x1817f),_0xb83c1f(0x13fa8),_0xb83c1f(0x14b01),_0xb83c1f(0x17b64),_0xb83c1f(0x10716),_0xb83c1f(0x2144),_0xb83c1f(0x614f),_0xb83c1f(0xf45c),_0x2a9fa9['v'][_0x4bbe45(0xba5)][_0x4bbe45(0x643)]=_0x4bbe45(0x1fe);},0x859a:(_0x4e5b0f,_0x4e425c,_0x24eb11)=>{var _0x51f4eb=a7_0x3304fb,_0x4ec6b6=_0x24eb11(0x26fa);_0x24eb11(0x11c69),_0x24eb11(0x2648),_0x24eb11(0xe7da),_0x24eb11(0xd4f3),_0x24eb11(0x1162f),_0x24eb11(0x15cb9),_0x24eb11(0xf0d3),_0x24eb11(0x14b01),_0x24eb11(0x16c62),_0x24eb11(0x9e45),_0x24eb11(0x1396d),_0x24eb11(0xc24a),_0x24eb11(0xeda3),_0x24eb11(0xf1cf),_0x24eb11(0x4730),_0x24eb11(0x8641),_0x4ec6b6['v'][_0x51f4eb(0xba5)][_0x51f4eb(0x8f1)]=_0x51f4eb(0x118);},0x12e48:(_0x19b465,_0x5bd264,_0x468c1c)=>{var _0x2dc4d5=a7_0x3304fb;_0x468c1c['d'](_0x5bd264,{'W':()=>_0x20c997});var _0x5bd264=_0x468c1c(0x10b7b),_0x5dea9b=_0x468c1c(0xf582),_0x4812b4=_0x468c1c(0x533),_0x2d1238=_0x468c1c(0x4158),_0x1ee554=_0x468c1c(0x97e6),_0x3b8ee5=_0x468c1c(0x9acf),_0x187cb7=_0x468c1c(0x1610),_0x1a1424=(_0x468c1c(0x13827),_0x468c1c(0xabf3)),_0x363da8=_0x468c1c(0x12cad),_0x256746=_0x468c1c(0x11096),_0x468c1c=_0x468c1c(0xca26);class _0x20c997 extends _0x5bd264['k']{constructor(_0xd82b39){var _0x2eec37=a7_0x4135;super(_0xd82b39,_0x5dea9b['u'][_0x2eec37(0x91d)]),this[_0x2eec37(0x183)]=!0x1;}get[_0x2dc4d5(0x800)](){return this['_texture'];}set[_0x2dc4d5(0x800)](_0x170289){var _0x2eec92=_0x2dc4d5,_0x4acdba;if(this[_0x2eec92(0x6fb)]!==_0x170289){const _0x371a51=null!=(_0x4acdba=null==_0x170289?void 0x0:_0x170289[_0x2eec92(0xb68)]())?_0x4acdba:_0x256746['l'][_0x2eec92(0x311)];!_0x170289&&_0x371a51&&_0x371a51[_0x2eec92(0xc79)](_0x187cb7['g'][_0x2eec92(0xbde)],_0x577ab9=>_0x577ab9[_0x2eec92(0x10d)](this['_texture'])),(this['_texture']=_0x170289)&&_0x371a51&&_0x371a51[_0x2eec92(0xc79)](_0x187cb7['g']['MATERIAL_TextureDirtyFlag'],_0x536e15=>_0x536e15['hasTexture'](_0x170289));}}static[_0x2dc4d5(0x4fe)](_0x180e7b,_0x114ed3){var _0x270819=_0x2dc4d5;const _0x2a3c3e=_0x180e7b;return _0x2a3c3e[_0x270819(0xbf4)]();}[_0x2dc4d5(0xbf4)](){var _0x4ce071=_0x2dc4d5;return this[_0x4ce071(0x7bc)](),!0x0;}[_0x2dc4d5(0x7bc)](){var _0x2370b5=_0x2dc4d5;this[_0x2370b5(0xabe)](this[_0x2370b5(0x183)]?_0x5dea9b['u'][_0x2370b5(0x874)]:_0x5dea9b['u'][_0x2370b5(0x91d)]);}['getClassName'](){var _0x345b25=_0x2dc4d5;return _0x345b25(0x442);}[_0x2dc4d5(0x795)](){var _0x546483=_0x2dc4d5;return this[_0x546483(0x800)];}[_0x2dc4d5(0xc68)](_0x1ef9cd){var _0x4818fe=_0x2dc4d5;if(!this[_0x4818fe(0x2b6)]['isConnected']){let _0x503fca=_0x1ef9cd['getInputBlockByPredicate'](_0x3fb443=>_0x3fb443[_0x4818fe(0x8ef)]&&_0x4818fe(0x2b6)===_0x3fb443[_0x4818fe(0x51b)]);_0x503fca||(_0x503fca=new _0x1ee554['S'](_0x4818fe(0x2b6)))[_0x4818fe(0x918)](),_0x503fca['output'][_0x4818fe(0x59f)](this['position']);}if(!this[_0x4818fe(0x55c)]['isConnected']){let _0x46b3b4=_0x1ef9cd[_0x4818fe(0x30c)](_0x7ac185=>_0x7ac185['systemValue']===_0x3b8ee5['$']['World']);_0x46b3b4||(_0x46b3b4=new _0x1ee554['S']('world'))[_0x4818fe(0xb8d)](_0x3b8ee5['$'][_0x4818fe(0x715)]),_0x46b3b4[_0x4818fe(0x9c7)][_0x4818fe(0x59f)](this['world']);}if(this[_0x4818fe(0x611)]&&!this[_0x4818fe(0x611)][_0x4818fe(0x36f)]){let _0x2d74b2=_0x1ef9cd['getInputBlockByPredicate'](_0x119f8d=>_0x119f8d[_0x4818fe(0x698)]===_0x3b8ee5['$'][_0x4818fe(0x91b)]);_0x2d74b2||(_0x2d74b2=new _0x1ee554['S'](_0x4818fe(0x611)))[_0x4818fe(0xb8d)](_0x3b8ee5['$'][_0x4818fe(0x91b)]),_0x2d74b2[_0x4818fe(0x9c7)][_0x4818fe(0x59f)](this['view']);}}['prepareDefines'](_0x475d56,_0x265cdc,_0x1234b6){var _0x1686f1=_0x2dc4d5,_0x49dbcd;_0x1234b6[_0x1686f1(0x96b)]&&(_0x49dbcd=this['_getTexture']())&&_0x49dbcd[_0x1686f1(0x29f)]&&(_0x1234b6[_0x1686f1(0x1d1)](this[_0x1686f1(0xaf0)],_0x49dbcd[_0x1686f1(0xac3)],!0x0),_0x1234b6[_0x1686f1(0x1d1)](this[_0x1686f1(0x2a4)],!!_0x49dbcd[_0x1686f1(0x2df)],!0x0),_0x1234b6[_0x1686f1(0x1d1)](this['_defineExplicitName'],_0x49dbcd[_0x1686f1(0x71d)]===_0x187cb7['g']['TEXTURE_EXPLICIT_MODE'],!0x0),_0x1234b6[_0x1686f1(0x1d1)](this['_defineSkyboxName'],_0x49dbcd[_0x1686f1(0x71d)]===_0x187cb7['g'][_0x1686f1(0xc26)],!0x0),_0x1234b6[_0x1686f1(0x1d1)](this[_0x1686f1(0xb51)],_0x49dbcd['coordinatesMode']===_0x187cb7['g'][_0x1686f1(0xd07)]||_0x49dbcd[_0x1686f1(0x71d)]===_0x187cb7['g'][_0x1686f1(0x590)],!0x0),_0x1234b6[_0x1686f1(0x1d1)](_0x1686f1(0x960),_0x49dbcd[_0x1686f1(0x71d)]===_0x187cb7['g'][_0x1686f1(0x590)],!0x0),_0x1234b6['setValue'](this[_0x1686f1(0x13c)],_0x49dbcd['coordinatesMode']===_0x187cb7['g']['TEXTURE_SPHERICAL_MODE'],!0x0),_0x1234b6[_0x1686f1(0x1d1)](this[_0x1686f1(0x154)],_0x49dbcd[_0x1686f1(0x71d)]===_0x187cb7['g'][_0x1686f1(0x94b)],!0x0),_0x1234b6[_0x1686f1(0x1d1)](this['_defineProjectionName'],_0x49dbcd['coordinatesMode']===_0x187cb7['g'][_0x1686f1(0x356)],!0x0),_0x1234b6[_0x1686f1(0x1d1)](this[_0x1686f1(0x5c2)],_0x49dbcd['coordinatesMode']===_0x187cb7['g'][_0x1686f1(0x7fd)],!0x0),_0x1234b6[_0x1686f1(0x1d1)](this[_0x1686f1(0x15b)],_0x49dbcd[_0x1686f1(0x71d)]===_0x187cb7['g'][_0x1686f1(0x8fa)],!0x0),_0x1234b6[_0x1686f1(0x1d1)](this['_defineMirroredEquirectangularFixedName'],_0x49dbcd[_0x1686f1(0x71d)]===_0x187cb7['g'][_0x1686f1(0x85f)],!0x0));}[_0x2dc4d5(0x3f1)](){var _0x8f3c43=_0x2dc4d5;const _0x93f023=this[_0x8f3c43(0x795)]();return!(_0x93f023&&!_0x93f023[_0x8f3c43(0x288)]());}[_0x2dc4d5(0x9ee)](_0x263235,_0x421733,_0x4a07ba){var _0x387731=_0x2dc4d5;const _0x52e980=this[_0x387731(0x795)]();_0x4a07ba&&_0x52e980&&(_0x263235[_0x387731(0xa13)](this[_0x387731(0xacc)],_0x52e980[_0x387731(0xc2c)]()),_0x52e980['isCube']?_0x263235[_0x387731(0xbbc)](this['_cubeSamplerName'],_0x52e980):_0x263235[_0x387731(0xbbc)](this[_0x387731(0xa3f)],_0x52e980),_0x52e980['boundingBoxSize']&&(_0x4a07ba=_0x52e980,_0x263235[_0x387731(0x418)](this['_reflectionPositionName'],_0x4a07ba[_0x387731(0x535)]),_0x263235[_0x387731(0x418)](this[_0x387731(0xa39)],_0x4a07ba['boundingBoxSize'])));}[_0x2dc4d5(0x4af)](_0x4a5ac1){var _0x400e7c=_0x2dc4d5;if(this[_0x400e7c(0x183)]&&_0x4a5ac1['target']===_0x5dea9b['u'][_0x400e7c(0x84a)])return'';this[_0x400e7c(0xaf0)]=_0x4a5ac1[_0x400e7c(0x7cf)](_0x400e7c(0xaa5)),this[_0x400e7c(0xb51)]=_0x4a5ac1['_getFreeDefineName'](_0x400e7c(0x7a5)),this['_defineSphericalName']=_0x4a5ac1[_0x400e7c(0x7cf)](_0x400e7c(0x623)),this[_0x400e7c(0x154)]=_0x4a5ac1[_0x400e7c(0x7cf)]('REFLECTIONMAP_PLANAR'),this[_0x400e7c(0x4dc)]=_0x4a5ac1[_0x400e7c(0x7cf)]('REFLECTIONMAP_PROJECTION'),this['_defineExplicitName']=_0x4a5ac1['_getFreeDefineName'](_0x400e7c(0xa15)),this[_0x400e7c(0x5c2)]=_0x4a5ac1[_0x400e7c(0x7cf)](_0x400e7c(0x583)),this[_0x400e7c(0x2a4)]=_0x4a5ac1['_getFreeDefineName'](_0x400e7c(0x31c)),this[_0x400e7c(0x999)]=_0x4a5ac1['_getFreeDefineName']('REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED'),this[_0x400e7c(0x15b)]=_0x4a5ac1[_0x400e7c(0x7cf)](_0x400e7c(0x95a)),this[_0x400e7c(0x5ba)]=_0x4a5ac1[_0x400e7c(0x7cf)](_0x400e7c(0x114)),this[_0x400e7c(0x8d7)]=_0x4a5ac1[_0x400e7c(0x7cf)](_0x400e7c(0x730)),this[_0x400e7c(0xacc)]=_0x4a5ac1[_0x400e7c(0x27c)](_0x400e7c(0x45f)),_0x4a5ac1[_0x400e7c(0x11e)](this['_reflectionMatrixName'],_0x400e7c(0x4a5));let _0x3cefe5='';this['_worldPositionNameInFragmentOnlyMode']=_0x4a5ac1[_0x400e7c(0x27c)](_0x400e7c(0x284));var _0x4b036c=this[_0x400e7c(0x183)]?this['_worldPositionNameInFragmentOnlyMode']:'v_'+this[_0x400e7c(0x284)][_0x400e7c(0xa91)];return(this[_0x400e7c(0x183)]||_0x4a5ac1['_emitVaryingFromString'](_0x4b036c,_0x400e7c(0x8f9)))&&(_0x3cefe5+=(this[_0x400e7c(0x183)]?_0x400e7c(0x161):'')+_0x4b036c+(_0x400e7c(0xbfd)+this[_0x400e7c(0x284)][_0x400e7c(0xa91)]+_0x400e7c(0xbc7))),this[_0x400e7c(0x61b)]=_0x4a5ac1[_0x400e7c(0x27c)]('positionUVW'),this[_0x400e7c(0x589)]=_0x4a5ac1[_0x400e7c(0x27c)](_0x400e7c(0x776)),(this[_0x400e7c(0x183)]||_0x4a5ac1[_0x400e7c(0x82d)](this['_positionUVWName'],_0x400e7c(0x268),this[_0x400e7c(0x5ba)]))&&(_0x3cefe5=(_0x3cefe5+='#ifdef\x20'+this[_0x400e7c(0x5ba)]+'\x0d\x0a')+(this[_0x400e7c(0x183)]?_0x400e7c(0x964):'')+this[_0x400e7c(0x61b)]+(_0x400e7c(0xbfd)+this[_0x400e7c(0x2b6)][_0x400e7c(0xa91)]+'.xyz;\x0d\x0a')+_0x400e7c(0x1a9)),_0x3cefe5=this[_0x400e7c(0x183)]||_0x4a5ac1[_0x400e7c(0x82d)](this['_directionWName'],_0x400e7c(0x268),'defined('+this[_0x400e7c(0x15b)]+')\x20||\x20defined('+this[_0x400e7c(0x999)]+')')?(_0x3cefe5+='#if\x20defined('+this[_0x400e7c(0x15b)]+')\x20||\x20defined('+this[_0x400e7c(0x999)]+_0x400e7c(0x5b1))+(this['generateOnlyFragmentCode']?_0x400e7c(0x964):'')+this[_0x400e7c(0x589)]+('\x20=\x20normalize(vec3('+this['world'][_0x400e7c(0xa91)]+'\x20*\x20vec4('+this['position'][_0x400e7c(0xa91)]+'.xyz,\x200.0)));\x0d\x0a')+_0x400e7c(0x1a9):_0x3cefe5;}[_0x2dc4d5(0x937)](_0xcde365){var _0x229547=_0x2dc4d5;_0xcde365[_0x229547(0x7ca)]['blockingBlocks'][_0x229547(0x725)](this),_0xcde365[_0x229547(0x7ca)][_0x229547(0x9ec)]['push'](this),this['_cubeSamplerName']=_0xcde365[_0x229547(0x27c)](this[_0x229547(0x51b)]+'CubeSampler'),_0xcde365[_0x229547(0x766)][_0x229547(0x725)](this[_0x229547(0x923)]),this[_0x229547(0xa3f)]=_0xcde365[_0x229547(0x27c)](this[_0x229547(0x51b)]+_0x229547(0x4d3)),_0xcde365[_0x229547(0x766)][_0x229547(0x725)](this[_0x229547(0xa3f)]),_0xcde365[_0x229547(0x17b)]+='#ifdef\x20'+this['_define3DName']+'\x0d\x0a',_0xcde365['_samplerDeclaration']+='uniform\x20samplerCube\x20'+this[_0x229547(0x923)]+_0x229547(0xbc7),_0xcde365[_0x229547(0x17b)]+=_0x229547(0x821),_0xcde365[_0x229547(0x17b)]+=_0x229547(0x82f)+this[_0x229547(0xa3f)]+';\x0d\x0a',_0xcde365[_0x229547(0x17b)]+=_0x229547(0x1a9),_0xcde365['sharedData'][_0x229547(0x19a)][_0x229547(0x725)](this),_0xcde365['sharedData'][_0x229547(0xa40)][_0x229547(0x725)](this);var _0x1e2891='//'+this[_0x229547(0x51b)];_0xcde365[_0x229547(0x86d)](_0x229547(0x620),_0x229547(0x335),''),_0xcde365[_0x229547(0x95c)]('helperFunctions',_0x1e2891),_0xcde365[_0x229547(0x95c)](_0x229547(0x2b4),_0x1e2891,{'replaceStrings':[{'search':/vec3 computeReflectionCoords/g,'replace':_0x229547(0xc7a)}]}),this['_reflectionColorName']=_0xcde365['_getFreeVariableName'](_0x229547(0xc70)),this[_0x229547(0xc3a)]=_0xcde365['_getFreeVariableName'](_0x229547(0x613)),this[_0x229547(0xd10)]=_0xcde365[_0x229547(0x27c)](_0x229547(0x573)),this['_reflectionPositionName']=_0xcde365[_0x229547(0x27c)]('vReflectionPosition'),_0xcde365[_0x229547(0x11e)](this[_0x229547(0x90e)],'vec3'),this[_0x229547(0xa39)]=_0xcde365[_0x229547(0x27c)](_0x229547(0xb39)),_0xcde365['_emitUniformFromString'](this[_0x229547(0xa39)],_0x229547(0x268));}[_0x2dc4d5(0x4f9)](_0x461b58,_0x32949f,_0x5c6d20=!0x1,_0x42c8ec=!0x1){var _0x2506ac=_0x2dc4d5;_0x32949f=_0x32949f||(this[_0x2506ac(0x183)]?this[_0x2506ac(0x39e)]:'v_'+this['worldPosition'][_0x2506ac(0xa91)]);var _0x54b2ae=this[_0x2506ac(0xacc)],_0x9006c7=_0x2506ac(0x97f)+this['_directionWName']+')',_0x1b5a5f=''+this['_positionUVWName'],_0x4d074d=''+this['cameraPosition'][_0x2506ac(0xa91)],_0x185ea7=''+this['view']['associatedVariableName'];let _0x15a91b=_0x2506ac(0x56c)+this['_defineMirroredEquirectangularFixedName']+_0x2506ac(0xa02)+this[_0x2506ac(0xc3a)]+_0x2506ac(0xbb4)+_0x32949f+',\x20'+(_0x461b58+=_0x2506ac(0x3cf))+',\x20'+_0x9006c7+');\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20'+this[_0x2506ac(0x15b)]+_0x2506ac(0xa02)+this[_0x2506ac(0xc3a)]+_0x2506ac(0xc14)+_0x32949f+',\x20'+_0x461b58+',\x20'+_0x9006c7+');\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20'+this['_defineEquirectangularName']+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20'+this[_0x2506ac(0xc3a)]+_0x2506ac(0xba4)+_0x32949f+',\x20'+_0x461b58+',\x20'+_0x4d074d+_0x2506ac(0x8c1)+_0x54b2ae+_0x2506ac(0x129)+this['_defineSphericalName']+_0x2506ac(0xa02)+this['_reflectionVectorName']+'\x20=\x20computeSphericalCoords('+_0x32949f+',\x20'+_0x461b58+',\x20'+_0x185ea7+',\x20'+_0x54b2ae+_0x2506ac(0x129)+this[_0x2506ac(0x154)]+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20'+this[_0x2506ac(0xc3a)]+_0x2506ac(0x675)+_0x32949f+',\x20'+_0x461b58+',\x20'+_0x4d074d+_0x2506ac(0x8c1)+_0x54b2ae+_0x2506ac(0x129)+this['_defineCubicName']+_0x2506ac(0x354)+this[_0x2506ac(0x2a4)]+_0x2506ac(0x1a0)+this[_0x2506ac(0xc3a)]+_0x2506ac(0x987)+_0x32949f+',\x20'+_0x461b58+',\x20'+_0x4d074d+_0x2506ac(0x8c1)+_0x54b2ae+',\x20'+this['_reflectionSizeName']+',\x20'+this[_0x2506ac(0x90e)]+_0x2506ac(0x74d)+this[_0x2506ac(0xc3a)]+'\x20=\x20computeCubicCoords('+_0x32949f+',\x20'+_0x461b58+',\x20'+_0x4d074d+_0x2506ac(0x8c1)+_0x54b2ae+_0x2506ac(0xbe7)+this['_defineProjectionName']+_0x2506ac(0xa02)+this[_0x2506ac(0xc3a)]+_0x2506ac(0x93a)+_0x32949f+',\x20'+_0x185ea7+',\x20'+_0x54b2ae+_0x2506ac(0x129)+this[_0x2506ac(0x5ba)]+_0x2506ac(0xa02)+this[_0x2506ac(0xc3a)]+_0x2506ac(0x49e)+_0x1b5a5f+',\x20'+_0x54b2ae+_0x2506ac(0x129)+this['_defineExplicitName']+_0x2506ac(0xa02)+this[_0x2506ac(0xc3a)]+'\x20=\x20vec3(0,\x200,\x200);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0d\x0a';return _0x42c8ec||(_0x15a91b+=_0x2506ac(0x3e2)+this[_0x2506ac(0x8d7)]+_0x2506ac(0xafd)+this[_0x2506ac(0xc3a)]+_0x2506ac(0xb57)),_0x5c6d20||(_0x15a91b+=_0x2506ac(0x354)+this[_0x2506ac(0xaf0)]+_0x2506ac(0x1a0)+this['_reflectionCoordsName']+'\x20=\x20'+this[_0x2506ac(0xc3a)]+_0x2506ac(0xb56)+this[_0x2506ac(0xd10)]+_0x2506ac(0xbfd)+this['_reflectionVectorName']+'.xy;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20'+this['_defineProjectionName']+_0x2506ac(0x6b5)+this[_0x2506ac(0xd10)]+_0x2506ac(0xb40)+this['_reflectionVectorName']+_0x2506ac(0x1a1)+this[_0x2506ac(0xd10)]+'.y\x20=\x201.0\x20-\x20'+this[_0x2506ac(0xd10)]+_0x2506ac(0x7ea)),_0x15a91b;}[_0x2dc4d5(0x968)](_0x21be14,_0x152642=_0x2dc4d5(0x25d)){var _0x4c5673=_0x2dc4d5,_0x561228=_0x4c5673(0x9c4)+(0x0===_0x152642[_0x4c5673(0x86f)]?'4':_0x152642[_0x4c5673(0x86f)]-0x1)+('\x20'+this['_reflectionColorName']+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20'+this[_0x4c5673(0xaf0)]+'\x0d\x0a');return(_0x561228=_0x561228+(_0x21be14?this[_0x4c5673(0x4a1)]+_0x4c5673(0xa5e)+this[_0x4c5673(0x923)]+',\x20'+this[_0x4c5673(0xc3a)]+',\x20'+_0x21be14+')'+_0x152642+_0x4c5673(0xbc7):this[_0x4c5673(0x4a1)]+_0x4c5673(0x36b)+this[_0x4c5673(0x923)]+',\x20'+this[_0x4c5673(0xc3a)]+')'+_0x152642+_0x4c5673(0xbc7))+_0x4c5673(0x6ae))+(_0x21be14?this[_0x4c5673(0x4a1)]+_0x4c5673(0x1d9)+this['_2DSamplerName']+',\x20'+this[_0x4c5673(0xd10)]+',\x20'+_0x21be14+')'+_0x152642+';\x0d\x0a':this[_0x4c5673(0x4a1)]+'\x20=\x20texture2D('+this[_0x4c5673(0xa3f)]+',\x20'+this[_0x4c5673(0xd10)]+')'+_0x152642+_0x4c5673(0xbc7))+'#endif\x0d\x0a';}[_0x2dc4d5(0xa4d)](_0x2f52cd,_0x39402d){var _0x2d9c0d=_0x2dc4d5;let _0x1bb40e='';if(_0x2f52cd['target']===_0x5dea9b['u'][_0x2d9c0d(0x874)]){for(const _0x497da4 of this[_0x2d9c0d(0xa5c)])_0x497da4[_0x2d9c0d(0x79d)]&&(_0x1bb40e+=this[_0x2d9c0d(0xa6a)](_0x497da4,_0x2f52cd)+'\x20=\x20'+_0x39402d+'.'+_0x497da4[_0x2d9c0d(0x51b)]+_0x2d9c0d(0xbc7));}return _0x1bb40e;}[_0x2dc4d5(0x240)](_0x11de03){var _0x41e016=_0x2dc4d5;return super[_0x41e016(0x240)](_0x11de03),this;}[_0x2dc4d5(0x180)](){var _0x88a57a=_0x2dc4d5;let _0x334851=super[_0x88a57a(0x180)]();return this[_0x88a57a(0x800)]?(this[_0x88a57a(0x800)]['isCube']?(_0xe1c76b=this['texture'][_0x88a57a(0x5b4)],_0x334851+=this[_0x88a57a(0x880)]+_0x88a57a(0xa9e)+this[_0x88a57a(0x800)][_0x88a57a(0x51b)]+_0x88a57a(0xb7d)+this['texture']['noMipmap']+_0x88a57a(0xc90)+this[_0x88a57a(0x800)][_0x88a57a(0x381)]+',\x20'+(_0xe1c76b?'\x22'+_0xe1c76b+'\x22':_0x88a57a(0x239))+_0x88a57a(0x292)):_0x334851+=this['_codeVariableName']+_0x88a57a(0x930)+this[_0x88a57a(0x800)][_0x88a57a(0x51b)]+_0x88a57a(0xbcc),_0x334851+=this[_0x88a57a(0x880)]+'.texture.coordinatesMode\x20=\x20'+this['texture']['coordinatesMode']+_0x88a57a(0xbc7)):_0x334851;var _0xe1c76b;}[_0x2dc4d5(0x20d)](){var _0x9c415=_0x2dc4d5;const _0x46f4a3=super[_0x9c415(0x20d)]();return this[_0x9c415(0x800)]&&!this[_0x9c415(0x800)][_0x9c415(0x4c3)]&&(_0x46f4a3[_0x9c415(0x800)]=this[_0x9c415(0x800)]['serialize']()),_0x46f4a3[_0x9c415(0x183)]=this[_0x9c415(0x183)],_0x46f4a3;}[_0x2dc4d5(0x996)](_0x17fb0c,_0x1deade,_0x16961d){var _0x2eba5e=_0x2dc4d5;super['_deserialize'](_0x17fb0c,_0x1deade,_0x16961d),_0x17fb0c['texture']&&!_0x4812b4['O'][_0x2eba5e(0x5fd)]&&(_0x16961d=0x0===_0x17fb0c['texture'][_0x2eba5e(0x9fa)][_0x2eba5e(0xbd5)](_0x2eba5e(0xb21))?'':_0x16961d,_0x17fb0c[_0x2eba5e(0x800)][_0x2eba5e(0xac3)]?this[_0x2eba5e(0x800)]=_0x1a1424['B']['Parse'](_0x17fb0c['texture'],_0x1deade,_0x16961d):this['texture']=_0x363da8['x']['Parse'](_0x17fb0c[_0x2eba5e(0x800)],_0x1deade,_0x16961d)),this[_0x2eba5e(0x183)]=_0x17fb0c[_0x2eba5e(0x183)],this[_0x2eba5e(0x7bc)]();}}(function(_0x187968,_0x29f5e8,_0x428ec2,_0x31452a){var _0x4b811e=_0x2dc4d5,_0x1015ba,_0x5e5580=arguments[_0x4b811e(0x86f)],_0x4a6bf7=_0x5e5580<0x3?_0x29f5e8:null===_0x31452a?_0x31452a=Object[_0x4b811e(0x863)](_0x29f5e8,_0x428ec2):_0x31452a;if(_0x4b811e(0x18a)==typeof Reflect&&_0x4b811e(0x785)==typeof Reflect[_0x4b811e(0xbb3)])_0x4a6bf7=Reflect['decorate'](_0x187968,_0x29f5e8,_0x428ec2,_0x31452a);else{for(var _0x59dd07=_0x187968[_0x4b811e(0x86f)]-0x1;0x0<=_0x59dd07;_0x59dd07--)(_0x1015ba=_0x187968[_0x59dd07])&&(_0x4a6bf7=(_0x5e5580<0x3?_0x1015ba(_0x4a6bf7):0x3<_0x5e5580?_0x1015ba(_0x29f5e8,_0x428ec2,_0x4a6bf7):_0x1015ba(_0x29f5e8,_0x428ec2))||_0x4a6bf7);}0x3<_0x5e5580&&_0x4a6bf7&&Object[_0x4b811e(0x578)](_0x29f5e8,_0x428ec2,_0x4a6bf7);}([(0x0,_0x468c1c['p'])(_0x2dc4d5(0x559),_0x468c1c['U'][_0x2dc4d5(0xce5)],_0x2dc4d5(0x13a),{'notifiers':{'rebuild':!0x0,'update':!0x0,'onValidation':_0x20c997['_OnGenerateOnlyFragmentCodeChanged']}})],_0x20c997[_0x2dc4d5(0x78e)],'generateOnlyFragmentCode',void 0x0),(0x0,_0x2d1238['H'])('BABYLON.ReflectionTextureBaseBlock',_0x20c997));},0x7a1d:(_0x322bb2,_0x50a19c,_0xf38d0d)=>{var _0x495ab6=a7_0x3304fb;_0xf38d0d['d'](_0x50a19c,{'$':()=>_0xc832b7});var _0x50a19c=_0xf38d0d(0x10b7b),_0x5642b5=_0xf38d0d(0x17eee),_0x43f113=_0xf38d0d(0x17368),_0x3e40ef=_0xf38d0d(0xf582),_0x233aa2=_0xf38d0d(0x4158),_0x44a8b5=_0xf38d0d(0x97e6),_0x27f451=_0xf38d0d(0x9bf9),_0x5da4fe=_0xf38d0d(0x2923);class _0xc832b7 extends _0x50a19c['k']{constructor(_0x56cbc5){var _0x2f3d76=a7_0x4135;super(_0x56cbc5,_0x3e40ef['u'][_0x2f3d76(0x874)]),this['_isUnique']=!0x0,this['registerInput'](_0x2f3d76(0xab6),_0x5642b5['E'][_0x2f3d76(0x8d8)],!0x0,_0x3e40ef['u'][_0x2f3d76(0x874)]),this[_0x2f3d76(0xc9b)](_0x2f3d76(0x57d),_0x5642b5['E'][_0x2f3d76(0x8d8)],!0x0,_0x3e40ef['u'][_0x2f3d76(0x874)]),this[_0x2f3d76(0xc9b)](_0x2f3d76(0x44c),_0x5642b5['E'][_0x2f3d76(0x8d8)],!0x0,_0x3e40ef['u'][_0x2f3d76(0x874)]),this[_0x2f3d76(0xa34)](_0x2f3d76(0x6eb),_0x5642b5['E'][_0x2f3d76(0x1b0)],_0x3e40ef['u']['Fragment'],new _0x27f451['C'](_0x2f3d76(0x6eb),this,_0x43f113['Ab']['Output'],_0xc832b7,_0x2f3d76(0xae4)));}[_0x495ab6(0x229)](_0x1428ab){var _0x486e9e=_0x495ab6;_0x1428ab[_0x486e9e(0xac7)](_0x486e9e(0xb30)),_0x1428ab[_0x486e9e(0xac7)](_0x486e9e(0x9b4));}[_0x495ab6(0x7d6)](){return'IridescenceBlock';}get[_0x495ab6(0xab6)](){var _0x52ed17=_0x495ab6;return this[_0x52ed17(0xab4)][0x0];}get[_0x495ab6(0x57d)](){return this['_inputs'][0x1];}get[_0x495ab6(0x44c)](){var _0x593f5b=_0x495ab6;return this[_0x593f5b(0xab4)][0x2];}get[_0x495ab6(0x6eb)](){var _0x587dc2=_0x495ab6;return this[_0x587dc2(0xa5c)][0x0];}[_0x495ab6(0xc68)](){var _0x3eedc2=_0x495ab6;if(!this[_0x3eedc2(0xab6)][_0x3eedc2(0x36f)]){const _0x589bae=new _0x44a8b5['S'](_0x3eedc2(0xb36),_0x3e40ef['u'][_0x3eedc2(0x874)],_0x5642b5['E']['Float']),_0x418746=(_0x589bae['value']=0x1,_0x589bae[_0x3eedc2(0x9c7)][_0x3eedc2(0x59f)](this[_0x3eedc2(0xab6)]),new _0x44a8b5['S'](_0x3eedc2(0xa24),_0x3e40ef['u'][_0x3eedc2(0x874)],_0x5642b5['E'][_0x3eedc2(0x8d8)])),_0x43bfd4=(_0x418746['value']=1.3,_0x418746[_0x3eedc2(0x9c7)]['connectTo'](this[_0x3eedc2(0x57d)]),new _0x44a8b5['S'](_0x3eedc2(0x5c7),_0x3e40ef['u'][_0x3eedc2(0x874)],_0x5642b5['E'][_0x3eedc2(0x8d8)]));_0x43bfd4['value']=0x190,_0x43bfd4[_0x3eedc2(0x9c7)][_0x3eedc2(0x59f)](this[_0x3eedc2(0x44c)]);}}['prepareDefines'](_0x399590,_0x4cfbaf,_0x502de1){var _0x228245=_0x495ab6;super[_0x228245(0x349)](_0x399590,_0x4cfbaf,_0x502de1),_0x502de1[_0x228245(0x1d1)](_0x228245(0xacb),!0x0,!0x0),_0x502de1[_0x228245(0x1d1)](_0x228245(0xbdf),!0x1,!0x0),_0x502de1['setValue']('IRIDESCENCE_THICKNESS_TEXTURE',!0x1,!0x0);}static[_0x495ab6(0xad0)](_0x3d9532){var _0x3f54d4=_0x495ab6;return''+(_0x3f54d4(0x2ee)+(null!=_0x3d9532&&_0x3d9532[_0x3f54d4(0xab6)]['isConnected']?_0x3d9532[_0x3f54d4(0xab6)][_0x3f54d4(0xa91)]:'1.')+',\x20'+(null!=_0x3d9532&&_0x3d9532['indexOfRefraction']['isConnected']?_0x3d9532[_0x3f54d4(0x57d)]['associatedVariableName']:_0x5da4fe['B'][_0x3f54d4(0x853)])+_0x3f54d4(0x8d6)+(null!=_0x3d9532&&_0x3d9532['thickness'][_0x3f54d4(0x36f)]?_0x3d9532[_0x3f54d4(0x44c)][_0x3f54d4(0xa91)]:_0x5da4fe['B'][_0x3f54d4(0x93e)])+_0x3f54d4(0xbae));}[_0x495ab6(0x240)](_0xf153ec){var _0x259423=_0x495ab6;return _0xf153ec[_0x259423(0xb03)]===_0x3e40ef['u']['Fragment']&&(_0xf153ec[_0x259423(0x7ca)][_0x259423(0xa40)][_0x259423(0x725)](this),_0xf153ec[_0x259423(0x7ca)][_0x259423(0x19a)]['push'](this)),this;}[_0x495ab6(0x20d)](){var _0x493a18=_0x495ab6;return super[_0x493a18(0x20d)]();}[_0x495ab6(0x996)](_0x2f1bfe,_0x37754e,_0x2f63c1){var _0x3aea5f=_0x495ab6;super[_0x3aea5f(0x996)](_0x2f1bfe,_0x37754e,_0x2f63c1);}}(0x0,_0x233aa2['H'])(_0x495ab6(0x696),_0xc832b7);},0xcccf:(_0x1e894c,_0x51a6cc,_0x5ac50a)=>{var _0x7fffde=a7_0x3304fb;_0x5ac50a['d'](_0x51a6cc,{'u':()=>_0x29267c});var _0x34bdb0=_0x5ac50a(0x17eee),_0x2e67ec=_0x5ac50a(0xf582),_0x29c246=_0x5ac50a(0x1533d);class _0x29267c{constructor(){var _0x32553b=a7_0x4135;this[_0x32553b(0x39b)]=!0x1,this[_0x32553b(0x2f0)]=new Array(),this[_0x32553b(0x4d0)]=new Array(),this['constants']=new Array(),this[_0x32553b(0x766)]=new Array(),this[_0x32553b(0x8a4)]={},this['extensions']={},this[_0x32553b(0xa6d)]={},this['_attributeDeclaration']='',this[_0x32553b(0xc96)]='',this[_0x32553b(0x7e6)]='',this['_samplerDeclaration']='',this[_0x32553b(0xc35)]='',this[_0x32553b(0xc1e)]='',this['_repeatableContentAnchorIndex']=0x0,this[_0x32553b(0xb8c)]='',this[_0x32553b(0x211)]='';}[_0x7fffde(0xcbd)](_0x16fc2a){var _0x16efed=_0x7fffde,_0x16fc2a=_0x16fc2a[_0x16efed(0x7ca)][_0x16efed(0x4fa)],_0xf0d363=this[_0x16efed(0xb03)]===_0x2e67ec['u'][_0x16efed(0x874)];this[_0x16efed(0x211)]='\x0d\x0a'+(_0x16fc2a?_0x16efed(0x551):'')+_0x16efed(0x938)+this[_0x16efed(0x211)],this[_0x16efed(0x7e6)]&&(this[_0x16efed(0x211)]='\x0d\x0a'+(_0x16fc2a?_0x16efed(0x167):'')+this[_0x16efed(0x7e6)]+'\x0d\x0a'+this[_0x16efed(0x211)]);let _0x34ae18='';for(const _0x16c74b in this[_0x16efed(0x8a4)])_0x34ae18+=this[_0x16efed(0x8a4)][_0x16c74b]+'\x0d\x0a';this['compilationString']='\x0d\x0a'+_0x34ae18+'\x0d\x0a'+this[_0x16efed(0x211)],!_0xf0d363&&this[_0x16efed(0xc35)]&&(this['compilationString']=this[_0x16efed(0x211)]+'\x0d\x0a'+this[_0x16efed(0xc35)]),this[_0x16efed(0xc1e)]&&(this[_0x16efed(0x211)]=this[_0x16efed(0x211)]+'\x0d\x0a'+this['_injectAtEnd']),this[_0x16efed(0x211)]=this[_0x16efed(0x211)]+_0x16efed(0x838),this[_0x16efed(0x7ca)][_0x16efed(0xbcf)]&&(this[_0x16efed(0x211)]='\x0d\x0a'+(_0x16fc2a?_0x16efed(0x5a2):'')+this['sharedData'][_0x16efed(0xbcf)]+'\x0d\x0a'+this[_0x16efed(0x211)]),this[_0x16efed(0x17b)]&&(this[_0x16efed(0x211)]='\x0d\x0a'+(_0x16fc2a?_0x16efed(0x5d8):'')+this['_samplerDeclaration']+'\x0d\x0a'+this[_0x16efed(0x211)]),this['_uniformDeclaration']&&(this[_0x16efed(0x211)]='\x0d\x0a'+(_0x16fc2a?'//Uniforms\x0d\x0a':'')+this[_0x16efed(0xc96)]+'\x0d\x0a'+this[_0x16efed(0x211)]),this[_0x16efed(0x8e6)]&&!_0xf0d363&&(this['compilationString']='\x0d\x0a'+(_0x16fc2a?'//Attributes\x0d\x0a':'')+this[_0x16efed(0x8e6)]+'\x0d\x0a'+this[_0x16efed(0x211)]),this[_0x16efed(0x211)]=_0x16efed(0x1c1)+this[_0x16efed(0x211)],this['compilationString']=_0x16efed(0xab8)+this['compilationString'];for(const _0xa93389 in this['extensions']){var _0x29d9d4=this[_0x16efed(0x6a4)][_0xa93389];this[_0x16efed(0x211)]='\x0d\x0a'+_0x29d9d4+'\x0d\x0a'+this['compilationString'];}this['_builtCompilationString']=this[_0x16efed(0x211)];}get[_0x7fffde(0x92e)](){var _0x83fa7a=_0x7fffde;return _0x83fa7a(0x26c)+this['_repeatableContentAnchorIndex']++ +_0x83fa7a(0x74e);}['_getFreeVariableName'](_0x2d391e){var _0x4b25a6=_0x7fffde;return _0x2d391e=_0x2d391e['replace'](/[^a-zA-Z_]+/g,''),void 0x0===this[_0x4b25a6(0x7ca)][_0x4b25a6(0xd0b)][_0x2d391e]?(this[_0x4b25a6(0x7ca)]['variableNames'][_0x2d391e]=0x0,_0x4b25a6(0x9c7)===_0x2d391e||_0x4b25a6(0x800)===_0x2d391e?_0x2d391e+this['sharedData']['variableNames'][_0x2d391e]:_0x2d391e):(this[_0x4b25a6(0x7ca)][_0x4b25a6(0xd0b)][_0x2d391e]++,_0x2d391e+this['sharedData']['variableNames'][_0x2d391e]);}[_0x7fffde(0x7cf)](_0x26a56){var _0x1635ff=_0x7fffde;return void 0x0===this[_0x1635ff(0x7ca)]['defineNames'][_0x26a56]?this['sharedData'][_0x1635ff(0xb02)][_0x26a56]=0x0:this[_0x1635ff(0x7ca)]['defineNames'][_0x26a56]++,_0x26a56+this[_0x1635ff(0x7ca)][_0x1635ff(0xb02)][_0x26a56];}['_excludeVariableName'](_0x4f5b87){var _0x3192ce=_0x7fffde;this[_0x3192ce(0x7ca)]['variableNames'][_0x4f5b87]=0x0;}[_0x7fffde(0x860)](_0x3eec5e){var _0xa310ce=_0x7fffde;this[_0xa310ce(0x766)][_0xa310ce(0xbd5)](_0x3eec5e)<0x0&&(this[_0xa310ce(0x17b)]+=_0xa310ce(0x82f)+_0x3eec5e+_0xa310ce(0xbc7),this['samplers']['push'](_0x3eec5e));}[_0x7fffde(0x903)](_0x1af436){var _0x4fd153=_0x7fffde;this[_0x4fd153(0x766)][_0x4fd153(0xbd5)](_0x1af436)<0x0&&(this[_0x4fd153(0x17b)]+=_0x4fd153(0x8cb)+_0x1af436+_0x4fd153(0xbc7),this[_0x4fd153(0x766)][_0x4fd153(0x725)](_0x1af436));}['_getGLType'](_0x134248){var _0x88378=_0x7fffde;switch(_0x134248){case _0x34bdb0['E']['Float']:return'float';case _0x34bdb0['E'][_0x88378(0x944)]:return _0x88378(0x90c);case _0x34bdb0['E'][_0x88378(0x998)]:return'vec2';case _0x34bdb0['E'][_0x88378(0x5be)]:case _0x34bdb0['E'][_0x88378(0x3b4)]:return _0x88378(0x268);case _0x34bdb0['E']['Color4']:case _0x34bdb0['E'][_0x88378(0xa60)]:return _0x88378(0x8f9);case _0x34bdb0['E']['Matrix']:return _0x88378(0x4a5);}return'';}[_0x7fffde(0x1e5)](_0x1644bb,_0xbc6d39,_0x4f422a=''){var _0x3c5c62=_0x7fffde;this['extensions'][_0x1644bb]||(this[_0x3c5c62(0x6a4)][_0x1644bb]=_0xbc6d39=_0x4f422a?_0x3c5c62(0x80b)+_0x4f422a+'\x0d\x0a'+_0xbc6d39+_0x3c5c62(0x1df):_0xbc6d39);}['_emitFunction'](_0xa125fb,_0x487e4a,_0x45c103){var _0xa106b1=_0x7fffde;this[_0xa106b1(0x8a4)][_0xa125fb]||(this[_0xa106b1(0x7ca)][_0xa106b1(0x4fa)]&&(_0x487e4a=_0x45c103+'\x0d\x0a'+_0x487e4a),this[_0xa106b1(0x8a4)][_0xa125fb]=_0x487e4a);}[_0x7fffde(0x704)](_0x41ffc8,_0xb7b107,_0x21d238){var _0x5c0af3=_0x7fffde;if(_0x21d238&&_0x21d238[_0x5c0af3(0xcd6)])return'#include<'+_0x41ffc8+'>'+(_0x21d238[_0x5c0af3(0x2d8)]?'('+_0x21d238['substitutionVars']+')':'')+'[0..'+_0x21d238[_0x5c0af3(0xcd6)]+_0x5c0af3(0x58e);let _0x4bd750=_0x29c246['Q'][_0x5c0af3(0x121)][_0x41ffc8]+'\x0d\x0a';if(this['sharedData'][_0x5c0af3(0x4fa)]&&(_0x4bd750=_0xb7b107+'\x0d\x0a'+_0x4bd750),!_0x21d238)return _0x4bd750;if(_0x21d238[_0x5c0af3(0xca9)])for(let _0x3bb9d6=0x0;_0x3bb9d6<_0x21d238[_0x5c0af3(0xca9)][_0x5c0af3(0x86f)];_0x3bb9d6++){var _0x5702d9=_0x21d238[_0x5c0af3(0xca9)][_0x3bb9d6];_0x4bd750=_0x4bd750['replace'](_0x5702d9[_0x5c0af3(0x437)],_0x5702d9[_0x5c0af3(0x89b)]);}return _0x4bd750;}['_emitFunctionFromInclude'](_0x4a7635,_0x27f8a1,_0x115054,_0x5d00e2=''){var _0x10aee8=_0x7fffde,_0x47e28d=_0x4a7635+_0x5d00e2;if(!this['functions'][_0x47e28d]){if(!_0x115054||!(_0x115054[_0x10aee8(0x303)]||_0x115054[_0x10aee8(0x508)]||_0x115054[_0x10aee8(0x7fe)]||_0x115054[_0x10aee8(0x1e7)]||_0x115054[_0x10aee8(0xca9)]))return _0x115054&&_0x115054[_0x10aee8(0xcd6)]?this[_0x10aee8(0x8a4)][_0x47e28d]=_0x10aee8(0x139)+_0x4a7635+'>'+(_0x115054[_0x10aee8(0x2d8)]?'('+_0x115054[_0x10aee8(0x2d8)]+')':'')+_0x10aee8(0x7c6)+_0x115054['repeatKey']+']\x0d\x0a':this[_0x10aee8(0x8a4)][_0x47e28d]='#include<'+_0x4a7635+'>'+(null!=_0x115054&&_0x115054[_0x10aee8(0x2d8)]?'('+(null==_0x115054?void 0x0:_0x115054['substitutionVars'])+')':'')+'\x0d\x0a',void(this['sharedData']['emitComments']&&(this[_0x10aee8(0x8a4)][_0x47e28d]=_0x27f8a1+'\x0d\x0a'+this[_0x10aee8(0x8a4)][_0x47e28d]));if(this['functions'][_0x47e28d]=_0x29c246['Q'][_0x10aee8(0x121)][_0x4a7635],this[_0x10aee8(0x7ca)][_0x10aee8(0x4fa)]&&(this[_0x10aee8(0x8a4)][_0x47e28d]=_0x27f8a1+'\x0d\x0a'+this[_0x10aee8(0x8a4)][_0x47e28d]),_0x115054[_0x10aee8(0x1e7)]&&(this[_0x10aee8(0x8a4)][_0x47e28d]=this[_0x10aee8(0x8a4)][_0x47e28d][_0x10aee8(0x89b)](/^\s*?#ifdef.+$/gm,''),this['functions'][_0x47e28d]=this[_0x10aee8(0x8a4)][_0x47e28d][_0x10aee8(0x89b)](/^\s*?#endif.*$/gm,''),this['functions'][_0x47e28d]=this['functions'][_0x47e28d][_0x10aee8(0x89b)](/^\s*?#else.*$/gm,''),this[_0x10aee8(0x8a4)][_0x47e28d]=this['functions'][_0x47e28d][_0x10aee8(0x89b)](/^\s*?#elif.*$/gm,'')),_0x115054['removeAttributes']&&(this['functions'][_0x47e28d]=this[_0x10aee8(0x8a4)][_0x47e28d][_0x10aee8(0x89b)](/^\s*?attribute.+$/gm,'')),_0x115054[_0x10aee8(0x508)]&&(this[_0x10aee8(0x8a4)][_0x47e28d]=this['functions'][_0x47e28d][_0x10aee8(0x89b)](/^\s*?uniform.+$/gm,'')),_0x115054[_0x10aee8(0x7fe)]&&(this[_0x10aee8(0x8a4)][_0x47e28d]=this['functions'][_0x47e28d]['replace'](/^\s*?varying.+$/gm,'')),_0x115054[_0x10aee8(0xca9)])for(let _0x1de071=0x0;_0x1de071<_0x115054[_0x10aee8(0xca9)][_0x10aee8(0x86f)];_0x1de071++){var _0x58b27b=_0x115054[_0x10aee8(0xca9)][_0x1de071];this[_0x10aee8(0x8a4)][_0x47e28d]=this['functions'][_0x47e28d]['replace'](_0x58b27b[_0x10aee8(0x437)],_0x58b27b['replace']);}}}['_registerTempVariable'](_0x57e3bc){var _0x7f4bca=_0x7fffde;return-0x1===this[_0x7f4bca(0x7ca)][_0x7f4bca(0x2e3)][_0x7f4bca(0xbd5)](_0x57e3bc)&&(this[_0x7f4bca(0x7ca)][_0x7f4bca(0x2e3)][_0x7f4bca(0x725)](_0x57e3bc),!0x0);}[_0x7fffde(0x82d)](_0x32e6f4,_0x1852c0,_0x2d6bf0='',_0xc34b74=!0x1){var _0x533e4c=_0x7fffde;return-0x1===this[_0x533e4c(0x7ca)][_0x533e4c(0x419)]['indexOf'](_0x32e6f4)&&(this['sharedData']['varyings'][_0x533e4c(0x725)](_0x32e6f4),_0x2d6bf0&&(_0x2d6bf0['startsWith'](_0x533e4c(0x1c4))?this[_0x533e4c(0x7ca)]['varyingDeclaration']+=_0x533e4c(0x80b)+_0x2d6bf0+'\x0d\x0a':this[_0x533e4c(0x7ca)][_0x533e4c(0xbcf)]+=(_0xc34b74?_0x533e4c(0x531):_0x533e4c(0x1d7))+('\x20'+_0x2d6bf0+'\x0d\x0a')),this[_0x533e4c(0x7ca)][_0x533e4c(0xbcf)]+=_0x533e4c(0x87a)+_0x1852c0+'\x20'+_0x32e6f4+_0x533e4c(0xbc7),_0x2d6bf0&&(this[_0x533e4c(0x7ca)][_0x533e4c(0xbcf)]+=_0x533e4c(0x1a9)),!0x0);}[_0x7fffde(0x11e)](_0x7cdd40,_0x4360ba,_0x14f1b8='',_0x226a35=!0x1){var _0x2de321=_0x7fffde;-0x1===this[_0x2de321(0x4d0)]['indexOf'](_0x7cdd40)&&(this['uniforms'][_0x2de321(0x725)](_0x7cdd40),_0x14f1b8&&(_0x14f1b8[_0x2de321(0xad6)]('defined(')?this[_0x2de321(0xc96)]+=_0x2de321(0x80b)+_0x14f1b8+'\x0d\x0a':this['_uniformDeclaration']+=(_0x226a35?'#ifndef':_0x2de321(0x1d7))+('\x20'+_0x14f1b8+'\x0d\x0a')),this[_0x2de321(0xc96)]+='uniform\x20'+_0x4360ba+'\x20'+_0x7cdd40+_0x2de321(0xbc7),_0x14f1b8&&(this[_0x2de321(0xc96)]+=_0x2de321(0x1a9)));}['_emitFloat'](_0x710e18){var _0x4c9d55=_0x7fffde;return _0x710e18[_0x4c9d55(0x9b5)]()===_0x710e18['toFixed'](0x0)?_0x710e18+'.0':_0x710e18[_0x4c9d55(0x9b5)]();}}},0xce69:(_0x31e5db,_0x4c78dd,_0x20d07e)=>{var _0x50d78a=a7_0x3304fb;_0x20d07e['d'](_0x4c78dd,{'U':()=>_0xbc7bd3});class _0xbc7bd3{constructor(){var _0xecb53c=a7_0x4135;this[_0xecb53c(0x2e3)]=new Array(),this['varyings']=new Array(),this['varyingDeclaration']='',this['inputBlocks']=new Array(),this[_0xecb53c(0x9ec)]=new Array(),this[_0xecb53c(0xa40)]=new Array(),this[_0xecb53c(0x95b)]=new Array(),this['blocksWithFallbacks']=new Array(),this[_0xecb53c(0x19a)]=new Array(),this['repeatableContentBlocks']=new Array(),this[_0xecb53c(0x4c8)]=new Array(),this[_0xecb53c(0x312)]=new Array(),this[_0xecb53c(0xbd6)]=new Array(),this[_0xecb53c(0xd0b)]={},this[_0xecb53c(0xb02)]={},this['hints']={'needWorldViewMatrix':!0x1,'needWorldViewProjectionMatrix':!0x1,'needAlphaBlending':!0x1,'needAlphaTesting':!0x1},this['checks']={'emitVertex':!0x1,'emitFragment':!0x1,'notConnectedNonOptionalInputs':new Array()},this[_0xecb53c(0x76e)]=!0x1,this[_0xecb53c(0xd0b)][_0xecb53c(0x2b6)]=0x0,this[_0xecb53c(0xd0b)][_0xecb53c(0xb74)]=0x0,this[_0xecb53c(0xd0b)][_0xecb53c(0x793)]=0x0,this[_0xecb53c(0xd0b)]['uv']=0x0,this['variableNames']['uv2']=0x0,this[_0xecb53c(0xd0b)][_0xecb53c(0xcca)]=0x0,this[_0xecb53c(0xd0b)]['uv4']=0x0,this[_0xecb53c(0xd0b)]['uv5']=0x0,this['variableNames'][_0xecb53c(0x6a7)]=0x0,this[_0xecb53c(0xd0b)][_0xecb53c(0xc9e)]=0x0,this[_0xecb53c(0xd0b)][_0xecb53c(0x445)]=0x0,this[_0xecb53c(0xd0b)]['matricesWeights']=0x0,this['variableNames'][_0xecb53c(0x397)]=0x0,this[_0xecb53c(0xd0b)][_0xecb53c(0xcd0)]=0x0,this[_0xecb53c(0xd0b)][_0xecb53c(0x841)]=0x0,this[_0xecb53c(0xd0b)][_0xecb53c(0x38f)]=0x0,this[_0xecb53c(0xd0b)][_0xecb53c(0x78b)]=0x0,this[_0xecb53c(0xd0b)]['shadow']=0x0,this[_0xecb53c(0xd0b)]['view']=0x0,this['variableNames'][_0xecb53c(0x94a)]=0x0,this['defineNames'][_0xecb53c(0x954)]=0x0,this[_0xecb53c(0xb02)][_0xecb53c(0x9fc)]=0x0,this[_0xecb53c(0xb02)][_0xecb53c(0x304)]=0x0,this[_0xecb53c(0xb02)][_0xecb53c(0x2bf)]=0x0,this['defineNames']['MAINUV4']=0x0,this[_0xecb53c(0xb02)][_0xecb53c(0x5b5)]=0x0,this[_0xecb53c(0xb02)][_0xecb53c(0xc5a)]=0x0,this['defineNames']['MAINUV7']=0x0;}[_0x50d78a(0x788)](){var _0xc05903=_0x50d78a;let _0x50d79a='';this[_0xc05903(0x837)][_0xc05903(0x4e7)]||this[_0xc05903(0x76e)]||(_0x50d79a+='NodeMaterial\x20does\x20not\x20have\x20a\x20vertex\x20output.\x20You\x20need\x20to\x20at\x20least\x20add\x20a\x20block\x20that\x20generates\x20a\x20glPosition\x20value.\x0d\x0a'),this[_0xc05903(0x837)][_0xc05903(0xa7b)]||(_0x50d79a+=_0xc05903(0x361));for(const _0x68341a of this[_0xc05903(0x837)][_0xc05903(0x6da)])_0x50d79a+=_0xc05903(0x34b)+_0x68341a[_0xc05903(0x51b)]+'\x20from\x20block\x20'+_0x68341a['ownerBlock'][_0xc05903(0x51b)]+'['+_0x68341a['ownerBlock']['getClassName']()+']\x20is\x20not\x20connected\x20and\x20is\x20not\x20optional.\x0d\x0a';if(_0x50d79a)throw'Build\x20of\x20NodeMaterial\x20failed:\x0d\x0a'+_0x50d79a;}}},0x1515e:(_0xd2ee41,_0x5d6049,_0x67db89)=>{var _0x51b5eb=a7_0x3304fb;_0x67db89['d'](_0x5d6049,{'x':()=>_0x5a1610});var _0x5d6049=_0x67db89(0xcde8),_0x274b78=_0x67db89(0x1610);class _0x5a1610 extends _0x5d6049['_']{set[_0x51b5eb(0x92d)](_0x417e7f){this['_samples']=_0x417e7f;}get[_0x51b5eb(0x92d)](){return this['_samples'];}constructor(_0x40d28b,_0x26071e=0x200){var _0xf6f8a0=_0x51b5eb;super(_0xf6f8a0(0xa77),_0x26071e,_0x40d28b,!0x1,!0x0,_0x274b78['g'][_0xf6f8a0(0x970)],!0x1,void 0x0,!0x1,!0x1,!0x0,void 0x0,!0x0),this['_renderTarget']=this[_0xf6f8a0(0xb68)]()[_0xf6f8a0(0xc8e)]()['createMultiviewRenderTargetTexture'](this['getRenderWidth'](),this[_0xf6f8a0(0x3c3)]()),this[_0xf6f8a0(0x6fb)]=this[_0xf6f8a0(0x132)]['texture'],this['_texture'][_0xf6f8a0(0x674)]=!0x0,this['_texture'][_0xf6f8a0(0xb59)]=_0x274b78['g'][_0xf6f8a0(0xc7c)],this[_0xf6f8a0(0x92d)]=this[_0xf6f8a0(0x202)]()[_0xf6f8a0(0x7b9)]()[_0xf6f8a0(0x1be)]||this[_0xf6f8a0(0x92d)],this[_0xf6f8a0(0x6fb)]['samples']=this[_0xf6f8a0(0x714)];}[_0x51b5eb(0x1c2)](){var _0x33895a=_0x51b5eb;this[_0x33895a(0x132)]&&this[_0x33895a(0xb68)]()[_0x33895a(0xc8e)]()[_0x33895a(0x882)](this[_0x33895a(0x132)]);}[_0x51b5eb(0xccc)](){return 0x2;}}},0x8645:(_0x9838ee,_0x5c45e3,_0x429342)=>{_0x429342['d'](_0x5c45e3,{'p':()=>_0x515226});class _0x515226{constructor(_0x13212b,_0x40a792,_0x44409c){var _0x549b75=a7_0x4135;this['id']=_0x13212b,this[_0x549b75(0xbee)]=_0x40a792,this[_0x549b75(0x369)]=_0x44409c;}}},0x53e8:(_0x14dc6f,_0x3297df,_0x3c7aca)=>{var _0x2e8b7d=a7_0x3304fb,_0x4e3ead=_0x3c7aca(0xc338),_0x3c7aca=_0x3c7aca(0xd74a);_0x3c7aca['V'][_0x2e8b7d(0x78e)][_0x2e8b7d(0x1aa)]=function(){var _0x25f0ef=_0x2e8b7d;this['_texture']&&(this['_texture']['_sphericalPolynomial']=null,this[_0x25f0ef(0x6fb)]['_sphericalPolynomialPromise']=null,this[_0x25f0ef(0x6fb)][_0x25f0ef(0x110)]=!0x1);},Object[_0x2e8b7d(0x578)](_0x3c7aca['V'][_0x2e8b7d(0x78e)],_0x2e8b7d(0xb61),{'get':function(){var _0x24fc47=_0x2e8b7d;if(this[_0x24fc47(0x6fb)]){if(this[_0x24fc47(0x6fb)][_0x24fc47(0x42a)]||this['_texture']['_sphericalPolynomialComputed'])return this['_texture'][_0x24fc47(0x42a)];if(this[_0x24fc47(0x6fb)][_0x24fc47(0x3f1)])return this[_0x24fc47(0x6fb)][_0x24fc47(0x3b0)]||(this['_texture'][_0x24fc47(0x3b0)]=_0x4e3ead['$'][_0x24fc47(0xc7f)](this),null===this[_0x24fc47(0x6fb)][_0x24fc47(0x3b0)]?this[_0x24fc47(0x6fb)][_0x24fc47(0x110)]=!0x0:this[_0x24fc47(0x6fb)]['_sphericalPolynomialPromise']['then'](_0x1d9145=>{var _0x257b84=_0x24fc47;this[_0x257b84(0x6fb)]['_sphericalPolynomial']=_0x1d9145,this[_0x257b84(0x6fb)][_0x257b84(0x110)]=!0x0;})),null;}return null;},'set':function(_0x4fdfe2){var _0x3a3d7b=_0x2e8b7d;this[_0x3a3d7b(0x6fb)]&&(this[_0x3a3d7b(0x6fb)][_0x3a3d7b(0x42a)]=_0x4fdfe2);},'enumerable':!0x0,'configurable':!0x0});},0xf659:(_0x15f518,_0x202f87,_0x1286e3)=>{var _0x48c00f=a7_0x3304fb;_0x1286e3['d'](_0x202f87,{'N':()=>_0x1941cb});var _0x202f87=_0x1286e3(0x22be),_0x240030=_0x1286e3(0x4f99);class _0x1941cb extends _0x202f87['K']{constructor(_0x393e0c,_0xdd3493,_0x391135,_0x6bbeb0,_0x4f44e7,_0x57b5fb){var _0x41d889=a7_0x4135;super(_0x393e0c,_0x391135,_0x6bbeb0,_0x4f44e7,_0x57b5fb),this[_0x41d889(0xcfd)]=[],this[_0x41d889(0x70d)]=!0x1,this[_0x41d889(0x34e)]=!0x1,this['renderTargetTexture']=null,this['renderTargetTexture']=_0xdd3493;}[_0x48c00f(0x3d4)](){var _0x4ede28=_0x48c00f;this[_0x4ede28(0x4e5)]=new _0x240030['z'](_0x4ede28(0x459),0x1,null,void 0x0,this[_0x4ede28(0x489)]),this[_0x4ede28(0x4e5)][_0x4ede28(0x59e)]();}[_0x48c00f(0x77a)](){var _0x2825ec=_0x48c00f,_0x1aa1ee=this[_0x2825ec(0x489)][_0x2825ec(0x6b2)](!0x0),_0x48ef97=this['_engine'][_0x2825ec(0x3c3)](!0x0),_0x10b3f1=this['getRenderWidth'](),_0x194212=this[_0x2825ec(0x3c3)]();_0x10b3f1===_0x1aa1ee&&_0x194212===_0x48ef97||(this[_0x2825ec(0x13b)]({'width':_0x1aa1ee,'height':_0x48ef97}),this['_internalTextureDirty']=!0x0);}[_0x48c00f(0x6d0)](_0x47932f,_0x5093db,_0x3b4812){var _0x539465=_0x48c00f;super['updateCount'](_0x47932f,_0x5093db,_0x3b4812),this[_0x539465(0x70d)]=!0x0;}[_0x48c00f(0xc91)](){var _0x135fdb=_0x48c00f;this[_0x135fdb(0xcfd)][_0x135fdb(0x86f)]=0x0;}[_0x48c00f(0xb4b)](){var _0x4cd902=_0x48c00f;const _0x447127=this['_scene'];var _0x38062d;super['dispose'](),_0x447127&&_0x447127[_0x4cd902(0x245)]&&-0x1!==(_0x38062d=_0x447127[_0x4cd902(0x245)][_0x4cd902(0xce0)]['indexOf'](this))&&_0x447127[_0x4cd902(0x245)]['renderTargets'][_0x4cd902(0x6a0)](_0x38062d,0x1),this[_0x4cd902(0x4e5)]&&this[_0x4cd902(0x4e5)]['dispose'](),this[_0x4cd902(0x43c)]&&(this[_0x4cd902(0x43c)][_0x4cd902(0x555)]=null),this['_outputPostProcess']&&(this[_0x4cd902(0x958)][_0x4cd902(0x280)]=!0x0,this[_0x4cd902(0x958)]['restoreDefaultInputTexture']());}}},0x15ec7:(_0x14efab,_0x4bebd8,_0x51a6bb)=>{function _0x5c2223(_0xedbbfe,_0x544523,_0x6cc21b){var _0x201640=a7_0x4135;_0x6cc21b&&_0xedbbfe['setFloat4'](_0x544523,_0x6cc21b[_0x201640(0xb74)]['x'],_0x6cc21b['normal']['y'],_0x6cc21b[_0x201640(0xb74)]['z'],_0x6cc21b['d']);}_0x51a6bb['d'](_0x4bebd8,{'AN':()=>function(_0x2c2ccb,_0x408dc5,_0x3d60f2){var _0x5c28f7=a7_0x4135;let _0xbedced=!0x1;var _0x1a14f2=!!(null!=(_0x1a14f2=_0x2c2ccb[_0x5c28f7(0x7c0)])?_0x1a14f2:_0x408dc5[_0x5c28f7(0x7c0)]),_0x37302a=!!(null!=(_0x37302a=_0x2c2ccb[_0x5c28f7(0xa0c)])?_0x37302a:_0x408dc5[_0x5c28f7(0xa0c)]),_0x3c1c34=!!(null!=(_0x3c1c34=_0x2c2ccb['clipPlane3'])?_0x3c1c34:_0x408dc5[_0x5c28f7(0x850)]),_0x5ada90=!!(null!=(_0x5ada90=_0x2c2ccb[_0x5c28f7(0xae6)])?_0x5ada90:_0x408dc5[_0x5c28f7(0xae6)]),_0x25071c=!!(null!=(_0x25071c=_0x2c2ccb[_0x5c28f7(0x729)])?_0x25071c:_0x408dc5[_0x5c28f7(0x729)]),_0x2c2ccb=!!(null!=(_0x2c2ccb=_0x2c2ccb[_0x5c28f7(0x90d)])?_0x2c2ccb:_0x408dc5[_0x5c28f7(0x90d)]);return _0x3d60f2[_0x5c28f7(0x523)]!==_0x1a14f2&&(_0x3d60f2['CLIPPLANE']=_0x1a14f2,_0xbedced=!0x0),_0x3d60f2[_0x5c28f7(0x7b8)]!==_0x37302a&&(_0x3d60f2[_0x5c28f7(0x7b8)]=_0x37302a,_0xbedced=!0x0),_0x3d60f2[_0x5c28f7(0xcce)]!==_0x3c1c34&&(_0x3d60f2[_0x5c28f7(0xcce)]=_0x3c1c34,_0xbedced=!0x0),_0x3d60f2['CLIPPLANE4']!==_0x5ada90&&(_0x3d60f2[_0x5c28f7(0x4d9)]=_0x5ada90,_0xbedced=!0x0),_0x3d60f2[_0x5c28f7(0x60b)]!==_0x25071c&&(_0x3d60f2[_0x5c28f7(0x60b)]=_0x25071c,_0xbedced=!0x0),_0x3d60f2['CLIPPLANE6']!==_0x2c2ccb&&(_0x3d60f2['CLIPPLANE6']=_0x2c2ccb,_0xbedced=!0x0),_0xbedced;},'an':()=>function(_0x4fdd32,_0x1fb6e4,_0x114509){var _0x149ea2=a7_0x4135,_0x183885;_0x5c2223(_0x4fdd32,_0x149ea2(0x19d),null!=(_0x183885=_0x1fb6e4[_0x149ea2(0x7c0)])?_0x183885:_0x114509[_0x149ea2(0x7c0)]),_0x5c2223(_0x4fdd32,_0x149ea2(0xb93),null!=(_0x183885=_0x1fb6e4['clipPlane2'])?_0x183885:_0x114509[_0x149ea2(0xa0c)]),_0x5c2223(_0x4fdd32,_0x149ea2(0x6ba),null!=(_0x183885=_0x1fb6e4[_0x149ea2(0x850)])?_0x183885:_0x114509['clipPlane3']),_0x5c2223(_0x4fdd32,_0x149ea2(0x4ab),null!=(_0x183885=_0x1fb6e4[_0x149ea2(0xae6)])?_0x183885:_0x114509[_0x149ea2(0xae6)]),_0x5c2223(_0x4fdd32,'vClipPlane5',null!=(_0x183885=_0x1fb6e4['clipPlane5'])?_0x183885:_0x114509[_0x149ea2(0x729)]),_0x5c2223(_0x4fdd32,_0x149ea2(0x388),null!=(_0x183885=_0x1fb6e4[_0x149ea2(0x90d)])?_0x183885:_0x114509['clipPlane6']);},'lK':()=>function(_0x281c11,_0x2d1bf5,_0x5a8db9){var _0x176cba=a7_0x4135,_0x42b61b=!!(null!=(_0x42b61b=_0x281c11[_0x176cba(0x7c0)])?_0x42b61b:_0x2d1bf5['clipPlane']),_0x102a78=!!(null!=(_0x102a78=_0x281c11[_0x176cba(0xa0c)])?_0x102a78:_0x2d1bf5['clipPlane2']),_0x3b451a=!!(null!=(_0x3b451a=_0x281c11[_0x176cba(0x850)])?_0x3b451a:_0x2d1bf5[_0x176cba(0x850)]),_0x3be01a=!!(null!=(_0x3be01a=_0x281c11[_0x176cba(0xae6)])?_0x3be01a:_0x2d1bf5[_0x176cba(0xae6)]),_0x51dfb6=!!(null!=(_0x51dfb6=_0x281c11['clipPlane5'])?_0x51dfb6:_0x2d1bf5['clipPlane5']),_0x281c11=!!(null!=(_0x281c11=_0x281c11['clipPlane6'])?_0x281c11:_0x2d1bf5[_0x176cba(0x90d)]);_0x42b61b&&_0x5a8db9[_0x176cba(0x725)]('#define\x20CLIPPLANE'),_0x102a78&&_0x5a8db9[_0x176cba(0x725)](_0x176cba(0x251)),_0x3b451a&&_0x5a8db9['push'](_0x176cba(0xcee)),_0x3be01a&&_0x5a8db9[_0x176cba(0x725)](_0x176cba(0x389)),_0x51dfb6&&_0x5a8db9[_0x176cba(0x725)](_0x176cba(0xa30)),_0x281c11&&_0x5a8db9[_0x176cba(0x725)]('#define\x20CLIPPLANE6');},'qx':()=>function(_0x417d8c){var _0x2090ad=a7_0x4135;-0x1===_0x417d8c['indexOf'](_0x2090ad(0x19d))&&_0x417d8c[_0x2090ad(0x725)](_0x2090ad(0x19d)),-0x1===_0x417d8c[_0x2090ad(0xbd5)](_0x2090ad(0xb93))&&_0x417d8c[_0x2090ad(0x725)](_0x2090ad(0xb93)),-0x1===_0x417d8c[_0x2090ad(0xbd5)]('vClipPlane3')&&_0x417d8c[_0x2090ad(0x725)](_0x2090ad(0x6ba)),-0x1===_0x417d8c[_0x2090ad(0xbd5)](_0x2090ad(0x4ab))&&_0x417d8c[_0x2090ad(0x725)](_0x2090ad(0x4ab)),-0x1===_0x417d8c[_0x2090ad(0xbd5)](_0x2090ad(0x31e))&&_0x417d8c[_0x2090ad(0x725)](_0x2090ad(0x31e)),-0x1===_0x417d8c['indexOf'](_0x2090ad(0x388))&&_0x417d8c[_0x2090ad(0x725)](_0x2090ad(0x388));}});},0xe59d:(_0x99b870,_0x21ae89,_0x3274e0)=>{var _0x13d803=a7_0x3304fb;_0x3274e0['d'](_0x21ae89,{'q':()=>_0x2548f6});class _0x2548f6{constructor(_0x31e5b8,_0x46ffe2=!0x0){var _0x5a316d=a7_0x4135;this[_0x5a316d(0x2bc)]=null,this[_0x5a316d(0x909)]=null,this[_0x5a316d(0x5cb)]=_0x31e5b8['createDrawContext'](),_0x46ffe2&&(this[_0x5a316d(0x90f)]=_0x31e5b8['createMaterialContext']());}static[_0x13d803(0x4ec)](_0x308c56){return void 0x0===_0x308c56['getPipelineContext'];}static[_0x13d803(0xaeb)](_0xdfcd29){var _0x5d1a3d=_0x13d803;return void 0x0===_0xdfcd29[_0x5d1a3d(0x92b)]?_0xdfcd29['effect']:_0xdfcd29;}['setEffect'](_0x19f7ce,_0xcb56d7,_0x278abf=!0x0){var _0x4ce137=_0x13d803;this[_0x4ce137(0x2bc)]=_0x19f7ce,void 0x0!==_0xcb56d7&&(this['defines']=_0xcb56d7),_0x278abf&&null!=(_0x19f7ce=this[_0x4ce137(0x5cb)])&&_0x19f7ce[_0x4ce137(0x4ac)]();}[_0x13d803(0xb4b)](){var _0x3617fa=_0x13d803,_0xc348d8;null!=(_0xc348d8=this[_0x3617fa(0x5cb)])&&_0xc348d8[_0x3617fa(0xb4b)]();}}},0x1419a:(_0x4cd116,_0x107d85,_0x1fb668)=>{var _0x158da9=a7_0x3304fb;_0x1fb668['d'](_0x107d85,{'L':()=>_0x4f174a});class _0x4f174a{constructor(){var _0x105b6e=a7_0x4135;this[_0x105b6e(0xc6d)]={},this[_0x105b6e(0x9cd)]=0x20,this[_0x105b6e(0x90b)]=-0x1,this['_mesh']=null;}[_0x158da9(0x685)](){this['_mesh']=null;}[_0x158da9(0x746)](_0x65a563,_0x4a8ed0){var _0x33193c=_0x158da9;this[_0x33193c(0xc6d)][_0x65a563]||(_0x65a563<this[_0x33193c(0x9cd)]&&(this[_0x33193c(0x9cd)]=_0x65a563),_0x65a563>this[_0x33193c(0x90b)]&&(this['_maxRank']=_0x65a563),this['_defines'][_0x65a563]=new Array()),this[_0x33193c(0xc6d)][_0x65a563]['push'](_0x4a8ed0);}['addCPUSkinningFallback'](_0x315c2e,_0x1d6c22){var _0x399bd2=_0x158da9;this[_0x399bd2(0xc10)]=_0x1d6c22,_0x315c2e<this[_0x399bd2(0x9cd)]&&(this['_currentRank']=_0x315c2e),_0x315c2e>this[_0x399bd2(0x90b)]&&(this[_0x399bd2(0x90b)]=_0x315c2e);}get[_0x158da9(0x53d)](){var _0x599c88=_0x158da9;return this[_0x599c88(0x9cd)]<=this['_maxRank'];}['reduce'](_0x53c95b,_0x6adaa8){var _0x37e1c8=_0x158da9;if(this[_0x37e1c8(0xc10)]&&this[_0x37e1c8(0xc10)]['computeBonesUsingShaders']&&0x0<this[_0x37e1c8(0xc10)][_0x37e1c8(0x2a1)]){this['_mesh'][_0x37e1c8(0xb05)]=!0x1,_0x53c95b=_0x53c95b[_0x37e1c8(0x89b)](_0x37e1c8(0x741)+this[_0x37e1c8(0xc10)]['numBoneInfluencers'],'#define\x20NUM_BONE_INFLUENCERS\x200'),_0x6adaa8[_0x37e1c8(0x7d4)]=!0x0;var _0x58ed4e=this[_0x37e1c8(0xc10)]['getScene']();for(let _0x7acf61=0x0;_0x7acf61<_0x58ed4e[_0x37e1c8(0x5f5)][_0x37e1c8(0x86f)];_0x7acf61++){const _0x1375c9=_0x58ed4e[_0x37e1c8(0x5f5)][_0x7acf61];if(_0x1375c9[_0x37e1c8(0xba9)]){if(_0x1375c9[_0x37e1c8(0xb05)]&&0x0!==_0x1375c9[_0x37e1c8(0x2a1)]){if(_0x1375c9[_0x37e1c8(0xba9)][_0x37e1c8(0xcc8)]()===_0x6adaa8)_0x1375c9['computeBonesUsingShaders']=!0x1;else{if(_0x1375c9['subMeshes']){for(const _0x259b03 of _0x1375c9[_0x37e1c8(0x519)])if(_0x259b03['effect']===_0x6adaa8){_0x1375c9[_0x37e1c8(0xb05)]=!0x1;break;}}}}}else!this[_0x37e1c8(0xc10)][_0x37e1c8(0xba9)]&&_0x1375c9[_0x37e1c8(0xb05)]&&0x0<_0x1375c9[_0x37e1c8(0x2a1)]&&(_0x1375c9[_0x37e1c8(0xb05)]=!0x1);}}else{var _0x369015=this[_0x37e1c8(0xc6d)][this[_0x37e1c8(0x9cd)]];if(_0x369015){for(let _0x30eb1f=0x0;_0x30eb1f<_0x369015['length'];_0x30eb1f++)_0x53c95b=_0x53c95b[_0x37e1c8(0x89b)]('#define\x20'+_0x369015[_0x30eb1f],'');}this[_0x37e1c8(0x9cd)]++;}return _0x53c95b;}}},0x366c:(_0x58af58,_0x29f038,_0xd1e6d5)=>{var _0x5265e2=a7_0x3304fb,_0x4ce94f=_0xd1e6d5(0x11da1),_0x3b1a18=_0xd1e6d5(0x14d70),_0x3b1a18=(Object[_0x5265e2(0x578)](_0x3b1a18['K'][_0x5265e2(0x78e)],_0x5265e2(0xa48),{'get':function(){var _0x8b2a44=_0x5265e2;if(!this['_decalMap']){if(this[_0x8b2a44(0x7a2)])return null;this['_decalMap']=new _0x4ce94f['E'](this);}return this[_0x8b2a44(0xb6a)];},'enumerable':!0x0,'configurable':!0x0}),_0xd1e6d5(0x556a));Object[_0x5265e2(0x578)](_0x3b1a18['m']['prototype'],_0x5265e2(0xa48),{'get':function(){var _0x3c6184=_0x5265e2;if(!this[_0x3c6184(0xb6a)]){if(this['_uniformBufferLayoutBuilt'])return null;this[_0x3c6184(0xb6a)]=new _0x4ce94f['E'](this);}return this[_0x3c6184(0xb6a)];},'enumerable':!0x0,'configurable':!0x0}),_0xd1e6d5(0x10313);},0x5645:(_0x1239dc,_0x4a2fad,_0x2baecc)=>{var _0x1b9d0f=a7_0x3304fb;_0x2baecc['d'](_0x4a2fad,{'H':()=>_0x59d46a});class _0x59d46a{constructor(_0xa48951){var _0x48d3d3=a7_0x4135;if(this[_0x48d3d3(0x942)]=[],this[_0x48d3d3(0x36c)]=!0x0,this['_areLightsDirty']=!0x0,this[_0x48d3d3(0x949)]=!0x1,this[_0x48d3d3(0x433)]=!0x0,this[_0x48d3d3(0x96b)]=!0x0,this[_0x48d3d3(0xa00)]=!0x0,this[_0x48d3d3(0x5f3)]=!0x0,this['_arePrePassDirty']=!0x0,this[_0x48d3d3(0x20a)]=!0x0,this[_0x48d3d3(0xc5d)]=!0x1,this[_0x48d3d3(0xaa1)]=!0x1,this[_0x48d3d3(0xbaf)]=!0x1,this[_0x48d3d3(0x57f)]=!0x1,this['_externalProperties']=_0xa48951){for(const _0xdc57cf in _0xa48951)Object[_0x48d3d3(0x78e)]['hasOwnProperty'][_0x48d3d3(0xa85)](_0xa48951,_0xdc57cf)&&this['_setDefaultValue'](_0xdc57cf);}}get[_0x1b9d0f(0x8fc)](){var _0x9491bd=_0x1b9d0f;return this[_0x9491bd(0x36c)];}[_0x1b9d0f(0x91a)](){var _0x1c65d0=_0x1b9d0f;this['_isDirty']=!0x1,this[_0x1c65d0(0x433)]=!0x1,this[_0x1c65d0(0x96b)]=!0x1,this['_areFresnelDirty']=!0x1,this['_areLightsDirty']=!0x1,this[_0x1c65d0(0x949)]=!0x1,this[_0x1c65d0(0x5f3)]=!0x1,this[_0x1c65d0(0x562)]=!0x1,this[_0x1c65d0(0x20a)]=!0x1;}[_0x1b9d0f(0xa51)](){this['_isDirty']=!0x0;}[_0x1b9d0f(0x7fb)](){var _0x36f683=_0x1b9d0f;this[_0x36f683(0x96b)]=!0x0,this[_0x36f683(0x433)]=!0x0,this[_0x36f683(0xafe)]=!0x0,this['_areFresnelDirty']=!0x0,this[_0x36f683(0x5f3)]=!0x0,this['_areImageProcessingDirty']=!0x0,this['_isDirty']=!0x0;}['markAsImageProcessingDirty'](){var _0x1abef0=_0x1b9d0f;this['_areImageProcessingDirty']=!0x0,this[_0x1abef0(0x36c)]=!0x0;}['markAsLightDirty'](_0x1085bc=!0x1){var _0x5a5170=_0x1b9d0f;this[_0x5a5170(0xafe)]=!0x0,this[_0x5a5170(0x949)]=this[_0x5a5170(0x949)]||_0x1085bc,this['_isDirty']=!0x0;}['markAsAttributesDirty'](){var _0x5c8ea0=_0x1b9d0f;this[_0x5c8ea0(0x433)]=!0x0,this[_0x5c8ea0(0x36c)]=!0x0;}['markAsTexturesDirty'](){var _0x45a820=_0x1b9d0f;this[_0x45a820(0x96b)]=!0x0,this[_0x45a820(0x36c)]=!0x0;}[_0x1b9d0f(0x2b3)](){var _0x36ee3f=_0x1b9d0f;this['_areFresnelDirty']=!0x0,this[_0x36ee3f(0x36c)]=!0x0;}['markAsMiscDirty'](){var _0x5af20a=_0x1b9d0f;this[_0x5af20a(0x5f3)]=!0x0,this[_0x5af20a(0x36c)]=!0x0;}[_0x1b9d0f(0x96c)](){var _0x52d4d4=_0x1b9d0f;this[_0x52d4d4(0x562)]=!0x0,this[_0x52d4d4(0x36c)]=!0x0;}[_0x1b9d0f(0x9ed)](){var _0x396649=_0x1b9d0f;this[_0x396649(0x942)][_0x396649(0x86f)]=0x0;for(const _0x381a8a of Object[_0x396649(0x566)](this))'_'!==_0x381a8a[0x0]&&this[_0x396649(0x942)][_0x396649(0x725)](_0x381a8a);if(this[_0x396649(0x439)]){for(const _0x50b4f0 in this[_0x396649(0x439)])-0x1===this[_0x396649(0x942)][_0x396649(0xbd5)](_0x50b4f0)&&this['_keys'][_0x396649(0x725)](_0x50b4f0);}}[_0x1b9d0f(0xb3e)](_0x36b581){var _0x4b3d83=_0x1b9d0f;if(this[_0x4b3d83(0x942)]['length']!==_0x36b581['_keys'][_0x4b3d83(0x86f)])return!0x1;for(let _0x4db994=0x0;_0x4db994<this[_0x4b3d83(0x942)][_0x4b3d83(0x86f)];_0x4db994++){var _0x480d8a=this[_0x4b3d83(0x942)][_0x4db994];if(this[_0x480d8a]!==_0x36b581[_0x480d8a])return!0x1;}return!0x0;}['cloneTo'](_0x18eb53){var _0x56e591=_0x1b9d0f;this['_keys'][_0x56e591(0x86f)]!==_0x18eb53[_0x56e591(0x942)][_0x56e591(0x86f)]&&(_0x18eb53[_0x56e591(0x942)]=this[_0x56e591(0x942)][_0x56e591(0x732)](0x0));for(let _0x9b3a70=0x0;_0x9b3a70<this[_0x56e591(0x942)][_0x56e591(0x86f)];_0x9b3a70++){var _0x18363d=this[_0x56e591(0x942)][_0x9b3a70];_0x18eb53[_0x18363d]=this[_0x18363d];}}[_0x1b9d0f(0x4ac)](){var _0x221f39=_0x1b9d0f;this[_0x221f39(0x942)][_0x221f39(0xa7c)](_0x30194c=>this[_0x221f39(0x391)](_0x30194c));}[_0x1b9d0f(0x391)](_0x47fcaa){var _0x4c81bd=_0x1b9d0f,_0x5751ad,_0x222d9f=null!=(_0x222d9f=null==(_0x222d9f=null==(_0x222d9f=this[_0x4c81bd(0x439)])?void 0x0:_0x222d9f[_0x47fcaa])?void 0x0:_0x222d9f[_0x4c81bd(0xb26)])?_0x222d9f:typeof this[_0x47fcaa],_0x22123c=null==(_0x5751ad=null==(_0x5751ad=this[_0x4c81bd(0x439)])?void 0x0:_0x5751ad[_0x47fcaa])?void 0x0:_0x5751ad['default'];switch(_0x222d9f){case _0x4c81bd(0x641):this[_0x47fcaa]=null!=_0x22123c?_0x22123c:0x0;break;case'string':this[_0x47fcaa]=null!=_0x22123c?_0x22123c:'';break;default:this[_0x47fcaa]=null!=_0x22123c&&_0x22123c;}}[_0x1b9d0f(0x9b5)](){var _0x242cbb=_0x1b9d0f;let _0x539b73='';for(let _0x138014=0x0;_0x138014<this[_0x242cbb(0x942)]['length'];_0x138014++){var _0x378957=this[_0x242cbb(0x942)][_0x138014],_0x4862c1=this[_0x378957];switch(typeof _0x4862c1){case _0x242cbb(0x641):case _0x242cbb(0x982):_0x539b73+=_0x242cbb(0x2a3)+_0x378957+'\x20'+_0x4862c1+'\x0a';break;default:_0x4862c1&&(_0x539b73+=_0x242cbb(0x2a3)+_0x378957+'\x0a');}}return _0x539b73;}}},0x2fbf:(_0x8b9872,_0x103fc1,_0x33b69a)=>{var _0x588b77=a7_0x3304fb;_0x33b69a['d'](_0x103fc1,{'S':()=>_0x15310b});function _0x538a69(_0x4dc5ea,_0x2a47d3,_0x23b764,_0x579f2c){var _0x2576a5=a7_0x4135,_0x5c472e,_0x1f46be=arguments['length'],_0x4c1ebe=_0x1f46be<0x3?_0x2a47d3:null===_0x579f2c?_0x579f2c=Object[_0x2576a5(0x863)](_0x2a47d3,_0x23b764):_0x579f2c;if(_0x2576a5(0x18a)==typeof Reflect&&'function'==typeof Reflect[_0x2576a5(0xbb3)])_0x4c1ebe=Reflect['decorate'](_0x4dc5ea,_0x2a47d3,_0x23b764,_0x579f2c);else{for(var _0x3bbf19=_0x4dc5ea[_0x2576a5(0x86f)]-0x1;0x0<=_0x3bbf19;_0x3bbf19--)(_0x5c472e=_0x4dc5ea[_0x3bbf19])&&(_0x4c1ebe=(_0x1f46be<0x3?_0x5c472e(_0x4c1ebe):0x3<_0x1f46be?_0x5c472e(_0x2a47d3,_0x23b764,_0x4c1ebe):_0x5c472e(_0x2a47d3,_0x23b764))||_0x4c1ebe);}0x3<_0x1f46be&&_0x4c1ebe&&Object[_0x2576a5(0x578)](_0x2a47d3,_0x23b764,_0x4c1ebe);}var _0x3d872b=_0x33b69a(0x1610),_0x275f9f=_0x33b69a(0x10435);class _0x15310b{constructor(){var _0x38898e=a7_0x4135;this[_0x38898e(0x4ac)]();}[_0x588b77(0x4ac)](){var _0x10d498=_0x588b77;this[_0x10d498(0x34e)]=!0x1,this[_0x10d498(0xc86)]=0xff,this[_0x10d498(0xa98)]=_0x3d872b['g'][_0x10d498(0x587)],this['funcRef']=0x1,this[_0x10d498(0x517)]=0xff,this[_0x10d498(0x97d)]=_0x3d872b['g'][_0x10d498(0x2dc)],this[_0x10d498(0xc82)]=_0x3d872b['g']['KEEP'],this[_0x10d498(0x778)]=_0x3d872b['g'][_0x10d498(0x873)];}get[_0x588b77(0xa98)](){var _0x17f67a=_0x588b77;return this[_0x17f67a(0x7b1)];}set['func'](_0x136663){var _0x12eda4=_0x588b77;this[_0x12eda4(0x7b1)]=_0x136663;}get[_0x588b77(0x825)](){var _0x1186f8=_0x588b77;return this[_0x1186f8(0x33d)];}set[_0x588b77(0x825)](_0x472a59){var _0x5d1df8=_0x588b77;this[_0x5d1df8(0x33d)]=_0x472a59;}get[_0x588b77(0x517)](){var _0x1533cd=_0x588b77;return this[_0x1533cd(0xae7)];}set['funcMask'](_0x598815){var _0x4c5438=_0x588b77;this[_0x4c5438(0xae7)]=_0x598815;}get[_0x588b77(0x97d)](){var _0x1f1769=_0x588b77;return this[_0x1f1769(0x5e2)];}set[_0x588b77(0x97d)](_0x20e2b9){var _0x2bca75=_0x588b77;this[_0x2bca75(0x5e2)]=_0x20e2b9;}get[_0x588b77(0xc82)](){var _0x296427=_0x588b77;return this[_0x296427(0x371)];}set[_0x588b77(0xc82)](_0x1f2493){var _0x170685=_0x588b77;this[_0x170685(0x371)]=_0x1f2493;}get[_0x588b77(0x778)](){return this['_opStencilDepthPass'];}set['opStencilDepthPass'](_0x38db47){var _0x5376cb=_0x588b77;this[_0x5376cb(0x680)]=_0x38db47;}get[_0x588b77(0xc86)](){var _0xe03182=_0x588b77;return this[_0xe03182(0x7e1)];}set[_0x588b77(0xc86)](_0x1acf1b){this['_mask']=_0x1acf1b;}get['enabled'](){var _0x218e0e=_0x588b77;return this[_0x218e0e(0x398)];}set[_0x588b77(0x34e)](_0x1bb6d7){var _0x401c77=_0x588b77;this[_0x401c77(0x398)]=_0x1bb6d7;}[_0x588b77(0x7d6)](){return'MaterialStencilState';}[_0x588b77(0x872)](_0x453c29){var _0x30d64c=_0x588b77;_0x275f9f['p4'][_0x30d64c(0x919)](()=>_0x453c29,this);}['serialize'](){return _0x275f9f['p4']['Serialize'](this);}[_0x588b77(0x420)](_0x326dc1,_0x4cf97b,_0x1937e4){var _0x2f75ba=_0x588b77;_0x275f9f['p4'][_0x2f75ba(0x855)](()=>this,_0x326dc1,_0x4cf97b,_0x1937e4);}}_0x538a69([(0x0,_0x275f9f['qC'])()],_0x15310b[_0x588b77(0x78e)],'func',null),_0x538a69([(0x0,_0x275f9f['qC'])()],_0x15310b[_0x588b77(0x78e)],_0x588b77(0x825),null),_0x538a69([(0x0,_0x275f9f['qC'])()],_0x15310b[_0x588b77(0x78e)],_0x588b77(0x517),null),_0x538a69([(0x0,_0x275f9f['qC'])()],_0x15310b['prototype'],'opStencilFail',null),_0x538a69([(0x0,_0x275f9f['qC'])()],_0x15310b[_0x588b77(0x78e)],_0x588b77(0xc82),null),_0x538a69([(0x0,_0x275f9f['qC'])()],_0x15310b[_0x588b77(0x78e)],_0x588b77(0x778),null),_0x538a69([(0x0,_0x275f9f['qC'])()],_0x15310b['prototype'],_0x588b77(0xc86),null),_0x538a69([(0x0,_0x275f9f['qC'])()],_0x15310b[_0x588b77(0x78e)],'enabled',null);},0xf1ad:(_0x11dcb0,_0x56d86e,_0x11f8a3)=>{var _0x4849b0=a7_0x3304fb;_0x11f8a3['d'](_0x56d86e,{'o':()=>_0x56f61d});var _0x22e37b=_0x11f8a3(0x1610);class _0x56f61d{constructor(){var _0x6b5769=a7_0x4135;this[_0x6b5769(0xa67)]={},this['previousBones']={};}static[_0x4849b0(0x3e7)](_0x456640){_0x456640['push']('previousWorld','previousViewProjection','mPreviousBones');}static[_0x4849b0(0x151)](_0x120b03){}['bindForSubMesh'](_0x18b38f,_0x19e81b,_0x3aa1d0,_0x1df1c8,_0x38bbad){var _0x41c04f=_0x4849b0,_0x12b648;_0x19e81b[_0x41c04f(0x245)]&&_0x19e81b[_0x41c04f(0x245)][_0x41c04f(0x34e)]&&_0x19e81b['prePassRenderer']['currentRTisSceneRT']&&-0x1!==_0x19e81b[_0x41c04f(0x245)]['getIndex'](_0x22e37b['g'][_0x41c04f(0x232)])&&(this[_0x41c04f(0xa67)][_0x3aa1d0[_0x41c04f(0xb76)]]||(this[_0x41c04f(0xa67)][_0x3aa1d0[_0x41c04f(0xb76)]]=_0x1df1c8[_0x41c04f(0x4fb)]()),this['previousViewProjection']||(this['previousViewProjection']=_0x19e81b['getTransformMatrix']()[_0x41c04f(0x4fb)](),this[_0x41c04f(0xa1f)]=_0x19e81b[_0x41c04f(0xbab)]()[_0x41c04f(0x4fb)]()),_0x12b648=_0x19e81b[_0x41c04f(0xc8e)](),this['currentViewProjection'][_0x41c04f(0xcde)]!==_0x19e81b['getTransformMatrix']()[_0x41c04f(0xcde)]?(this[_0x41c04f(0x614)]=_0x12b648['frameId'],this[_0x41c04f(0x6f7)][_0x41c04f(0xaf5)](this['currentViewProjection']),this[_0x41c04f(0xa1f)][_0x41c04f(0xaf5)](_0x19e81b['getTransformMatrix']())):this[_0x41c04f(0x614)]!==_0x12b648[_0x41c04f(0xcc1)]&&(this['_lastUpdateFrameId']=_0x12b648[_0x41c04f(0xcc1)],this[_0x41c04f(0x6f7)][_0x41c04f(0xaf5)](this['currentViewProjection'])),_0x18b38f[_0x41c04f(0xa13)]('previousWorld',this['previousWorldMatrices'][_0x3aa1d0['uniqueId']]),_0x18b38f[_0x41c04f(0xa13)](_0x41c04f(0x6f7),this[_0x41c04f(0x6f7)]),this[_0x41c04f(0xa67)][_0x3aa1d0[_0x41c04f(0xb76)]]=_0x1df1c8[_0x41c04f(0x4fb)]());}}},0xead:(_0xe6a55,_0x2ef780,_0xbb80d1)=>{_0xbb80d1['d'](_0x2ef780,{'c':()=>_0xb8f6d});class _0xb8f6d{constructor(_0x419856){var _0x2c2b7b=a7_0x4135;this[_0x2c2b7b(0x8b5)](_0x419856)?(this['setMatrix3x3']=_0x419856[_0x2c2b7b(0x60a)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x4b9)]=_0x419856[_0x2c2b7b(0x787)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x760)]=_0x419856[_0x2c2b7b(0x6ac)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0xcef)]=_0x419856['updateFloat2'][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x1f6)]=_0x419856[_0x2c2b7b(0x9bd)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x453)]=_0x419856['updateFloat4']['bind'](_0x419856),this[_0x2c2b7b(0x238)]=_0x419856[_0x2c2b7b(0x482)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x69f)]=_0x419856[_0x2c2b7b(0x147)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x58f)]=_0x419856[_0x2c2b7b(0x852)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0xa13)]=_0x419856[_0x2c2b7b(0x693)][_0x2c2b7b(0x9ee)](_0x419856),this['setMatrices']=_0x419856[_0x2c2b7b(0xba1)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x418)]=_0x419856[_0x2c2b7b(0x505)]['bind'](_0x419856),this['setVector4']=_0x419856[_0x2c2b7b(0x8f6)]['bind'](_0x419856),this['setColor3']=_0x419856['updateColor3'][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x322)]=_0x419856['updateColor4']['bind'](_0x419856),this[_0x2c2b7b(0x697)]=_0x419856[_0x2c2b7b(0xbd8)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x213)]=_0x419856[_0x2c2b7b(0x8a0)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x66f)]=_0x419856[_0x2c2b7b(0x749)]['bind'](_0x419856),this[_0x2c2b7b(0x326)]=_0x419856[_0x2c2b7b(0x30a)]['bind'](_0x419856),this[_0x2c2b7b(0x2db)]=_0x419856[_0x2c2b7b(0x83a)]['bind'](_0x419856)):(this[_0x2c2b7b(0x42b)]=_0x419856[_0x2c2b7b(0x42b)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x4b9)]=_0x419856[_0x2c2b7b(0x4b9)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x760)]=_0x419856['setFloat'][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0xcef)]=_0x419856[_0x2c2b7b(0xcef)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x1f6)]=_0x419856['setFloat3'][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x453)]=_0x419856[_0x2c2b7b(0x453)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x238)]=_0x419856['setFloatArray']['bind'](_0x419856),this[_0x2c2b7b(0x69f)]=_0x419856['setArray'][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x58f)]=_0x419856[_0x2c2b7b(0x58f)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0xa13)]=_0x419856['setMatrix'][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x42c)]=_0x419856[_0x2c2b7b(0x42c)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x418)]=_0x419856[_0x2c2b7b(0x418)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x601)]=_0x419856[_0x2c2b7b(0x601)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x25b)]=_0x419856[_0x2c2b7b(0x25b)][_0x2c2b7b(0x9ee)](_0x419856),this['setColor4']=_0x419856['setColor4'][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x697)]=_0x419856[_0x2c2b7b(0x697)]['bind'](_0x419856),this[_0x2c2b7b(0x213)]=_0x419856[_0x2c2b7b(0x213)][_0x2c2b7b(0x9ee)](_0x419856),this['setInt2']=_0x419856[_0x2c2b7b(0x66f)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x326)]=_0x419856[_0x2c2b7b(0x326)][_0x2c2b7b(0x9ee)](_0x419856),this[_0x2c2b7b(0x2db)]=_0x419856[_0x2c2b7b(0x2db)][_0x2c2b7b(0x9ee)](_0x419856));}['_isUbo'](_0x2c0dc2){return void 0x0!==_0x2c0dc2['addUniform'];}}},0x17194:(_0x13bb0a,_0x203639,_0x5ac160)=>{var _0x491732=a7_0x3304fb;_0x5ac160['d'](_0x203639,{'$':()=>_0x513e3c});class _0x513e3c{constructor(_0x4b4bb1,_0x1e13aa){var _0x47ff3d=a7_0x4135;this[_0x47ff3d(0x3e9)]=_0x4b4bb1,this['height']=_0x1e13aa;}[_0x491732(0x9b5)](){var _0x344098=_0x491732;return _0x344098(0x2f1)+this[_0x344098(0x3e9)]+_0x344098(0x432)+this[_0x344098(0x520)]+'}';}[_0x491732(0x7d6)](){var _0x45a57b=_0x491732;return _0x45a57b(0x42f);}[_0x491732(0x3d8)](){var _0x56a31c=_0x491732;return 0x18d*(0x0|this['width'])^(0x0|this[_0x56a31c(0x520)]);}['copyFrom'](_0x946d1e){var _0x494755=_0x491732;this[_0x494755(0x3e9)]=_0x946d1e[_0x494755(0x3e9)],this[_0x494755(0x520)]=_0x946d1e[_0x494755(0x520)];}[_0x491732(0x310)](_0x312d9d,_0x3146e1){var _0x59bee7=_0x491732;return this['width']=_0x312d9d,this[_0x59bee7(0x520)]=_0x3146e1,this;}['set'](_0xa972e6,_0x1b4a39){var _0x4ca2dc=_0x491732;return this[_0x4ca2dc(0x310)](_0xa972e6,_0x1b4a39);}[_0x491732(0xabf)](_0x2912af,_0x55f960){var _0xe3978c=_0x491732;return new _0x513e3c(this[_0xe3978c(0x3e9)]*_0x2912af,this['height']*_0x55f960);}['clone'](){var _0x313d97=_0x491732;return new _0x513e3c(this['width'],this[_0x313d97(0x520)]);}[_0x491732(0x188)](_0xf530a1){var _0x1ac740=_0x491732;return!!_0xf530a1&&this[_0x1ac740(0x3e9)]===_0xf530a1[_0x1ac740(0x3e9)]&&this[_0x1ac740(0x520)]===_0xf530a1[_0x1ac740(0x520)];}get[_0x491732(0xcc3)](){var _0x25b0a2=_0x491732;return this[_0x25b0a2(0x3e9)]*this[_0x25b0a2(0x520)];}static['Zero'](){return new _0x513e3c(0x0,0x0);}[_0x491732(0x8d3)](_0x37fcfa){var _0x28fefa=_0x491732;return new _0x513e3c(this[_0x28fefa(0x3e9)]+_0x37fcfa[_0x28fefa(0x3e9)],this[_0x28fefa(0x520)]+_0x37fcfa['height']);}[_0x491732(0x5d1)](_0x2fe920){var _0xaecf56=_0x491732;return new _0x513e3c(this[_0xaecf56(0x3e9)]-_0x2fe920['width'],this['height']-_0x2fe920[_0xaecf56(0x520)]);}static[_0x491732(0xbe8)](_0x30f76b,_0x262e28,_0x69346f){var _0x2dcd03=_0x491732,_0x456a6e=_0x30f76b['width']+(_0x262e28['width']-_0x30f76b[_0x2dcd03(0x3e9)])*_0x69346f,_0x262e28=_0x30f76b[_0x2dcd03(0x520)]+(_0x262e28[_0x2dcd03(0x520)]-_0x30f76b[_0x2dcd03(0x520)])*_0x69346f;return new _0x513e3c(_0x456a6e,_0x262e28);}}},0x1f13:(_0x36bdff,_0x5cd9ca,_0x47c788)=>{var _0x23c81a=a7_0x3304fb;_0x47c788['d'](_0x5cd9ca,{'l':()=>_0x48075b});class _0x48075b{constructor(_0xb24e6c,_0x340ac5,_0x43226b,_0x407b88){var _0x23548f=a7_0x4135;this['x']=_0xb24e6c,this['y']=_0x340ac5,this[_0x23548f(0x3e9)]=_0x43226b,this[_0x23548f(0x520)]=_0x407b88;}[_0x23c81a(0x52a)](_0x3f639a,_0x35f63a){return new _0x48075b(this['x']*_0x3f639a,this['y']*_0x35f63a,this['width']*_0x3f639a,this['height']*_0x35f63a);}[_0x23c81a(0x1c9)](_0x4e390a,_0x4fb52e,_0x4161fa){var _0x18de4b=_0x23c81a;return _0x4161fa['x']=this['x']*_0x4e390a,_0x4161fa['y']=this['y']*_0x4fb52e,_0x4161fa[_0x18de4b(0x3e9)]=this['width']*_0x4e390a,_0x4161fa[_0x18de4b(0x520)]=this['height']*_0x4fb52e,this;}[_0x23c81a(0x4fb)](){var _0x1c59c5=_0x23c81a;return new _0x48075b(this['x'],this['y'],this[_0x1c59c5(0x3e9)],this[_0x1c59c5(0x520)]);}}},0x10313:(_0x3ca20b,_0x1521a5,_0x29bdc7)=>{var _0x248b11=a7_0x3304fb;_0x29bdc7=_0x29bdc7(0x349f),Object['defineProperty'](_0x29bdc7['x'][_0x248b11(0x78e)],_0x248b11(0xa48),{'get':function(){var _0x25169e=_0x248b11;return this[_0x25169e(0xb6a)];},'set':function(_0x152cba){var _0x3aca86=_0x248b11;this[_0x3aca86(0xb6a)]=_0x152cba;},'enumerable':!0x0,'configurable':!0x0});},0x92e2:(_0x27e813,_0x4227db,_0x4d77e2)=>{_0x4d77e2['d'](_0x4227db,{'g':()=>_0x28eaab});class _0x28eaab{constructor(_0x3d0ab6,_0x563e6e){var _0x2bb43e=a7_0x4135;this[_0x2bb43e(0x5bc)]=_0x3d0ab6,this['mesh']=_0x563e6e;}}},0x8f50:(_0x2cd941,_0x31c65b,_0x1fac1f)=>{var _0x4c6b78=a7_0x3304fb,_0x19fdfb=_0x1fac1f(0x1610),_0x3965c8=_0x1fac1f(0xd53f),_0x1fac1f=_0x1fac1f(0x9607);_0x1fac1f['P'][_0x4c6b78(0x78e)][_0x4c6b78(0xa3a)]=function(_0x52d9d6,_0x48eea8,_0x323a80,_0x381448,_0x4ad6ee,_0x40973b){var _0x5aa0df=_0x4c6b78;const _0x577884=_0x3965c8['jp'][_0x5aa0df(0x3b4)][0x0];var _0x29629f=_0x3965c8['jp']['Vector3'][0x1];let _0x58dab3=Infinity;for(let _0x3b3af7=this['indexStart'];_0x3b3af7<this[_0x5aa0df(0x5e8)]+this[_0x5aa0df(0x244)]-(0x3-_0x381448);_0x3b3af7+=_0x381448){var _0x5f443b=_0x323a80[_0x3b3af7],_0x121ad7=_0x323a80[_0x3b3af7+0x1],_0x483c8c=_0x323a80[_0x3b3af7+0x2];_0x4ad6ee&&0xffffffff===_0x483c8c?_0x3b3af7+=0x2:(_0x5f443b=_0x48eea8[_0x5f443b],_0x121ad7=_0x48eea8[_0x121ad7],_0x483c8c=_0x48eea8[_0x483c8c],_0x5f443b&&_0x121ad7&&_0x483c8c&&(_0x5f443b=_0x3965c8['P']['ProjectOnTriangleToRef'](_0x52d9d6,_0x5f443b,_0x121ad7,_0x483c8c,_0x29629f))<_0x58dab3&&(_0x577884[_0x5aa0df(0xaf5)](_0x29629f),_0x58dab3=_0x5f443b));}return _0x40973b[_0x5aa0df(0xaf5)](_0x577884),_0x58dab3;},_0x1fac1f['P'][_0x4c6b78(0x78e)][_0x4c6b78(0x2cf)]=function(_0x3dbfdc,_0x153349,_0x84cf04,_0x49d096){var _0x2f1e98=_0x4c6b78;const _0x403a1a=_0x3965c8['jp'][_0x2f1e98(0x3b4)][0x0];var _0xbbee25=_0x3965c8['jp'][_0x2f1e98(0x3b4)][0x1];let _0x13fcfd=Infinity;for(let _0xa0bca4=this[_0x2f1e98(0xab0)];_0xa0bca4<this['verticesStart']+this['verticesCount'];_0xa0bca4+=0x3){var _0x1afb03=_0x153349[_0xa0bca4],_0x38eb7c=_0x153349[_0xa0bca4+0x1],_0x5e2028=_0x153349[_0xa0bca4+0x2],_0x1afb03=_0x3965c8['P'][_0x2f1e98(0xbda)](_0x3dbfdc,_0x1afb03,_0x38eb7c,_0x5e2028,_0xbbee25);_0x1afb03<_0x13fcfd&&(_0x403a1a[_0x2f1e98(0xaf5)](_0xbbee25),_0x13fcfd=_0x1afb03);}return _0x49d096['copyFrom'](_0x403a1a),_0x13fcfd;},_0x1fac1f['P'][_0x4c6b78(0x78e)][_0x4c6b78(0x61a)]=function(_0x46f751,_0x4f51e6,_0x1dbb4c,_0x6d044a){var _0x51ace5=_0x4c6b78,_0x12e97b=this[_0x51ace5(0x6a5)]();if(!_0x12e97b)return-0x1;let _0x4beb74=0x3,_0x263fef=!0x1;switch(_0x12e97b[_0x51ace5(0x941)]){case _0x19fdfb['g'][_0x51ace5(0x896)]:case _0x19fdfb['g']['MATERIAL_LineLoopDrawMode']:case _0x19fdfb['g']['MATERIAL_LineStripDrawMode']:case _0x19fdfb['g'][_0x51ace5(0x21b)]:return-0x1;case _0x19fdfb['g'][_0x51ace5(0x201)]:_0x4beb74=0x1,_0x263fef=!0x0;}return _0x12e97b[_0x51ace5(0x941)]===_0x19fdfb['g'][_0x51ace5(0x683)]?-0x1:!_0x1dbb4c['length']&&this['_mesh'][_0x51ace5(0x510)]?this[_0x51ace5(0x2cf)](_0x46f751,_0x4f51e6,_0x1dbb4c,_0x6d044a):this['_projectOnTrianglesToRef'](_0x46f751,_0x4f51e6,_0x1dbb4c,_0x4beb74,_0x263fef,_0x6d044a);};},0xe02:(_0x2ceb0b,_0x4add15,_0x24065f)=>{var _0x45502a=a7_0x3304fb,_0x591b6a=_0x24065f(0x94e3),_0x20715d=_0x24065f(0x1679c),_0x1f4bfd=_0x24065f(0xd53f),_0x173f7a=_0x24065f(0x9a70),_0x220229=_0x24065f(0x454e);_0x591b6a['Kj'][_0x45502a(0x78e)]['thinInstanceAdd']=function(_0x240d64,_0x45eb6b=!0x0){var _0x22a10c=_0x45502a;if(!this[_0x22a10c(0xb68)]()[_0x22a10c(0xc8e)]()[_0x22a10c(0x7b9)]()['instancedArrays'])return _0x173f7a['Y'][_0x22a10c(0x803)]('Thin\x20Instances\x20are\x20not\x20supported\x20on\x20this\x20device\x20as\x20Instanced\x20Array\x20extension\x20not\x20supported'),-0x1;this['_thinInstanceUpdateBufferSize'](_0x22a10c(0xb95),Array[_0x22a10c(0x96d)](_0x240d64)?_0x240d64[_0x22a10c(0x86f)]:0x1);var _0x1dba07=this[_0x22a10c(0x434)][_0x22a10c(0x640)];if(Array[_0x22a10c(0x96d)](_0x240d64)){for(let _0x4421dc=0x0;_0x4421dc<_0x240d64[_0x22a10c(0x86f)];++_0x4421dc)this[_0x22a10c(0xab2)](this['_thinInstanceDataStorage'][_0x22a10c(0x640)]++,_0x240d64[_0x4421dc],_0x4421dc===_0x240d64['length']-0x1&&_0x45eb6b);}else this[_0x22a10c(0xab2)](this[_0x22a10c(0x434)]['instancesCount']++,_0x240d64,_0x45eb6b);return _0x1dba07;},_0x591b6a['Kj'][_0x45502a(0x78e)][_0x45502a(0x6a1)]=function(_0x2b7d4d=!0x0){var _0x1af8c9=_0x45502a;return this[_0x1af8c9(0x2fd)](_0x1f4bfd['y3'][_0x1af8c9(0x59b)],_0x2b7d4d);},_0x591b6a['Kj'][_0x45502a(0x78e)][_0x45502a(0x130)]=function(_0x953aea,_0x50e140){var _0x4c198e=_0x45502a;_0x953aea===_0x20715d['o']['ColorKind']&&(_0x953aea=_0x20715d['o']['ColorInstanceKind']),this[_0x4c198e(0x953)](_0x953aea),this[_0x4c198e(0x454)](),this[_0x4c198e(0x764)][_0x4c198e(0x27e)][_0x953aea]=_0x50e140,this[_0x4c198e(0x764)][_0x4c198e(0xaec)][_0x953aea]=_0x50e140*Math[_0x4c198e(0x3f8)](0x20,this[_0x4c198e(0x434)][_0x4c198e(0x640)]),this[_0x4c198e(0x764)][_0x4c198e(0x476)][_0x953aea]=new Float32Array(this['_userThinInstanceBuffersStorage'][_0x4c198e(0xaec)][_0x953aea]),this['_userThinInstanceBuffersStorage'][_0x4c198e(0x593)][_0x953aea]=new _0x20715d['o'](this['getEngine'](),this[_0x4c198e(0x764)]['data'][_0x953aea],_0x953aea,!0x0,!0x1,_0x50e140,!0x0),this[_0x4c198e(0x50b)](this['_userThinInstanceBuffersStorage'][_0x4c198e(0x593)][_0x953aea]);},_0x591b6a['Kj']['prototype'][_0x45502a(0xab2)]=function(_0x26103b,_0x21e154,_0x2a9534=!0x0){var _0x108530=_0x45502a;if(!this[_0x108530(0x434)][_0x108530(0x871)]||_0x26103b>=this[_0x108530(0x434)]['instancesCount'])return!0x1;var _0x374f0a=this[_0x108530(0x434)][_0x108530(0x871)];return _0x21e154[_0x108530(0xad7)](_0x374f0a,0x10*_0x26103b),this[_0x108530(0x434)][_0x108530(0xb9b)]&&(this[_0x108530(0x434)][_0x108530(0xb9b)][_0x26103b]=_0x21e154),_0x2a9534&&(this[_0x108530(0x8a8)](_0x108530(0xb95)),this['doNotSyncBoundingInfo']||this[_0x108530(0xa8d)](!0x1)),!0x0;},_0x591b6a['Kj'][_0x45502a(0x78e)][_0x45502a(0x989)]=function(_0x15cad,_0x4e56b8,_0x16ffcf,_0x2eafc0=!0x0){var _0x2d5d64=_0x45502a;return _0x15cad===_0x20715d['o'][_0x2d5d64(0x48f)]&&(_0x15cad=_0x20715d['o'][_0x2d5d64(0x75e)]),!(!this['_userThinInstanceBuffersStorage']||!this[_0x2d5d64(0x764)][_0x2d5d64(0x476)][_0x15cad]||_0x4e56b8>=this[_0x2d5d64(0x434)][_0x2d5d64(0x640)]||(this[_0x2d5d64(0x15d)](_0x15cad,0x0),this['_userThinInstanceBuffersStorage'][_0x2d5d64(0x476)][_0x15cad][_0x2d5d64(0x6c1)](_0x16ffcf,_0x4e56b8*this[_0x2d5d64(0x764)]['strides'][_0x15cad]),_0x2eafc0&&this['thinInstanceBufferUpdated'](_0x15cad),0x0));},Object['defineProperty'](_0x591b6a['Kj'][_0x45502a(0x78e)],'thinInstanceCount',{'get':function(){var _0x33a1bb=_0x45502a;return this[_0x33a1bb(0x434)][_0x33a1bb(0x640)];},'set':function(_0x295eeb){var _0x1812a9=_0x45502a,_0x512970=null!=(_0x512970=this[_0x1812a9(0x434)][_0x1812a9(0x871)])?_0x512970:null==(_0x512970=this[_0x1812a9(0xab7)])?void 0x0:_0x512970[_0x1812a9(0x434)][_0x1812a9(0x871)];_0x295eeb<=(_0x512970?_0x512970[_0x1812a9(0x86f)]/0x10:0x0)&&(this[_0x1812a9(0x434)]['instancesCount']=_0x295eeb);},'enumerable':!0x0,'configurable':!0x0}),_0x591b6a['Kj'][_0x45502a(0x78e)][_0x45502a(0x47f)]=function(_0x3d1fda,_0xe2b34,_0x1fc413=!0x1){var _0x523d38=_0x45502a;_0x3d1fda===_0x20715d['o'][_0x523d38(0x48f)]&&(_0x3d1fda=_0x20715d['o'][_0x523d38(0x75e)]);const _0xfad2e0=new _0x20715d['l'](this[_0x523d38(0xc8e)](),_0xe2b34,!_0x1fc413,0x10,!0x1,!0x0);for(let _0x52a497=0x0;_0x52a497<0x4;_0x52a497++)this[_0x523d38(0x50b)](_0xfad2e0[_0x523d38(0xb75)](_0x3d1fda+_0x52a497,0x4*_0x52a497,0x4));return _0xfad2e0;},_0x591b6a['Kj'][_0x45502a(0x78e)]['thinInstanceSetBuffer']=function(_0x41dae1,_0xcee781,_0x41aed6=0x0,_0x222415=!0x1){var _0x30d7b2=_0x45502a,_0x3f4ca8;_0x41aed6=_0x41aed6||0x10,_0x30d7b2(0xb95)===_0x41dae1?(null!=(_0x3f4ca8=this[_0x30d7b2(0x434)][_0x30d7b2(0xcec)])&&_0x3f4ca8[_0x30d7b2(0xb4b)](),this[_0x30d7b2(0x434)][_0x30d7b2(0xcec)]=null,this['_thinInstanceDataStorage'][_0x30d7b2(0x4e3)]=_0xcee781?_0xcee781[_0x30d7b2(0x86f)]:0x20*_0x41aed6,this[_0x30d7b2(0x434)][_0x30d7b2(0x871)]=_0xcee781,(this[_0x30d7b2(0x434)]['worldMatrices']=null)!==_0xcee781?(this[_0x30d7b2(0x434)][_0x30d7b2(0x640)]=_0xcee781[_0x30d7b2(0x86f)]/_0x41aed6,this[_0x30d7b2(0x434)]['matrixBuffer']=this['_thinInstanceCreateMatrixBuffer'](_0x30d7b2(0x55c),_0xcee781,_0x222415),this[_0x30d7b2(0xc94)]||this[_0x30d7b2(0xa8d)](!0x1)):(this[_0x30d7b2(0x434)][_0x30d7b2(0x640)]=0x0,this[_0x30d7b2(0xc94)]||this['refreshBoundingInfo']())):'previousMatrix'===_0x41dae1?(null!=(_0x3f4ca8=this[_0x30d7b2(0x434)][_0x30d7b2(0xa69)])&&_0x3f4ca8[_0x30d7b2(0xb4b)](),(this[_0x30d7b2(0x434)][_0x30d7b2(0xa69)]=null)!==(this[_0x30d7b2(0x434)][_0x30d7b2(0x2d9)]=_0xcee781)&&(this['_thinInstanceDataStorage']['previousMatrixBuffer']=this['_thinInstanceCreateMatrixBuffer'](_0x30d7b2(0x3c4),_0xcee781,_0x222415))):(_0x41dae1===_0x20715d['o'][_0x30d7b2(0x48f)]&&(_0x41dae1=_0x20715d['o'][_0x30d7b2(0x75e)]),null===_0xcee781?null!=(_0x3f4ca8=this[_0x30d7b2(0x764)])&&_0x3f4ca8[_0x30d7b2(0x476)][_0x41dae1]&&(this[_0x30d7b2(0x953)](_0x41dae1),delete this['_userThinInstanceBuffersStorage'][_0x30d7b2(0x476)][_0x41dae1],delete this['_userThinInstanceBuffersStorage'][_0x30d7b2(0x27e)][_0x41dae1],delete this[_0x30d7b2(0x764)][_0x30d7b2(0xaec)][_0x41dae1],delete this[_0x30d7b2(0x764)][_0x30d7b2(0x593)][_0x41dae1]):(this['_thinInstanceInitializeUserStorage'](),this['_userThinInstanceBuffersStorage'][_0x30d7b2(0x476)][_0x41dae1]=_0xcee781,this['_userThinInstanceBuffersStorage'][_0x30d7b2(0x27e)][_0x41dae1]=_0x41aed6,this[_0x30d7b2(0x764)][_0x30d7b2(0xaec)][_0x41dae1]=_0xcee781[_0x30d7b2(0x86f)],this[_0x30d7b2(0x764)][_0x30d7b2(0x593)][_0x41dae1]=new _0x20715d['o'](this[_0x30d7b2(0xc8e)](),_0xcee781,_0x41dae1,!_0x222415,!0x1,_0x41aed6,!0x0),this[_0x30d7b2(0x50b)](this[_0x30d7b2(0x764)][_0x30d7b2(0x593)][_0x41dae1])));},_0x591b6a['Kj'][_0x45502a(0x78e)][_0x45502a(0x8a8)]=function(_0x4a8a05){var _0x460b6e=_0x45502a,_0x5f1e17;_0x460b6e(0xb95)===_0x4a8a05?null!=(_0x5f1e17=this['_thinInstanceDataStorage'][_0x460b6e(0xcec)])&&_0x5f1e17['updateDirectly'](this[_0x460b6e(0x434)][_0x460b6e(0x871)],0x0,this['_thinInstanceDataStorage']['instancesCount']):'previousMatrix'===_0x4a8a05?null!=(_0x5f1e17=this[_0x460b6e(0x434)][_0x460b6e(0xa69)])&&_0x5f1e17[_0x460b6e(0x512)](this[_0x460b6e(0x434)][_0x460b6e(0x2d9)],0x0,this['_thinInstanceDataStorage'][_0x460b6e(0x640)]):(_0x4a8a05===_0x20715d['o'][_0x460b6e(0x48f)]&&(_0x4a8a05=_0x20715d['o'][_0x460b6e(0x75e)]),null!=(_0x5f1e17=this[_0x460b6e(0x764)])&&_0x5f1e17[_0x460b6e(0x593)][_0x4a8a05]&&this['_userThinInstanceBuffersStorage'][_0x460b6e(0x593)][_0x4a8a05]['updateDirectly'](this[_0x460b6e(0x764)][_0x460b6e(0x476)][_0x4a8a05],0x0));},_0x591b6a['Kj'][_0x45502a(0x78e)][_0x45502a(0x858)]=function(_0x1541e,_0x193060,_0x173b07){var _0x12f6e0=_0x45502a,_0x5d5dc5;_0x12f6e0(0xb95)===_0x1541e?this[_0x12f6e0(0x434)][_0x12f6e0(0xcec)]&&this[_0x12f6e0(0x434)][_0x12f6e0(0xcec)][_0x12f6e0(0x512)](_0x193060,_0x173b07):(_0x1541e===_0x20715d['o']['ColorKind']&&(_0x1541e=_0x20715d['o'][_0x12f6e0(0x75e)]),null!=(_0x5d5dc5=this[_0x12f6e0(0x764)])&&_0x5d5dc5[_0x12f6e0(0x593)][_0x1541e]&&this[_0x12f6e0(0x764)][_0x12f6e0(0x593)][_0x1541e][_0x12f6e0(0x512)](_0x193060,_0x173b07));},_0x591b6a['Kj'][_0x45502a(0x78e)][_0x45502a(0x1a8)]=function(){var _0xc07d32=_0x45502a;if(!this['_thinInstanceDataStorage'][_0xc07d32(0x871)]||!this['_thinInstanceDataStorage'][_0xc07d32(0xcec)])return[];var _0x327ac1=this[_0xc07d32(0x434)]['matrixData'];if(!this[_0xc07d32(0x434)][_0xc07d32(0xb9b)]){this[_0xc07d32(0x434)][_0xc07d32(0xb9b)]=new Array();for(let _0x21f6e4=0x0;_0x21f6e4<this[_0xc07d32(0x434)][_0xc07d32(0x640)];++_0x21f6e4)this[_0xc07d32(0x434)]['worldMatrices'][_0x21f6e4]=_0x1f4bfd['y3'][_0xc07d32(0x7c9)](_0x327ac1,0x10*_0x21f6e4);}return this[_0xc07d32(0x434)][_0xc07d32(0xb9b)];},_0x591b6a['Kj'][_0x45502a(0x78e)][_0x45502a(0xa8d)]=function(_0x51396e=!0x1,_0x468ec0=!0x1,_0x23faf6=!0x1){var _0x116f46=_0x45502a;if(this[_0x116f46(0x434)][_0x116f46(0x871)]&&this['_thinInstanceDataStorage'][_0x116f46(0xcec)]){const _0x1f76fc=this[_0x116f46(0x434)][_0x116f46(0x457)];if(_0x51396e||!this[_0x116f46(0x35a)]){_0x1f76fc[_0x116f46(0x86f)]=0x0,this[_0x116f46(0x55e)](_0x468ec0,_0x23faf6);const _0x56c664=this[_0x116f46(0x77e)]();this[_0x116f46(0x35a)]=new _0x220229['j'](_0x56c664[_0x116f46(0x9a5)],_0x56c664[_0x116f46(0x81f)]);}const _0x4f1c0a=this[_0x116f46(0x77e)]();var _0x3ebb68=this[_0x116f46(0x434)]['matrixData'];if(0x0===_0x1f76fc[_0x116f46(0x86f)]){for(let _0xe4b200=0x0;_0xe4b200<_0x4f1c0a[_0x116f46(0xbfc)][_0x116f46(0x51c)][_0x116f46(0x86f)];++_0xe4b200)_0x1f76fc['push'](_0x4f1c0a['boundingBox']['vectors'][_0xe4b200][_0x116f46(0x4fb)]());}_0x1f4bfd['jp'][_0x116f46(0x3b4)][0x0][_0x116f46(0x6a6)](Number['POSITIVE_INFINITY']),_0x1f4bfd['jp']['Vector3'][0x1][_0x116f46(0x6a6)](Number[_0x116f46(0x6ee)]);for(let _0x93e2a=0x0;_0x93e2a<this[_0x116f46(0x434)][_0x116f46(0x640)];++_0x93e2a){_0x1f4bfd['y3']['FromArrayToRef'](_0x3ebb68,0x10*_0x93e2a,_0x1f4bfd['jp'][_0x116f46(0x7f5)][0x0]);for(let _0x480ba8=0x0;_0x480ba8<_0x1f76fc['length'];++_0x480ba8)_0x1f4bfd['P'][_0x116f46(0x8a3)](_0x1f76fc[_0x480ba8],_0x1f4bfd['jp'][_0x116f46(0x7f5)][0x0],_0x1f4bfd['jp'][_0x116f46(0x3b4)][0x2]),_0x1f4bfd['jp'][_0x116f46(0x3b4)][0x0][_0x116f46(0x8e3)](_0x1f4bfd['jp'][_0x116f46(0x3b4)][0x2]),_0x1f4bfd['jp'][_0x116f46(0x3b4)][0x1][_0x116f46(0x89a)](_0x1f4bfd['jp']['Vector3'][0x2]);}_0x4f1c0a[_0x116f46(0x775)](_0x1f4bfd['jp']['Vector3'][0x0],_0x1f4bfd['jp'][_0x116f46(0x3b4)][0x1]),this[_0x116f46(0x5e6)]();}},_0x591b6a['Kj'][_0x45502a(0x78e)][_0x45502a(0x15d)]=function(_0x1f6375,_0x40d372=0x1){var _0x572cd6=_0x45502a,_0x4dd7b6=_0x572cd6(0xb95)===(_0x1f6375=_0x1f6375===_0x20715d['o'][_0x572cd6(0x48f)]?_0x20715d['o'][_0x572cd6(0x75e)]:_0x1f6375);if(_0x4dd7b6||this['_userThinInstanceBuffersStorage']&&this[_0x572cd6(0x764)][_0x572cd6(0x27e)][_0x1f6375]){var _0x13ccc8=_0x4dd7b6?0x10:this[_0x572cd6(0x764)]['strides'][_0x1f6375],_0x14b874=_0x4dd7b6?this[_0x572cd6(0x434)]['matrixBufferSize']:this['_userThinInstanceBuffersStorage'][_0x572cd6(0xaec)][_0x1f6375];let _0x352408=_0x4dd7b6?this[_0x572cd6(0x434)]['matrixData']:this[_0x572cd6(0x764)][_0x572cd6(0x476)][_0x1f6375];var _0x348e1f=(this[_0x572cd6(0x434)][_0x572cd6(0x640)]+_0x40d372)*_0x13ccc8;let _0x2a09ef=_0x14b874;for(;_0x2a09ef<_0x348e1f;)_0x2a09ef*=0x2;if(!_0x352408||_0x14b874!=_0x2a09ef){if(_0x352408){const _0x10a86e=new Float32Array(_0x2a09ef);_0x10a86e[_0x572cd6(0x6c1)](_0x352408,0x0),_0x352408=_0x10a86e;}else _0x352408=new Float32Array(_0x2a09ef);_0x4dd7b6?(null!=(_0x40d372=this['_thinInstanceDataStorage'][_0x572cd6(0xcec)])&&_0x40d372[_0x572cd6(0xb4b)](),this[_0x572cd6(0x434)][_0x572cd6(0xcec)]=this[_0x572cd6(0x47f)]('world',_0x352408,!0x1),this[_0x572cd6(0x434)][_0x572cd6(0x871)]=_0x352408,this[_0x572cd6(0x434)][_0x572cd6(0x4e3)]=_0x2a09ef,this[_0x572cd6(0x789)][_0x572cd6(0xc7d)]&&!this[_0x572cd6(0x434)]['previousMatrixData']&&(null!=(_0x14b874=this[_0x572cd6(0x434)]['previousMatrixBuffer'])&&_0x14b874[_0x572cd6(0xb4b)](),this[_0x572cd6(0x434)][_0x572cd6(0xa69)]=this[_0x572cd6(0x47f)]('previousWorld',_0x352408,!0x1))):(null!=(_0x4dd7b6=this[_0x572cd6(0x764)][_0x572cd6(0x593)][_0x1f6375])&&_0x4dd7b6[_0x572cd6(0xb4b)](),this['_userThinInstanceBuffersStorage'][_0x572cd6(0x476)][_0x1f6375]=_0x352408,this['_userThinInstanceBuffersStorage']['sizes'][_0x1f6375]=_0x2a09ef,this[_0x572cd6(0x764)][_0x572cd6(0x593)][_0x1f6375]=new _0x20715d['o'](this[_0x572cd6(0xc8e)](),_0x352408,_0x1f6375,!0x0,!0x1,_0x13ccc8,!0x0),this[_0x572cd6(0x50b)](this[_0x572cd6(0x764)][_0x572cd6(0x593)][_0x1f6375]));}}},_0x591b6a['Kj'][_0x45502a(0x78e)][_0x45502a(0x454)]=function(){var _0x100d1f=_0x45502a;this[_0x100d1f(0x764)]||(this[_0x100d1f(0x764)]={'data':{},'sizes':{},'vertexBuffers':{},'strides':{}});},_0x591b6a['Kj']['prototype'][_0x45502a(0x8fd)]=function(){var _0x10043c=_0x45502a,_0x516210;null!=(_0x516210=this[_0x10043c(0x434)])&&_0x516210[_0x10043c(0xcec)]&&(this[_0x10043c(0x434)][_0x10043c(0xcec)][_0x10043c(0xb4b)](),this['_thinInstanceDataStorage'][_0x10043c(0xcec)]=null);};},0xa127:(_0x2c4e8c,_0x505748,_0x121255)=>{var _0xd1cc51=a7_0x3304fb;_0x121255['d'](_0x505748,{'s':()=>_0x5761c9});class _0x5761c9{constructor(_0x6af33b){var _0x4397e8=a7_0x4135;this[_0x4397e8(0x5e5)]=new Float32Array(_0x6af33b),this[_0x4397e8(0x865)]=0x0;}get['itemLength'](){var _0x37671f=a7_0x4135;return this[_0x37671f(0x865)];}['at'](_0x514f43){return _0x514f43<0x0||_0x514f43>=this['_itemLength']?NaN:this['_view'][_0x514f43];}[_0xd1cc51(0x2fe)](_0x3481ae,_0x35f8de){var _0x4514a3=_0xd1cc51;return _0x35f8de<=_0x3481ae||_0x3481ae<0x0?new Float32Array(0x0):(_0x35f8de>this[_0x4514a3(0x865)]&&(_0x35f8de=this[_0x4514a3(0x865)]),this[_0x4514a3(0x5e5)][_0x4514a3(0x2fe)](_0x3481ae,_0x35f8de));}[_0xd1cc51(0x725)](_0x1a3cfd){var _0x35bd8a=_0xd1cc51;this[_0x35bd8a(0x5e5)][this['_itemLength']]=_0x1a3cfd,this[_0x35bd8a(0x865)]++,this[_0x35bd8a(0x865)]>=this[_0x35bd8a(0x5e5)][_0x35bd8a(0x86f)]&&this[_0x35bd8a(0x820)]();}[_0xd1cc51(0x820)](){var _0x21fa83=_0xd1cc51,_0x23c1f3=Math['floor'](1.5*this[_0x21fa83(0x5e5)][_0x21fa83(0x86f)]);const _0x158fca=new Float32Array(_0x23c1f3);_0x158fca[_0x21fa83(0x6c1)](this['_view']),this[_0x21fa83(0x5e5)]=_0x158fca;}}},0x2ec7:(_0x16fac0,_0x999baf,_0x5b074d)=>{var _0x432a82=a7_0x3304fb,_0x1c6668=_0x5b074d(0xd537),_0x9d7bb5=_0x5b074d(0x5294);_0x1c6668['x']['prototype'][_0x432a82(0x3c2)]=function(){var _0x2c3477=_0x432a82;return this[_0x2c3477(0x5fe)]||(this['_perfCollector']=new _0x9d7bb5['P'](this)),this['_perfCollector'];};},0x544c:(_0x4b84ff,_0x3ef790,_0xa59be3)=>{var _0x85d43b=a7_0x3304fb;_0xa59be3['d'](_0x3ef790,{'q':()=>_0x414bb9});class _0x414bb9{static['Eval'](_0x4a271f,_0x2d781f){var _0x5c7ea6=a7_0x4135;return'true'===(_0x4a271f=_0x4a271f[_0x5c7ea6(0xae2)](/\([^()]*\)/g)?_0x4a271f[_0x5c7ea6(0x89b)](/\([^()]*\)/g,_0x546c00=>(_0x546c00=_0x546c00['slice'](0x1,_0x546c00['length']-0x1),_0x414bb9[_0x5c7ea6(0x87f)](_0x546c00,_0x2d781f))):_0x414bb9['_HandleParenthesisContent'](_0x4a271f,_0x2d781f))||'false'!==_0x4a271f&&_0x414bb9['Eval'](_0x4a271f,_0x2d781f);}static['_HandleParenthesisContent'](_0x93c2ff,_0x263e97){var _0x429924=a7_0x4135;_0x263e97=_0x263e97||(_0x2e4abe=>'true'===_0x2e4abe);let _0x34e872;const _0x32ca88=_0x93c2ff[_0x429924(0x684)]('||');for(const _0x1b67c8 in _0x32ca88)if(Object[_0x429924(0x78e)][_0x429924(0xa71)][_0x429924(0xa85)](_0x32ca88,_0x1b67c8)){let _0x2cba97=_0x414bb9['_SimplifyNegation'](_0x32ca88[_0x1b67c8][_0x429924(0xc8c)]());const _0x3a5436=_0x2cba97[_0x429924(0x684)]('&&');if(0x1<_0x3a5436[_0x429924(0x86f)])for(let _0x1514bc=0x0;_0x1514bc<_0x3a5436[_0x429924(0x86f)];++_0x1514bc){const _0x402a5b=_0x414bb9[_0x429924(0x8b6)](_0x3a5436[_0x1514bc][_0x429924(0xc8c)]());if(!(_0x34e872=_0x429924(0x2bb)!==_0x402a5b&&_0x429924(0x5dc)!==_0x402a5b?'!'===_0x402a5b[0x0]?!_0x263e97(_0x402a5b[_0x429924(0x563)](0x1)):_0x263e97(_0x402a5b):_0x429924(0x2bb)===_0x402a5b)){_0x2cba97=_0x429924(0x5dc);break;}}if(_0x34e872||_0x429924(0x2bb)===_0x2cba97){_0x34e872=!0x0;break;}_0x34e872=_0x429924(0x2bb)!==_0x2cba97&&_0x429924(0x5dc)!==_0x2cba97?'!'===_0x2cba97[0x0]?!_0x263e97(_0x2cba97[_0x429924(0x563)](0x1)):_0x263e97(_0x2cba97):_0x429924(0x2bb)===_0x2cba97;}return _0x34e872?'true':'false';}static[_0x85d43b(0x8b6)](_0x59c473){var _0x3c144a=_0x85d43b;return _0x3c144a(0x1a2)===(_0x59c473=(_0x59c473=_0x59c473[_0x3c144a(0x89b)](/^[\s!]+/,_0x2a589d=>(_0x2a589d=_0x2a589d[_0x3c144a(0x89b)](/[\s]/g,()=>''))[_0x3c144a(0x86f)]%0x2?'!':''))['trim']())?_0x59c473=_0x3c144a(0x5dc):_0x3c144a(0xcdb)===_0x59c473&&(_0x59c473=_0x3c144a(0x2bb)),_0x59c473;}}},0x5397:(_0x1b8d43,_0x19bd28,_0x48a463)=>{var _0x24d405=a7_0x3304fb;_0x48a463['d'](_0x19bd28,{'B':()=>_0x47e353,'M':()=>function(_0x2a320e,_0x57f5ba){const _0x1bd79b=_0x1fdf75['map'](_0x4150f5=>{var _0x38923c=a7_0x4135;{var _0xcaaace=_0x2a320e,_0x1f91c1=_0x4150f5,_0xc6a94a=_0x57f5ba;const _0x29d676=_0xcaaace[_0x1f91c1];return _0x38923c(0x785)!=typeof _0x29d676?null:((_0x29d676['next']=_0x2de9dc)['previous']=_0x29d676,_0xcaaace[_0x1f91c1]=_0x2de9dc,()=>{var _0x4563cf=_0x38923c;const _0x4ee151=_0x2de9dc['previous'];if(_0x4ee151){const _0x47c916=_0x2de9dc[_0x4563cf(0x382)];_0x47c916?(_0x4ee151[_0x4563cf(0x382)]=_0x47c916)['previous']=_0x4ee151:(_0x4ee151['next']=void 0x0,_0xcaaace[_0x1f91c1]=_0x4ee151),_0x2de9dc[_0x4563cf(0x382)]=void 0x0,_0x2de9dc[_0x4563cf(0xb13)]=void 0x0;}});function _0x2de9dc(){var _0x164ffc=_0x38923c,_0x40cef3=_0xcaaace[_0x164ffc(0x86f)],_0x450ab9=_0x2de9dc[_0x164ffc(0xb13)]['apply'](_0xcaaace,arguments);return _0xc6a94a(_0x1f91c1,_0x40cef3),_0x450ab9;}}});return()=>{var _0x204c34=a7_0x4135;_0x1bd79b[_0x204c34(0xa7c)](_0x1dc860=>{null!=_0x1dc860&&_0x1dc860();});};}});class _0x47e353{static[_0x24d405(0xbc0)](_0x472e9e,_0x27f2ca){var _0x10c924=_0x24d405;const _0x310b3d=[];for(let _0x29a367=0x0;_0x29a367<_0x472e9e;++_0x29a367)_0x310b3d[_0x10c924(0x725)](_0x27f2ca());return _0x310b3d;}static[_0x24d405(0xa5d)](_0x22b007,_0x15bed5){var _0x1f6f9a=_0x24d405;return _0x47e353[_0x1f6f9a(0xbc0)](_0x22b007,_0x15bed5);}}const _0x1fdf75=[_0x24d405(0x725),_0x24d405(0x6a0),_0x24d405(0x8ff),_0x24d405(0xb4f),_0x24d405(0x463)];},0xeecb:(_0x328b07,_0x1f3e5a,_0x148e9a)=>{_0x148e9a['d'](_0x1f3e5a,{'AW':()=>function(_0x393351){var _0x1ca4ba=a7_0x4135;return _0x393351[_0x1ca4ba(0x89b)](/[.*+?^${}()|[\]\\]/g,_0x1ca4ba(0x2f3));},'Kt':()=>function(_0x4d68a5){var _0x827249=a7_0x4135;let _0x19a3a5=0x0,_0x431fa4='',_0x49d62c=!0x1;const _0x51b8f7=[];for(;_0x19a3a5<_0x4d68a5[_0x827249(0x86f)];){var _0x16bc91,_0x43ad3d=_0x4d68a5[_0x827249(0x691)](_0x19a3a5);if(_0x431fa4)_0x43ad3d===_0x431fa4?'\x22'===_0x431fa4||'\x27'===_0x431fa4?('\x5c'!==_0x4d68a5['charAt'](_0x19a3a5-0x1)&&(_0x431fa4=''),_0x51b8f7['push'](_0x43ad3d)):(_0x431fa4='',_0x49d62c=!0x1):'*/'===_0x431fa4&&'*'===_0x43ad3d&&_0x19a3a5+0x1<_0x4d68a5[_0x827249(0x86f)]?''===(_0x431fa4='/'===_0x4d68a5[_0x827249(0x691)](_0x19a3a5+0x1)?'':_0x431fa4)&&(_0x49d62c=!0x1,_0x19a3a5++):_0x49d62c||_0x51b8f7[_0x827249(0x725)](_0x43ad3d);else{switch(_0x43ad3d){case'\x22':case'\x27':case'`':_0x431fa4=_0x43ad3d;break;case'/':_0x19a3a5+0x1<_0x4d68a5[_0x827249(0x86f)]&&('/'===(_0x16bc91=_0x4d68a5[_0x827249(0x691)](_0x19a3a5+0x1))?(_0x431fa4='\x0a',_0x49d62c=!0x0):'*'===_0x16bc91&&(_0x431fa4='*/',_0x49d62c=!0x0));}_0x49d62c||_0x51b8f7[_0x827249(0x725)](_0x43ad3d);}_0x19a3a5++;}return _0x51b8f7[_0x827249(0xb4e)]('');},'Pm':()=>function(_0xa7df1e,_0x25e2d1){var _0x5e9e44=a7_0x4135;for(;_0x25e2d1<_0xa7df1e[_0x5e9e44(0x86f)];){var _0x31eb11=_0xa7df1e[_0x25e2d1];if('\x20'!==_0x31eb11&&'\x0a'!==_0x31eb11&&'\x0d'!==_0x31eb11&&'\x09'!==_0x31eb11&&'\x0a'!==_0x31eb11&&'\u00a0'!==_0x31eb11)break;_0x25e2d1++;}return _0x25e2d1;},'uA':()=>function(_0x1c01df){var _0x259ac4=a7_0x4135;return _0x1c01df=_0x1c01df[_0x259ac4(0x9e1)](0x0),0x30<=_0x1c01df&&_0x1c01df<=0x39||0x41<=_0x1c01df&&_0x1c01df<=0x5a||0x61<=_0x1c01df&&_0x1c01df<=0x7a||0x5f==_0x1c01df;},'vt':()=>function(_0x4c5f33,_0x478577,_0x1c197e,_0x54e43e){var _0x40f79b=a7_0x4135;let _0x50ab4b=_0x54e43e,_0x301ed1=0x0,_0x147249='';for(;_0x50ab4b<_0x1c197e[_0x40f79b(0x86f)];){var _0x58f5a3,_0x1d77aa=_0x1c197e[_0x40f79b(0x691)](_0x50ab4b);if(_0x147249)_0x1d77aa===_0x147249?('\x22'!==_0x147249&&'\x27'!==_0x147249||'\x5c'!==_0x1c197e[_0x40f79b(0x691)](_0x50ab4b-0x1))&&(_0x147249=''):'*/'===_0x147249&&'*'===_0x1d77aa&&_0x50ab4b+0x1<_0x1c197e['length']&&''===(_0x147249='/'===_0x1c197e[_0x40f79b(0x691)](_0x50ab4b+0x1)?'':_0x147249)&&_0x50ab4b++;else switch(_0x1d77aa){case _0x4c5f33:_0x301ed1++;break;case _0x478577:_0x301ed1--;break;case'\x22':case'\x27':case'`':_0x147249=_0x1d77aa;break;case'/':_0x50ab4b+0x1<_0x1c197e[_0x40f79b(0x86f)]&&('/'===(_0x58f5a3=_0x1c197e['charAt'](_0x50ab4b+0x1))?_0x147249='\x0a':'*'===_0x58f5a3&&(_0x147249='*/'));}if(_0x50ab4b++,0x0===_0x301ed1)break;}return 0x0===_0x301ed1?_0x50ab4b-0x1:-0x1;},'wm':()=>function(_0x3d76b1,_0x5bc0d6,_0x125fcb){var _0x5d701d=a7_0x4135;for(;0x0<=_0x5bc0d6&&_0x3d76b1[_0x5d701d(0x691)](_0x5bc0d6)!==_0x125fcb;)_0x5bc0d6--;return _0x5bc0d6;}});},0x8baf:(_0x2c7536,_0x156593,_0x59fdb0)=>{_0x59fdb0['d'](_0x156593,{'S':()=>function(_0x2def4f){var _0x249db1=a7_0x4135;return _0x2def4f+_0x249db1(0x8e0);}});},0xfa63:(_0x12847b,_0x314928,_0x236189)=>{var _0x4ae5e2=a7_0x3304fb;_0x236189['d'](_0x314928,{'K':()=>_0x16f61c});var _0x46a4ee=_0x236189(0x9a70),_0x4dd7ef=_0x236189(0x4158);class _0x16f61c{static[_0x4ae5e2(0x492)](_0x152d4a){var _0x39288a=_0x4ae5e2;if(this[_0x39288a(0x5c8)]&&this[_0x39288a(0x5c8)][_0x152d4a])return this[_0x39288a(0x5c8)][_0x152d4a];var _0x42f68f=(0x0,_0x4dd7ef['q'])(_0x152d4a);if(_0x42f68f)return _0x42f68f;_0x46a4ee['Y'][_0x39288a(0x6dd)](_0x152d4a+'\x20not\x20found,\x20you\x20may\x20have\x20missed\x20an\x20import.');var _0x325456=_0x152d4a[_0x39288a(0x684)]('.');let _0x2ebe8d=window||this;for(let _0x51ac9b=0x0,_0x8d3601=_0x325456[_0x39288a(0x86f)];_0x51ac9b<_0x8d3601;_0x51ac9b++)_0x2ebe8d=_0x2ebe8d[_0x325456[_0x51ac9b]];return'function'!=typeof _0x2ebe8d?null:_0x2ebe8d;}}_0x16f61c['RegisteredExternalClasses']={};},0x89c8:(_0x5ddd52,_0x545b4b,_0x55971e)=>{var _0xcc0dc7=a7_0x3304fb,_0x33bb0d=_0x55971e(0xa896),_0x41f5f2=_0x55971e(0x12a73);_0x33bb0d['y$'][_0xcc0dc7(0x78e)]['runCoroutineAsync']=function(_0x4b8226){var _0x56f5c0=_0xcc0dc7,_0x5b3a68;return this[_0x56f5c0(0x1d0)]||(_0x5b3a68=function(_0x32dda3){var _0x1b73b2=_0x56f5c0;const _0x4d30a2=new Array(),_0x4444fc=new Array(),_0x1ffe07=new Array(),_0xc6400d=_0x32dda3[_0x1b73b2(0x8d3)](()=>{var _0x226bc7=_0x1b73b2,_0x524892=_0x4d30a2[_0x226bc7(0x86f)];for(let _0x9510b9=0x0;_0x9510b9<_0x524892;_0x9510b9++)(0x0,_0x41f5f2['WP'])(_0x4d30a2[_0x226bc7(0xb4f)](),_0x4444fc[_0x226bc7(0xb4f)](),_0x1ffe07[_0x226bc7(0xb4f)]());});return{'scheduler':(_0x5868a,_0x4c10fe,_0x3d367d)=>{var _0x377625=_0x1b73b2;_0x4d30a2[_0x377625(0x725)](_0x5868a),_0x4444fc[_0x377625(0x725)](_0x4c10fe),_0x1ffe07[_0x377625(0x725)](_0x3d367d);},'dispose':()=>{var _0x20c831=_0x1b73b2;_0x32dda3[_0x20c831(0xa7e)](_0xc6400d);}};}(this),this[_0x56f5c0(0x1d0)]=_0x5b3a68[_0x56f5c0(0x474)],this[_0x56f5c0(0x47d)]=_0x5b3a68[_0x56f5c0(0xb4b)]),(0x0,_0x41f5f2['sM'])(_0x4b8226,this[_0x56f5c0(0x1d0)]);},_0x33bb0d['y$']['prototype'][_0xcc0dc7(0x6df)]=function(){var _0x3e2dcd=_0xcc0dc7;this[_0x3e2dcd(0x47d)]&&this[_0x3e2dcd(0x47d)](),this[_0x3e2dcd(0x1d0)]=void 0x0,this[_0x3e2dcd(0x47d)]=void 0x0;};},0xa2bf:(_0x16ed0b,_0x476925,_0x59b989)=>{var _0x479942=a7_0x3304fb;_0x59b989['d'](_0x476925,{'b':()=>_0x43c233});class _0x43c233{static[_0x479942(0x3a3)](_0x1545a7=0x3,_0xba3a36=0x1f4){var _0xc48ed3=_0x479942;return(_0x545aa0,_0x1629fd,_0x5d0f3f)=>0x0!==_0x1629fd['status']||_0x1545a7<=_0x5d0f3f||-0x1!==_0x545aa0['indexOf'](_0xc48ed3(0x48b))?-0x1:Math[_0xc48ed3(0x5ca)](0x2,_0x5d0f3f)*_0xba3a36;}}},0x6661:(_0xfd6ba3,_0x5193eb,_0x151d39)=>{var _0x186fa2=a7_0x3304fb;_0x151d39['d'](_0x5193eb,{'x':()=>_0xd24b90});class _0xd24b90{constructor(){var _0x2f6891=a7_0x4135;this[_0x2f6891(0x286)]=0x0,this[_0x2f6891(0x5dd)]={};}[_0x186fa2(0xaf5)](_0x429963){var _0x5f353d=_0x186fa2;this[_0x5f353d(0xa3e)](),_0x429963[_0x5f353d(0xa7c)]((_0x17c47b,_0x26806b)=>this[_0x5f353d(0x8d3)](_0x17c47b,_0x26806b));}[_0x186fa2(0xc45)](_0x4f168d){var _0x301024=_0x186fa2;_0x4f168d=this[_0x301024(0x5dd)][_0x4f168d];if(void 0x0!==_0x4f168d)return _0x4f168d;}[_0x186fa2(0x266)](_0x319797,_0x187ee3){var _0x2f53f2=_0x186fa2;let _0x34d384=this[_0x2f53f2(0xc45)](_0x319797);return void 0x0===_0x34d384&&(_0x34d384=_0x187ee3(_0x319797))&&this['add'](_0x319797,_0x34d384),_0x34d384;}[_0x186fa2(0x3e1)](_0x7ea927,_0x36cac6){var _0x5a2676=_0x186fa2,_0x2432c8=this[_0x5a2676(0xc45)](_0x7ea927);return void 0x0!==_0x2432c8?_0x2432c8:(this[_0x5a2676(0x8d3)](_0x7ea927,_0x36cac6),_0x36cac6);}['contains'](_0x41f07f){var _0x279dd0=_0x186fa2;return void 0x0!==this[_0x279dd0(0x5dd)][_0x41f07f];}[_0x186fa2(0x8d3)](_0x485d49,_0x344710){var _0x715f8b=_0x186fa2;return void 0x0===this[_0x715f8b(0x5dd)][_0x485d49]&&(this[_0x715f8b(0x5dd)][_0x485d49]=_0x344710,++this[_0x715f8b(0x286)],!0x0);}[_0x186fa2(0x6c1)](_0xf54f67,_0x1f7a12){var _0x14a7e5=_0x186fa2;return void 0x0!==this[_0x14a7e5(0x5dd)][_0xf54f67]&&(this[_0x14a7e5(0x5dd)][_0xf54f67]=_0x1f7a12,!0x0);}['getAndRemove'](_0x121379){var _0x147f8c=_0x186fa2,_0x214d42=this[_0x147f8c(0xc45)](_0x121379);return void 0x0!==_0x214d42?(delete this[_0x147f8c(0x5dd)][_0x121379],--this['_count'],_0x214d42):null;}['remove'](_0x12acc4){var _0x1fd5da=_0x186fa2;return!!this[_0x1fd5da(0x330)](_0x12acc4)&&(delete this[_0x1fd5da(0x5dd)][_0x12acc4],--this[_0x1fd5da(0x286)],!0x0);}['clear'](){var _0x19ecf4=_0x186fa2;this[_0x19ecf4(0x5dd)]={},this[_0x19ecf4(0x286)]=0x0;}get[_0x186fa2(0x225)](){var _0x45c9a0=_0x186fa2;return this[_0x45c9a0(0x286)];}['forEach'](_0xf1c90){var _0x4166da=_0x186fa2;for(const _0x46ff0d in this['_data']){var _0x51a856=this[_0x4166da(0x5dd)][_0x46ff0d];_0xf1c90(_0x46ff0d,_0x51a856);}}['first'](_0x5bb531){var _0x1cfa2d=_0x186fa2;for(const _0x1fce3a in this[_0x1cfa2d(0x5dd)]){var _0x105976=this[_0x1cfa2d(0x5dd)][_0x1fce3a],_0x105976=_0x5bb531(_0x1fce3a,_0x105976);if(_0x105976)return _0x105976;}return null;}}},0xff4d:(_0x5f53c2,_0xe4c632,_0x47de4c)=>{var _0x54e220=a7_0x3304fb;_0x47de4c['d'](_0xe4c632,{'$':()=>_0x49848a});var _0x391675=_0x47de4c(0x544c);class _0x49848a{static[_0x54e220(0xb52)](_0x70bd0a){var _0x23f3e7=_0x54e220;_0x70bd0a[_0x23f3e7(0x43b)]=_0x70bd0a[_0x23f3e7(0x43b)]||{},_0x70bd0a['hasTags']=()=>_0x49848a[_0x23f3e7(0x75b)](_0x70bd0a),_0x70bd0a[_0x23f3e7(0xa82)]=_0x3e4ca5=>_0x49848a[_0x23f3e7(0x518)](_0x70bd0a,_0x3e4ca5),_0x70bd0a[_0x23f3e7(0x33c)]=_0x1cf14f=>_0x49848a['RemoveTagsFrom'](_0x70bd0a,_0x1cf14f),_0x70bd0a[_0x23f3e7(0x9db)]=_0x532a14=>_0x49848a[_0x23f3e7(0x9d1)](_0x70bd0a,_0x532a14);}static['DisableFor'](_0x2ed3db){var _0xb9889f=_0x54e220;delete _0x2ed3db[_0xb9889f(0x43b)],delete _0x2ed3db[_0xb9889f(0x511)],delete _0x2ed3db['addTags'],delete _0x2ed3db['removeTags'],delete _0x2ed3db['matchesTagsQuery'];}static['HasTags'](_0x4ab19f){var _0x12a341=_0x54e220;if(!_0x4ab19f['_tags'])return!0x1;var _0x5455bb=_0x4ab19f[_0x12a341(0x43b)];for(const _0x280533 in _0x5455bb)if(Object[_0x12a341(0x78e)][_0x12a341(0xa71)][_0x12a341(0xa85)](_0x5455bb,_0x280533))return!0x0;return!0x1;}static[_0x54e220(0xb71)](_0x388bbf,_0x2ab363=!0x0){var _0x4e7189=_0x54e220;if(!_0x388bbf['_tags'])return null;if(_0x2ab363){const _0x3a1af1=[];for(const _0x25177b in _0x388bbf[_0x4e7189(0x43b)])Object['prototype'][_0x4e7189(0xa71)][_0x4e7189(0xa85)](_0x388bbf[_0x4e7189(0x43b)],_0x25177b)&&!0x0===_0x388bbf[_0x4e7189(0x43b)][_0x25177b]&&_0x3a1af1['push'](_0x25177b);return _0x3a1af1[_0x4e7189(0xb4e)]('\x20');}return _0x388bbf['_tags'];}static[_0x54e220(0x518)](_0x5e40b5,_0x1eca40){var _0x1a9944=_0x54e220;if(_0x1eca40&&'string'==typeof _0x1eca40){const _0x54fdfe=_0x1eca40[_0x1a9944(0x684)]('\x20');_0x54fdfe[_0x1a9944(0xa7c)](function(_0x34e60f){_0x49848a['_AddTagTo'](_0x5e40b5,_0x34e60f);});}}static[_0x54e220(0x11a)](_0x39cf55,_0x345278){var _0xee95fc=_0x54e220;''===(_0x345278=_0x345278[_0xee95fc(0xc8c)]())||_0xee95fc(0x2bb)===_0x345278||'false'===_0x345278||_0x345278['match'](/[\s]/)||_0x345278[_0xee95fc(0xae2)](/^([!]|([|]|[&]){2})/)||(_0x49848a[_0xee95fc(0xb52)](_0x39cf55),_0x39cf55[_0xee95fc(0x43b)][_0x345278]=!0x0);}static[_0x54e220(0x323)](_0x20f713,_0x4f7702){var _0x58dd5b=_0x54e220;if(_0x49848a['HasTags'](_0x20f713)){var _0x2f19c1=_0x4f7702['split']('\x20');for(const _0x5610eb in _0x2f19c1)_0x49848a[_0x58dd5b(0xbad)](_0x20f713,_0x2f19c1[_0x5610eb]);}}static[_0x54e220(0xbad)](_0x36b9df,_0xd235bf){var _0x316c7d=_0x54e220;delete _0x36b9df[_0x316c7d(0x43b)][_0xd235bf];}static[_0x54e220(0x9d1)](_0xef4ee9,_0x170337){var _0x3e1376=_0x54e220;return void 0x0===_0x170337||(''===_0x170337?_0x49848a['HasTags'](_0xef4ee9):_0x391675['q'][_0x3e1376(0xb33)](_0x170337,_0x47ad7f=>_0x49848a['HasTags'](_0xef4ee9)&&_0xef4ee9[_0x3e1376(0x43b)][_0x47ad7f]));}}},0x7f8c:(_0x4fcd8f,_0x1fe483,_0x1085b3)=>{var _0x4f163f=a7_0x3304fb;_0x1085b3['d'](_0x1fe483,{'Q':()=>_0x4c7306});var _0x59bcdc=_0x1085b3(0x7205);class _0x4c7306{static[_0x4f163f(0x955)](_0x1c8a06){var _0x4197e6=_0x4f163f;(0x0,_0x59bcdc['CG'])()&&window['setImmediate']?window[_0x4197e6(0x212)](_0x1c8a06):setTimeout(_0x1c8a06,0x1);}}},0x16ed:(_0x5970c1,_0x168e28,_0x453856)=>{var _0x1841e4=a7_0x3304fb;_0x453856['d'](_0x168e28,{'L':()=>_0x2e9172});var _0x2107a9=_0x453856(0x15146),_0x20717a=_0x453856(0xd53f),_0x30eadd=_0x453856(0x17372);class _0x2e9172{constructor(_0x252b3f=0x1,_0xb42e04=Math['PI'],_0x3c5eac=0x0){var _0x14d798=a7_0x4135;this[_0x14d798(0x8b1)]=_0x3c5eac,this[_0x14d798(0x411)]=0x1,this[_0x14d798(0x8a9)]=0x1,this[_0x14d798(0xb84)]=!0x1,this[_0x14d798(0x6b0)]=_0xb42e04,this[_0x14d798(0xcbe)]=_0x252b3f;}get[_0x1841e4(0xcbe)](){var _0x2187aa=_0x1841e4;return this[_0x2187aa(0xa7f)];}set[_0x1841e4(0xcbe)](_0x238d14){var _0x518977=_0x1841e4;this[_0x518977(0xa7f)]=_0x238d14,this[_0x518977(0x1da)]();}get['angle'](){return this['_angle'];}set[_0x1841e4(0x6b0)](_0x48144b){var _0x204f7c=_0x1841e4;this[_0x204f7c(0x224)]=_0x48144b,this[_0x204f7c(0x1da)]();}[_0x1841e4(0x1da)](){0x0!==this['_angle']?this['_height']=this['_radius']/Math['tan'](this['_angle']/0x2):this['_height']=0x1;}[_0x1841e4(0xc89)](_0x52a9fa,_0x24864e,_0x49bb33,_0x48ff0e){var _0x11e9dc=_0x1841e4;(_0x48ff0e?_0x20717a['jp'][_0x11e9dc(0x3b4)][0x0][_0x11e9dc(0xaf5)](_0x49bb33['_localPosition']):_0x49bb33['position'][_0x11e9dc(0x99a)](_0x52a9fa[_0x11e9dc(0x2c4)](),_0x20717a['jp'][_0x11e9dc(0x3b4)][0x0]))[_0x11e9dc(0x2e5)](),(_0x48ff0e=_0x30eadd['R'][_0x11e9dc(0x33f)](0x0,this['directionRandomizer']),_0x49bb33=_0x30eadd['R'][_0x11e9dc(0x33f)](0x0,this[_0x11e9dc(0x8b1)]),_0x52a9fa=_0x30eadd['R'][_0x11e9dc(0x33f)](0x0,this[_0x11e9dc(0x8b1)])),(_0x24864e['x']=_0x20717a['jp'][_0x11e9dc(0x3b4)][0x0]['x']+_0x48ff0e,_0x24864e['y']=_0x20717a['jp']['Vector3'][0x0]['y']+_0x49bb33,_0x24864e['z']=_0x20717a['jp'][_0x11e9dc(0x3b4)][0x0]['z']+_0x52a9fa,_0x24864e['normalize']());}[_0x1841e4(0x380)](_0x589088,_0x1931e6,_0x4b443a,_0x30f762){var _0x2beb3e=_0x1841e4,_0x365cb6=_0x30eadd['R'][_0x2beb3e(0x33f)](0x0,0x2*Math['PI']);let _0x112c89;_0x112c89=this[_0x2beb3e(0xb84)]?0.0001:0x1-(_0x112c89=_0x30eadd['R'][_0x2beb3e(0x33f)](0x0,this[_0x2beb3e(0x8a9)]))*_0x112c89;var _0x277e70=this[_0x2beb3e(0xa7f)]-_0x30eadd['R'][_0x2beb3e(0x33f)](0x0,this[_0x2beb3e(0xa7f)]*this['radiusRange']),_0x2dbab8=(_0x277e70*=_0x112c89)*Math['sin'](_0x365cb6),_0x277e70=_0x277e70*Math[_0x2beb3e(0xb32)](_0x365cb6),_0x365cb6=_0x112c89*this['_height'];if(_0x30f762)return _0x1931e6['x']=_0x2dbab8,_0x1931e6['y']=_0x365cb6,void(_0x1931e6['z']=_0x277e70);_0x20717a['P'][_0x2beb3e(0xc80)](_0x2dbab8,_0x365cb6,_0x277e70,_0x589088,_0x1931e6);}[_0x1841e4(0x4fb)](){var _0x127231=_0x1841e4,_0x137c2c=new _0x2e9172(this[_0x127231(0xa7f)],this[_0x127231(0x224)],this[_0x127231(0x8b1)]);return _0x2107a9['j'][_0x127231(0xa2c)](this,_0x137c2c),_0x137c2c;}[_0x1841e4(0xb3b)](_0x50e7d2){var _0x529cd5=_0x1841e4;_0x50e7d2[_0x529cd5(0xcef)](_0x529cd5(0xcbe),this['_radius'],this[_0x529cd5(0x411)]),_0x50e7d2['setFloat']('coneAngle',this['_angle']),_0x50e7d2['setFloat2'](_0x529cd5(0x520),this['_height'],this[_0x529cd5(0x8a9)]),_0x50e7d2[_0x529cd5(0x760)]('directionRandomizer',this[_0x529cd5(0x8b1)]);}[_0x1841e4(0x1d5)](_0xec4aef){var _0x287cf3=_0x1841e4;_0xec4aef['addUniform'](_0x287cf3(0xcbe),0x2),_0xec4aef[_0x287cf3(0x856)](_0x287cf3(0x5af),0x1),_0xec4aef['addUniform'](_0x287cf3(0x520),0x2),_0xec4aef[_0x287cf3(0x856)]('directionRandomizer',0x1);}[_0x1841e4(0xc78)](){var _0x102921=_0x1841e4;let _0x261c1f=_0x102921(0xc17);return this[_0x102921(0xb84)]&&(_0x261c1f+=_0x102921(0x30e)),_0x261c1f;}[_0x1841e4(0x7d6)](){var _0x37898b=_0x1841e4;return _0x37898b(0x897);}[_0x1841e4(0x20d)](){var _0xc123b=_0x1841e4;const _0x402676={};return _0x402676[_0xc123b(0xb26)]=this[_0xc123b(0x7d6)](),_0x402676['radius']=this['_radius'],_0x402676[_0xc123b(0x6b0)]=this[_0xc123b(0x224)],_0x402676[_0xc123b(0x8b1)]=this[_0xc123b(0x8b1)],_0x402676[_0xc123b(0x411)]=this[_0xc123b(0x411)],_0x402676[_0xc123b(0x8a9)]=this[_0xc123b(0x8a9)],_0x402676['emitFromSpawnPointOnly']=this['emitFromSpawnPointOnly'],_0x402676;}[_0x1841e4(0x420)](_0x35ea4b){var _0x586758=_0x1841e4;this[_0x586758(0xcbe)]=_0x35ea4b[_0x586758(0xcbe)],this[_0x586758(0x6b0)]=_0x35ea4b[_0x586758(0x6b0)],this[_0x586758(0x8b1)]=_0x35ea4b[_0x586758(0x8b1)],this[_0x586758(0x411)]=void 0x0!==_0x35ea4b[_0x586758(0x411)]?_0x35ea4b['radiusRange']:0x1,this[_0x586758(0x8a9)]=void 0x0!==_0x35ea4b['radiusRange']?_0x35ea4b['heightRange']:0x1,this[_0x586758(0xb84)]=void 0x0!==_0x35ea4b['emitFromSpawnPointOnly']&&_0x35ea4b[_0x586758(0xb84)];}}},0x11b85:(_0x5c09eb,_0xeb58a2,_0xf98218)=>{var _0x764760=a7_0x3304fb;_0xf98218['d'](_0xeb58a2,{'k':()=>_0x21fe93,'z':()=>_0xf8fdea});var _0x31d449=_0xf98218(0xd53f),_0x26e84f=_0xf98218(0x17372),_0x45b1aa=_0xf98218(0x15146);class _0x21fe93{constructor(_0x337246=0x1,_0x41f065=0x1,_0x461a1f=0x1,_0x10d978=0x0){var _0x3f0247=a7_0x4135;this[_0x3f0247(0xcbe)]=_0x337246,this['height']=_0x41f065,this[_0x3f0247(0x411)]=_0x461a1f,this[_0x3f0247(0x8b1)]=_0x10d978,this['_tempVector']=_0x31d449['P'][_0x3f0247(0x242)]();}[_0x764760(0xc89)](_0x13b35b,_0xc8b106,_0x299aa6,_0x399aca,_0x19d359){var _0x11db16=_0x764760;_0x299aa6[_0x11db16(0x2b6)][_0x11db16(0x99a)](_0x13b35b[_0x11db16(0x2c4)](),this[_0x11db16(0x17e)]),this[_0x11db16(0x17e)][_0x11db16(0x2e5)](),_0x31d449['P'][_0x11db16(0x9d3)](this[_0x11db16(0x17e)],_0x19d359,this[_0x11db16(0x17e)]),(_0x299aa6=_0x26e84f['R'][_0x11db16(0x33f)](-this[_0x11db16(0x8b1)]/0x2,this[_0x11db16(0x8b1)]/0x2),_0x19d359=Math[_0x11db16(0x8a2)](this[_0x11db16(0x17e)]['x'],this[_0x11db16(0x17e)]['z'])),(_0x19d359+=_0x26e84f['R'][_0x11db16(0x33f)](-Math['PI']/0x2,Math['PI']/0x2)*this[_0x11db16(0x8b1)],this[_0x11db16(0x17e)]['y']=_0x299aa6,this['_tempVector']['x']=Math[_0x11db16(0x7dc)](_0x19d359),this[_0x11db16(0x17e)]['z']=Math['cos'](_0x19d359),this[_0x11db16(0x17e)][_0x11db16(0x2e5)](),_0x399aca?_0xc8b106[_0x11db16(0xaf5)](this[_0x11db16(0x17e)]):_0x31d449['P'][_0x11db16(0x55b)](this[_0x11db16(0x17e)]['x'],this['_tempVector']['y'],this[_0x11db16(0x17e)]['z'],_0x13b35b,_0xc8b106));}[_0x764760(0x380)](_0x162c60,_0x50a408,_0x42b43c,_0x3900f8){var _0x4032c6=_0x764760,_0x233761=_0x26e84f['R'][_0x4032c6(0x33f)](-this[_0x4032c6(0x520)]/0x2,this['height']/0x2),_0x1f793e=_0x26e84f['R'][_0x4032c6(0x33f)](0x0,0x2*Math['PI']),_0x58de77=_0x26e84f['R'][_0x4032c6(0x33f)]((0x1-this[_0x4032c6(0x411)])*(0x1-this['radiusRange']),0x1),_0x58de77=Math[_0x4032c6(0x2cd)](_0x58de77)*this[_0x4032c6(0xcbe)],_0x1aa9b3=_0x58de77*Math['cos'](_0x1f793e),_0x58de77=_0x58de77*Math[_0x4032c6(0x7dc)](_0x1f793e);_0x3900f8?_0x50a408['copyFromFloats'](_0x1aa9b3,_0x233761,_0x58de77):_0x31d449['P'][_0x4032c6(0xc80)](_0x1aa9b3,_0x233761,_0x58de77,_0x162c60,_0x50a408);}[_0x764760(0x4fb)](){var _0x1dc7d2=_0x764760,_0xc1d786=new _0x21fe93(this[_0x1dc7d2(0xcbe)],this[_0x1dc7d2(0x8b1)]);return _0x45b1aa['j']['DeepCopy'](this,_0xc1d786),_0xc1d786;}[_0x764760(0xb3b)](_0x938314){var _0x598a2a=_0x764760;_0x938314[_0x598a2a(0x760)](_0x598a2a(0xcbe),this[_0x598a2a(0xcbe)]),_0x938314[_0x598a2a(0x760)]('height',this[_0x598a2a(0x520)]),_0x938314[_0x598a2a(0x760)](_0x598a2a(0x411),this[_0x598a2a(0x411)]),_0x938314['setFloat'](_0x598a2a(0x8b1),this[_0x598a2a(0x8b1)]);}['buildUniformLayout'](_0x386d6){var _0x3e7657=_0x764760;_0x386d6[_0x3e7657(0x856)](_0x3e7657(0xcbe),0x1),_0x386d6[_0x3e7657(0x856)](_0x3e7657(0x520),0x1),_0x386d6[_0x3e7657(0x856)](_0x3e7657(0x411),0x1),_0x386d6[_0x3e7657(0x856)](_0x3e7657(0x8b1),0x1);}['getEffectDefines'](){var _0x4c4603=_0x764760;return _0x4c4603(0xab9);}[_0x764760(0x7d6)](){var _0x442da3=_0x764760;return _0x442da3(0x914);}[_0x764760(0x20d)](){var _0xf4a38d=_0x764760;const _0x1a20c3={};return _0x1a20c3[_0xf4a38d(0xb26)]=this[_0xf4a38d(0x7d6)](),_0x1a20c3[_0xf4a38d(0xcbe)]=this[_0xf4a38d(0xcbe)],_0x1a20c3[_0xf4a38d(0x520)]=this[_0xf4a38d(0x520)],_0x1a20c3['radiusRange']=this[_0xf4a38d(0x411)],_0x1a20c3[_0xf4a38d(0x8b1)]=this['directionRandomizer'],_0x1a20c3;}[_0x764760(0x420)](_0x22a37b){var _0x1768c8=_0x764760;this[_0x1768c8(0xcbe)]=_0x22a37b['radius'],this['height']=_0x22a37b[_0x1768c8(0x520)],this[_0x1768c8(0x411)]=_0x22a37b[_0x1768c8(0x411)],this[_0x1768c8(0x8b1)]=_0x22a37b[_0x1768c8(0x8b1)];}}class _0xf8fdea extends _0x21fe93{constructor(_0x2e74e2=0x1,_0x2e769a=0x1,_0x11efc5=0x1,_0x5020e4=new _0x31d449['P'](0x0,0x1,0x0),_0xdaa867=new _0x31d449['P'](0x0,0x1,0x0)){var _0x4fe99d=_0x764760;super(_0x2e74e2,_0x2e769a,_0x11efc5),this['direction1']=_0x5020e4,this[_0x4fe99d(0xb31)]=_0xdaa867;}[_0x764760(0xc89)](_0x1d28a8,_0x151142){var _0x2753b1=_0x764760,_0x2320c6=_0x26e84f['R'][_0x2753b1(0x33f)](this[_0x2753b1(0x192)]['x'],this[_0x2753b1(0xb31)]['x']),_0x329524=_0x26e84f['R'][_0x2753b1(0x33f)](this[_0x2753b1(0x192)]['y'],this[_0x2753b1(0xb31)]['y']),_0x10a25e=_0x26e84f['R'][_0x2753b1(0x33f)](this[_0x2753b1(0x192)]['z'],this['direction2']['z']);_0x31d449['P'][_0x2753b1(0x55b)](_0x2320c6,_0x329524,_0x10a25e,_0x1d28a8,_0x151142);}['clone'](){var _0x573ddb=_0x764760,_0x198909=new _0xf8fdea(this[_0x573ddb(0xcbe)],this[_0x573ddb(0x520)],this[_0x573ddb(0x411)],this[_0x573ddb(0x192)],this[_0x573ddb(0xb31)]);return _0x45b1aa['j'][_0x573ddb(0xa2c)](this,_0x198909),_0x198909;}[_0x764760(0xb3b)](_0x5a65cf){var _0x177fca=_0x764760;_0x5a65cf[_0x177fca(0x760)](_0x177fca(0xcbe),this[_0x177fca(0xcbe)]),_0x5a65cf[_0x177fca(0x760)](_0x177fca(0x520),this[_0x177fca(0x520)]),_0x5a65cf['setFloat'](_0x177fca(0x411),this[_0x177fca(0x411)]),_0x5a65cf['setVector3'](_0x177fca(0x192),this['direction1']),_0x5a65cf[_0x177fca(0x418)](_0x177fca(0xb31),this[_0x177fca(0xb31)]);}[_0x764760(0x1d5)](_0x363d96){var _0x57d064=_0x764760;_0x363d96[_0x57d064(0x856)](_0x57d064(0xcbe),0x1),_0x363d96['addUniform'](_0x57d064(0x520),0x1),_0x363d96[_0x57d064(0x856)](_0x57d064(0x411),0x1),_0x363d96[_0x57d064(0x856)](_0x57d064(0x192),0x3),_0x363d96[_0x57d064(0x856)](_0x57d064(0xb31),0x3);}[_0x764760(0xc78)](){var _0x36420f=_0x764760;return _0x36420f(0x2f9);}[_0x764760(0x7d6)](){var _0x240e5f=_0x764760;return _0x240e5f(0x547);}[_0x764760(0x20d)](){var _0x55011e=_0x764760;const _0x3a39bf=super['serialize']();return _0x3a39bf[_0x55011e(0x192)]=this['direction1'][_0x55011e(0x23f)](),_0x3a39bf['direction2']=this['direction2'][_0x55011e(0x23f)](),_0x3a39bf;}[_0x764760(0x420)](_0x37218a){var _0x1f1f8b=_0x764760;super['parse'](_0x37218a),this[_0x1f1f8b(0x192)]['copyFrom'](_0x37218a[_0x1f1f8b(0x192)]),this[_0x1f1f8b(0xb31)][_0x1f1f8b(0xaf5)](_0x37218a[_0x1f1f8b(0xb31)]);}}},0xe907:(_0x4c84d6,_0x24e4af,_0x100b60)=>{var _0x438464=a7_0x3304fb;_0x100b60['d'](_0x24e4af,{'V':()=>_0x80bd10});var _0xf44263=_0x100b60(0x15146),_0x5ae315=_0x100b60(0xd53f),_0x3a30a0=_0x100b60(0x17372);class _0x80bd10{constructor(_0x2580df=0x1,_0x2bce79=0x1,_0x469d67=0x0){var _0x5d85e0=a7_0x4135;this[_0x5d85e0(0xcbe)]=_0x2580df,this[_0x5d85e0(0x411)]=_0x2bce79,this[_0x5d85e0(0x8b1)]=_0x469d67;}['startDirectionFunction'](_0x24dc39,_0x2d6082,_0x8a3560,_0x2b884e){var _0x4a60df=a7_0x4135;const _0x19bf40=_0x8a3560[_0x4a60df(0x2b6)]['subtract'](_0x24dc39[_0x4a60df(0x2c4)]())[_0x4a60df(0x2e5)]();var _0x8a3560=_0x3a30a0['R'][_0x4a60df(0x33f)](0x0,this['directionRandomizer']),_0x15fc7a=_0x3a30a0['R']['RandomRange'](0x0,this[_0x4a60df(0x8b1)]),_0x5de78d=_0x3a30a0['R'][_0x4a60df(0x33f)](0x0,this[_0x4a60df(0x8b1)]);_0x19bf40['x']+=_0x8a3560,_0x19bf40['y']+=_0x15fc7a,_0x19bf40['z']+=_0x5de78d,_0x19bf40[_0x4a60df(0x2e5)](),_0x2b884e?_0x2d6082[_0x4a60df(0xaf5)](_0x19bf40):_0x5ae315['P'][_0x4a60df(0x55b)](_0x19bf40['x'],_0x19bf40['y'],_0x19bf40['z'],_0x24dc39,_0x2d6082);}['startPositionFunction'](_0x32efdb,_0x29f98f,_0xe3978d,_0x24714f){var _0x1fd8ca=a7_0x4135,_0x41ef6d=this['radius']-_0x3a30a0['R'][_0x1fd8ca(0x33f)](0x0,this['radius']*this[_0x1fd8ca(0x411)]),_0x344ead=_0x3a30a0['R']['RandomRange'](0x0,0x1),_0x124166=_0x3a30a0['R'][_0x1fd8ca(0x33f)](0x0,0x2*Math['PI']),_0x344ead=Math[_0x1fd8ca(0xcdc)](0x2*_0x344ead-0x1),_0x433689=_0x41ef6d*Math[_0x1fd8ca(0xb32)](_0x124166)*Math[_0x1fd8ca(0x7dc)](_0x344ead),_0x202f6d=_0x41ef6d*Math[_0x1fd8ca(0xb32)](_0x344ead),_0x41ef6d=_0x41ef6d*Math[_0x1fd8ca(0x7dc)](_0x124166)*Math[_0x1fd8ca(0x7dc)](_0x344ead);_0x24714f?_0x29f98f[_0x1fd8ca(0x310)](_0x433689,Math[_0x1fd8ca(0x9c3)](_0x202f6d),_0x41ef6d):_0x5ae315['P'][_0x1fd8ca(0xc80)](_0x433689,Math[_0x1fd8ca(0x9c3)](_0x202f6d),_0x41ef6d,_0x32efdb,_0x29f98f);}[_0x438464(0x4fb)](){var _0x4baf17=_0x438464,_0x420d63=new _0x80bd10(this[_0x4baf17(0xcbe)],this[_0x4baf17(0x8b1)]);return _0xf44263['j'][_0x4baf17(0xa2c)](this,_0x420d63),_0x420d63;}['applyToShader'](_0x383a69){var _0x340274=_0x438464;_0x383a69[_0x340274(0x760)](_0x340274(0xcbe),this[_0x340274(0xcbe)]),_0x383a69['setFloat']('radiusRange',this[_0x340274(0x411)]),_0x383a69[_0x340274(0x760)]('directionRandomizer',this[_0x340274(0x8b1)]);}[_0x438464(0x1d5)](_0x24221f){var _0x20e00c=_0x438464;_0x24221f['addUniform']('radius',0x1),_0x24221f['addUniform'](_0x20e00c(0x411),0x1),_0x24221f[_0x20e00c(0x856)](_0x20e00c(0x8b1),0x1);}[_0x438464(0xc78)](){var _0x21faf7=_0x438464;return _0x21faf7(0x843);}['getClassName'](){var _0x2fb3ff=_0x438464;return _0x2fb3ff(0xcc5);}['serialize'](){var _0xfeb020=_0x438464;const _0x17d1a2={};return _0x17d1a2[_0xfeb020(0xb26)]=this[_0xfeb020(0x7d6)](),_0x17d1a2[_0xfeb020(0xcbe)]=this['radius'],_0x17d1a2['radiusRange']=this[_0xfeb020(0x411)],_0x17d1a2[_0xfeb020(0x8b1)]=this[_0xfeb020(0x8b1)],_0x17d1a2;}[_0x438464(0x420)](_0x55ea56){var _0x2421e2=_0x438464;this[_0x2421e2(0xcbe)]=_0x55ea56[_0x2421e2(0xcbe)],this[_0x2421e2(0x411)]=_0x55ea56[_0x2421e2(0x411)],this[_0x2421e2(0x8b1)]=_0x55ea56['directionRandomizer'];}}},0xedb9:(_0x150973,_0x2f7290,_0x5e30d2)=>{var _0x4dc783=a7_0x3304fb;_0x5e30d2['d'](_0x2f7290,{'c':()=>_0x937616});var _0x47574c=_0x5e30d2(0x15146),_0x25ba0a=_0x5e30d2(0xd53f),_0x3d249d=_0x5e30d2(0x17372);class _0x937616{constructor(){var _0x183568=a7_0x4135;this['direction1']=new _0x25ba0a['P'](0x0,0x1,0x0),this[_0x183568(0xb31)]=new _0x25ba0a['P'](0x0,0x1,0x0);}[_0x4dc783(0xc89)](_0x1103b1,_0x13ef50,_0x1e924b,_0x1add88){var _0x42b07c=_0x4dc783,_0x388640=_0x3d249d['R'][_0x42b07c(0x33f)](this[_0x42b07c(0x192)]['x'],this[_0x42b07c(0xb31)]['x']),_0x11baf9=_0x3d249d['R'][_0x42b07c(0x33f)](this['direction1']['y'],this['direction2']['y']),_0x26f83f=_0x3d249d['R']['RandomRange'](this[_0x42b07c(0x192)]['z'],this[_0x42b07c(0xb31)]['z']);_0x1add88?_0x13ef50[_0x42b07c(0x310)](_0x388640,_0x11baf9,_0x26f83f):_0x25ba0a['P']['TransformNormalFromFloatsToRef'](_0x388640,_0x11baf9,_0x26f83f,_0x1103b1,_0x13ef50);}[_0x4dc783(0x380)](_0x1c4ff3,_0x493d99,_0xf2bd30,_0x3672e4){var _0x3185ea=_0x4dc783;_0x3672e4?_0x493d99[_0x3185ea(0x310)](0x0,0x0,0x0):_0x25ba0a['P']['TransformCoordinatesFromFloatsToRef'](0x0,0x0,0x0,_0x1c4ff3,_0x493d99);}['clone'](){var _0x49a608=_0x4dc783,_0x544a0e=new _0x937616();return _0x47574c['j'][_0x49a608(0xa2c)](this,_0x544a0e),_0x544a0e;}[_0x4dc783(0xb3b)](_0x164fb0){var _0x28b211=_0x4dc783;_0x164fb0['setVector3'](_0x28b211(0x192),this[_0x28b211(0x192)]),_0x164fb0['setVector3'](_0x28b211(0xb31),this[_0x28b211(0xb31)]);}['buildUniformLayout'](_0x5e1e20){var _0x10f8ea=_0x4dc783;_0x5e1e20['addUniform'](_0x10f8ea(0x192),0x3),_0x5e1e20['addUniform'](_0x10f8ea(0xb31),0x3);}['getEffectDefines'](){return'#define\x20POINTEMITTER';}['getClassName'](){var _0x15701a=_0x4dc783;return _0x15701a(0x54b);}[_0x4dc783(0x20d)](){var _0x2a3712=_0x4dc783;const _0x524779={};return _0x524779[_0x2a3712(0xb26)]=this['getClassName'](),_0x524779[_0x2a3712(0x192)]=this['direction1'][_0x2a3712(0x23f)](),_0x524779[_0x2a3712(0xb31)]=this['direction2'][_0x2a3712(0x23f)](),_0x524779;}[_0x4dc783(0x420)](_0x35d833){var _0x5d537c=_0x4dc783;_0x25ba0a['P'][_0x5d537c(0xbf9)](_0x35d833[_0x5d537c(0x192)],0x0,this[_0x5d537c(0x192)]),_0x25ba0a['P'][_0x5d537c(0xbf9)](_0x35d833[_0x5d537c(0xb31)],0x0,this[_0x5d537c(0xb31)]);}}},0xa546:(_0x40f3c1,_0x303476,_0x20ab5c)=>{var _0x47771f=a7_0x3304fb;_0x20ab5c['d'](_0x303476,{'A':()=>_0x444184,'c':()=>_0x17ecb6});var _0x598ffc=_0x20ab5c(0xd53f),_0x5937f3=_0x20ab5c(0x17372),_0x3d3efc=_0x20ab5c(0x15146);class _0x444184{constructor(_0x446230=0x1,_0x31c9c9=0x1,_0x34f372=0x0){var _0x495ac4=a7_0x4135;this[_0x495ac4(0xcbe)]=_0x446230,this['radiusRange']=_0x31c9c9,this[_0x495ac4(0x8b1)]=_0x34f372;}['startDirectionFunction'](_0x1b41f3,_0x4950a3,_0x388c20,_0x513cd1){var _0x1c0937=a7_0x4135;const _0x2fc33c=_0x388c20[_0x1c0937(0x2b6)][_0x1c0937(0x5d1)](_0x1b41f3[_0x1c0937(0x2c4)]())[_0x1c0937(0x2e5)]();var _0x388c20=_0x5937f3['R'][_0x1c0937(0x33f)](0x0,this[_0x1c0937(0x8b1)]),_0x1f0c99=_0x5937f3['R'][_0x1c0937(0x33f)](0x0,this[_0x1c0937(0x8b1)]),_0x112765=_0x5937f3['R']['RandomRange'](0x0,this[_0x1c0937(0x8b1)]);_0x2fc33c['x']+=_0x388c20,_0x2fc33c['y']+=_0x1f0c99,_0x2fc33c['z']+=_0x112765,_0x2fc33c[_0x1c0937(0x2e5)](),_0x513cd1?_0x4950a3['copyFrom'](_0x2fc33c):_0x598ffc['P'][_0x1c0937(0x55b)](_0x2fc33c['x'],_0x2fc33c['y'],_0x2fc33c['z'],_0x1b41f3,_0x4950a3);}[_0x47771f(0x380)](_0xa8143b,_0x1c9e42,_0x5194ef,_0x41a84d){var _0x479662=_0x47771f,_0x50cb73=this[_0x479662(0xcbe)]-_0x5937f3['R'][_0x479662(0x33f)](0x0,this[_0x479662(0xcbe)]*this[_0x479662(0x411)]),_0xfd9150=_0x5937f3['R'][_0x479662(0x33f)](0x0,0x1),_0x1ca86c=_0x5937f3['R'][_0x479662(0x33f)](0x0,0x2*Math['PI']),_0xfd9150=Math['acos'](0x2*_0xfd9150-0x1),_0x3eb684=_0x50cb73*Math[_0x479662(0xb32)](_0x1ca86c)*Math[_0x479662(0x7dc)](_0xfd9150),_0x446566=_0x50cb73*Math[_0x479662(0xb32)](_0xfd9150),_0x50cb73=_0x50cb73*Math['sin'](_0x1ca86c)*Math['sin'](_0xfd9150);_0x41a84d?_0x1c9e42[_0x479662(0x310)](_0x3eb684,_0x446566,_0x50cb73):_0x598ffc['P'][_0x479662(0xc80)](_0x3eb684,_0x446566,_0x50cb73,_0xa8143b,_0x1c9e42);}[_0x47771f(0x4fb)](){var _0x53208d=_0x47771f,_0x4b939b=new _0x444184(this['radius'],this[_0x53208d(0x8b1)]);return _0x3d3efc['j'][_0x53208d(0xa2c)](this,_0x4b939b),_0x4b939b;}['applyToShader'](_0x26cdae){var _0x320c25=_0x47771f;_0x26cdae[_0x320c25(0x760)](_0x320c25(0xcbe),this[_0x320c25(0xcbe)]),_0x26cdae[_0x320c25(0x760)]('radiusRange',this[_0x320c25(0x411)]),_0x26cdae[_0x320c25(0x760)](_0x320c25(0x8b1),this[_0x320c25(0x8b1)]);}[_0x47771f(0x1d5)](_0x755fd6){var _0x476aa9=_0x47771f;_0x755fd6[_0x476aa9(0x856)](_0x476aa9(0xcbe),0x1),_0x755fd6[_0x476aa9(0x856)](_0x476aa9(0x411),0x1),_0x755fd6[_0x476aa9(0x856)](_0x476aa9(0x8b1),0x1);}[_0x47771f(0xc78)](){var _0x247665=_0x47771f;return _0x247665(0x9e2);}[_0x47771f(0x7d6)](){return'SphereParticleEmitter';}[_0x47771f(0x20d)](){var _0x4af877=_0x47771f;const _0x4a1235={};return _0x4a1235['type']=this[_0x4af877(0x7d6)](),_0x4a1235[_0x4af877(0xcbe)]=this['radius'],_0x4a1235[_0x4af877(0x411)]=this[_0x4af877(0x411)],_0x4a1235[_0x4af877(0x8b1)]=this[_0x4af877(0x8b1)],_0x4a1235;}[_0x47771f(0x420)](_0x49bcfe){var _0x376b1f=_0x47771f;this[_0x376b1f(0xcbe)]=_0x49bcfe[_0x376b1f(0xcbe)],this[_0x376b1f(0x411)]=_0x49bcfe[_0x376b1f(0x411)],this[_0x376b1f(0x8b1)]=_0x49bcfe[_0x376b1f(0x8b1)];}}class _0x17ecb6 extends _0x444184{constructor(_0xff4073=0x1,_0x1063e3=new _0x598ffc['P'](0x0,0x1,0x0),_0x16e2f4=new _0x598ffc['P'](0x0,0x1,0x0)){var _0x561556=_0x47771f;super(_0xff4073),this[_0x561556(0x192)]=_0x1063e3,this[_0x561556(0xb31)]=_0x16e2f4;}[_0x47771f(0xc89)](_0x4aa01d,_0x294b68){var _0x698912=_0x47771f,_0x1e2826=_0x5937f3['R'][_0x698912(0x33f)](this[_0x698912(0x192)]['x'],this[_0x698912(0xb31)]['x']),_0x37767d=_0x5937f3['R'][_0x698912(0x33f)](this[_0x698912(0x192)]['y'],this[_0x698912(0xb31)]['y']),_0xe54552=_0x5937f3['R'][_0x698912(0x33f)](this[_0x698912(0x192)]['z'],this[_0x698912(0xb31)]['z']);_0x598ffc['P'][_0x698912(0x55b)](_0x1e2826,_0x37767d,_0xe54552,_0x4aa01d,_0x294b68);}[_0x47771f(0x4fb)](){var _0x38c0f9=_0x47771f,_0x488f74=new _0x17ecb6(this[_0x38c0f9(0xcbe)],this['direction1'],this[_0x38c0f9(0xb31)]);return _0x3d3efc['j'][_0x38c0f9(0xa2c)](this,_0x488f74),_0x488f74;}[_0x47771f(0xb3b)](_0x162073){var _0x192117=_0x47771f;_0x162073['setFloat'](_0x192117(0xcbe),this[_0x192117(0xcbe)]),_0x162073[_0x192117(0x760)]('radiusRange',this[_0x192117(0x411)]),_0x162073[_0x192117(0x418)]('direction1',this[_0x192117(0x192)]),_0x162073[_0x192117(0x418)](_0x192117(0xb31),this[_0x192117(0xb31)]);}[_0x47771f(0x1d5)](_0x2e9147){var _0x2d1a75=_0x47771f;_0x2e9147[_0x2d1a75(0x856)](_0x2d1a75(0xcbe),0x1),_0x2e9147[_0x2d1a75(0x856)]('radiusRange',0x1),_0x2e9147['addUniform']('direction1',0x3),_0x2e9147['addUniform'](_0x2d1a75(0xb31),0x3);}['getEffectDefines'](){var _0x55b7f6=_0x47771f;return _0x55b7f6(0x2d4);}[_0x47771f(0x7d6)](){var _0x4eb301=_0x47771f;return _0x4eb301(0xb54);}[_0x47771f(0x20d)](){var _0x3579b9=_0x47771f;const _0x15952b=super[_0x3579b9(0x20d)]();return _0x15952b[_0x3579b9(0x192)]=this['direction1'][_0x3579b9(0x23f)](),_0x15952b[_0x3579b9(0xb31)]=this[_0x3579b9(0xb31)][_0x3579b9(0x23f)](),_0x15952b;}[_0x47771f(0x420)](_0x5e619f){var _0x447623=_0x47771f;super[_0x447623(0x420)](_0x5e619f),this[_0x447623(0x192)][_0x447623(0xaf5)](_0x5e619f['direction1']),this['direction2'][_0x447623(0xaf5)](_0x5e619f[_0x447623(0xb31)]);}}},0xa73b:(_0x2dddbb,_0x1ecd62,_0x5e448b)=>{var _0x282318=a7_0x3304fb,_0x360c9d=_0x5e448b(0x94e3),_0x59c2e4=_0x5e448b(0x57f3),_0xf79d8=_0x5e448b(0x700f),_0x37da6d=_0x5e448b(0x14232),_0x29bff0=_0x5e448b(0x18457),_0x296a37=_0x5e448b(0x67a3);_0x5e448b(0xa90d),_0xf79d8['p']['AddParser'](_0x296a37['l'][_0x282318(0x448)],(_0x4bd8cb,_0x2450aa,_0x28c2d2,_0x3a4821)=>{var _0x23d9fc=_0x282318;const _0x5d4458=_0xf79d8['p'][_0x23d9fc(0x449)](_0x296a37['l'][_0x23d9fc(0x448)]);if(_0x5d4458&&void 0x0!==_0x4bd8cb[_0x23d9fc(0xc2f)]&&null!==_0x4bd8cb[_0x23d9fc(0xc2f)])for(let _0x2d4000=0x0,_0x1353f5=_0x4bd8cb[_0x23d9fc(0xc2f)][_0x23d9fc(0x86f)];_0x2d4000<_0x1353f5;_0x2d4000++){var _0x588cde=_0x4bd8cb[_0x23d9fc(0xc2f)][_0x2d4000];_0x28c2d2[_0x23d9fc(0xc2f)]['push'](_0x5d4458(_0x588cde,_0x2450aa,_0x3a4821));}}),_0xf79d8['p'][_0x282318(0x31d)](_0x296a37['l'][_0x282318(0x448)],(_0x211a74,_0x10f1c8,_0x5ea5c4)=>(_0x211a74[_0x282318(0xc46)]?_0x59c2e4['h']:_0x29bff0['p'])[_0x282318(0x855)](_0x211a74,_0x10f1c8,_0x5ea5c4)),_0x37da6d['D'][_0x282318(0x78e)]['createEffectForParticles']=function(_0x3622eb,_0x29fe7b=[],_0x5b4567=[],_0x628fcf='',_0x3dfe00,_0x1208a0,_0xc39197,_0x3d07ba){var _0x34679d=_0x282318;let _0x39eba0=[],_0x525fad=[];const _0x45dbd9=[];return _0x3d07ba?_0x3d07ba[_0x34679d(0x376)](_0x525fad,_0x39eba0,_0x45dbd9):(_0x39eba0=_0x29bff0['p'][_0x34679d(0x9b6)](),_0x525fad=_0x29bff0['p'][_0x34679d(0x35f)]()),-0x1===_0x628fcf[_0x34679d(0xbd5)]('\x20BILLBOARD')&&(_0x628fcf+=_0x34679d(0xb5a)),null!=_0x3d07ba&&_0x3d07ba[_0x34679d(0xbe4)]&&-0x1===_0x628fcf[_0x34679d(0xbd5)]('\x20ANIMATESHEET')&&(_0x628fcf+=_0x34679d(0xb66)),-0x1===_0x5b4567['indexOf'](_0x34679d(0x3a8))&&_0x5b4567['push'](_0x34679d(0x3a8)),this[_0x34679d(0x3ce)]({'vertex':null!=(_0x3d07ba=null==_0x3d07ba?void 0x0:_0x3d07ba[_0x34679d(0xb17)])?_0x3d07ba:_0x34679d(0x152),'fragmentElement':_0x3622eb},_0x39eba0,_0x525fad['concat'](_0x29fe7b),_0x45dbd9[_0x34679d(0x532)](_0x5b4567),_0x628fcf,_0x3dfe00,_0x1208a0,_0xc39197);},_0x360c9d['Kj'][_0x282318(0x78e)][_0x282318(0x52e)]=function(){var _0x3a6598=_0x282318;const _0x131f2b=new Array();for(let _0x1d288=0x0;_0x1d288<this['getScene']()[_0x3a6598(0xc2f)][_0x3a6598(0x86f)];_0x1d288++){var _0xb039a0=this[_0x3a6598(0xb68)]()['particleSystems'][_0x1d288];_0xb039a0[_0x3a6598(0xc42)]===this&&_0x131f2b['push'](_0xb039a0);}return _0x131f2b;},_0x360c9d['Kj']['prototype'][_0x282318(0x80c)]=function(){var _0x5709e3=_0x282318;const _0x1f783a=new Array(),_0x84d8a3=this[_0x5709e3(0x911)]();_0x84d8a3[_0x5709e3(0x725)](this);for(let _0x53d0bd=0x0;_0x53d0bd<this[_0x5709e3(0xb68)]()[_0x5709e3(0xc2f)][_0x5709e3(0x86f)];_0x53d0bd++){var _0x57c793=this['getScene']()[_0x5709e3(0xc2f)][_0x53d0bd],_0x3ed770=_0x57c793[_0x5709e3(0xc42)];_0x3ed770['position']&&-0x1!==_0x84d8a3[_0x5709e3(0xbd5)](_0x3ed770)&&_0x1f783a[_0x5709e3(0x725)](_0x57c793);}return _0x1f783a;};},0x6379:(_0x4e2a7c,_0x51f4d6,_0x1bb00)=>{var _0x3ddfbd=a7_0x3304fb,_0x1516fa=_0x1bb00(0x9a70),_0x8955f1=_0x1bb00(0xa896),_0xfc690d=_0x1bb00(0x67a3),_0x2b09ba=_0x1bb00(0xd537),_0x1d2b3e=_0x1bb00(0x12c64),_0x50c786=_0x1bb00(0xb54f);_0x2b09ba['x'][_0x3ddfbd(0x78e)][_0x3ddfbd(0xbb7)]=function(){var _0x5f4e34=_0x3ddfbd;return this[_0x5f4e34(0x470)];},_0x2b09ba['x'][_0x3ddfbd(0x78e)]['enablePhysics']=function(_0x20fc67=null,_0x3e75fc){var _0x58303b=_0x3ddfbd;if(this['_physicsEngine'])return!0x0;var _0x28736a;this['_getComponent'](_0xfc690d['l'][_0x58303b(0x50c)])||(_0x28736a=new _0x22d303(this),this['_addComponent'](_0x28736a));try{if(_0x3e75fc&&0x1!==(null==_0x3e75fc?void 0x0:_0x3e75fc[_0x58303b(0x839)]())){if(0x2!==(null==_0x3e75fc?void 0x0:_0x3e75fc[_0x58303b(0x839)]()))throw new Error('Unsupported\x20Physics\x20plugin\x20version.');this[_0x58303b(0x470)]=new _0x50c786['T'](_0x20fc67,_0x3e75fc);}else this['_physicsEngine']=new _0x1d2b3e['T'](_0x20fc67,_0x3e75fc);return!(this[_0x58303b(0x606)]=0x0);}catch(_0x48c154){return _0x1516fa['Y'][_0x58303b(0x803)](_0x48c154['message']),!0x1;}},_0x2b09ba['x'][_0x3ddfbd(0x78e)][_0x3ddfbd(0x24b)]=function(){var _0x4b8c63=_0x3ddfbd;this[_0x4b8c63(0x470)]&&(this[_0x4b8c63(0x470)][_0x4b8c63(0xb4b)](),this[_0x4b8c63(0x470)]=null);},_0x2b09ba['x'][_0x3ddfbd(0x78e)][_0x3ddfbd(0x2c7)]=function(){var _0xb0cdaf=_0x3ddfbd;return void 0x0!==this[_0xb0cdaf(0x470)];},_0x2b09ba['x'][_0x3ddfbd(0x78e)][_0x3ddfbd(0x37e)]=function(_0xf529c7){var _0x39de90=_0x3ddfbd;const _0x1f283d=_0xf529c7[_0x39de90(0xd15)][0x0][_0x39de90(0x174)];_0x1f283d['physicsImpostor']&&(_0x1f283d[_0x39de90(0x43f)][_0x39de90(0xb4b)](),_0x1f283d['physicsImpostor']=null);},_0x2b09ba['x'][_0x3ddfbd(0x78e)][_0x3ddfbd(0xa21)]=function(_0x33ff51){var _0x5428a4=_0x3ddfbd;if(this[_0x5428a4(0x470)]){var _0x4663aa=this['_physicsEngine']['getSubTimeStep']();if(0x0<_0x4663aa){for(this[_0x5428a4(0x606)]+=_0x33ff51;this[_0x5428a4(0x606)]>_0x4663aa;)this[_0x5428a4(0x9bc)][_0x5428a4(0x94c)](this),this[_0x5428a4(0x470)]['_step'](_0x4663aa/0x3e8),this[_0x5428a4(0x9c1)]['notifyObservers'](this),this[_0x5428a4(0x606)]-=_0x4663aa;}else this['onBeforePhysicsObservable'][_0x5428a4(0x94c)](this),this[_0x5428a4(0x470)][_0x5428a4(0x362)](_0x33ff51/0x3e8),this['onAfterPhysicsObservable'][_0x5428a4(0x94c)](this);}};class _0x22d303{constructor(_0x581797){var _0x2b0bb5=_0x3ddfbd;this[_0x2b0bb5(0x51b)]=_0xfc690d['l'][_0x2b0bb5(0x50c)],this['scene']=_0x581797,this['scene'][_0x2b0bb5(0x9bc)]=new _0x8955f1['y$'](),this[_0x2b0bb5(0x21c)]['onAfterPhysicsObservable']=new _0x8955f1['y$'](),this['scene'][_0x2b0bb5(0x627)]=()=>this[_0x2b0bb5(0x21c)][_0x2b0bb5(0x470)]?0x3e8*this['scene']['_physicsEngine'][_0x2b0bb5(0x98b)]():0x3e8/0x3c;}['register'](){}['rebuild'](){}['dispose'](){var _0x54525c=_0x3ddfbd;this[_0x54525c(0x21c)][_0x54525c(0x9bc)][_0x54525c(0xa3e)](),this[_0x54525c(0x21c)][_0x54525c(0x9c1)][_0x54525c(0xa3e)](),this[_0x54525c(0x21c)][_0x54525c(0x470)]&&this[_0x54525c(0x21c)][_0x54525c(0x24b)]();}}_0x1bb00(0x15d1f),_0x2b09ba=_0x1bb00(0x13b02),(Object[_0x3ddfbd(0x578)](_0x2b09ba['Y']['prototype'],_0x3ddfbd(0xc4b),{'get':function(){var _0x264033=_0x3ddfbd;return this[_0x264033(0xc56)];},'set':function(_0x5a901c){var _0xd095a0=_0x3ddfbd;this[_0xd095a0(0xc56)]!==_0x5a901c&&(this[_0xd095a0(0xc4f)]&&this[_0xd095a0(0x491)]['remove'](this[_0xd095a0(0xc4f)]),(this['_physicsBody']=_0x5a901c)&&(this[_0xd095a0(0xc4f)]=this[_0xd095a0(0x491)][_0xd095a0(0x8d3)](()=>{var _0x54fa56=_0xd095a0;this[_0x54fa56(0xc4b)]&&(this[_0x54fa56(0xc4b)][_0x54fa56(0xb4b)](),this[_0x54fa56(0xc4b)]=null);})));},'enumerable':!0x0,'configurable':!0x0}),_0x2b09ba['Y'][_0x3ddfbd(0x78e)][_0x3ddfbd(0x5bd)]=function(){var _0x2daf3a=_0x3ddfbd;return this[_0x2daf3a(0xc4b)];},_0x2b09ba['Y']['prototype'][_0x3ddfbd(0x2b5)]=function(_0x132356,_0x20e66e){var _0x4a1369=_0x3ddfbd;if(this[_0x4a1369(0xc4b)])return this[_0x4a1369(0xc4b)]['applyImpulse'](_0x132356,_0x20e66e),this;throw new Error(_0x4a1369(0xbaa));});},0x15d1f:(_0x5303a9,_0x204002,_0x2fb52a)=>{var _0x3faa75=a7_0x3304fb,_0x150bf0=_0x2fb52a(0x349f),_0x2529c0=_0x2fb52a(0x95ac);Object[_0x3faa75(0x578)](_0x150bf0['x'][_0x3faa75(0x78e)],_0x3faa75(0x43f),{'get':function(){var _0x377d75=_0x3faa75;return this[_0x377d75(0x128)];},'set':function(_0x5f0e64){var _0x314f46=_0x3faa75;this[_0x314f46(0x128)]!==_0x5f0e64&&(this[_0x314f46(0xc4f)]&&this['onDisposeObservable']['remove'](this[_0x314f46(0xc4f)]),(this[_0x314f46(0x128)]=_0x5f0e64)&&(this[_0x314f46(0xc4f)]=this[_0x314f46(0x491)][_0x314f46(0x8d3)](()=>{var _0x2cccf8=_0x314f46;this[_0x2cccf8(0x43f)]&&(this[_0x2cccf8(0x43f)][_0x2cccf8(0xb4b)](),this['physicsImpostor']=null);})));},'enumerable':!0x0,'configurable':!0x0}),_0x150bf0['x'][_0x3faa75(0x78e)]['getPhysicsImpostor']=function(){var _0x4f3ea3=_0x3faa75;return this[_0x4f3ea3(0x43f)];},_0x150bf0['x'][_0x3faa75(0x78e)][_0x3faa75(0x2b5)]=function(_0x422643,_0x4b7bd0){var _0x3fcd5a=_0x3faa75;return this[_0x3fcd5a(0x43f)]&&this[_0x3fcd5a(0x43f)][_0x3fcd5a(0x2b5)](_0x422643,_0x4b7bd0),this;},_0x150bf0['x'][_0x3faa75(0x78e)][_0x3faa75(0x92a)]=function(_0x44d528,_0x258d30,_0x258f9f,_0x212f2b){var _0x35a0cf=_0x3faa75;return this['physicsImpostor']&&_0x44d528['physicsImpostor']&&this[_0x35a0cf(0x43f)]['createJoint'](_0x44d528[_0x35a0cf(0x43f)],_0x2529c0['q7'][_0x35a0cf(0x3b8)],{'mainPivot':_0x258d30,'connectedPivot':_0x258f9f,'nativeParams':_0x212f2b}),this;};},0x1473a:(_0x3ad21f,_0x3995ae,_0x280aca)=>{var _0x42ea43=a7_0x3304fb;_0x280aca['d'](_0x3995ae,{'a':()=>_0x1dc9fb});class _0x1dc9fb{constructor(){var _0xaf7a6e=a7_0x4135;this[_0xaf7a6e(0x9ac)]={};}get[_0x42ea43(0xc11)](){var _0x5ae15b=_0x42ea43;const _0x33d588=[];for(const _0x516c36 in this[_0x5ae15b(0x9ac)]){var _0x17a17e;Object[_0x5ae15b(0x78e)][_0x5ae15b(0xa71)][_0x5ae15b(0xa85)](this[_0x5ae15b(0x9ac)],_0x516c36)&&(_0x17a17e=this['_renderPipelines'][_0x516c36])['isSupported']&&_0x33d588[_0x5ae15b(0x725)](_0x17a17e);}return _0x33d588;}['addPipeline'](_0x39e52b){var _0xee5cc2=_0x42ea43;this['_renderPipelines'][_0x39e52b[_0xee5cc2(0x38e)]]=_0x39e52b;}[_0x42ea43(0xc5e)](_0x3d5aeb){var _0x110fb2=_0x42ea43;delete this[_0x110fb2(0x9ac)][_0x3d5aeb];}[_0x42ea43(0x707)](_0x353c79,_0x32af8b,_0x4fdc27=!0x1){var _0x27dd75=_0x42ea43;const _0x41900d=this[_0x27dd75(0x9ac)][_0x353c79];_0x41900d&&_0x41900d['_attachCameras'](_0x32af8b,_0x4fdc27);}['detachCamerasFromRenderPipeline'](_0x19f220,_0x522818){var _0x5a8d27=_0x42ea43;const _0x14f584=this[_0x5a8d27(0x9ac)][_0x19f220];_0x14f584&&_0x14f584[_0x5a8d27(0x55a)](_0x522818);}[_0x42ea43(0x287)](_0x35098e,_0x5c159a,_0x487669){var _0x46c6a7=_0x42ea43;const _0x330f18=this[_0x46c6a7(0x9ac)][_0x35098e];_0x330f18&&_0x330f18[_0x46c6a7(0xaac)](_0x5c159a,_0x487669);}[_0x42ea43(0x548)](_0x351747,_0x1f76b8,_0x1bd50f){var _0x4b1a1b=_0x42ea43;const _0x30145d=this[_0x4b1a1b(0x9ac)][_0x351747];_0x30145d&&_0x30145d['_disableEffect'](_0x1f76b8,_0x1bd50f);}['update'](){var _0x2bc0c3=_0x42ea43;for(const _0xf93da9 in this[_0x2bc0c3(0x9ac)])if(Object[_0x2bc0c3(0x78e)]['hasOwnProperty'][_0x2bc0c3(0xa85)](this[_0x2bc0c3(0x9ac)],_0xf93da9)){const _0x1c8905=this[_0x2bc0c3(0x9ac)][_0xf93da9];_0x1c8905[_0x2bc0c3(0x687)]?_0x1c8905['_update']():(_0x1c8905[_0x2bc0c3(0xb4b)](),delete this['_renderPipelines'][_0xf93da9]);}}[_0x42ea43(0x2a7)](){var _0x1e6db2=_0x42ea43;for(const _0x5399b6 in this[_0x1e6db2(0x9ac)])if(Object[_0x1e6db2(0x78e)][_0x1e6db2(0xa71)][_0x1e6db2(0xa85)](this[_0x1e6db2(0x9ac)],_0x5399b6)){const _0x4a3fc6=this['_renderPipelines'][_0x5399b6];_0x4a3fc6[_0x1e6db2(0x2a7)]();}}[_0x42ea43(0xb4b)](){var _0x3d8732=_0x42ea43;for(const _0x1d922c in this['_renderPipelines'])if(Object[_0x3d8732(0x78e)][_0x3d8732(0xa71)][_0x3d8732(0xa85)](this[_0x3d8732(0x9ac)],_0x1d922c)){const _0x22d6ec=this[_0x3d8732(0x9ac)][_0x1d922c];_0x22d6ec[_0x3d8732(0xb4b)]();}}}},0xbf0d:(_0x53ba32,_0x556950,_0x3e530b)=>{var _0x3069fd=a7_0x3304fb;_0x3e530b['d'](_0x556950,{'B':()=>_0x3d1aa2});var _0x4c78a5=_0x3e530b(0x1610),_0x428859=_0x3e530b(0xd3a2);class _0x3d1aa2{constructor(_0x36108b,_0x5a3c34,_0x34fb53,_0x84d5a0=0x1){var _0x3b5255=a7_0x4135;this[_0x3b5255(0x489)]=_0x36108b,this['_copyTextureToTexture']=new _0x428859['p'](_0x36108b,!0x0),this['_depthRTWrapper']=this[_0x3b5255(0x489)]['createRenderTargetTexture']({'width':_0x5a3c34,'height':_0x34fb53},{'generateMipMaps':!0x1,'type':_0x4c78a5['g'][_0x3b5255(0x342)],'format':_0x4c78a5['g'][_0x3b5255(0x144)],'samplingMode':_0x4c78a5['g'][_0x3b5255(0x9f9)],'generateDepthBuffer':!0x0,'generateStencilBuffer':!0x1,'samples':_0x84d5a0,'noColorAttachment':!0x0,'label':_0x3b5255(0x358)}),this[_0x3b5255(0x6ed)][_0x3b5255(0x588)](0x0,!0x1,!0x1,0x1,void 0x0,'FluidRenderingDepthTextureCopyRTTDepthStencil');}get[_0x3069fd(0x68e)](){var _0x287237=_0x3069fd;return this[_0x287237(0x6ed)];}['copy'](_0x54d8fd){var _0xacc26f=_0x3069fd;return this[_0xacc26f(0xc73)][_0xacc26f(0xbe3)](_0x54d8fd,this[_0xacc26f(0x6ed)]);}[_0x3069fd(0xb4b)](){var _0x1af25f=_0x3069fd;this[_0x1af25f(0x6ed)][_0x1af25f(0xb4b)](),this[_0x1af25f(0xc73)]['dispose']();}}},0xafed:(_0x2c1db6,_0xa7d100,_0x16e8e5)=>{var _0x32924e=a7_0x3304fb;_0x16e8e5['d'](_0xa7d100,{'a':()=>_0x3325a3});var _0x3e330f=_0x16e8e5(0x1610),_0x100cdf=_0x16e8e5(0x12cad),_0x2e6cc0=_0x16e8e5(0xd53f),_0xa5686e=_0x16e8e5(0x95d8),_0x3e3f9d=_0x16e8e5(0xa896);class _0x3325a3{constructor(_0x109ad2,_0x4813f2,_0x250f2d,_0xd0f95b,_0x477ad5,_0xccc10a,_0x1444b6=_0x3e330f['g'][_0x32924e(0x403)],_0x290558=_0x3e330f['g'][_0x32924e(0x144)],_0x6e4370=_0x3e330f['g'][_0x32924e(0x403)],_0x209af0=_0x3e330f['g']['TEXTUREFORMAT_R'],_0x24678f=!0x1,_0x106349=null,_0x519873=!0x0,_0x5d384a=0x1){var _0x3a70de=_0x32924e;this[_0x3a70de(0xc54)]=!0x0,this[_0x3a70de(0x3da)]=0x1,this[_0x3a70de(0x670)]=0x7,this[_0x3a70de(0x666)]=0x3,this[_0x3a70de(0xbce)]=0x64,this[_0x3a70de(0x44f)]=0xa,this[_0x3a70de(0x74c)]=0.02,this[_0x3a70de(0x491)]=new _0x3e3f9d['y$'](),this[_0x3a70de(0x38e)]=_0x109ad2,this[_0x3a70de(0x789)]=_0x4813f2,this[_0x3a70de(0xc6c)]=_0x106349,this[_0x3a70de(0x489)]=_0x4813f2[_0x3a70de(0xc8e)](),this[_0x3a70de(0xa61)]=_0x250f2d,this['_height']=_0xd0f95b,this[_0x3a70de(0x265)]=_0x477ad5,this[_0x3a70de(0x488)]=_0xccc10a,this[_0x3a70de(0xad4)]=_0x1444b6,this[_0x3a70de(0x2d6)]=_0x290558,this[_0x3a70de(0x221)]=_0x6e4370,this[_0x3a70de(0x6ef)]=_0x209af0,this[_0x3a70de(0xcfc)]=_0x24678f,this[_0x3a70de(0x328)]=_0x519873,this[_0x3a70de(0x714)]=_0x5d384a,this[_0x3a70de(0x947)]=0x0,this[_0x3a70de(0xc54)]=0x0!==_0x477ad5&&0x0!==_0xccc10a,this['_rt']=null,this[_0x3a70de(0x6fb)]=null,this[_0x3a70de(0xb79)]=null,this['_textureBlurred']=null,this[_0x3a70de(0x378)]=null;}get[_0x32924e(0x9a9)](){var _0x350d3d=_0x32924e;return this[_0x350d3d(0x666)];}set['blurNumIterations'](_0x2871e7){var _0x587349=_0x32924e;if(this[_0x587349(0x666)]!==_0x2871e7&&(this[_0x587349(0x666)]=_0x2871e7,null!==this[_0x587349(0x378)])){var _0x4ee4c9=this[_0x587349(0x378)][0x0],_0x1f5984=this[_0x587349(0x378)][0x1];this[_0x587349(0x378)]=[];for(let _0x1dd6fb=0x0;_0x1dd6fb<0x2*this[_0x587349(0x666)];++_0x1dd6fb)this[_0x587349(0x378)][_0x1dd6fb]=0x1&_0x1dd6fb?_0x1f5984:_0x4ee4c9;}}get[_0x32924e(0x297)](){return this['_rt'];}get[_0x32924e(0xb16)](){return this['_rtBlur'];}get[_0x32924e(0x800)](){var _0x39443b=_0x32924e;return this[_0x39443b(0x6fb)];}get[_0x32924e(0xaee)](){var _0x4f1a00=_0x32924e;return this[_0x4f1a00(0x29c)];}[_0x32924e(0x229)](){var _0x61ecad=_0x32924e,_0x42a37c,_0x3eb5ef,_0x752141;this[_0x61ecad(0xb4b)](),this[_0x61ecad(0xa14)](),this[_0x61ecad(0xc54)]&&this[_0x61ecad(0x6fb)]&&([_0x42a37c,_0x3eb5ef,_0x752141]=this[_0x61ecad(0x7ff)](this['_texture'],this[_0x61ecad(0x221)],this[_0x61ecad(0x6ef)],this['blurSizeDivisor'],this[_0x61ecad(0x38e)],this[_0x61ecad(0xcfc)]),this['_rtBlur']=_0x42a37c,this[_0x61ecad(0x29c)]=_0x3eb5ef,this['_blurPostProcesses']=_0x752141);}[_0x32924e(0x99f)](){var _0x2cf406=_0x32924e;this[_0x2cf406(0xc54)]&&this[_0x2cf406(0x378)]&&(this[_0x2cf406(0x947)]=0x0,this['_scene'][_0x2cf406(0x4a9)]['directRender'](this[_0x2cf406(0x378)],this[_0x2cf406(0xb79)],!0x0),this[_0x2cf406(0x489)][_0x2cf406(0x27f)](this[_0x2cf406(0xb79)]));}[_0x32924e(0xa14)](){var _0x49162a=_0x32924e;this[_0x49162a(0x663)]=this['_engine'][_0x49162a(0x3d9)]({'width':this[_0x49162a(0xa61)],'height':this[_0x49162a(0x427)]},{'generateMipMaps':!0x1,'type':this[_0x49162a(0xad4)],'format':this[_0x49162a(0x2d6)],'samplingMode':_0x3e330f['g'][_0x49162a(0x9f9)],'generateDepthBuffer':this['_generateDepthBuffer'],'generateStencilBuffer':!0x1,'samples':this[_0x49162a(0x714)],'label':_0x49162a(0x295)+this[_0x49162a(0x38e)]});const _0xbb8464=this[_0x49162a(0x663)][_0x49162a(0x800)];_0xbb8464['incrementReferences'](),this[_0x49162a(0x6fb)]=new _0x100cdf['x'](null,this['_scene']),this[_0x49162a(0x6fb)][_0x49162a(0x51b)]='rtt'+this[_0x49162a(0x38e)],this[_0x49162a(0x6fb)][_0x49162a(0x6fb)]=_0xbb8464,this[_0x49162a(0x6fb)]['wrapU']=_0x100cdf['x'][_0x49162a(0x402)],this[_0x49162a(0x6fb)][_0x49162a(0x5a8)]=_0x100cdf['x'][_0x49162a(0x402)],this[_0x49162a(0x6fb)][_0x49162a(0x8b8)]=0x1;}['_createBlurPostProcesses'](_0x155210,_0x50e74d,_0xcf58fe,_0x14432c,_0x188d8d,_0x181612=!0x1){var _0x387597=_0x32924e;const _0x347a26=this[_0x387597(0x789)]['getEngine']();var _0x14432c=new _0x2e6cc0['FM'](Math[_0x387597(0x17c)](this['_blurTextureSizeX']/_0x14432c),Math[_0x387597(0x17c)](this[_0x387597(0x488)]/_0x14432c)),_0x214cd1=_0x50e74d===_0x3e330f['g']['TEXTURETYPE_FLOAT']&&_0x347a26[_0x387597(0x7b9)]()[_0x387597(0x46d)]||_0x50e74d===_0x3e330f['g'][_0x387597(0x208)]&&_0x347a26[_0x387597(0x7b9)]()[_0x387597(0x2e8)],_0x14432c=this[_0x387597(0x489)][_0x387597(0x3d9)]({'width':_0x14432c['x'],'height':_0x14432c['y']},{'generateMipMaps':!0x1,'type':_0x50e74d,'format':_0xcf58fe,'samplingMode':_0x214cd1?_0x3e330f['g'][_0x387597(0x29d)]:_0x3e330f['g']['TEXTURE_NEAREST_SAMPLINGMODE'],'generateDepthBuffer':!0x1,'generateStencilBuffer':!0x1,'samples':this['_samples'],'label':_0x387597(0x731)+_0x188d8d});const _0x1ceaef=_0x14432c[_0x387597(0x800)],_0x4e8e60=(_0x1ceaef[_0x387597(0x96e)](),new _0x100cdf['x'](null,this['_scene']));if(_0x4e8e60[_0x387597(0x51b)]=_0x387597(0x65a)+_0x188d8d,_0x4e8e60[_0x387597(0x6fb)]=_0x1ceaef,_0x4e8e60[_0x387597(0x145)]=_0x100cdf['x'][_0x387597(0x402)],_0x4e8e60[_0x387597(0x5a8)]=_0x100cdf['x'][_0x387597(0x402)],_0x4e8e60[_0x387597(0x8b8)]=0x1,_0x181612){const _0x3e5c1b=new _0xa5686e['D'](_0x387597(0x648),_0x387597(0xbc9),[_0x387597(0x645),'blurDir'],null,0x1,null,_0x3e330f['g'][_0x387597(0x9f9)],_0x347a26,!0x0,null,_0x50e74d,void 0x0,void 0x0,void 0x0,_0xcf58fe),_0x257c4b=(_0x3e5c1b[_0x387597(0x92d)]=this[_0x387597(0x714)],_0x3e5c1b['externalTextureSamplerBinding']=!0x0,_0x3e5c1b['onApplyObservable'][_0x387597(0x8d3)](_0x15b49c=>{var _0x17aa7d=_0x387597;0x0===this['_postProcessRunningIndex']?_0x15b49c[_0x17aa7d(0xbbc)]('textureSampler',_0x155210):_0x15b49c['_bindTexture'](_0x17aa7d(0x6bb),_0x3e5c1b[_0x17aa7d(0xb62)]['texture']),_0x15b49c[_0x17aa7d(0x213)](_0x17aa7d(0x645),this[_0x17aa7d(0x670)]),_0x15b49c[_0x17aa7d(0xcef)]('blurDir',0x1/this[_0x17aa7d(0x265)],0x0),this[_0x17aa7d(0x947)]++;}),_0x3e5c1b[_0x387597(0x1f5)][_0x387597(0x8d3)](()=>{var _0x35b7b2=_0x387597;_0x3e5c1b[_0x35b7b2(0x220)][_0x35b7b2(0xa7c)](_0x3f0a76=>{var _0x1db7a=_0x35b7b2;_0x3f0a76[_0x1db7a(0x800)][_0x1db7a(0x145)]=_0x100cdf['x']['CLAMP_ADDRESSMODE'],_0x3f0a76[_0x1db7a(0x800)][_0x1db7a(0x5a8)]=_0x100cdf['x'][_0x1db7a(0x402)];});}),this[_0x387597(0x4ea)](_0x3e5c1b),new _0xa5686e['D']('BilateralBlurY',_0x387597(0xbc9),[_0x387597(0x645),_0x387597(0x992)],null,0x1,null,_0x3e330f['g']['TEXTURE_NEAREST_SAMPLINGMODE'],_0x347a26,!0x0,null,_0x50e74d,void 0x0,void 0x0,void 0x0,_0xcf58fe)),_0x5add82=(_0x257c4b['samples']=this[_0x387597(0x714)],_0x257c4b[_0x387597(0x50a)][_0x387597(0x8d3)](_0x2b5a23=>{var _0xd02fa1=_0x387597;_0x2b5a23['setInt'](_0xd02fa1(0x645),this[_0xd02fa1(0x670)]),_0x2b5a23[_0xd02fa1(0xcef)](_0xd02fa1(0x992),0x0,0x1/this['_blurTextureSizeY']),this[_0xd02fa1(0x947)]++;}),_0x257c4b[_0x387597(0x1f5)][_0x387597(0x8d3)](()=>{var _0x4762a8=_0x387597;_0x257c4b[_0x4762a8(0x220)][_0x4762a8(0xa7c)](_0x18e8a4=>{var _0x1bcafe=_0x4762a8;_0x18e8a4[_0x1bcafe(0x800)][_0x1bcafe(0x145)]=_0x100cdf['x'][_0x1bcafe(0x402)],_0x18e8a4[_0x1bcafe(0x800)][_0x1bcafe(0x5a8)]=_0x100cdf['x'][_0x1bcafe(0x402)];});}),this[_0x387597(0x4ea)](_0x257c4b),_0x3e5c1b[_0x387597(0x280)]=!0x1,_0x257c4b['autoClear']=!0x1,[]);for(let _0x4ebc20=0x0;_0x4ebc20<0x2*this[_0x387597(0x666)];++_0x4ebc20)_0x5add82[_0x4ebc20]=0x1&_0x4ebc20?_0x257c4b:_0x3e5c1b;return[_0x14432c,_0x4e8e60,_0x5add82];}{_0x214cd1=[_0x387597(0xca7),_0x387597(0x992),_0x387597(0x66d),'depthThreshold'];const _0x3ab683=new _0xa5686e['D'](_0x387597(0x648),_0x387597(0x797),_0x214cd1,null,0x1,null,_0x3e330f['g']['TEXTURE_NEAREST_SAMPLINGMODE'],_0x347a26,!0x0,null,_0x50e74d,void 0x0,void 0x0,void 0x0,_0xcf58fe),_0x5895a5=(_0x3ab683[_0x387597(0x92d)]=this[_0x387597(0x714)],_0x3ab683[_0x387597(0x747)]=!0x0,_0x3ab683[_0x387597(0x50a)]['add'](_0x32d123=>{var _0x5e671d=_0x387597;0x0===this[_0x5e671d(0x947)]?_0x32d123[_0x5e671d(0xbbc)](_0x5e671d(0x6bb),_0x155210):_0x32d123[_0x5e671d(0x817)](_0x5e671d(0x6bb),_0x3ab683[_0x5e671d(0xb62)][_0x5e671d(0x800)]),_0x32d123['setInt'](_0x5e671d(0xca7),this[_0x5e671d(0xbce)]),_0x32d123[_0x5e671d(0xcef)](_0x5e671d(0x992),0x1/this[_0x5e671d(0x265)],0x0),_0x32d123[_0x5e671d(0x760)](_0x5e671d(0x66d),this['_getProjectedParticleConstant']()),_0x32d123[_0x5e671d(0x760)]('depthThreshold',this[_0x5e671d(0x85c)]()),this[_0x5e671d(0x947)]++;}),_0x3ab683[_0x387597(0x1f5)]['add'](()=>{var _0x42947d=_0x387597;_0x3ab683[_0x42947d(0x220)][_0x42947d(0xa7c)](_0xa96a28=>{var _0x2582f6=_0x42947d;_0xa96a28[_0x2582f6(0x800)][_0x2582f6(0x145)]=_0x100cdf['x'][_0x2582f6(0x402)],_0xa96a28[_0x2582f6(0x800)][_0x2582f6(0x5a8)]=_0x100cdf['x'][_0x2582f6(0x402)];});}),this[_0x387597(0x4ea)](_0x3ab683),new _0xa5686e['D'](_0x387597(0xb5f),_0x387597(0x797),_0x214cd1,null,0x1,null,_0x3e330f['g'][_0x387597(0x9f9)],_0x347a26,!0x0,null,_0x50e74d,void 0x0,void 0x0,void 0x0,_0xcf58fe)),_0x5e28c1=(_0x5895a5['samples']=this[_0x387597(0x714)],_0x5895a5[_0x387597(0x50a)][_0x387597(0x8d3)](_0x3978ec=>{var _0x3ce2cb=_0x387597;_0x3978ec[_0x3ce2cb(0x213)](_0x3ce2cb(0xca7),this['blurMaxFilterSize']),_0x3978ec[_0x3ce2cb(0xcef)](_0x3ce2cb(0x992),0x0,0x1/this[_0x3ce2cb(0x488)]),_0x3978ec['setFloat'](_0x3ce2cb(0x66d),this[_0x3ce2cb(0x4c5)]()),_0x3978ec[_0x3ce2cb(0x760)](_0x3ce2cb(0x71c),this['_getDepthThreshold']()),this[_0x3ce2cb(0x947)]++;}),_0x5895a5[_0x387597(0x1f5)][_0x387597(0x8d3)](()=>{var _0x30fc29=_0x387597;_0x5895a5['_textures'][_0x30fc29(0xa7c)](_0x1b324a=>{var _0x89e5d9=_0x30fc29;_0x1b324a[_0x89e5d9(0x800)][_0x89e5d9(0x145)]=_0x100cdf['x'][_0x89e5d9(0x402)],_0x1b324a[_0x89e5d9(0x800)][_0x89e5d9(0x5a8)]=_0x100cdf['x']['CLAMP_ADDRESSMODE'];});}),this[_0x387597(0x4ea)](_0x5895a5),_0x3ab683[_0x387597(0x280)]=!0x1,_0x5895a5['autoClear']=!0x1,[]);for(let _0x3521f5=0x0;_0x3521f5<0x2*this['_blurNumIterations'];++_0x3521f5)_0x5e28c1[_0x3521f5]=0x1&_0x3521f5?_0x5895a5:_0x3ab683;return[_0x14432c,_0x4e8e60,_0x5e28c1];}}[_0x32924e(0x4ea)](_0x199056){var _0x4a0042=_0x32924e;_0x199056[_0x4a0042(0x592)]()&&(_0x199056[_0x4a0042(0x3b9)][_0x4a0042(0x8d3)](()=>{var _0x5ce530=_0x4a0042;_0x199056[_0x5ce530(0xc57)]=(_0x199056['_currentRenderTextureInd']+0x1)%0x2;}),_0x199056[_0x4a0042(0x50a)]['add'](()=>{var _0x50b180=_0x4a0042;_0x199056[_0x50b180(0xc57)]=(_0x199056['_currentRenderTextureInd']+0x1)%0x2;}));}[_0x32924e(0x4c5)](){var _0x26f425=_0x32924e,_0x90555b;return this[_0x26f425(0x670)]*this[_0x26f425(0x74c)]*0.05*(this[_0x26f425(0x427)]/0x2)/Math[_0x26f425(0x4a2)]((null!=(_0x90555b=null==(_0x90555b=this[_0x26f425(0xc6c)])?void 0x0:_0x90555b[_0x26f425(0x584)])?_0x90555b:0x2d*Math['PI']/0xb4)/0x2);}[_0x32924e(0x85c)](){var _0x2f739c=_0x32924e;return this[_0x2f739c(0x74c)]/0x2*this[_0x2f739c(0x44f)];}[_0x32924e(0xb4b)](){var _0x6e0e4e=_0x32924e,_0x5e0ada;this['onDisposeObservable'][_0x6e0e4e(0xb0f)]()&&this[_0x6e0e4e(0x491)]['notifyObservers'](this),null!=(_0x5e0ada=this[_0x6e0e4e(0x663)])&&_0x5e0ada[_0x6e0e4e(0xb4b)](),(this['_rt']=null)!=(_0x5e0ada=this[_0x6e0e4e(0x6fb)])&&_0x5e0ada[_0x6e0e4e(0xb4b)](),(this[_0x6e0e4e(0x6fb)]=null)!=(_0x5e0ada=this['_rtBlur'])&&_0x5e0ada[_0x6e0e4e(0xb4b)](),(this[_0x6e0e4e(0xb79)]=null)!=(_0x5e0ada=this['_textureBlurred'])&&_0x5e0ada['dispose'](),this['_textureBlurred']=null,this[_0x6e0e4e(0x378)]&&(this['_blurPostProcesses'][0x0][_0x6e0e4e(0xb4b)](),this[_0x6e0e4e(0x378)][0x1][_0x6e0e4e(0xb4b)]()),this[_0x6e0e4e(0x378)]=null;}}},0x17a5b:(_0x32ef06,_0xcfd4ea,_0x360706)=>{_0x360706['d'](_0xcfd4ea,{'p':()=>_0x3bc8af});var _0x44ea52=_0x360706(0x1610);class _0x3bc8af{constructor(){var _0x38a9d2=a7_0x4135;this['enabled']=!0x1,this[_0x38a9d2(0x51b)]=_0x38a9d2(0x1ef),this[_0x38a9d2(0xcf5)]=[_0x44ea52['g']['PREPASS_VELOCITY_TEXTURE_TYPE']];}}},0x6bcb:(_0xff1bb4,_0x13bf2f,_0x220053)=>{_0x220053['d'](_0x13bf2f,{'g':()=>_0x1db428});var _0x5bc1eb=_0x220053(0x1610);class _0x1db428{constructor(){var _0x13bfdf=a7_0x4135;this[_0x13bfdf(0x34e)]=!0x1,this[_0x13bfdf(0x51b)]=_0x13bfdf(0xc3e),this['texturesRequired']=[_0x5bc1eb['g'][_0x13bfdf(0x4d2)],_0x5bc1eb['g'][_0x13bfdf(0x22f)],_0x5bc1eb['g'][_0x13bfdf(0x3ef)]];}}},0x1b1d:(_0x16e72a,_0x1a3dd3,_0x21296c)=>{_0x21296c['d'](_0x1a3dd3,{'y':()=>_0x510e22});var _0x55880a=_0x21296c(0x1610);class _0x510e22{constructor(){var _0x5884cc=a7_0x4135;this[_0x5884cc(0x34e)]=!0x1,this[_0x5884cc(0x51b)]='screenSpaceReflections',this['texturesRequired']=[_0x55880a['g'][_0x5884cc(0x4d2)],_0x55880a['g'][_0x5884cc(0x22f)],_0x55880a['g'][_0x5884cc(0x3bb)]];}}},0xd9fd:(_0x41c107,_0x715a1c,_0x158244)=>{_0x158244['d'](_0x715a1c,{'M':()=>_0x1de4f7});var _0x2fbc20=_0x158244(0x1610);class _0x1de4f7{constructor(){var _0x4a4f23=a7_0x4135;this[_0x4a4f23(0x34e)]=!0x1,this['name']='ssao2',this[_0x4a4f23(0xcf5)]=[_0x2fbc20['g'][_0x4a4f23(0x4d2)],_0x2fbc20['g'][_0x4a4f23(0x3ef)]];}}},0x11c70:(_0x18d95b,_0xe33aa9,_0x1834ae)=>{var _0x590f24=a7_0x3304fb;_0x1834ae['d'](_0xe33aa9,{'u':()=>_0x75a982});var _0x2cad83=_0x1834ae(0x9a70),_0x4d4eea=_0x1834ae(0xbd53),_0x2bacfa=_0x1834ae(0x12cad),_0xe33aa9=_0x1834ae(0x95d8),_0xc6a03e=_0x1834ae(0x1610),_0x44db0b=(_0x1834ae(0x160aa),_0x1834ae(0x26fa));_0x44db0b['v'][_0x590f24(0x121)]['fibonacci']='#define\x20rcp(x)\x201./x\x0a#define\x20GOLDEN_RATIO\x201.618033988749895\x0a#define\x20TWO_PI\x206.2831855\x0avec2\x20Golden2dSeq(int\x20i,float\x20n)\x0a{\x0areturn\x20vec2(float(i)/n+(0.5/n),fract(float(i)*rcp(GOLDEN_RATIO)));\x0a}\x0avec2\x20SampleDiskGolden(int\x20i,int\x20sampleCount)\x0a{\x0avec2\x20f=Golden2dSeq(i,float(sampleCount));\x0areturn\x20vec2(sqrt(f.x),TWO_PI*f.y);\x0a}',_0x1834ae(0x8cd3),_0x1834ae(0x766e),_0x44db0b['v'][_0x590f24(0x121)][_0x590f24(0x798)]=_0x590f24(0xcb0),(_0x44db0b['v'][_0x590f24(0xba5)][_0x590f24(0x195)]=_0x590f24(0xaf2),_0x1834ae(0x3e84));class _0x5d1093 extends _0xe33aa9['D']{[_0x590f24(0x7d6)](){var _0x18d722=_0x590f24;return _0x18d722(0x678);}constructor(_0x3150c2,_0x935a48,_0x35420a,_0x3e6ee8=null,_0x56cf59,_0x34bf76,_0x1917b2,_0x242ead=_0xc6a03e['g'][_0x590f24(0x970)]){var _0x15c8d2=_0x590f24;super(_0x3150c2,_0x15c8d2(0x6e4),[_0x15c8d2(0xaf8),_0x15c8d2(0xb94),_0x15c8d2(0xc69)],[_0x15c8d2(0xb47),_0x15c8d2(0x6ce),_0x15c8d2(0xb45),_0x15c8d2(0x6c3),_0x15c8d2(0x1ea),_0x15c8d2(0x3a7)],_0x35420a,_0x3e6ee8,_0x56cf59||_0x2bacfa['x'][_0x15c8d2(0x52f)],_0x34bf76,_0x1917b2,null,_0x242ead,_0x15c8d2(0xb83),void 0x0,!0x0),this[_0x15c8d2(0x789)]=_0x935a48,this[_0x15c8d2(0x9dd)](),this[_0x15c8d2(0x50a)][_0x15c8d2(0x8d3)](_0x1254fe=>{var _0x42967f=_0x15c8d2,_0x3dc750;_0x935a48[_0x42967f(0x245)]&&_0x935a48[_0x42967f(0x513)]?(_0x3dc750=this[_0x42967f(0xaf8)],_0x1254fe['setFloat'](_0x42967f(0xc69),_0x935a48[_0x42967f(0x513)]['metersPerUnit']),_0x1254fe[_0x42967f(0xcef)]('texelSize',_0x3dc750['x'],_0x3dc750['y']),_0x1254fe[_0x42967f(0xbbc)](_0x42967f(0x6c3),_0x935a48[_0x42967f(0x245)]['getRenderTarget']()[_0x42967f(0xa52)][_0x935a48[_0x42967f(0x245)][_0x42967f(0x214)](_0xc6a03e['g'][_0x42967f(0x894)])]),_0x1254fe[_0x42967f(0xbbc)](_0x42967f(0x1ea),_0x935a48['prePassRenderer'][_0x42967f(0xcc9)]()[_0x42967f(0xa52)][_0x935a48[_0x42967f(0x245)][_0x42967f(0x214)](_0xc6a03e['g']['PREPASS_DEPTH_TEXTURE_TYPE'])]),_0x1254fe[_0x42967f(0xbbc)](_0x42967f(0x3a7),_0x935a48[_0x42967f(0x245)][_0x42967f(0xcc9)]()['textures'][_0x935a48[_0x42967f(0x245)][_0x42967f(0x214)](_0xc6a03e['g'][_0x42967f(0xc5c)])]),_0x1254fe[_0x42967f(0xcef)](_0x42967f(0xb94),Math[_0x42967f(0x4a2)](_0x935a48[_0x42967f(0x112)]['fov']/0x2)*_0x935a48['getEngine']()[_0x42967f(0x6c5)](_0x935a48[_0x42967f(0x112)],!0x0),Math[_0x42967f(0x4a2)](_0x935a48[_0x42967f(0x112)][_0x42967f(0x584)]/0x2)),_0x1254fe[_0x42967f(0xb20)](_0x42967f(0xb47),_0x935a48[_0x42967f(0x513)][_0x42967f(0x2f6)]),_0x1254fe['setArray'](_0x42967f(0x6ce),_0x935a48['subSurfaceConfiguration'][_0x42967f(0x669)]),_0x1254fe['setArray'](_0x42967f(0xb45),_0x935a48['subSurfaceConfiguration'][_0x42967f(0x6be)])):_0x2cad83['Y']['Error'](_0x42967f(0xc81));});}}var _0x5bd43a=_0x1834ae(0x67a3),_0x54aab4=_0x1834ae(0x8baf);class _0x75a982{constructor(_0x4f8acd){var _0x2a24c0=_0x590f24;this[_0x2a24c0(0x324)]=[],this[_0x2a24c0(0x9bb)]=[],this[_0x2a24c0(0x384)]=[],this[_0x2a24c0(0x34e)]=!0x1,this[_0x2a24c0(0xc37)]=!0x0,this[_0x2a24c0(0x51b)]=_0x5bd43a['l'][_0x2a24c0(0x68c)],this[_0x2a24c0(0x1b7)]=[],this[_0x2a24c0(0xc69)]=0x1,this[_0x2a24c0(0xcf5)]=[_0xc6a03e['g'][_0x2a24c0(0x3ef)],_0xc6a03e['g'][_0x2a24c0(0xc5c)],_0xc6a03e['g']['PREPASS_COLOR_TEXTURE_TYPE'],_0xc6a03e['g'][_0x2a24c0(0x894)]],this['addDiffusionProfile'](new _0x4d4eea['Wo'](0x1,0x1,0x1)),this[_0x2a24c0(0x789)]=_0x4f8acd,_0x75a982[_0x2a24c0(0xcaa)](this['_scene']);}get[_0x590f24(0x2f6)](){var _0x4e57f4=_0x590f24;return this[_0x4e57f4(0x324)];}get[_0x590f24(0x669)](){var _0x2c6ffd=_0x590f24;return this[_0x2c6ffd(0x384)];}get[_0x590f24(0x6be)](){return this['_ssFilterRadii'];}['addDiffusionProfile'](_0xeff858){var _0x4a81b0=_0x590f24;if(0x5<=this[_0x4a81b0(0x669)][_0x4a81b0(0x86f)])return _0x2cad83['Y'][_0x4a81b0(0x803)](_0x4a81b0(0x85a)),0x0;for(let _0x299cb7=0x0;_0x299cb7<this['_ssDiffusionS'][_0x4a81b0(0x86f)]/0x3;_0x299cb7++)if(this[_0x4a81b0(0x324)][0x3*_0x299cb7]===_0xeff858['r']&&this[_0x4a81b0(0x324)][0x3*_0x299cb7+0x1]===_0xeff858['g']&&this['_ssDiffusionS'][0x3*_0x299cb7+0x2]===_0xeff858['b'])return _0x299cb7;return this[_0x4a81b0(0x324)][_0x4a81b0(0x725)](_0xeff858['r'],_0xeff858['b'],_0xeff858['g']),this[_0x4a81b0(0x384)][_0x4a81b0(0x725)](Math[_0x4a81b0(0x3f8)](Math['max'](_0xeff858['r'],_0xeff858['b']),_0xeff858['g'])),this[_0x4a81b0(0x9bb)][_0x4a81b0(0x725)](this['getDiffusionProfileParameters'](_0xeff858)),this[_0x4a81b0(0x1b7)][_0x4a81b0(0x725)](_0xeff858),this[_0x4a81b0(0x384)]['length']-0x1;}[_0x590f24(0x756)](){var _0xe4ce80=_0x590f24;return this[_0xe4ce80(0x503)]=new _0x5d1093('subSurfaceScattering',this[_0xe4ce80(0x789)],0x1,null,void 0x0,this[_0xe4ce80(0x789)][_0xe4ce80(0xc8e)]()),this[_0xe4ce80(0x503)]['autoClear']=!0x1,this[_0xe4ce80(0x503)];}[_0x590f24(0x75c)](){var _0x4ef668=_0x590f24;this[_0x4ef668(0x384)]=[],this[_0x4ef668(0x324)]=[],this[_0x4ef668(0x9bb)]=[],this[_0x4ef668(0x1b7)]=[];}[_0x590f24(0xb4b)](){var _0x5014db=_0x590f24;this[_0x5014db(0x75c)](),this[_0x5014db(0x503)]&&this[_0x5014db(0x503)][_0x5014db(0xb4b)]();}['getDiffusionProfileParameters'](_0x2ec1fa){return _0x2ec1fa=Math['max'](_0x2ec1fa['r'],_0x2ec1fa['g'],_0x2ec1fa['b']),this['_sampleBurleyDiffusionProfile'](0.997,_0x2ec1fa);}[_0x590f24(0x4b8)](_0x2a4dc2,_0x2f066e){var _0x51e221=_0x590f24,_0x2e5a60=0x1+0x4*(_0x2a4dc2=0x1-_0x2a4dc2)*(0x2*_0x2a4dc2+Math[_0x51e221(0x2cd)](0x1+0x4*_0x2a4dc2*_0x2a4dc2)),_0x367038=Math['pow'](_0x2e5a60,-0x1/0x3);return 0x3*Math[_0x51e221(0x4d6)]((0x1+_0x2e5a60*_0x367038*_0x367038+_0x367038)/(0x4*_0x2a4dc2))*_0x2f066e;}}_0x75a982[_0x590f24(0xcaa)]=_0x96cdef=>{throw(0x0,_0x54aab4['S'])('SubSurfaceSceneComponent');};},0xe76d:(_0x23d77e,_0x5047a2,_0x3f5871)=>{var _0x101e1e=a7_0x3304fb;_0x3f5871(0x26fa)['v'][_0x101e1e(0x75d)]['gpuUpdateParticlesComputeShader']='struct\x20Particle\x20{\x0aposition\x20:\x20vec3<f32>,\x0aage\x20:\x20f32,\x0asize\x20:\x20vec3<f32>,\x0alife\x20:\x20f32,\x0aseed\x20:\x20vec4<f32>,\x0adirection\x20:\x20vec3<f32>,\x0adummy0:\x20f32,\x0a#ifdef\x20CUSTOMEMITTER\x0ainitialPosition\x20:\x20vec3<f32>,\x0adummy1:\x20f32,\x0a#endif\x0a#ifndef\x20COLORGRADIENTS\x0acolor\x20:\x20vec4<f32>,\x0a#endif\x0a#ifndef\x20BILLBOARD\x0ainitialDirection\x20:\x20vec3<f32>,\x0adummy2:\x20f32,\x0a#endif\x0a#ifdef\x20NOISE\x0anoiseCoordinates1\x20:\x20vec3<f32>,\x0adummy3:\x20f32,\x0anoiseCoordinates2\x20:\x20vec3<f32>,\x0adummy4:\x20f32,\x0a#endif\x0a#ifdef\x20ANGULARSPEEDGRADIENTS\x0aangle\x20:\x20f32,\x0a#else\x0aangle\x20:\x20vec2<f32>,\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x0acellIndex\x20:\x20f32,\x0a#ifdef\x20ANIMATESHEETRANDOMSTART\x0acellStartOffset\x20:\x20f32,\x0a#endif\x0a#endif\x0a};\x0astruct\x20Particles\x20{\x0aparticles\x20:\x20array<Particle>,\x0a};\x0astruct\x20SimParams\x20{\x0acurrentCount\x20:\x20f32,\x0atimeDelta\x20:\x20f32,\x0astopFactor\x20:\x20f32,\x0arandomTextureSize:\x20i32,\x0alifeTime\x20:\x20vec2<f32>,\x0aemitPower\x20:\x20vec2<f32>,\x0a#ifndef\x20COLORGRADIENTS\x0acolor1\x20:\x20vec4<f32>,\x0acolor2\x20:\x20vec4<f32>,\x0a#endif\x0asizeRange\x20:\x20vec2<f32>,\x0ascaleRange\x20:\x20vec4<f32>,\x0aangleRange\x20:\x20vec4<f32>,\x0agravity\x20:\x20vec3<f32>,\x0a#ifdef\x20LIMITVELOCITYGRADIENTS\x0alimitVelocityDamping\x20:\x20f32,\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x0acellInfos\x20:\x20vec4<f32>,\x0a#endif\x0a#ifdef\x20NOISE\x0anoiseStrength\x20:\x20vec3<f32>,\x0a#endif\x0a#ifndef\x20LOCAL\x0aemitterWM\x20:\x20mat4x4<f32>,\x0a#endif\x0a#ifdef\x20BOXEMITTER\x0adirection1\x20:\x20vec3<f32>,\x0adirection2\x20:\x20vec3<f32>,\x0aminEmitBox\x20:\x20vec3<f32>,\x0amaxEmitBox\x20:\x20vec3<f32>,\x0a#endif\x0a#ifdef\x20CONEEMITTER\x0aradius\x20:\x20vec2<f32>,\x0aconeAngle\x20:\x20f32,\x0aheight\x20:\x20vec2<f32>,\x0adirectionRandomizer\x20:\x20f32,\x0a#endif\x0a#ifdef\x20CYLINDEREMITTER\x0aradius\x20:\x20f32,\x0aheight\x20:\x20f32,\x0aradiusRange\x20:\x20f32,\x0a#ifdef\x20DIRECTEDCYLINDEREMITTER\x0adirection1\x20:\x20vec3<f32>,\x0adirection2\x20:\x20vec3<f32>,\x0a#else\x0adirectionRandomizer\x20:\x20f32,\x0a#endif\x0a#endif\x0a#ifdef\x20HEMISPHERICEMITTER\x0aradius\x20:\x20f32,\x0aradiusRange\x20:\x20f32,\x0adirectionRandomizer\x20:\x20f32,\x0a#endif\x0a#ifdef\x20POINTEMITTER\x0adirection1\x20:\x20vec3<f32>,\x0adirection2\x20:\x20vec3<f32>,\x0a#endif\x0a#ifdef\x20SPHEREEMITTER\x0aradius\x20:\x20f32,\x0aradiusRange\x20:\x20f32,\x0a#ifdef\x20DIRECTEDSPHEREEMITTER\x0adirection1\x20:\x20vec3<f32>,\x0adirection2\x20:\x20vec3<f32>,\x0a#else\x0adirectionRandomizer\x20:\x20f32,\x0a#endif\x0a#endif\x0a};\x0a@binding(0)\x20@group(0)\x20var<uniform>\x20params\x20:\x20SimParams;\x0a@binding(1)\x20@group(0)\x20var<storage,read>\x20particlesIn\x20:\x20Particles;\x0a@binding(2)\x20@group(0)\x20var<storage,read_write>\x20particlesOut\x20:\x20Particles;\x0a@binding(3)\x20@group(0)\x20var\x20randomTexture\x20:\x20texture_2d<f32>;\x0a@binding(4)\x20@group(0)\x20var\x20randomTexture2\x20:\x20texture_2d<f32>;\x0a#ifdef\x20SIZEGRADIENTS\x0a@binding(0)\x20@group(1)\x20var\x20sizeGradientSampler\x20:\x20sampler;\x0a@binding(1)\x20@group(1)\x20var\x20sizeGradientTexture\x20:\x20texture_2d<f32>;\x0a#endif\x20\x0a#ifdef\x20ANGULARSPEEDGRADIENTS\x0a@binding(2)\x20@group(1)\x20var\x20angularSpeedGradientSampler\x20:\x20sampler;\x0a@binding(3)\x20@group(1)\x20var\x20angularSpeedGradientTexture\x20:\x20texture_2d<f32>;\x0a#endif\x20\x0a#ifdef\x20VELOCITYGRADIENTS\x0a@binding(4)\x20@group(1)\x20var\x20velocityGradientSampler\x20:\x20sampler;\x0a@binding(5)\x20@group(1)\x20var\x20velocityGradientTexture\x20:\x20texture_2d<f32>;\x0a#endif\x0a#ifdef\x20LIMITVELOCITYGRADIENTS\x0a@binding(6)\x20@group(1)\x20var\x20limitVelocityGradientSampler\x20:\x20sampler;\x0a@binding(7)\x20@group(1)\x20var\x20limitVelocityGradientTexture\x20:\x20texture_2d<f32>;\x0a#endif\x0a#ifdef\x20DRAGGRADIENTS\x0a@binding(8)\x20@group(1)\x20var\x20dragGradientSampler\x20:\x20sampler;\x0a@binding(9)\x20@group(1)\x20var\x20dragGradientTexture\x20:\x20texture_2d<f32>;\x0a#endif\x0a#ifdef\x20NOISE\x0a@binding(10)\x20@group(1)\x20var\x20noiseSampler\x20:\x20sampler;\x0a@binding(11)\x20@group(1)\x20var\x20noiseTexture\x20:\x20texture_2d<f32>;\x0a#endif\x0afn\x20getRandomVec3(offset\x20:\x20f32,vertexID\x20:\x20f32)->vec3<f32>\x20{\x0areturn\x20textureLoad(randomTexture2,vec2<i32>(i32(vertexID*offset/params.currentCount*f32(params.randomTextureSize))\x20%\x20params.randomTextureSize,0),0).rgb;\x0a}\x0afn\x20getRandomVec4(offset\x20:\x20f32,vertexID\x20:\x20f32)->vec4<f32>\x20{\x0areturn\x20textureLoad(randomTexture,vec2<i32>(i32(vertexID*offset/params.currentCount*f32(params.randomTextureSize))\x20%\x20params.randomTextureSize,0),0);\x0a}\x0a@compute\x20@workgroup_size(64)\x0afn\x20main(@builtin(global_invocation_id)\x20GlobalInvocationID\x20:\x20vec3<u32>)\x20{\x0alet\x20index\x20:\x20u32=GlobalInvocationID.x;\x0alet\x20vertexID\x20:\x20f32=f32(index);\x0aif\x20(index>=u32(params.currentCount))\x20{\x0areturn;\x0a}\x0alet\x20PI\x20:\x20f32=3.14159;\x0alet\x20timeDelta\x20:\x20f32=params.timeDelta;\x0alet\x20newAge\x20:\x20f32=particlesIn.particles[index].age+timeDelta;\x0alet\x20life\x20:\x20f32=particlesIn.particles[index].life;\x0alet\x20seed\x20:\x20vec4<f32>=particlesIn.particles[index].seed;\x0alet\x20direction\x20:\x20vec3<f32>=particlesIn.particles[index].direction;\x0aif\x20(newAge>=life\x20&&\x20params.stopFactor\x20!=\x200.)\x20{\x0avar\x20newPosition\x20:\x20vec3<f32>;\x0avar\x20newDirection\x20:\x20vec3<f32>;\x0alet\x20randoms\x20:\x20vec4<f32>=getRandomVec4(seed.x,vertexID);\x0alet\x20outLife\x20:\x20f32=params.lifeTime.x+(params.lifeTime.y-params.lifeTime.x)*randoms.r;\x0aparticlesOut.particles[index].life=outLife;\x0aparticlesOut.particles[index].age=newAge-life;\x0aparticlesOut.particles[index].seed=seed;\x0avar\x20sizex\x20:\x20f32;\x0a#ifdef\x20SIZEGRADIENTS\x20\x0asizex=textureSampleLevel(sizeGradientTexture,sizeGradientSampler,vec2<f32>(0.,0.),0.).r;\x0a#else\x0asizex=params.sizeRange.x+(params.sizeRange.y-params.sizeRange.x)*randoms.g;\x0a#endif\x0aparticlesOut.particles[index].size=vec3<f32>(\x0asizex,\x0aparams.scaleRange.x+(params.scaleRange.y-params.scaleRange.x)*randoms.b,\x0aparams.scaleRange.z+(params.scaleRange.w-params.scaleRange.z)*randoms.a);\x0a#ifndef\x20COLORGRADIENTS\x0aparticlesOut.particles[index].color=params.color1+(params.color2-params.color1)*randoms.b;\x0a#endif\x0a#ifndef\x20ANGULARSPEEDGRADIENTS\x20\x0aparticlesOut.particles[index].angle=vec2<f32>(\x0aparams.angleRange.z+(params.angleRange.w-params.angleRange.z)*randoms.r,\x0aparams.angleRange.x+(params.angleRange.y-params.angleRange.x)*randoms.a);\x0a#else\x0aparticlesOut.particles[index].angle=params.angleRange.z+(params.angleRange.w-params.angleRange.z)*randoms.r;\x0a#endif\x20\x0a#if\x20defined(POINTEMITTER)\x0alet\x20randoms2\x20:\x20vec3<f32>=getRandomVec3(seed.y,vertexID);\x0alet\x20randoms3\x20:\x20vec3<f32>=getRandomVec3(seed.z,vertexID);\x0anewPosition=vec3<f32>(0.,0.,0.);\x0anewDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\x0a#elif\x20defined(BOXEMITTER)\x0alet\x20randoms2\x20:\x20vec3<f32>=getRandomVec3(seed.y,vertexID);\x0alet\x20randoms3\x20:\x20vec3<f32>=getRandomVec3(seed.z,vertexID);\x0anewPosition=params.minEmitBox+(params.maxEmitBox-params.minEmitBox)*randoms2;\x0anewDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\x20\x0a#elif\x20defined(HEMISPHERICEMITTER)\x0alet\x20randoms2\x20:\x20vec3<f32>=getRandomVec3(seed.y,vertexID);\x0alet\x20randoms3\x20:\x20vec3<f32>=getRandomVec3(seed.z,vertexID);\x0alet\x20phi\x20:\x20f32=2.0*PI*randoms2.x;\x0alet\x20theta\x20:\x20f32=acos(-1.0+2.0*randoms2.y);\x0alet\x20randX\x20:\x20f32=cos(phi)*sin(theta);\x0alet\x20randY\x20:\x20f32=cos(theta);\x0alet\x20randZ\x20:\x20f32=sin(phi)*sin(theta);\x0anewPosition=(params.radius-(params.radius*params.radiusRange*randoms2.z))*vec3<f32>(randX,abs(randY),randZ);\x0anewDirection=normalize(newPosition+params.directionRandomizer*randoms3);\x0a#elif\x20defined(SPHEREEMITTER)\x0alet\x20randoms2\x20:\x20vec3<f32>=getRandomVec3(seed.y,vertexID);\x0alet\x20randoms3\x20:\x20vec3<f32>=getRandomVec3(seed.z,vertexID);\x0alet\x20phi\x20:\x20f32=2.0*PI*randoms2.x;\x0alet\x20theta\x20:\x20f32=acos(-1.0+2.0*randoms2.y);\x0alet\x20randX\x20:\x20f32=cos(phi)*sin(theta);\x0alet\x20randY\x20:\x20f32=cos(theta);\x0alet\x20randZ\x20:\x20f32=sin(phi)*sin(theta);\x0anewPosition=(params.radius-(params.radius*params.radiusRange*randoms2.z))*vec3<f32>(randX,randY,randZ);\x0a#ifdef\x20DIRECTEDSPHEREEMITTER\x0anewDirection=normalize(params.direction1+(params.direction2-params.direction1)*randoms3);\x0a#else\x0anewDirection=normalize(newPosition+params.directionRandomizer*randoms3);\x0a#endif\x0a#elif\x20defined(CYLINDEREMITTER)\x0alet\x20randoms2\x20:\x20vec3<f32>=getRandomVec3(seed.y,vertexID);\x0alet\x20randoms3\x20:\x20vec3<f32>=getRandomVec3(seed.z,vertexID);\x0alet\x20yPos\x20:\x20f32=(-0.5+randoms2.x)*params.height;\x0avar\x20angle\x20:\x20f32=randoms2.y*PI*2.;\x0alet\x20inverseRadiusRangeSquared\x20:\x20f32=(1.-params.radiusRange)*(1.-params.radiusRange);\x0alet\x20positionRadius\x20:\x20f32=params.radius*sqrt(inverseRadiusRangeSquared+randoms2.z*(1.-inverseRadiusRangeSquared));\x0alet\x20xPos\x20:\x20f32=positionRadius*cos(angle);\x0alet\x20zPos\x20:\x20f32=positionRadius*sin(angle);\x0anewPosition=vec3<f32>(xPos,yPos,zPos);\x0a#ifdef\x20DIRECTEDCYLINDEREMITTER\x0anewDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\x0a#else\x0aangle=angle+(-0.5+randoms3.x)*PI*params.directionRandomizer;\x0anewDirection=vec3<f32>(cos(angle),(-0.5+randoms3.y)*params.directionRandomizer,sin(angle));\x0anewDirection=normalize(newDirection);\x0a#endif\x0a#elif\x20defined(CONEEMITTER)\x0alet\x20randoms2\x20:\x20vec3<f32>=getRandomVec3(seed.y,vertexID);\x0alet\x20s\x20:\x20f32=2.0*PI*randoms2.x;\x0a#ifdef\x20CONEEMITTERSPAWNPOINT\x0alet\x20h\x20:\x20f32=0.0001;\x0a#else\x0avar\x20h\x20:\x20f32=randoms2.y*params.height.y;\x0ah=1.-h*h;\x20\x0a#endif\x0avar\x20lRadius\x20:\x20f32=params.radius.x-params.radius.x*randoms2.z*params.radius.y;\x0alRadius=lRadius*h;\x0alet\x20randX\x20:\x20f32=lRadius*sin(s);\x0alet\x20randZ\x20:\x20f32=lRadius*cos(s);\x0alet\x20randY\x20:\x20f32=h\x20*params.height.x;\x0anewPosition=vec3<f32>(randX,randY,randZ);\x20\x0aif\x20(abs(cos(params.coneAngle))==1.0)\x20{\x0anewDirection=vec3<f32>(0.,1.0,0.);\x0a}\x20else\x20{\x0alet\x20randoms3\x20:\x20vec3<f32>=getRandomVec3(seed.z,vertexID);\x0anewDirection=normalize(newPosition+params.directionRandomizer*randoms3);\x20\x0a}\x0a#elif\x20defined(CUSTOMEMITTER)\x0anewPosition=particlesIn.particles[index].initialPosition;\x0aparticlesOut.particles[index].initialPosition=newPosition;\x0a#else\x20\x0anewPosition=vec3<f32>(0.,0.,0.);\x0anewDirection=2.0*(getRandomVec3(seed.w,vertexID)-vec3<f32>(0.5,0.5,0.5));\x0a#endif\x0alet\x20power\x20:\x20f32=params.emitPower.x+(params.emitPower.y-params.emitPower.x)*randoms.a;\x0a#ifdef\x20LOCAL\x0aparticlesOut.particles[index].position=newPosition;\x0a#else\x0aparticlesOut.particles[index].position=(params.emitterWM*vec4<f32>(newPosition,1.)).xyz;\x0a#endif\x0a#ifdef\x20CUSTOMEMITTER\x0aparticlesOut.particles[index].direction=direction;\x0a#ifndef\x20BILLBOARD\x20\x0aparticlesOut.particles[index].initialDirection=direction;\x0a#endif\x0a#else\x0a#ifdef\x20LOCAL\x0alet\x20initial\x20:\x20vec3<f32>=newDirection;\x0a#else\x20\x0alet\x20initial\x20:\x20vec3<f32>=(params.emitterWM*vec4<f32>(newDirection,0.)).xyz;\x0a#endif\x0aparticlesOut.particles[index].direction=initial*power;\x0a#ifndef\x20BILLBOARD\x20\x0aparticlesOut.particles[index].initialDirection=initial;\x0a#endif\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x20\x0aparticlesOut.particles[index].cellIndex=params.cellInfos.x;\x0a#ifdef\x20ANIMATESHEETRANDOMSTART\x0aparticlesOut.particles[index].cellStartOffset=randoms.a*outLife;\x0a#endif\x20\x0a#endif\x0a#ifdef\x20NOISE\x0aparticlesOut.particles[index].noiseCoordinates1=particlesIn.particles[index].noiseCoordinates1;\x0aparticlesOut.particles[index].noiseCoordinates2=particlesIn.particles[index].noiseCoordinates2;\x0a#endif\x0a}\x20else\x20{\x0avar\x20directionScale\x20:\x20f32=timeDelta;\x0aparticlesOut.particles[index].age=newAge;\x0alet\x20ageGradient\x20:\x20f32=newAge/life;\x0a#ifdef\x20VELOCITYGRADIENTS\x0adirectionScale=directionScale*textureSampleLevel(velocityGradientTexture,velocityGradientSampler,vec2<f32>(ageGradient,0.),0.).r;\x0a#endif\x0a#ifdef\x20DRAGGRADIENTS\x0adirectionScale=directionScale*(1.0-textureSampleLevel(dragGradientTexture,dragGradientSampler,vec2<f32>(ageGradient,0.),0.).r);\x0a#endif\x0alet\x20position\x20:\x20vec3<f32>=particlesIn.particles[index].position;\x0a#if\x20defined(CUSTOMEMITTER)\x0aparticlesOut.particles[index].position=position+(direction-position)*ageGradient;\x20\x0aparticlesOut.particles[index].initialPosition=particlesIn.particles[index].initialPosition;\x0a#else\x0aparticlesOut.particles[index].position=position+direction*directionScale;\x0a#endif\x0aparticlesOut.particles[index].life=life;\x0aparticlesOut.particles[index].seed=seed;\x0a#ifndef\x20COLORGRADIENTS\x20\x0aparticlesOut.particles[index].color=particlesIn.particles[index].color;\x0a#endif\x0a#ifdef\x20SIZEGRADIENTS\x0aparticlesOut.particles[index].size=vec3<f32>(\x0atextureSampleLevel(sizeGradientTexture,sizeGradientSampler,vec2<f32>(ageGradient,0.),0.).r,\x0aparticlesIn.particles[index].size.yz);\x0a#else\x0aparticlesOut.particles[index].size=particlesIn.particles[index].size;\x0a#endif\x20\x0a#ifndef\x20BILLBOARD\x20\x0aparticlesOut.particles[index].initialDirection=particlesIn.particles[index].initialDirection;\x0a#endif\x0a#ifdef\x20CUSTOMEMITTER\x0aparticlesOut.particles[index].direction=direction;\x0a#else\x0avar\x20updatedDirection\x20:\x20vec3<f32>=direction+params.gravity*timeDelta;\x0a#ifdef\x20LIMITVELOCITYGRADIENTS\x0alet\x20limitVelocity\x20:\x20f32=textureSampleLevel(limitVelocityGradientTexture,limitVelocityGradientSampler,vec2<f32>(ageGradient,0.),0.).r;\x0alet\x20currentVelocity\x20:\x20f32=length(updatedDirection);\x0aif\x20(currentVelocity>limitVelocity)\x20{\x0aupdatedDirection=updatedDirection*params.limitVelocityDamping;\x0a}\x0a#endif\x0aparticlesOut.particles[index].direction=updatedDirection;\x0a#ifdef\x20NOISE\x0alet\x20noiseCoordinates1\x20:\x20vec3<f32>=particlesIn.particles[index].noiseCoordinates1;\x0alet\x20noiseCoordinates2\x20:\x20vec3<f32>=particlesIn.particles[index].noiseCoordinates2;\x0alet\x20fetchedR\x20:\x20f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates1.x,noiseCoordinates1.y)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;\x0alet\x20fetchedG\x20:\x20f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates1.z,noiseCoordinates2.x)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;\x0alet\x20fetchedB\x20:\x20f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates2.y,noiseCoordinates2.z)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;\x0alet\x20force\x20:\x20vec3<f32>=vec3<f32>(-1.+2.*fetchedR,-1.+2.*fetchedG,-1.+2.*fetchedB)*params.noiseStrength;\x0aparticlesOut.particles[index].direction=particlesOut.particles[index].direction+force*timeDelta;\x0aparticlesOut.particles[index].noiseCoordinates1=noiseCoordinates1;\x0aparticlesOut.particles[index].noiseCoordinates2=noiseCoordinates2;\x0a#endif\x20\x0a#endif\x20\x0a#ifdef\x20ANGULARSPEEDGRADIENTS\x0alet\x20angularSpeed\x20:\x20f32=textureSampleLevel(angularSpeedGradientTexture,angularSpeedGradientSampler,vec2<f32>(ageGradient,0.),0.).r;\x0aparticlesOut.particles[index].angle=particlesIn.particles[index].angle+angularSpeed*timeDelta;\x0a#else\x0alet\x20angle\x20:\x20vec2<f32>=particlesIn.particles[index].angle;\x0aparticlesOut.particles[index].angle=vec2<f32>(angle.x+angle.y*timeDelta,angle.y);\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x20\x0avar\x20offsetAge\x20:\x20f32=particlesOut.particles[index].age;\x0alet\x20dist\x20:\x20f32=params.cellInfos.y-params.cellInfos.x;\x0a#ifdef\x20ANIMATESHEETRANDOMSTART\x0alet\x20cellStartOffset\x20:\x20f32=particlesIn.particles[index].cellStartOffset;\x0aparticlesOut.particles[index].cellStartOffset=cellStartOffset;\x0aoffsetAge=offsetAge+cellStartOffset;\x0a#else\x0alet\x20cellStartOffset\x20:\x20f32=0.;\x0a#endif\x20\x0avar\x20ratio\x20:\x20f32;\x0aif\x20(params.cellInfos.w==1.0)\x20{\x0aratio=clamp(((cellStartOffset+params.cellInfos.z*offsetAge)\x20%\x20life)/life,0.,1.0);\x0a}\x0aelse\x20{\x0aratio=clamp((cellStartOffset+params.cellInfos.z*offsetAge)/life,0.,1.0);\x0a}\x0aparticlesOut.particles[index].cellIndex=f32(i32(params.cellInfos.x+ratio*dist));\x0a#endif\x0a}\x0a}\x0a';},0x540b:(_0xb2ad7b,_0x5dd1c4,_0x27f35f)=>{var _0x540d15=a7_0x3304fb,_0x208611=_0x27f35f(0x26fa);_0x27f35f(0xb1dc),_0x208611['v'][_0x540d15(0x121)][_0x540d15(0x26f)]=_0x540d15(0xbb1);},0x1396d:(_0x2c6e28,_0xb6b792,_0x31c8a7)=>{var _0x3230e4=a7_0x3304fb;_0x31c8a7(0x26fa)['v'][_0x3230e4(0x121)][_0x3230e4(0xce9)]='#ifdef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0a{\x0a#ifdef\x20INSTANCES\x0a#define\x20BVASNAME\x20bakedVertexAnimationSettingsInstanced\x0a#else\x0a#define\x20BVASNAME\x20bakedVertexAnimationSettings\x0a#endif\x0afloat\x20VATStartFrame=BVASNAME.x;\x0afloat\x20VATEndFrame=BVASNAME.y;\x0afloat\x20VATOffsetFrame=BVASNAME.z;\x0afloat\x20VATSpeed=BVASNAME.w;\x0afloat\x20totalFrames=VATEndFrame-VATStartFrame+1.0;\x0afloat\x20time=bakedVertexAnimationTime*VATSpeed/totalFrames;\x0afloat\x20frameCorrection=time<1.0\x20?\x200.0\x20:\x201.0;\x0afloat\x20numOfFrames=totalFrames-frameCorrection;\x0afloat\x20VATFrameNum=fract(time)*numOfFrames;\x0aVATFrameNum=mod(VATFrameNum+VATOffsetFrame,numOfFrames);\x0aVATFrameNum=floor(VATFrameNum);\x0aVATFrameNum+=VATStartFrame+frameCorrection;\x0amat4\x20VATInfluence;\x0aVATInfluence=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[0],VATFrameNum)*matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0aVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[1],VATFrameNum)*matricesWeights[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0aVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[2],VATFrameNum)*matricesWeights[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0aVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[3],VATFrameNum)*matricesWeights[3];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0aVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[0],VATFrameNum)*matricesWeightsExtra[0];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0aVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[1],VATFrameNum)*matricesWeightsExtra[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0aVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[2],VATFrameNum)*matricesWeightsExtra[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0aVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[3],VATFrameNum)*matricesWeightsExtra[3];\x0a#endif\x0afinalWorld=finalWorld*VATInfluence;\x0a}\x0a#endif\x0a';},0x2648:(_0xb29d88,_0x3d87cf,_0x2caaac)=>{var _0xadc9ea=a7_0x3304fb;_0x2caaac(0x26fa)['v']['IncludesShadersStore'][_0xadc9ea(0x681)]='#ifdef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0auniform\x20float\x20bakedVertexAnimationTime;\x0auniform\x20vec2\x20bakedVertexAnimationTextureSizeInverted;\x0auniform\x20vec4\x20bakedVertexAnimationSettings;\x0auniform\x20sampler2D\x20bakedVertexAnimationTexture;\x0a#ifdef\x20INSTANCES\x0aattribute\x20vec4\x20bakedVertexAnimationSettingsInstanced;\x0a#endif\x0a#define\x20inline\x0amat4\x20readMatrixFromRawSamplerVAT(sampler2D\x20smp,float\x20index,float\x20frame)\x0a{\x0afloat\x20offset=index*4.0;\x0afloat\x20frameUV=(frame+0.5)*bakedVertexAnimationTextureSizeInverted.y;\x0afloat\x20dx=bakedVertexAnimationTextureSizeInverted.x;\x0avec4\x20m0=texture2D(smp,vec2(dx*(offset+0.5),frameUV));\x0avec4\x20m1=texture2D(smp,vec2(dx*(offset+1.5),frameUV));\x0avec4\x20m2=texture2D(smp,vec2(dx*(offset+2.5),frameUV));\x0avec4\x20m3=texture2D(smp,vec2(dx*(offset+3.5),frameUV));\x0areturn\x20mat4(m0,m1,m2,m3);\x0a}\x0a#endif\x0a';},0x11c69:(_0x35bd48,_0xd6aac0,_0x134c4a)=>{var _0x247ebf=a7_0x3304fb;_0x134c4a(0x26fa)['v'][_0x247ebf(0x121)]['bonesDeclaration']=_0x247ebf(0xbd3);},0x9e45:(_0x21ed62,_0x51d4bf,_0x221e3c)=>{var _0x34ef1c=a7_0x3304fb;_0x221e3c(0x26fa)['v'][_0x34ef1c(0x121)][_0x34ef1c(0x7c7)]='#ifndef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0a#if\x20NUM_BONE_INFLUENCERS>0\x0amat4\x20influence;\x0a#ifdef\x20BONETEXTURE\x0ainfluence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0ainfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0ainfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0ainfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0ainfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[0])*matricesWeightsExtra[0];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0ainfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[1])*matricesWeightsExtra[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0ainfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[2])*matricesWeightsExtra[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0ainfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[3])*matricesWeightsExtra[3];\x0a#endif\x0a#else\x0ainfluence=mBones[int(matricesIndices[0])]*matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0ainfluence+=mBones[int(matricesIndices[1])]*matricesWeights[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0ainfluence+=mBones[int(matricesIndices[2])]*matricesWeights[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0ainfluence+=mBones[int(matricesIndices[3])]*matricesWeights[3];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0ainfluence+=mBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0ainfluence+=mBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0ainfluence+=mBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0ainfluence+=mBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\x0a#endif\x0a#endif\x0afinalWorld=finalWorld*influence;\x0a#endif\x0a#endif\x0a';},0x5250:(_0x499a33,_0x496260,_0x5ce8ef)=>{var _0x1419cd=a7_0x3304fb;_0x5ce8ef(0x26fa)['v'][_0x1419cd(0x121)]['boundingBoxRendererUboDeclaration']='#ifdef\x20WEBGL2\x0auniform\x20vec4\x20color;\x0auniform\x20mat4\x20world;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20MULTIVIEW\x0auniform\x20mat4\x20viewProjectionR;\x0a#endif\x0a#else\x0alayout(std140,column_major)\x20uniform;\x0auniform\x20BoundingBoxRenderer\x20{\x0avec4\x20color;\x0amat4\x20world;\x0amat4\x20viewProjection;\x0amat4\x20viewProjectionR;\x0a};\x0a#endif\x0a';},0xdc9a:(_0x524dc5,_0x574f60,_0x5a5eb1)=>{var _0x342860=a7_0x3304fb;_0x5a5eb1(0x26fa)['v'][_0x342860(0x121)][_0x342860(0x54e)]=_0x342860(0x283);},0x5a2d:(_0x398151,_0x28bde1,_0x14fc7a)=>{var _0x292a91=a7_0x3304fb,_0x2e78ee=_0x14fc7a(0x26fa);_0x14fc7a(0x19fd),_0x2e78ee['v'][_0x292a91(0x121)][_0x292a91(0xb6d)]=_0x292a91(0x570);},0xc907:(_0xd05b9,_0x376140,_0x38a4b6)=>{var _0x25d00c=a7_0x3304fb;_0x38a4b6(0x26fa)['v'][_0x25d00c(0x121)][_0x25d00c(0x490)]=_0x25d00c(0x410);},0xf72d:(_0x11dc1f,_0xea838d,_0x3b8bf4)=>{var _0x3a6ec3=a7_0x3304fb;_0x3b8bf4(0x26fa)['v'][_0x3a6ec3(0x121)]['bumpVertex']=_0x3a6ec3(0xb49);},0x35c4:(_0x35f2c9,_0x3e2c31,_0xf84f96)=>{var _0x1abf66=a7_0x3304fb;_0xf84f96(0x26fa)['v']['IncludesShadersStore'][_0x1abf66(0xc8d)]=_0x1abf66(0x8f5);},0x10716:(_0x1bf499,_0x50e16f,_0x533d5d)=>{var _0x3cc46c=a7_0x3304fb;_0x533d5d(0x26fa)['v'][_0x3cc46c(0x121)][_0x3cc46c(0x429)]=_0x3cc46c(0x830);},0x13fa8:(_0x15fdb5,_0x224899,_0x3c4f9e)=>{var _0x101b65=a7_0x3304fb;_0x3c4f9e(0x26fa)['v'][_0x101b65(0x121)][_0x101b65(0x42d)]=_0x101b65(0x1dc);},0xc24a:(_0x26c94e,_0x3c4651,_0x141dac)=>{var _0x2a7098=a7_0x3304fb;_0x141dac(0x26fa)['v'][_0x2a7098(0x121)][_0x2a7098(0x89d)]=_0x2a7098(0xb89);},0xd4f3:(_0x11f933,_0x5eeaf9,_0x2238a7)=>{var _0x3ce144=a7_0x3304fb;_0x2238a7(0x26fa)['v']['IncludesShadersStore'][_0x3ce144(0x1c0)]='#ifdef\x20CLIPPLANE\x0auniform\x20vec4\x20vClipPlane;\x0avarying\x20float\x20fClipDistance;\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0auniform\x20vec4\x20vClipPlane2;\x0avarying\x20float\x20fClipDistance2;\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0auniform\x20vec4\x20vClipPlane3;\x0avarying\x20float\x20fClipDistance3;\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0auniform\x20vec4\x20vClipPlane4;\x0avarying\x20float\x20fClipDistance4;\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0auniform\x20vec4\x20vClipPlane5;\x0avarying\x20float\x20fClipDistance5;\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0auniform\x20vec4\x20vClipPlane6;\x0avarying\x20float\x20fClipDistance6;\x0a#endif\x0a';},0xec4f:(_0x4f1af1,_0x306c43,_0x70bcdc)=>{var _0x1d3259=a7_0x3304fb;_0x70bcdc(0x26fa)['v'][_0x1d3259(0x121)][_0x1d3259(0x89c)]=_0x1d3259(0x256);},0x9af1:(_0x5a4698,_0x188685,_0x36cc60)=>{var _0x486486=a7_0x3304fb;_0x36cc60(0x26fa)['v'][_0x486486(0x121)]['decalFragmentDeclaration']='#ifdef\x20DECAL\x0auniform\x20vec4\x20vDecalInfos;\x0a#endif\x0a';},0x28cb:(_0x573820,_0x5a4c78,_0x25a066)=>{var _0x2a85a9=a7_0x3304fb;_0x25a066(0x26fa)['v'][_0x2a85a9(0x121)][_0x2a85a9(0x7b2)]='#ifdef\x20DECAL\x0auniform\x20vec4\x20vDecalInfos;\x0auniform\x20mat4\x20decalMatrix;\x0a#endif\x0a';},0x20cb:(_0x2676e2,_0x5872d5,_0x5f4458)=>{var _0x3bffda=a7_0x3304fb,_0x399616=_0x5f4458(0x26fa);_0x5f4458(0xb1dc),_0x5f4458(0x10150),_0x399616['v']['IncludesShadersStore']['defaultUboDeclaration']=_0x3bffda(0x22d);},0xace7:(_0x12c0f4,_0x153276,_0x3aa40f)=>{var _0x255db5=a7_0x3304fb;_0x3aa40f(0x26fa)['v'][_0x255db5(0x121)][_0x255db5(0x515)]=_0x255db5(0xa64);},0xf45c:(_0x2261c4,_0x4b1fb5,_0x6346b9)=>{var _0x7512b4=a7_0x3304fb;_0x6346b9(0x26fa)['v'][_0x7512b4(0x121)]['fogFragment']=_0x7512b4(0x4c1);},0x17b64:(_0x291e4b,_0x57f6b8,_0x480bce)=>{var _0x4a20c8=a7_0x3304fb;_0x480bce(0x26fa)['v'][_0x4a20c8(0x121)]['fogFragmentDeclaration']=_0x4a20c8(0x7c5);},0xeda3:(_0x31a93b,_0x42a1fa,_0x10338a)=>{var _0x45b760=a7_0x3304fb;_0x10338a(0x26fa)['v'][_0x45b760(0x121)][_0x45b760(0x2e9)]=_0x45b760(0x549);},0x1162f:(_0x5b4dd0,_0x35abda,_0x556270)=>{var _0x341bd1=a7_0x3304fb;_0x556270(0x26fa)['v'][_0x341bd1(0x121)][_0x341bd1(0x9fd)]=_0x341bd1(0xa3c);},0x2eec:(_0x28b043,_0x4088d3,_0x43969e)=>{var _0x36c893=a7_0x3304fb;_0x43969e(0x26fa)['v'][_0x36c893(0x121)][_0x36c893(0x94f)]=_0x36c893(0x48d);},0x11b66:(_0x239e6e,_0x10bc47,_0x4bf43b)=>{var _0x351080=a7_0x3304fb;_0x4bf43b(0x26fa)['v'][_0x351080(0x121)][_0x351080(0x34d)]=_0x351080(0x6e8);},0x1761a:(_0x2262f5,_0x129954,_0x1285ed)=>{var _0x9e0601=a7_0x3304fb;_0x1285ed(0x26fa)['v'][_0x9e0601(0x121)][_0x9e0601(0x98d)]=_0x9e0601(0x754);},0x8cd3:(_0x40a14b,_0x51f59d,_0x2df6e2)=>{var _0x23912a=a7_0x3304fb;_0x2df6e2(0x26fa)['v'][_0x23912a(0x121)]['helperFunctions']=_0x23912a(0xc12);},0xa9cf:(_0x512108,_0x3ce1b7,_0x317792)=>{var _0x37727c=a7_0x3304fb;_0x317792(0x26fa)['v'][_0x37727c(0x121)]['imageProcessingCompatibility']='#ifdef\x20IMAGEPROCESSINGPOSTPROCESS\x0agl_FragColor.rgb=pow(gl_FragColor.rgb,vec3(2.2));\x0a#endif\x0a';},0x12f21:(_0x31be05,_0x261d34,_0x27fc24)=>{var _0x5b7c5d=a7_0x3304fb;_0x27fc24(0x26fa)['v']['IncludesShadersStore'][_0x5b7c5d(0xb1a)]=_0x5b7c5d(0x2f7);},0x171c4:(_0x2ce9eb,_0x5b248d,_0x2f8a85)=>{var _0x5a1bc3=a7_0x3304fb;_0x2f8a85(0x26fa)['v'][_0x5a1bc3(0x121)]['imageProcessingFunctions']='#if\x20defined(COLORGRADING)\x20&&\x20!defined(COLORGRADING3D)\x0a/**\x20\x0a*\x20Polyfill\x20for\x20SAMPLE_TEXTURE_3D,which\x20is\x20unsupported\x20in\x20WebGL.\x0a*\x20sampler3dSetting.x=textureOffset\x20(0.5/textureSize).\x0a*\x20sampler3dSetting.y=textureSize.\x0a*/\x0a#define\x20inline\x0avec3\x20sampleTexture3D(sampler2D\x20colorTransform,vec3\x20color,vec2\x20sampler3dSetting)\x0a{\x0afloat\x20sliceSize=2.0*sampler3dSetting.x;\x20\x0a#ifdef\x20SAMPLER3DGREENDEPTH\x0afloat\x20sliceContinuous=(color.g-sampler3dSetting.x)*sampler3dSetting.y;\x0a#else\x0afloat\x20sliceContinuous=(color.b-sampler3dSetting.x)*sampler3dSetting.y;\x0a#endif\x0afloat\x20sliceInteger=floor(sliceContinuous);\x0afloat\x20sliceFraction=sliceContinuous-sliceInteger;\x0a#ifdef\x20SAMPLER3DGREENDEPTH\x0avec2\x20sliceUV=color.rb;\x0a#else\x0avec2\x20sliceUV=color.rg;\x0a#endif\x0asliceUV.x*=sliceSize;\x0asliceUV.x+=sliceInteger*sliceSize;\x0asliceUV=saturate(sliceUV);\x0avec4\x20slice0Color=texture2D(colorTransform,sliceUV);\x0asliceUV.x+=sliceSize;\x0asliceUV=saturate(sliceUV);\x0avec4\x20slice1Color=texture2D(colorTransform,sliceUV);\x0avec3\x20result=mix(slice0Color.rgb,slice1Color.rgb,sliceFraction);\x0a#ifdef\x20SAMPLER3DBGRMAP\x0acolor.rgb=result.rgb;\x0a#else\x0acolor.rgb=result.bgr;\x0a#endif\x0areturn\x20color;\x0a}\x0a#endif\x0a#ifdef\x20TONEMAPPING_ACES\x0aconst\x20mat3\x20ACESInputMat=mat3(\x0avec3(0.59719,0.07600,0.02840),\x0avec3(0.35458,0.90834,0.13383),\x0avec3(0.04823,0.01566,0.83777)\x0a);\x0aconst\x20mat3\x20ACESOutputMat=mat3(\x0avec3(\x201.60475,-0.10208,-0.00327),\x0avec3(-0.53108,\x201.10813,-0.07276),\x0avec3(-0.07367,-0.00605,\x201.07602)\x0a);\x0avec3\x20RRTAndODTFit(vec3\x20v)\x0a{\x0avec3\x20a=v*(v+0.0245786)-0.000090537;\x0avec3\x20b=v*(0.983729*v+0.4329510)+0.238081;\x0areturn\x20a/b;\x0a}\x0avec3\x20ACESFitted(vec3\x20color)\x0a{\x0acolor=ACESInputMat*color;\x0acolor=RRTAndODTFit(color);\x0acolor=ACESOutputMat*color;\x0acolor=saturate(color);\x0areturn\x20color;\x0a}\x0a#endif\x0a#define\x20CUSTOM_IMAGEPROCESSINGFUNCTIONS_DEFINITIONS\x0avec4\x20applyImageProcessing(vec4\x20result)\x20{\x0a#define\x20CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATSTART\x0a#ifdef\x20EXPOSURE\x0aresult.rgb*=exposureLinear;\x0a#endif\x0a#ifdef\x20VIGNETTE\x0avec2\x20viewportXY=gl_FragCoord.xy*vInverseScreenSize;\x0aviewportXY=viewportXY*2.0-1.0;\x0avec3\x20vignetteXY1=vec3(viewportXY*vignetteSettings1.xy+vignetteSettings1.zw,1.0);\x0afloat\x20vignetteTerm=dot(vignetteXY1,vignetteXY1);\x0afloat\x20vignette=pow(vignetteTerm,vignetteSettings2.w);\x0avec3\x20vignetteColor=vignetteSettings2.rgb;\x0a#ifdef\x20VIGNETTEBLENDMODEMULTIPLY\x0avec3\x20vignetteColorMultiplier=mix(vignetteColor,vec3(1,1,1),vignette);\x0aresult.rgb*=vignetteColorMultiplier;\x0a#endif\x0a#ifdef\x20VIGNETTEBLENDMODEOPAQUE\x0aresult.rgb=mix(vignetteColor,result.rgb,vignette);\x0a#endif\x0a#endif\x0a#ifdef\x20TONEMAPPING\x0a#ifdef\x20TONEMAPPING_ACES\x0aresult.rgb=ACESFitted(result.rgb);\x0a#else\x0aconst\x20float\x20tonemappingCalibration=1.590579;\x0aresult.rgb=1.0-exp2(-tonemappingCalibration*result.rgb);\x0a#endif\x0a#endif\x0aresult.rgb=toGammaSpace(result.rgb);\x0aresult.rgb=saturate(result.rgb);\x0a#ifdef\x20CONTRAST\x0avec3\x20resultHighContrast=result.rgb*result.rgb*(3.0-2.0*result.rgb);\x0aif\x20(contrast<1.0)\x20{\x0aresult.rgb=mix(vec3(0.5,0.5,0.5),result.rgb,contrast);\x0a}\x20else\x20{\x0aresult.rgb=mix(result.rgb,resultHighContrast,contrast-1.0);\x0a}\x0a#endif\x0a#ifdef\x20COLORGRADING\x0avec3\x20colorTransformInput=result.rgb*colorTransformSettings.xxx+colorTransformSettings.yyy;\x0a#ifdef\x20COLORGRADING3D\x0avec3\x20colorTransformOutput=texture(txColorTransform,colorTransformInput).rgb;\x0a#else\x0avec3\x20colorTransformOutput=sampleTexture3D(txColorTransform,colorTransformInput,colorTransformSettings.yz).rgb;\x0a#endif\x0aresult.rgb=mix(result.rgb,colorTransformOutput,colorTransformSettings.www);\x0a#endif\x0a#ifdef\x20COLORCURVES\x0afloat\x20luma=getLuminance(result.rgb);\x0avec2\x20curveMix=clamp(vec2(luma*3.0-1.5,luma*-3.0+1.5),vec2(0.0),vec2(1.0));\x0avec4\x20colorCurve=vCameraColorCurveNeutral+curveMix.x*vCameraColorCurvePositive-curveMix.y*vCameraColorCurveNegative;\x0aresult.rgb*=colorCurve.rgb;\x0aresult.rgb=mix(vec3(luma),result.rgb,colorCurve.a);\x0a#endif\x0a#ifdef\x20DITHER\x0afloat\x20rand=getRand(gl_FragCoord.xy*vInverseScreenSize);\x0afloat\x20dither=mix(-ditherIntensity,ditherIntensity,rand);\x0aresult.rgb=saturate(result.rgb+vec3(dither));\x0a#endif\x0a#define\x20CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATEND\x0areturn\x20result;\x0a}';},0x2d2b:(_0x4d7ef3,_0x4162cb,_0x58a8b3)=>{var _0x32c60e=a7_0x3304fb;_0x58a8b3(0x26fa)['v'][_0x32c60e(0x121)][_0x32c60e(0x963)]=_0x32c60e(0x673);},0xe7da:(_0xdddf58,_0x367fb6,_0x141b74)=>{var _0x217d55=a7_0x3304fb;_0x141b74(0x26fa)['v'][_0x217d55(0x121)]['instancesDeclaration']=_0x217d55(0x9ba);},0x16c62:(_0x4e5877,_0x30cb5c,_0x512f9a)=>{var _0x4630d4=a7_0x3304fb;_0x512f9a(0x26fa)['v'][_0x4630d4(0x121)][_0x4630d4(0x69c)]='#ifdef\x20INSTANCES\x0amat4\x20finalWorld=mat4(world0,world1,world2,world3);\x0a#if\x20defined(PREPASS_VELOCITY)\x20||\x20defined(VELOCITY)\x0amat4\x20finalPreviousWorld=mat4(previousWorld0,previousWorld1,previousWorld2,previousWorld3);\x0a#endif\x0a#ifdef\x20THIN_INSTANCES\x0afinalWorld=world*finalWorld;\x0a#if\x20defined(PREPASS_VELOCITY)\x20||\x20defined(VELOCITY)\x0afinalPreviousWorld=previousWorld*finalPreviousWorld;\x0a#endif\x0a#endif\x0a#else\x0amat4\x20finalWorld=world;\x0a#if\x20defined(PREPASS_VELOCITY)\x20||\x20defined(VELOCITY)\x0amat4\x20finalPreviousWorld=previousWorld;\x0a#endif\x0a#endif\x0a';},0x2567:(_0x3cdd15,_0x5625ca,_0x414f0a)=>{var _0x24cb1e=a7_0x3304fb;_0x414f0a(0x26fa)['v'][_0x24cb1e(0x121)][_0x24cb1e(0x72e)]='varying\x20vec2\x20sampleCoord{X};';},0x2144:(_0x22725f,_0x43f18d,_0x52bb43)=>{var _0x24005c=a7_0x3304fb;_0x52bb43(0x26fa)['v']['IncludesShadersStore'][_0x24005c(0x3d1)]=_0x24005c(0x7f6);},0x15cb9:(_0x4888df,_0x5aad5b,_0x371a1)=>{var _0x34bce3=a7_0x3304fb;_0x371a1(0x26fa)['v'][_0x34bce3(0x121)]['lightFragmentDeclaration']='#ifdef\x20LIGHT{X}\x0auniform\x20vec4\x20vLightData{X};\x0auniform\x20vec4\x20vLightDiffuse{X};\x0a#ifdef\x20SPECULARTERM\x0auniform\x20vec4\x20vLightSpecular{X};\x0a#else\x0avec4\x20vLightSpecular{X}=vec4(0.);\x0a#endif\x0a#ifdef\x20SHADOW{X}\x0a#ifdef\x20SHADOWCSM{X}\x0auniform\x20mat4\x20lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20cascadeBlendFactor{X};\x0avarying\x20vec4\x20vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20float\x20vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20vec4\x20vPositionFromCamera{X};\x0a#if\x20defined(SHADOWPCSS{X})\x0auniform\x20highp\x20sampler2DArrayShadow\x20shadowSampler{X};\x0auniform\x20highp\x20sampler2DArray\x20depthSampler{X};\x0auniform\x20vec2\x20lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20penumbraDarkness{X};\x0a#elif\x20defined(SHADOWPCF{X})\x0auniform\x20highp\x20sampler2DArrayShadow\x20shadowSampler{X};\x0a#else\x0auniform\x20highp\x20sampler2DArray\x20shadowSampler{X};\x0a#endif\x0a#ifdef\x20SHADOWCSMDEBUG{X}\x0aconst\x20vec3\x20vCascadeColorsMultiplier{X}[8]=vec3[8]\x0a(\x0avec3\x20(\x201.5,0.0,0.0\x20),\x0avec3\x20(\x200.0,1.5,0.0\x20),\x0avec3\x20(\x200.0,0.0,5.5\x20),\x0avec3\x20(\x201.5,0.0,5.5\x20),\x0avec3\x20(\x201.5,1.5,0.0\x20),\x0avec3\x20(\x201.0,1.0,1.0\x20),\x0avec3\x20(\x200.0,1.0,5.5\x20),\x0avec3\x20(\x200.5,3.5,0.75\x20)\x0a);\x0avec3\x20shadowDebug{X};\x0a#endif\x0a#ifdef\x20SHADOWCSMUSESHADOWMAXZ{X}\x0aint\x20index{X}=-1;\x0a#else\x0aint\x20index{X}=SHADOWCSMNUM_CASCADES{X}-1;\x0a#endif\x0afloat\x20diff{X}=0.;\x0a#elif\x20defined(SHADOWCUBE{X})\x0auniform\x20samplerCube\x20shadowSampler{X};\x0a#else\x0avarying\x20vec4\x20vPositionFromLight{X};\x0avarying\x20float\x20vDepthMetric{X};\x0a#if\x20defined(SHADOWPCSS{X})\x0auniform\x20highp\x20sampler2DShadow\x20shadowSampler{X};\x0auniform\x20highp\x20sampler2D\x20depthSampler{X};\x0a#elif\x20defined(SHADOWPCF{X})\x0auniform\x20highp\x20sampler2DShadow\x20shadowSampler{X};\x0a#else\x0auniform\x20sampler2D\x20shadowSampler{X};\x0a#endif\x0auniform\x20mat4\x20lightMatrix{X};\x0a#endif\x0auniform\x20vec4\x20shadowsInfo{X};\x0auniform\x20vec2\x20depthValues{X};\x0a#endif\x0a#ifdef\x20SPOTLIGHT{X}\x0auniform\x20vec4\x20vLightDirection{X};\x0auniform\x20vec4\x20vLightFalloff{X};\x0a#elif\x20defined(POINTLIGHT{X})\x0auniform\x20vec4\x20vLightFalloff{X};\x0a#elif\x20defined(HEMILIGHT{X})\x0auniform\x20vec3\x20vLightGround{X};\x0a#endif\x0a#ifdef\x20PROJECTEDLIGHTTEXTURE{X}\x0auniform\x20mat4\x20textureProjectionMatrix{X};\x0auniform\x20sampler2D\x20projectionLightSampler{X};\x0a#endif\x0a#endif\x0a';},0xf0d3:(_0x597788,_0x54151e,_0xd31bdd)=>{var _0x5ec146=a7_0x3304fb;_0xd31bdd(0x26fa)['v'][_0x5ec146(0x121)]['lightUboDeclaration']=_0x5ec146(0x2c6);},0x17cfd:(_0x4c5171,_0x4c059a,_0x584665)=>{var _0xbf8a83=a7_0x3304fb;_0x584665(0x26fa)['v']['IncludesShadersStore'][_0xbf8a83(0x4f3)]=_0xbf8a83(0xc2d);},0xd6d4:(_0x5197bc,_0x32d63a,_0x327dc4)=>{var _0x454155=a7_0x3304fb;_0x327dc4(0x26fa)['v'][_0x454155(0x121)]['lightVxUboDeclaration']=_0x454155(0x709);},0x10bc4:(_0x47e159,_0x8024,_0xf479fb)=>{var _0x6a8870=a7_0x3304fb;_0xf479fb(0x26fa)['v'][_0x6a8870(0x121)]['lightsFragmentFunctions']='struct\x20lightingInfo\x0a{\x0avec3\x20diffuse;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specular;\x0a#endif\x0a#ifdef\x20NDOTL\x0afloat\x20ndl;\x0a#endif\x0a};\x0alightingInfo\x20computeLighting(vec3\x20viewDirectionW,vec3\x20vNormal,vec4\x20lightData,vec3\x20diffuseColor,vec3\x20specularColor,float\x20range,float\x20glossiness)\x20{\x0alightingInfo\x20result;\x0avec3\x20lightVectorW;\x0afloat\x20attenuation=1.0;\x0aif\x20(lightData.w==0.)\x0a{\x0avec3\x20direction=lightData.xyz-vPositionW;\x0aattenuation=max(0.,1.0-length(direction)/range);\x0alightVectorW=normalize(direction);\x0a}\x0aelse\x0a{\x0alightVectorW=normalize(-lightData.xyz);\x0a}\x0afloat\x20ndl=max(0.,dot(vNormal,lightVectorW));\x0a#ifdef\x20NDOTL\x0aresult.ndl=ndl;\x0a#endif\x0aresult.diffuse=ndl*diffuseColor*attenuation;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20angleW=normalize(viewDirectionW+lightVectorW);\x0afloat\x20specComp=max(0.,dot(vNormal,angleW));\x0aspecComp=pow(specComp,max(1.,glossiness));\x0aresult.specular=specComp*specularColor*attenuation;\x0a#endif\x0areturn\x20result;\x0a}\x0alightingInfo\x20computeSpotLighting(vec3\x20viewDirectionW,vec3\x20vNormal,vec4\x20lightData,vec4\x20lightDirection,vec3\x20diffuseColor,vec3\x20specularColor,float\x20range,float\x20glossiness)\x20{\x0alightingInfo\x20result;\x0avec3\x20direction=lightData.xyz-vPositionW;\x0avec3\x20lightVectorW=normalize(direction);\x0afloat\x20attenuation=max(0.,1.0-length(direction)/range);\x0afloat\x20cosAngle=max(0.,dot(lightDirection.xyz,-lightVectorW));\x0aif\x20(cosAngle>=lightDirection.w)\x0a{\x0acosAngle=max(0.,pow(cosAngle,lightData.w));\x0aattenuation*=cosAngle;\x0afloat\x20ndl=max(0.,dot(vNormal,lightVectorW));\x0a#ifdef\x20NDOTL\x0aresult.ndl=ndl;\x0a#endif\x0aresult.diffuse=ndl*diffuseColor*attenuation;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20angleW=normalize(viewDirectionW+lightVectorW);\x0afloat\x20specComp=max(0.,dot(vNormal,angleW));\x0aspecComp=pow(specComp,max(1.,glossiness));\x0aresult.specular=specComp*specularColor*attenuation;\x0a#endif\x0areturn\x20result;\x0a}\x0aresult.diffuse=vec3(0.);\x0a#ifdef\x20SPECULARTERM\x0aresult.specular=vec3(0.);\x0a#endif\x0a#ifdef\x20NDOTL\x0aresult.ndl=0.;\x0a#endif\x0areturn\x20result;\x0a}\x0alightingInfo\x20computeHemisphericLighting(vec3\x20viewDirectionW,vec3\x20vNormal,vec4\x20lightData,vec3\x20diffuseColor,vec3\x20specularColor,vec3\x20groundColor,float\x20glossiness)\x20{\x0alightingInfo\x20result;\x0afloat\x20ndl=dot(vNormal,lightData.xyz)*0.5+0.5;\x0a#ifdef\x20NDOTL\x0aresult.ndl=ndl;\x0a#endif\x0aresult.diffuse=mix(groundColor,diffuseColor,ndl);\x0a#ifdef\x20SPECULARTERM\x0avec3\x20angleW=normalize(viewDirectionW+lightData.xyz);\x0afloat\x20specComp=max(0.,dot(vNormal,angleW));\x0aspecComp=pow(specComp,max(1.,glossiness));\x0aresult.specular=specComp*specularColor;\x0a#endif\x0areturn\x20result;\x0a}\x0a#define\x20inline\x0avec3\x20computeProjectionTextureDiffuseLighting(sampler2D\x20projectionLightSampler,mat4\x20textureProjectionMatrix){\x0avec4\x20strq=textureProjectionMatrix*vec4(vPositionW,1.0);\x0astrq/=strq.w;\x0avec3\x20textureColor=texture2D(projectionLightSampler,strq.xy).rgb;\x0areturn\x20textureColor;\x0a}';},0x14b01:(_0x58f54d,_0x4b1a58,_0x13f792)=>{var _0x2af497=a7_0x3304fb;_0x13f792(0x26fa)['v'][_0x2af497(0x121)][_0x2af497(0x534)]='#ifdef\x20LOGARITHMICDEPTH\x0auniform\x20float\x20logarithmicDepthConstant;\x0avarying\x20float\x20vFragmentDepth;\x0a#endif\x0a';},0x614f:(_0x443894,_0x4381f5,_0x2675cb)=>{var _0xe5895c=a7_0x3304fb;_0x2675cb(0x26fa)['v'][_0xe5895c(0x121)][_0xe5895c(0x259)]=_0xe5895c(0x632);},0x8641:(_0x2749d5,_0x51a5bd,_0x56a319)=>{var _0x17a43d=a7_0x3304fb;_0x56a319(0x26fa)['v']['IncludesShadersStore'][_0x17a43d(0xd12)]=_0x17a43d(0xb53);},0x13ff7:(_0xa832ab,_0x1927d5,_0x431712)=>{var _0x135849=a7_0x3304fb;_0x431712(0x26fa)['v'][_0x135849(0x121)][_0x135849(0xca0)]=_0x135849(0x67f);},0x10150:(_0x4bc50a,_0x3a98a8,_0x26c84c)=>{var _0x286eab=a7_0x3304fb;_0x26c84c(0x26fa)['v'][_0x286eab(0x121)]['meshUboDeclaration']=_0x286eab(0x379);},0x1201e:(_0x2bd9ce,_0x18f3f3,_0x1e289d)=>{var _0x20f7ba=a7_0x3304fb;_0x1e289d(0x26fa)['v'][_0x20f7ba(0x121)][_0x20f7ba(0x5e7)]='#ifdef\x20MORPHTARGETS\x0a#ifdef\x20MORPHTARGETS_TEXTURE\x20\x0avertexID=float(gl_VertexID)*morphTargetTextureInfo.x;\x0apositionUpdated+=(readVector3FromRawSampler({X},vertexID)-position)*morphTargetInfluences[{X}];\x0avertexID+=1.0;\x0a#ifdef\x20MORPHTARGETS_NORMAL\x0anormalUpdated+=(readVector3FromRawSampler({X},vertexID)\x20-normal)*morphTargetInfluences[{X}];\x0avertexID+=1.0;\x0a#endif\x0a#ifdef\x20MORPHTARGETS_UV\x0auvUpdated+=(readVector3FromRawSampler({X},vertexID).xy-uv)*morphTargetInfluences[{X}];\x0avertexID+=1.0;\x0a#endif\x0a#ifdef\x20MORPHTARGETS_TANGENT\x0atangentUpdated.xyz+=(readVector3FromRawSampler({X},vertexID)\x20-tangent.xyz)*morphTargetInfluences[{X}];\x0a#endif\x0a#else\x0apositionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];\x0a#ifdef\x20MORPHTARGETS_NORMAL\x0anormalUpdated+=(normal{X}-normal)*morphTargetInfluences[{X}];\x0a#endif\x0a#ifdef\x20MORPHTARGETS_TANGENT\x0atangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];\x0a#endif\x0a#ifdef\x20MORPHTARGETS_UV\x0auvUpdated+=(uv_{X}-uv)*morphTargetInfluences[{X}];\x0a#endif\x0a#endif\x0a#endif\x0a';},0x12771:(_0x51a5a5,_0x527c3b,_0x925aea)=>{var _0x25a1a7=a7_0x3304fb;_0x925aea(0x26fa)['v'][_0x25a1a7(0x121)][_0x25a1a7(0x5ac)]=_0x25a1a7(0x6f8);},0x13d7:(_0x4a9497,_0x5298b7,_0x42a4dd)=>{_0x42a4dd(0x26fa)['v']['IncludesShadersStore']['morphTargetsVertexGlobal']='#ifdef\x20MORPHTARGETS\x0a#ifdef\x20MORPHTARGETS_TEXTURE\x0afloat\x20vertexID;\x0a#endif\x0a#endif\x0a';},0x11b65:(_0x757c81,_0x1c7a1c,_0x5406fd)=>{var _0x5df812=a7_0x3304fb;_0x5406fd(0x26fa)['v'][_0x5df812(0x121)][_0x5df812(0x169)]='#ifdef\x20MORPHTARGETS\x0auniform\x20float\x20morphTargetInfluences[NUM_MORPH_INFLUENCERS];\x0a#ifdef\x20MORPHTARGETS_TEXTURE\x20\x0aprecision\x20mediump\x20sampler2DArray;\x20\x0auniform\x20float\x20morphTargetTextureIndices[NUM_MORPH_INFLUENCERS];\x0auniform\x20vec3\x20morphTargetTextureInfo;\x0auniform\x20sampler2DArray\x20morphTargets;\x0avec3\x20readVector3FromRawSampler(int\x20targetIndex,float\x20vertexIndex)\x0a{\x20\x0afloat\x20y=floor(vertexIndex/morphTargetTextureInfo.y);\x0afloat\x20x=vertexIndex-y*morphTargetTextureInfo.y;\x0avec3\x20textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);\x0areturn\x20texture(morphTargets,textureUV).xyz;\x0a}\x0a#endif\x0a#endif\x0a';},0x4df2:(_0x2c9dfb,_0x3709af,_0x54fc27)=>{var _0x57d2b2=a7_0x3304fb;_0x54fc27(0x26fa)['v'][_0x57d2b2(0x121)][_0x57d2b2(0x1ff)]=_0x57d2b2(0x4f1);},0x34d7:(_0x2560be,_0x3a4dc9,_0x4c878d)=>{var _0x4854bf=a7_0x3304fb;_0x4c878d(0x26fa)['v']['IncludesShadersStore'][_0x4854bf(0x568)]='#ifdef\x20ORDER_INDEPENDENT_TRANSPARENCY\x0afloat\x20fragDepth=gl_FragCoord.z;\x20\x0a#ifdef\x20ORDER_INDEPENDENT_TRANSPARENCY_16BITS\x0auint\x20halfFloat=packHalf2x16(vec2(fragDepth));\x0avec2\x20full=unpackHalf2x16(halfFloat);\x0afragDepth=full.x;\x0a#endif\x0aivec2\x20fragCoord=ivec2(gl_FragCoord.xy);\x0avec2\x20lastDepth=texelFetch(oitDepthSampler,fragCoord,0).rg;\x0avec4\x20lastFrontColor=texelFetch(oitFrontColorSampler,fragCoord,0);\x0adepth.rg=vec2(-MAX_DEPTH);\x0afrontColor=lastFrontColor;\x0abackColor=vec4(0.0);\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0afloat\x20furthestDepth=-lastDepth.x;\x0afloat\x20nearestDepth=lastDepth.y;\x0a#else\x0afloat\x20nearestDepth=-lastDepth.x;\x0afloat\x20furthestDepth=lastDepth.y;\x0a#endif\x0afloat\x20alphaMultiplier=1.0-lastFrontColor.a;\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0aif\x20(fragDepth>nearestDepth\x20||\x20fragDepth<furthestDepth)\x20{\x0a#else\x0aif\x20(fragDepth<nearestDepth\x20||\x20fragDepth>furthestDepth)\x20{\x0a#endif\x0areturn;\x0a}\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0aif\x20(fragDepth<nearestDepth\x20&&\x20fragDepth>furthestDepth)\x20{\x0a#else\x0aif\x20(fragDepth>nearestDepth\x20&&\x20fragDepth<furthestDepth)\x20{\x0a#endif\x0adepth.rg=vec2(-fragDepth,fragDepth);\x0areturn;\x0a}\x0a#endif\x0a';},0x4a11:(_0x2aa33b,_0x37f705,_0x45dbba)=>{var _0x103bf5=a7_0x3304fb;_0x45dbba(0x26fa)['v'][_0x103bf5(0x121)][_0x103bf5(0x8fb)]=_0x103bf5(0x84e);},0xe90b:(_0xd192ee,_0x40885c,_0x49c2f6)=>{var _0x5cfed1=a7_0x3304fb;_0x49c2f6(0x26fa)['v'][_0x5cfed1(0x121)][_0x5cfed1(0x5f6)]=_0x5cfed1(0xa2e);},0x1398d:(_0x5b8807,_0x3b6748,_0x31207e)=>{var _0x4c7593=a7_0x3304fb,_0x117a36=_0x31207e(0x26fa);_0x31207e(0xb1dc),_0x31207e(0x10150),_0x117a36['v']['IncludesShadersStore'][_0x4c7593(0x7e9)]='layout(std140,column_major)\x20uniform;\x0auniform\x20Material\x20{\x0avec2\x20vAlbedoInfos;\x0avec4\x20vAmbientInfos;\x0avec2\x20vOpacityInfos;\x0avec2\x20vEmissiveInfos;\x0avec2\x20vLightmapInfos;\x0avec3\x20vReflectivityInfos;\x0avec2\x20vMicroSurfaceSamplerInfos;\x0avec2\x20vReflectionInfos;\x0avec2\x20vReflectionFilteringInfo;\x0avec3\x20vReflectionPosition;\x0avec3\x20vReflectionSize;\x0avec3\x20vBumpInfos;\x0amat4\x20albedoMatrix;\x0amat4\x20ambientMatrix;\x0amat4\x20opacityMatrix;\x0amat4\x20emissiveMatrix;\x0amat4\x20lightmapMatrix;\x0amat4\x20reflectivityMatrix;\x0amat4\x20microSurfaceSamplerMatrix;\x0amat4\x20bumpMatrix;\x0avec2\x20vTangentSpaceParams;\x0amat4\x20reflectionMatrix;\x0avec3\x20vReflectionColor;\x0avec4\x20vAlbedoColor;\x0avec4\x20vLightingIntensity;\x0avec3\x20vReflectionMicrosurfaceInfos;\x0afloat\x20pointSize;\x0avec4\x20vReflectivityColor;\x0avec3\x20vEmissiveColor;\x0avec3\x20vAmbientColor;\x0avec2\x20vDebugMode;\x0avec4\x20vMetallicReflectanceFactors;\x0avec2\x20vMetallicReflectanceInfos;\x0amat4\x20metallicReflectanceMatrix;\x0avec2\x20vReflectanceInfos;\x0amat4\x20reflectanceMatrix;\x0avec3\x20vSphericalL00;\x0avec3\x20vSphericalL1_1;\x0avec3\x20vSphericalL10;\x0avec3\x20vSphericalL11;\x0avec3\x20vSphericalL2_2;\x0avec3\x20vSphericalL2_1;\x0avec3\x20vSphericalL20;\x0avec3\x20vSphericalL21;\x0avec3\x20vSphericalL22;\x0avec3\x20vSphericalX;\x0avec3\x20vSphericalY;\x0avec3\x20vSphericalZ;\x0avec3\x20vSphericalXX_ZZ;\x0avec3\x20vSphericalYY_ZZ;\x0avec3\x20vSphericalZZ;\x0avec3\x20vSphericalXY;\x0avec3\x20vSphericalYZ;\x0avec3\x20vSphericalZX;\x0a#define\x20ADDITIONAL_UBO_DECLARATION\x0a};\x0a#include<sceneUboDeclaration>\x0a#include<meshUboDeclaration>\x0a';},0x7051:(_0x1676e3,_0x1765a5,_0xa43e90)=>{var _0x284779=a7_0x3304fb;_0xa43e90(0x26fa)['v'][_0x284779(0x121)][_0x284779(0x887)]=_0x284779(0xc34);},0x1963:(_0x1c72d2,_0x42c0c5,_0x352f20)=>{var _0x309a22=a7_0x3304fb;_0x352f20(0x26fa)['v'][_0x309a22(0x121)][_0x309a22(0x700)]=_0x309a22(0x150);},0x124cc:(_0x479520,_0x26d8e8,_0x4a2eb5)=>{var _0xc5ee23=a7_0x3304fb;_0x4a2eb5(0x26fa)['v'][_0xc5ee23(0x121)][_0xc5ee23(0x792)]=_0xc5ee23(0x8de);},0x13827:(_0x5b3fa4,_0x59f688,_0x7f9a01)=>{var _0x2469db=a7_0x3304fb;_0x7f9a01(0x26fa)['v']['IncludesShadersStore'][_0x2469db(0x2b4)]=_0x2469db(0x1f8);},0x19fd:(_0x3a01d3,_0x103938,_0x2a5ea9)=>{var _0x171a07=a7_0x3304fb;_0x2a5ea9(0x26fa)['v'][_0x171a07(0x121)][_0x171a07(0x318)]=_0x171a07(0x2a2);},0x12d29:(_0x1ff8ec,_0x5ce577,_0x1f5640)=>{var _0x3e2b1b=a7_0x3304fb;_0x1f5640(0x26fa)['v']['IncludesShadersStore'][_0x3e2b1b(0xba3)]=_0x3e2b1b(0x757);},0x44ee:(_0x458a10,_0x2a43e4,_0x14ca2a)=>{var _0x594f66=a7_0x3304fb;_0x14ca2a(0x26fa)['v'][_0x594f66(0x121)]['samplerVertexImplementation']=_0x594f66(0x11f);},0xb1dc:(_0x1f2b1e,_0x10a718,_0x35e1d2)=>{var _0xb5b23=a7_0x3304fb;_0x35e1d2(0x26fa)['v']['IncludesShadersStore'][_0xb5b23(0x85e)]=_0xb5b23(0x667);},0x3c54:(_0x2d239d,_0x13141c,_0xadc32f)=>{var _0x47e36f=a7_0x3304fb;_0xadc32f(0x26fa)['v'][_0x47e36f(0x121)][_0x47e36f(0x61c)]=_0x47e36f(0x4f8);},0x1817f:(_0x4f28c0,_0x2de43e,_0xee1b33)=>{var _0x14135b=a7_0x3304fb;_0xee1b33(0x26fa)['v'][_0x14135b(0x121)]['shadowsFragmentFunctions']=_0x14135b(0x486);},0xf1cf:(_0x157195,_0x117cee,_0x31accd)=>{var _0x425576=a7_0x3304fb;_0x31accd(0x26fa)['v'][_0x425576(0x121)][_0x425576(0x769)]='#ifdef\x20SHADOWS\x0a#if\x20defined(SHADOWCSM{X})\x0avPositionFromCamera{X}=view*worldPos;\x0afor\x20(int\x20i=0;\x20i<SHADOWCSMNUM_CASCADES{X};\x20i++)\x20{\x0avPositionFromLight{X}[i]=lightMatrix{X}[i]*worldPos;\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0avDepthMetric{X}[i]=(-vPositionFromLight{X}[i].z+light{X}.depthValues.x)/light{X}.depthValues.y;\x0a#else\x0avDepthMetric{X}[i]=(vPositionFromLight{X}[i].z+light{X}.depthValues.x)/light{X}.depthValues.y;\x0a#endif\x0a}\x0a#elif\x20defined(SHADOW{X})\x20&&\x20!defined(SHADOWCUBE{X})\x0avPositionFromLight{X}=lightMatrix{X}*worldPos;\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0avDepthMetric{X}=(-vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;\x0a#else\x0avDepthMetric{X}=(vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;\x0a#endif\x0a#endif\x0a#endif\x0a';},0x766e:(_0x5d5cc3,_0x507751,_0x4ba532)=>{var _0x3dc528=a7_0x3304fb;_0x4ba532(0x26fa)['v'][_0x3dc528(0x121)][_0x3dc528(0x20b)]=_0x3dc528(0xd08);},0x6f2f:(_0x5f021f,_0x2746e0,_0x244339)=>{var _0x275227=a7_0x3304fb;_0x244339(0x26fa)['v'][_0x275227(0x121)][_0x275227(0x46b)]=_0x275227(0x867);},0x5c59:(_0x3f1a0f,_0x4bf9ae,_0x1b2822)=>{var _0x248458=a7_0x3304fb;_0x1b2822(0x26fa)['v'][_0x248458(0x121)][_0x248458(0xa09)]='#if\x20!defined(UV{X})\x20&&\x20defined(MAINUV{X})\x0avec2\x20uv{X}=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20MAINUV{X}\x0avMainUV{X}=uv{X};\x0a#endif\x0a';},0x4730:(_0x3b4481,_0x4171c3,_0x4a2d81)=>{var _0x8777d5=a7_0x3304fb;_0x4a2d81(0x26fa)['v'][_0x8777d5(0x121)]['vertexColorMixing']=_0x8777d5(0x8ca);},0x179ab:(_0x346a34,_0x3102b8,_0x4a8a70)=>{var _0x1d757b=a7_0x3304fb;_0x4a8a70(0x26fa)['v']['ShadersStore']['anaglyphPixelShader']=_0x1d757b(0x3aa);},0x121a9:(_0x22214e,_0x4e1f37,_0x22ac44)=>{var _0xa986c8=a7_0x3304fb,_0x2e6c22=_0x22ac44(0x26fa);_0x2e6c22['v'][_0xa986c8(0x121)][_0xa986c8(0x17d)]=_0xa986c8(0x477),_0x22ac44(0x540b),_0x22ac44(0x8cd3),_0x22ac44(0x13827),_0x22ac44(0x12f21),_0x22ac44(0x15cb9),_0x22ac44(0xf0d3),_0x22ac44(0x10bc4),_0x22ac44(0x1817f),_0x22ac44(0x171c4),_0x22ac44(0x13fa8),_0x22ac44(0x17b64),_0x22ac44(0x10716),_0x22ac44(0x2144),_0x22ac44(0xf45c),_0x2e6c22['v'][_0xa986c8(0xba5)][_0xa986c8(0x41f)]=_0xa986c8(0x30d);},0x54d:(_0x23f968,_0x34e5a9,_0x206d55)=>{var _0x31af73=a7_0x3304fb,_0x14306a=_0x206d55(0x26fa);_0x14306a['v']['IncludesShadersStore']['backgroundVertexDeclaration']=_0x31af73(0x465),_0x206d55(0x540b),_0x206d55(0x8cd3),_0x206d55(0x11c69),_0x206d55(0x2648),_0x206d55(0xe7da),_0x206d55(0xd4f3),_0x206d55(0x1162f),_0x206d55(0x17cfd),_0x206d55(0xd6d4),_0x206d55(0x16c62),_0x206d55(0x9e45),_0x206d55(0x1396d),_0x206d55(0xc24a),_0x206d55(0xeda3),_0x206d55(0xf1cf),_0x14306a['v'][_0x31af73(0xba5)][_0x31af73(0x659)]=_0x31af73(0xc36);},0xa5a4:(_0x3418ae,_0x58ad8b,_0x5a6a3a)=>{var _0x5c51f7=a7_0x3304fb;_0x5a6a3a(0x26fa)['v']['ShadersStore'][_0x5c51f7(0x2be)]=_0x5c51f7(0x7b5);},0x1142c:(_0x3a4bf7,_0x15b91f,_0x33d63f)=>{var _0x24a440=a7_0x3304fb;_0x33d63f(0x26fa)['v'][_0x24a440(0xba5)][_0x24a440(0xcc2)]=_0x24a440(0xc99);},0x14bfe:(_0x2780da,_0x2d0efc,_0xa06aad)=>{var _0x1ecc23=a7_0x3304fb,_0x3993ff=_0xa06aad(0x26fa);_0x3993ff['v'][_0x1ecc23(0x121)][_0x1ecc23(0x5d5)]=_0x1ecc23(0xc87),_0xa06aad(0x5250),_0x3993ff['v'][_0x1ecc23(0xba5)][_0x1ecc23(0x3ad)]='#include<__decl__boundingBoxRendererFragment>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0agl_FragColor=color;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}';},0xff3d:(_0x3796eb,_0x59f108,_0x1b6ea6)=>{var _0x3bd288=a7_0x3304fb,_0x5ca9dc=_0x1b6ea6(0x26fa);_0x5ca9dc['v'][_0x3bd288(0x121)][_0x3bd288(0x8aa)]=_0x3bd288(0x334),_0x1b6ea6(0x5250),_0x5ca9dc['v'][_0x3bd288(0xba5)]['boundingBoxRendererVertexShader']='attribute\x20vec3\x20position;\x0a#include<__decl__boundingBoxRendererVertex>\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avec4\x20worldPos=world*vec4(position,1.0);\x0a#ifdef\x20MULTIVIEW\x0aif\x20(gl_ViewID_OVR==0u)\x20{\x0agl_Position=viewProjection*worldPos;\x0a}\x20else\x20{\x0agl_Position=viewProjectionR*worldPos;\x0a}\x0a#else\x0agl_Position=viewProjection*worldPos;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a';},0x184b0:(_0x3723e0,_0x45484a,_0x53437f)=>{var _0x19df98=a7_0x3304fb;_0x53437f(0x26fa)['v'][_0x19df98(0xba5)][_0x19df98(0x1fb)]=_0x19df98(0x567);},0x24b5:(_0x53cd21,_0x312b13,_0x421e0e)=>{var _0x50bd03=a7_0x3304fb;_0x421e0e(0x26fa)['v'][_0x50bd03(0xba5)][_0x50bd03(0x61d)]=_0x50bd03(0x716);},0xab6f:(_0x3c44cb,_0x1334ca,_0x137d5b)=>{var _0x466de8=a7_0x3304fb,_0x50c925=_0x137d5b(0x26fa);_0x137d5b(0x13fa8),_0x137d5b(0x10716),_0x50c925['v'][_0x466de8(0xba5)][_0x466de8(0xb8f)]=_0x466de8(0x2c1);},0xb3e6:(_0x304ad5,_0xee6e80,_0x2f2b2e)=>{var _0x3ace58=a7_0x3304fb,_0x44a537=_0x2f2b2e(0x26fa);_0x2f2b2e(0x11c69),_0x2f2b2e(0x2648),_0x2f2b2e(0xd4f3),_0x2f2b2e(0xe7da),_0x2f2b2e(0x16c62),_0x2f2b2e(0x9e45),_0x2f2b2e(0x1396d),_0x2f2b2e(0xc24a),_0x2f2b2e(0x4730),_0x44a537['v']['ShadersStore'][_0x3ace58(0xb46)]=_0x3ace58(0x56a);},0x8547:(_0x252846,_0xd5fb09,_0x5e2de6)=>{var _0x48bf00=a7_0x3304fb;_0x5e2de6(0x26fa)['v'][_0x48bf00(0xba5)][_0x48bf00(0xa88)]=_0x48bf00(0x1a6);},0x3e36:(_0x55b614,_0x3c9933,_0x28d3a3)=>{var _0x2c1c63=a7_0x3304fb;_0x28d3a3(0x26fa)['v'][_0x2c1c63(0xba5)][_0x2c1c63(0x64c)]=_0x2c1c63(0x522);},0x14df8:(_0x29e50b,_0x4fde00,_0x4c6de6)=>{var _0xac476c=_0x4c6de6(0x26fa);_0x4c6de6(0x8cd3),_0xac476c['v']['ShadersStore']['copyTextureToTexturePixelShader']='uniform\x20float\x20conversion;\x0auniform\x20sampler2D\x20textureSampler;\x0avarying\x20vec2\x20vUV;\x0a#include<helperFunctions>\x0avoid\x20main(void)\x20\x0a{\x0avec4\x20color=texture2D(textureSampler,vUV);\x0a#ifdef\x20DEPTH_TEXTURE\x0agl_FragDepth=color.r;\x0a#else\x0aif\x20(conversion==1.)\x20{\x0acolor=toLinearSpace(color);\x0a}\x20else\x20if\x20(conversion==2.)\x20{\x0acolor=toGammaSpace(color);\x0a}\x0agl_FragColor=color;\x0a#endif\x0a}\x0a';},0x47f2:(_0x50a321,_0xd83562,_0x1e86ef)=>{var _0x222ded=a7_0x3304fb,_0x406b08=_0x1e86ef(0x26fa);_0x1e86ef(0x9af1),_0x406b08['v']['IncludesShadersStore'][_0x222ded(0x6f2)]=_0x222ded(0x71f),_0x1e86ef(0x20cb),_0x1e86ef(0x7051),_0x1e86ef(0x4df2),_0x1e86ef(0x13ff7),_0x1e86ef(0x8cd3),_0x1e86ef(0x15cb9),_0x1e86ef(0xf0d3),_0x1e86ef(0x10bc4),_0x1e86ef(0x1817f),_0x1e86ef(0x19fd),_0x1e86ef(0x2eec),_0x1e86ef(0x13827),_0x1e86ef(0x12f21),_0x1e86ef(0x171c4),_0x1e86ef(0xc907),_0x1e86ef(0x5a2d),_0x1e86ef(0x13fa8),_0x1e86ef(0x14b01),_0x1e86ef(0x17b64),_0x1e86ef(0x10716),_0x1e86ef(0xdc9a),_0x1e86ef(0xec4f),_0x1e86ef(0xace7),_0x1e86ef(0x2144),_0x1e86ef(0x614f),_0x1e86ef(0xf45c),_0x1e86ef(0x34d7),_0x406b08['v'][_0x222ded(0xba5)]['defaultPixelShader']=_0x222ded(0x5ed);},0x1140:(_0x5a0d29,_0x1ead76,_0x24eabe)=>{var _0x3874fa=a7_0x3304fb,_0x5261bf=_0x24eabe(0x26fa);_0x24eabe(0x28cb),_0x5261bf['v'][_0x3874fa(0x121)][_0x3874fa(0x64b)]=_0x3874fa(0x184),_0x24eabe(0x20cb),_0x24eabe(0x6f2f),_0x24eabe(0x8cd3),_0x24eabe(0x11c69),_0x24eabe(0x2648),_0x24eabe(0xe7da),_0x24eabe(0x124cc),_0x24eabe(0x13ff7),_0x24eabe(0x12d29),_0x24eabe(0x35c4),_0x24eabe(0xd4f3),_0x24eabe(0x1162f),_0x24eabe(0x17cfd),_0x24eabe(0xd6d4),_0x24eabe(0x11b65),_0x24eabe(0x12771),_0x24eabe(0x14b01),_0x24eabe(0x13d7),_0x24eabe(0x1201e),_0x24eabe(0x16c62),_0x24eabe(0x9e45),_0x24eabe(0x1396d),_0x24eabe(0x1963),_0x24eabe(0x5c59),_0x24eabe(0x44ee),_0x24eabe(0xf72d),_0x24eabe(0xc24a),_0x24eabe(0xeda3),_0x24eabe(0xf1cf),_0x24eabe(0x4730),_0x5261bf['v']['IncludesShadersStore'][_0x3874fa(0x73d)]=_0x3874fa(0x6e9),_0x24eabe(0x8641),_0x5261bf['v']['ShadersStore']['defaultVertexShader']='#include<__decl__defaultVertex>\x0a#define\x20CUSTOM_VERTEX_BEGIN\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20TANGENT\x0aattribute\x20vec4\x20tangent;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#include<uvAttributeDeclaration>[2..7]\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<helperFunctions>\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0a#include<prePassVertexDeclaration>\x0a#include<mainUVVaryingDeclaration>[1..7]\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap)\x0a#if\x20defined(SPECULARTERM)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular)\x0a#endif\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<bumpVertexDeclaration>\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightVxFragment>[0..maxSimultaneousLights]\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avarying\x20vec3\x20vPositionUVW;\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avarying\x20vec3\x20vDirectionW;\x0a#endif\x0a#include<logDepthDeclaration>\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avec3\x20positionUpdated=position;\x0a#ifdef\x20NORMAL\x0avec3\x20normalUpdated=normal;\x0a#endif\x0a#ifdef\x20TANGENT\x0avec4\x20tangentUpdated=tangent;\x0a#endif\x0a#ifdef\x20UV1\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avPositionUVW=positionUpdated;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_UPDATE_POSITION\x0a#define\x20CUSTOM_VERTEX_UPDATE_NORMAL\x0a#include<instancesVertex>\x0a#if\x20defined(PREPASS)\x20&&\x20defined(PREPASS_VELOCITY)\x20&&\x20!defined(BONES_VELOCITY_ENABLED)\x0avCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\x0avPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\x0a#endif\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(positionUpdated,1.0);\x0a#ifdef\x20NORMAL\x0amat3\x20normalWorld=mat3(finalWorld);\x0a#if\x20defined(INSTANCES)\x20&&\x20defined(THIN_INSTANCES)\x0avNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));\x0avNormalW=normalize(normalWorld*vNormalW);\x0a#else\x0a#ifdef\x20NONUNIFORMSCALING\x0anormalWorld=transposeMat3(inverseMat3(normalWorld));\x0a#endif\x0avNormalW=normalize(normalWorld*normalUpdated);\x0a#endif\x0a#endif\x0a#define\x20CUSTOM_VERTEX_UPDATE_WORLDPOS\x0a#ifdef\x20MULTIVIEW\x0aif\x20(gl_ViewID_OVR==0u)\x20{\x0agl_Position=viewProjection*worldPos;\x0a}\x20else\x20{\x0agl_Position=viewProjectionR*worldPos;\x0a}\x0a#else\x0agl_Position=viewProjection*worldPos;\x0a#endif\x0avPositionW=vec3(worldPos);\x0a#include<prePassVertex>\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uvUpdated=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20MAINUV1\x0avMainUV1=uvUpdated;\x0a#endif\x0a#include<uvVariableDeclaration>[2..7]\x0a#include<samplerVertexImplementation>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse,_MATRIXNAME_,diffuse,_INFONAME_,DiffuseInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_MATRIXNAME_,ambient,_INFONAME_,AmbientInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_MATRIXNAME_,opacity,_INFONAME_,OpacityInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_MATRIXNAME_,emissive,_INFONAME_,EmissiveInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_MATRIXNAME_,lightmap,_INFONAME_,LightmapInfos.x)\x0a#if\x20defined(SPECULARTERM)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular,_MATRIXNAME_,specular,_INFONAME_,SpecularInfos.x)\x0a#endif\x0a#include<samplerVertexImplementation>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_MATRIXNAME_,bump,_INFONAME_,BumpInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)\x0a#include<bumpVertex>\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#include<pointCloudVertex>\x0a#include<logDepthVertex>\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a';},0x9680:(_0x3cc364,_0x28df51,_0x269cd8)=>{var _0x4d97f1=a7_0x3304fb,_0x3c773f=_0x269cd8(0x26fa);_0x269cd8(0x13fa8),_0x269cd8(0x4a11),_0x269cd8(0x10716),_0x3c773f['v'][_0x4d97f1(0xba5)]['depthPixelShader']=_0x4d97f1(0xb41);},0x13d16:(_0x41aca7,_0x1b8b5c,_0x12b9f6)=>{var _0x19fcd5=a7_0x3304fb,_0x3981f5=_0x12b9f6(0x26fa);_0x12b9f6(0x11c69),_0x12b9f6(0x2648),_0x12b9f6(0x11b65),_0x12b9f6(0x12771),_0x12b9f6(0xd4f3),_0x12b9f6(0xe7da),_0x12b9f6(0x13d7),_0x12b9f6(0x1201e),_0x12b9f6(0x16c62),_0x12b9f6(0x9e45),_0x12b9f6(0x1396d),_0x12b9f6(0xc24a),_0x3981f5['v'][_0x19fcd5(0xba5)][_0x19fcd5(0x81c)]=_0x19fcd5(0x796);},0x5386:(_0x38f635,_0x58db28,_0x54cef4)=>{var _0x726f4e=a7_0x3304fb;_0x54cef4(0x26fa)['v'][_0x726f4e(0xba5)][_0x726f4e(0xa35)]=_0x726f4e(0x986);},0x1194c:(_0x1196d2,_0x49707a,_0x2dd21c)=>{var _0x5994ab=a7_0x3304fb;_0x2dd21c(0x26fa)['v']['ShadersStore'][_0x5994ab(0x4b6)]=_0x5994ab(0x840);},0x88d5:(_0x1f5cda,_0x574f55,_0x36aa53)=>{var _0x3dcca1=a7_0x3304fb;_0x36aa53(0x26fa)['v'][_0x3dcca1(0xba5)][_0x3dcca1(0x29e)]=_0x3dcca1(0xc1f);},0x5e4b:(_0xb2461e,_0x33a2a4,_0x5dcb36)=>{var _0x26d663=a7_0x3304fb;_0x5dcb36(0x26fa)['v'][_0x26d663(0xba5)]['displayPassPixelShader']=_0x26d663(0x653);},0x87ce:(_0x7b1dfe,_0x5cfe7a,_0x5a3b9d)=>{var _0x557e5d=a7_0x3304fb,_0x20e9f7=_0x5a3b9d(0x26fa);_0x5a3b9d(0x8cd3),_0x20e9f7['v']['ShadersStore'][_0x557e5d(0x807)]=_0x557e5d(0x2ff);},0x63d8:(_0x35566c,_0x273a77,_0x1f8ecc)=>{var _0x497024=a7_0x3304fb;_0x1f8ecc(0x26fa)['v'][_0x497024(0xba5)]['filterPixelShader']=_0x497024(0x84b);},0xfa31:(_0x3cc9af,_0x1f42d9,_0x14c838)=>{var _0x14a72e=a7_0x3304fb;_0x14c838(0x26fa)['v'][_0x14a72e(0xba5)][_0x14a72e(0x5ce)]='uniform\x20sampler2D\x20textureSampler;\x0auniform\x20int\x20maxFilterSize;\x0auniform\x20vec2\x20blurDir;\x0auniform\x20float\x20projectedParticleConstant;\x0auniform\x20float\x20depthThreshold;\x0avarying\x20vec2\x20vUV;\x0avoid\x20main(void)\x20{\x0afloat\x20depth=textureLod(textureSampler,vUV,0.).x;\x0aif\x20(depth>=1e6\x20||\x20depth<=0.)\x20{\x0aglFragColor=vec4(vec3(depth),1.);\x0areturn;\x0a}\x0aint\x20filterSize=min(maxFilterSize,int(ceil(projectedParticleConstant/depth)));\x0afloat\x20sigma=float(filterSize)/3.0;\x0afloat\x20two_sigma2=2.0*sigma*sigma;\x0afloat\x20sigmaDepth=depthThreshold/3.0;\x0afloat\x20two_sigmaDepth2=2.0*sigmaDepth*sigmaDepth;\x0afloat\x20sum=0.;\x0afloat\x20wsum=0.;\x0afloat\x20sumVel=0.;\x0afor\x20(int\x20x=-filterSize;\x20x<=filterSize;\x20++x)\x20{\x0avec2\x20coords=vec2(x);\x0avec2\x20sampleDepthVel=textureLod(textureSampler,vUV+coords*blurDir,0.).rg;\x0afloat\x20r=dot(coords,coords);\x0afloat\x20w=exp(-r/two_sigma2);\x0afloat\x20rDepth=sampleDepthVel.r-depth;\x0afloat\x20wd=exp(-rDepth*rDepth/two_sigmaDepth2);\x0asum+=sampleDepthVel.r*w*wd;\x0asumVel+=sampleDepthVel.g*w*wd;\x0awsum+=w*wd;\x0a}\x0aglFragColor=vec4(sum/wsum,sumVel/wsum,0.,1.);\x0a}\x0a';},0x13084:(_0x4e119e,_0x199e59,_0x50fd01)=>{var _0x3711b2=a7_0x3304fb;_0x50fd01(0x26fa)['v'][_0x3711b2(0xba5)][_0x3711b2(0x3ae)]=_0x3711b2(0x599);},0x4d56:(_0x1cb008,_0x201189,_0x6a71a5)=>{var _0x5675c7=a7_0x3304fb;_0x6a71a5(0x26fa)['v'][_0x5675c7(0xba5)][_0x5675c7(0x307)]=_0x5675c7(0x83b);},0xa147:(_0x539416,_0x5de0b9,_0x3e4ff4)=>{var _0x5ede25=a7_0x3304fb;_0x3e4ff4(0x26fa)['v'][_0x5ede25(0xba5)][_0x5ede25(0xc8a)]=_0x5ede25(0xc51);},0x497e:(_0x3b1f59,_0x2ea4d2,_0x19f636)=>{var _0x42597f=a7_0x3304fb;_0x19f636(0x26fa)['v']['ShadersStore'][_0x42597f(0x9c0)]=_0x42597f(0x544);},0x879b:(_0x56ef3b,_0x28b571,_0xe9037)=>{var _0x57af7a=a7_0x3304fb;_0xe9037(0x26fa)['v'][_0x57af7a(0xba5)][_0x57af7a(0x350)]=_0x57af7a(0x70f);},0x17355:(_0x5e8b8e,_0x2024e0,_0x465b3a)=>{var _0x28a5be=a7_0x3304fb;_0x465b3a(0x26fa)['v'][_0x28a5be(0xba5)][_0x28a5be(0x223)]=_0x28a5be(0x54f);},0x182d1:(_0x43853f,_0x373a23,_0x2cf116)=>{var _0x5c3aeb=a7_0x3304fb;_0x2cf116(0x26fa)['v']['ShadersStore']['fluidRenderingRenderPixelShader']=_0x5c3aeb(0x77c);},0x128a:(_0x4d72d5,_0x586175,_0x5f0bbc)=>{var _0x3740b2=a7_0x3304fb;_0x5f0bbc(0x26fa)['v']['ShadersStore'][_0x3740b2(0xaf4)]=_0x3740b2(0x637);},0x79c3:(_0x17c30f,_0x1776b1,_0x57e9ea)=>{var _0x3cc34a=a7_0x3304fb;_0x57e9ea(0x26fa)['v']['ShadersStore']['fxaaPixelShader']=_0x3cc34a(0x66c);},0xe3ec:(_0xad380e,_0x4845e4,_0x2aa237)=>{var _0x56a2ed=a7_0x3304fb;_0x2aa237(0x26fa)['v'][_0x56a2ed(0xba5)][_0x56a2ed(0xbe9)]=_0x56a2ed(0x9fe);},0x17ac4:(_0x250076,_0x2ff453,_0x5a7fe1)=>{var _0x51befd=a7_0x3304fb,_0x4d2c68=_0x5a7fe1(0x26fa);_0x5a7fe1(0x13fa8),_0x4d2c68['v'][_0x51befd(0x121)][_0x51befd(0x993)]='#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0alayout(location=0)\x20out\x20vec4\x20glFragData[{X}];\x0a#endif\x0a',_0x5a7fe1(0xc907),_0x5a7fe1(0x5a2d),_0x5a7fe1(0x8cd3),_0x5a7fe1(0x10716),_0x5a7fe1(0xdc9a),_0x4d2c68['v'][_0x51befd(0xba5)][_0x51befd(0x153)]=_0x51befd(0x71e);},0x3783:(_0x3124ee,_0x3524cc,_0x1df10c)=>{var _0x343906=a7_0x3304fb,_0x19fbdc=_0x1df10c(0x26fa);_0x1df10c(0x11c69),_0x1df10c(0x2648),_0x1df10c(0x11b65),_0x1df10c(0x12771),_0x1df10c(0xe7da),_0x19fbdc['v'][_0x343906(0x121)][_0x343906(0xa43)]='uniform\x20mat4\x20viewProjection;\x0auniform\x20mat4\x20view;',_0x1df10c(0xb1dc),_0x19fbdc['v'][_0x343906(0x121)][_0x343906(0xc84)]='#include<sceneUboDeclaration>\x0a',_0x1df10c(0xd4f3),_0x1df10c(0x13d7),_0x1df10c(0x1201e),_0x1df10c(0x16c62),_0x1df10c(0x9e45),_0x1df10c(0x1396d),_0x1df10c(0xc24a),_0x1df10c(0xf72d),_0x19fbdc['v']['ShadersStore'][_0x343906(0x879)]='precision\x20highp\x20float;\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#include<instancesDeclaration>\x0a#include<__decl__geometryVertex>\x0a#include<clipPlaneVertexDeclaration>\x0aattribute\x20vec3\x20position;\x0aattribute\x20vec3\x20normal;\x0a#ifdef\x20NEED_UV\x0avarying\x20vec2\x20vUV;\x0a#ifdef\x20ALPHATEST\x0auniform\x20mat4\x20diffuseMatrix;\x0a#endif\x0a#ifdef\x20BUMP\x0auniform\x20mat4\x20bumpMatrix;\x0avarying\x20vec2\x20vBumpUV;\x0a#endif\x0a#ifdef\x20REFLECTIVITY\x0auniform\x20mat4\x20reflectivityMatrix;\x0auniform\x20mat4\x20albedoMatrix;\x0avarying\x20vec2\x20vReflectivityUV;\x0avarying\x20vec2\x20vAlbedoUV;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#endif\x0a#ifdef\x20BUMP\x0avarying\x20mat4\x20vWorldView;\x0a#endif\x0a#ifdef\x20BUMP\x0avarying\x20vec3\x20vNormalW;\x0a#else\x0avarying\x20vec3\x20vNormalV;\x0a#endif\x0avarying\x20vec4\x20vViewPos;\x0a#if\x20defined(POSITION)\x20||\x20defined(BUMP)\x0avarying\x20vec3\x20vPositionW;\x0a#endif\x0a#ifdef\x20VELOCITY\x0auniform\x20mat4\x20previousViewProjection;\x0avarying\x20vec4\x20vCurrentPosition;\x0avarying\x20vec4\x20vPreviousPosition;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec3\x20positionUpdated=position;\x0avec3\x20normalUpdated=normal;\x0a#ifdef\x20UV1\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#include<instancesVertex>\x0a#if\x20defined(VELOCITY)\x20&&\x20!defined(BONES_VELOCITY_ENABLED)\x0avCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\x0avPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\x0a#endif\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=vec4(finalWorld*vec4(positionUpdated,1.0));\x0a#ifdef\x20BUMP\x0avWorldView=view*finalWorld;\x0avNormalW=normalUpdated;\x0a#else\x0avNormalV=normalize(vec3((view*finalWorld)*vec4(normalUpdated,0.0)));\x0a#endif\x0avViewPos=view*worldPos;\x0a#if\x20defined(VELOCITY)\x20&&\x20defined(BONES_VELOCITY_ENABLED)\x0avCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\x0a#if\x20NUM_BONE_INFLUENCERS>0\x0amat4\x20previousInfluence;\x0apreviousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0apreviousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0apreviousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0apreviousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\x0a#endif\x0avPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);\x0a#else\x0avPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\x0a#endif\x0a#endif\x0a#if\x20defined(POSITION)\x20||\x20defined(BUMP)\x0avPositionW=worldPos.xyz/worldPos.w;\x0a#endif\x0agl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\x0a#include<clipPlaneVertex>\x0a#ifdef\x20NEED_UV\x0a#ifdef\x20UV1\x0a#if\x20defined(ALPHATEST)\x20&&\x20defined(ALPHATEST_UV1)\x0avUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\x0a#else\x0avUV=uv;\x0a#endif\x0a#ifdef\x20BUMP_UV1\x0avBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20REFLECTIVITY_UV1\x0avReflectivityUV=vec2(reflectivityMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20ALBEDO_UV1\x0avAlbedoUV=vec2(albedoMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#endif\x0a#ifdef\x20UV2\x0a#if\x20defined(ALPHATEST)\x20&&\x20defined(ALPHATEST_UV2)\x0avUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a#else\x0avUV=uv2;\x0a#endif\x0a#ifdef\x20BUMP_UV2\x0avBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#ifdef\x20REFLECTIVITY_UV2\x0avReflectivityUV=vec2(reflectivityMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#ifdef\x20ALBEDO_UV2\x0avAlbedoUV=vec2(albedoMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a#endif\x0a#include<bumpVertex>\x0a}\x0a';},0xadae:(_0x521153,_0x429642,_0x1033f4)=>{var _0x50aa79=a7_0x3304fb;_0x1033f4(0x26fa)['v'][_0x50aa79(0xba5)][_0x50aa79(0xb73)]=_0x50aa79(0xaa9);},0xf007:(_0x4e007c,_0x40d9ea,_0x2d4fee)=>{var _0x43b39e=a7_0x3304fb,_0x48339d=_0x2d4fee(0x26fa);_0x2d4fee(0x8cd3),_0x2d4fee(0x13fa8),_0x2d4fee(0x10716),_0x48339d['v'][_0x43b39e(0xba5)][_0x43b39e(0xbcd)]=_0x43b39e(0xbac);},0x7bc7:(_0x3b547d,_0x3edc9c,_0x2d0792)=>{var _0x26155d=a7_0x3304fb,_0x175634=_0x2d0792(0x26fa);_0x2d0792(0x11c69),_0x2d0792(0x2648),_0x2d0792(0x11b65),_0x2d0792(0x12771),_0x2d0792(0xd4f3),_0x2d0792(0xe7da),_0x2d0792(0x13d7),_0x2d0792(0x1201e),_0x2d0792(0x16c62),_0x2d0792(0x9e45),_0x2d0792(0x1396d),_0x2d0792(0xc24a),_0x175634['v'][_0x26155d(0xba5)][_0x26155d(0x423)]=_0x26155d(0x979);},0x13ee3:(_0x8258cb,_0x23dd4a,_0x255371)=>{var _0x514649=a7_0x3304fb;_0x255371(0x26fa)['v'][_0x514649(0xba5)][_0x514649(0x509)]='varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0a#ifdef\x20EMISSIVE\x0auniform\x20sampler2D\x20textureSampler2;\x0a#endif\x0auniform\x20float\x20offset;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0avec4\x20baseColor=texture2D(textureSampler,vUV);\x0a#ifdef\x20EMISSIVE\x0abaseColor+=texture2D(textureSampler2,vUV);\x0abaseColor*=offset;\x0a#else\x0abaseColor.a=abs(offset-baseColor.a);\x0a#ifdef\x20STROKE\x0afloat\x20alpha=smoothstep(.0,.1,baseColor.a);\x0abaseColor.a=alpha;\x0abaseColor.rgb=baseColor.rgb*alpha;\x0a#endif\x0a#endif\x0a#if\x20LDR\x0abaseColor=clamp(baseColor,0.,1.0);\x0a#endif\x0agl_FragColor=baseColor;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}';},0x1323d:(_0x19ad03,_0x5a6298,_0x1a1117)=>{var _0x19df8c=a7_0x3304fb;_0x1a1117(0x26fa)['v'][_0x19df8c(0xba5)][_0x19df8c(0x3b1)]=_0x19df8c(0x15c);},0x7b37:(_0xc7d10e,_0x1a3c78,_0x50e585)=>{var _0x301201=a7_0x3304fb,_0x1a665d=_0x50e585(0x26fa);_0x1a665d['v'][_0x301201(0x121)][_0x301201(0xc1c)]=_0x301201(0x576),_0x50e585(0x12f21),_0x50e585(0x14b01),_0x50e585(0x8cd3),_0x50e585(0x171c4),_0x50e585(0x10716),_0x50e585(0x614f),_0x1a665d['v'][_0x301201(0xba5)][_0x301201(0x14c)]=_0x301201(0x5e3);},0xcf07:(_0x5d7e56,_0x40eb6,_0x4ac8c1)=>{var _0x178c93=a7_0x3304fb,_0xfccf5c=_0x4ac8c1(0x26fa);_0xfccf5c['v'][_0x178c93(0x121)]['clipPlaneVertexDeclaration2']=_0x178c93(0x895),_0x4ac8c1(0x14b01),_0x4ac8c1(0xc24a),_0x4ac8c1(0x8641),_0xfccf5c['v'][_0x178c93(0xba5)][_0x178c93(0x414)]=_0x178c93(0x3c9);},0x68d6:(_0x29a926,_0x285880,_0x1b1d2f)=>{var _0x4cbb46=a7_0x3304fb;_0x1b1d2f(0x26fa)['v'][_0x4cbb46(0xba5)]['gpuUpdateParticlesPixelShader']=_0x4cbb46(0x634);},0x79d2:(_0x2ad625,_0x141c78,_0x55005c)=>{_0x55005c(0x26fa)['v']['ShadersStore']['gpuUpdateParticlesVertexShader']='#version\x20300\x20es\x0a#define\x20PI\x203.14159\x0auniform\x20float\x20currentCount;\x0auniform\x20float\x20timeDelta;\x0auniform\x20float\x20stopFactor;\x0a#ifndef\x20LOCAL\x0auniform\x20mat4\x20emitterWM;\x0a#endif\x0auniform\x20vec2\x20lifeTime;\x0auniform\x20vec2\x20emitPower;\x0auniform\x20vec2\x20sizeRange;\x0auniform\x20vec4\x20scaleRange;\x0a#ifndef\x20COLORGRADIENTS\x0auniform\x20vec4\x20color1;\x0auniform\x20vec4\x20color2;\x0a#endif\x0auniform\x20vec3\x20gravity;\x0auniform\x20sampler2D\x20randomSampler;\x0auniform\x20sampler2D\x20randomSampler2;\x0auniform\x20vec4\x20angleRange;\x0a#ifdef\x20BOXEMITTER\x0auniform\x20vec3\x20direction1;\x0auniform\x20vec3\x20direction2;\x0auniform\x20vec3\x20minEmitBox;\x0auniform\x20vec3\x20maxEmitBox;\x0a#endif\x0a#ifdef\x20POINTEMITTER\x0auniform\x20vec3\x20direction1;\x0auniform\x20vec3\x20direction2;\x0a#endif\x0a#ifdef\x20HEMISPHERICEMITTER\x0auniform\x20float\x20radius;\x0auniform\x20float\x20radiusRange;\x0auniform\x20float\x20directionRandomizer;\x0a#endif\x0a#ifdef\x20SPHEREEMITTER\x0auniform\x20float\x20radius;\x0auniform\x20float\x20radiusRange;\x0a#ifdef\x20DIRECTEDSPHEREEMITTER\x0auniform\x20vec3\x20direction1;\x0auniform\x20vec3\x20direction2;\x0a#else\x0auniform\x20float\x20directionRandomizer;\x0a#endif\x0a#endif\x0a#ifdef\x20CYLINDEREMITTER\x0auniform\x20float\x20radius;\x0auniform\x20float\x20height;\x0auniform\x20float\x20radiusRange;\x0a#ifdef\x20DIRECTEDCYLINDEREMITTER\x0auniform\x20vec3\x20direction1;\x0auniform\x20vec3\x20direction2;\x0a#else\x0auniform\x20float\x20directionRandomizer;\x0a#endif\x0a#endif\x0a#ifdef\x20CONEEMITTER\x0auniform\x20vec2\x20radius;\x0auniform\x20float\x20coneAngle;\x0auniform\x20vec2\x20height;\x0auniform\x20float\x20directionRandomizer;\x0a#endif\x0ain\x20vec3\x20position;\x0a#ifdef\x20CUSTOMEMITTER\x0ain\x20vec3\x20initialPosition;\x0a#endif\x0ain\x20float\x20age;\x0ain\x20float\x20life;\x0ain\x20vec4\x20seed;\x0ain\x20vec3\x20size;\x0a#ifndef\x20COLORGRADIENTS\x0ain\x20vec4\x20color;\x0a#endif\x0ain\x20vec3\x20direction;\x0a#ifndef\x20BILLBOARD\x0ain\x20vec3\x20initialDirection;\x0a#endif\x0a#ifdef\x20ANGULARSPEEDGRADIENTS\x0ain\x20float\x20angle;\x0a#else\x0ain\x20vec2\x20angle;\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x0ain\x20float\x20cellIndex;\x0a#ifdef\x20ANIMATESHEETRANDOMSTART\x0ain\x20float\x20cellStartOffset;\x0a#endif\x0a#endif\x0a#ifdef\x20NOISE\x0ain\x20vec3\x20noiseCoordinates1;\x0ain\x20vec3\x20noiseCoordinates2;\x0a#endif\x0aout\x20vec3\x20outPosition;\x0a#ifdef\x20CUSTOMEMITTER\x0aout\x20vec3\x20outInitialPosition;\x0a#endif\x0aout\x20float\x20outAge;\x0aout\x20float\x20outLife;\x0aout\x20vec4\x20outSeed;\x0aout\x20vec3\x20outSize;\x0a#ifndef\x20COLORGRADIENTS\x0aout\x20vec4\x20outColor;\x0a#endif\x0aout\x20vec3\x20outDirection;\x0a#ifndef\x20BILLBOARD\x0aout\x20vec3\x20outInitialDirection;\x0a#endif\x0a#ifdef\x20ANGULARSPEEDGRADIENTS\x0aout\x20float\x20outAngle;\x0a#else\x0aout\x20vec2\x20outAngle;\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x0aout\x20float\x20outCellIndex;\x0a#ifdef\x20ANIMATESHEETRANDOMSTART\x0aout\x20float\x20outCellStartOffset;\x0a#endif\x0a#endif\x0a#ifdef\x20NOISE\x0aout\x20vec3\x20outNoiseCoordinates1;\x0aout\x20vec3\x20outNoiseCoordinates2;\x0a#endif\x0a#ifdef\x20SIZEGRADIENTS\x0auniform\x20sampler2D\x20sizeGradientSampler;\x0a#endif\x20\x0a#ifdef\x20ANGULARSPEEDGRADIENTS\x0auniform\x20sampler2D\x20angularSpeedGradientSampler;\x0a#endif\x20\x0a#ifdef\x20VELOCITYGRADIENTS\x0auniform\x20sampler2D\x20velocityGradientSampler;\x0a#endif\x0a#ifdef\x20LIMITVELOCITYGRADIENTS\x0auniform\x20sampler2D\x20limitVelocityGradientSampler;\x0auniform\x20float\x20limitVelocityDamping;\x0a#endif\x0a#ifdef\x20DRAGGRADIENTS\x0auniform\x20sampler2D\x20dragGradientSampler;\x0a#endif\x0a#ifdef\x20NOISE\x0auniform\x20vec3\x20noiseStrength;\x0auniform\x20sampler2D\x20noiseSampler;\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x0auniform\x20vec4\x20cellInfos;\x0a#endif\x0avec3\x20getRandomVec3(float\x20offset)\x20{\x0areturn\x20texture(randomSampler2,vec2(float(gl_VertexID)*offset/currentCount,0)).rgb;\x0a}\x0avec4\x20getRandomVec4(float\x20offset)\x20{\x0areturn\x20texture(randomSampler,vec2(float(gl_VertexID)*offset/currentCount,0));\x0a}\x0avoid\x20main()\x20{\x0afloat\x20newAge=age+timeDelta;\x20\x0aif\x20(newAge>=life\x20&&\x20stopFactor\x20!=\x200.)\x20{\x0avec3\x20newPosition;\x0avec3\x20newDirection;\x0avec4\x20randoms=getRandomVec4(seed.x);\x0aoutLife=lifeTime.x+(lifeTime.y-lifeTime.x)*randoms.r;\x0aoutAge=newAge-life;\x0aoutSeed=seed;\x0a#ifdef\x20SIZEGRADIENTS\x20\x0aoutSize.x=texture(sizeGradientSampler,vec2(0,0)).r;\x0a#else\x0aoutSize.x=sizeRange.x+(sizeRange.y-sizeRange.x)*randoms.g;\x0a#endif\x0aoutSize.y=scaleRange.x+(scaleRange.y-scaleRange.x)*randoms.b;\x0aoutSize.z=scaleRange.z+(scaleRange.w-scaleRange.z)*randoms.a;\x20\x0a#ifndef\x20COLORGRADIENTS\x0aoutColor=color1+(color2-color1)*randoms.b;\x0a#endif\x0a#ifndef\x20ANGULARSPEEDGRADIENTS\x20\x0aoutAngle.y=angleRange.x+(angleRange.y-angleRange.x)*randoms.a;\x0aoutAngle.x=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;\x0a#else\x0aoutAngle=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;\x0a#endif\x20\x0a#ifdef\x20POINTEMITTER\x0avec3\x20randoms2=getRandomVec3(seed.y);\x0avec3\x20randoms3=getRandomVec3(seed.z);\x0anewPosition=vec3(0,0,0);\x0anewDirection=direction1+(direction2-direction1)*randoms3;\x0a#elif\x20defined(BOXEMITTER)\x0avec3\x20randoms2=getRandomVec3(seed.y);\x0avec3\x20randoms3=getRandomVec3(seed.z);\x0anewPosition=minEmitBox+(maxEmitBox-minEmitBox)*randoms2;\x0anewDirection=direction1+(direction2-direction1)*randoms3;\x20\x0a#elif\x20defined(HEMISPHERICEMITTER)\x0avec3\x20randoms2=getRandomVec3(seed.y);\x0avec3\x20randoms3=getRandomVec3(seed.z);\x0afloat\x20phi=2.0*PI*randoms2.x;\x0afloat\x20theta=acos(2.0*randoms2.y-1.0);\x0afloat\x20randX=cos(phi)*sin(theta);\x0afloat\x20randY=cos(theta);\x0afloat\x20randZ=sin(phi)*sin(theta);\x0anewPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,abs(randY),randZ);\x0anewDirection=newPosition+directionRandomizer*randoms3;\x20\x0a#elif\x20defined(SPHEREEMITTER)\x0avec3\x20randoms2=getRandomVec3(seed.y);\x0avec3\x20randoms3=getRandomVec3(seed.z);\x0afloat\x20phi=2.0*PI*randoms2.x;\x0afloat\x20theta=acos(2.0*randoms2.y-1.0);\x0afloat\x20randX=cos(phi)*sin(theta);\x0afloat\x20randY=cos(theta);\x0afloat\x20randZ=sin(phi)*sin(theta);\x0anewPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,randY,randZ);\x0a#ifdef\x20DIRECTEDSPHEREEMITTER\x0anewDirection=normalize(direction1+(direction2-direction1)*randoms3);\x0a#else\x0anewDirection=normalize(newPosition+directionRandomizer*randoms3);\x0a#endif\x0a#elif\x20defined(CYLINDEREMITTER)\x0avec3\x20randoms2=getRandomVec3(seed.y);\x0avec3\x20randoms3=getRandomVec3(seed.z);\x0afloat\x20yPos=(randoms2.x-0.5)*height;\x0afloat\x20angle=randoms2.y*PI*2.;\x0afloat\x20inverseRadiusRangeSquared=((1.-radiusRange)*(1.-radiusRange));\x0afloat\x20positionRadius=radius*sqrt(inverseRadiusRangeSquared+(randoms2.z*(1.-inverseRadiusRangeSquared)));\x0afloat\x20xPos=positionRadius*cos(angle);\x0afloat\x20zPos=positionRadius*sin(angle);\x0anewPosition=vec3(xPos,yPos,zPos);\x0a#ifdef\x20DIRECTEDCYLINDEREMITTER\x0anewDirection=direction1+(direction2-direction1)*randoms3;\x0a#else\x0aangle=angle+((randoms3.x-0.5)*PI)*directionRandomizer;\x0anewDirection=vec3(cos(angle),(randoms3.y-0.5)*directionRandomizer,sin(angle));\x0anewDirection=normalize(newDirection);\x0a#endif\x0a#elif\x20defined(CONEEMITTER)\x0avec3\x20randoms2=getRandomVec3(seed.y);\x0afloat\x20s=2.0*PI*randoms2.x;\x0a#ifdef\x20CONEEMITTERSPAWNPOINT\x0afloat\x20h=0.0001;\x0a#else\x0afloat\x20h=randoms2.y*height.y;\x0ah=1.-h*h;\x20\x0a#endif\x0afloat\x20lRadius=radius.x-radius.x*randoms2.z*radius.y;\x0alRadius=lRadius*h;\x0afloat\x20randX=lRadius*sin(s);\x0afloat\x20randZ=lRadius*cos(s);\x0afloat\x20randY=h\x20*height.x;\x0anewPosition=vec3(randX,randY,randZ);\x20\x0aif\x20(abs(cos(coneAngle))==1.0)\x20{\x0anewDirection=vec3(0.,1.0,0.);\x0a}\x20else\x20{\x0avec3\x20randoms3=getRandomVec3(seed.z);\x0anewDirection=normalize(newPosition+directionRandomizer*randoms3);\x20\x0a}\x0a#elif\x20defined(CUSTOMEMITTER)\x0anewPosition=initialPosition;\x0aoutInitialPosition=initialPosition;\x0a#else\x20\x0anewPosition=vec3(0.,0.,0.);\x0anewDirection=2.0*(getRandomVec3(seed.w)-vec3(0.5,0.5,0.5));\x0a#endif\x0afloat\x20power=emitPower.x+(emitPower.y-emitPower.x)*randoms.a;\x0a#ifdef\x20LOCAL\x0aoutPosition=newPosition;\x0a#else\x0aoutPosition=(emitterWM*vec4(newPosition,1.)).xyz;\x0a#endif\x0a#ifdef\x20CUSTOMEMITTER\x0aoutDirection=direction;\x0a#ifndef\x20BILLBOARD\x20\x0aoutInitialDirection=direction;\x0a#endif\x0a#else\x0a#ifdef\x20LOCAL\x0avec3\x20initial=newDirection;\x0a#else\x20\x0avec3\x20initial=(emitterWM*vec4(newDirection,0.)).xyz;\x0a#endif\x0aoutDirection=initial*power;\x0a#ifndef\x20BILLBOARD\x20\x0aoutInitialDirection=initial;\x0a#endif\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x20\x0aoutCellIndex=cellInfos.x;\x0a#ifdef\x20ANIMATESHEETRANDOMSTART\x0aoutCellStartOffset=randoms.a*outLife;\x0a#endif\x20\x0a#endif\x0a#ifdef\x20NOISE\x0aoutNoiseCoordinates1=noiseCoordinates1;\x0aoutNoiseCoordinates2=noiseCoordinates2;\x0a#endif\x0a}\x20else\x20{\x0afloat\x20directionScale=timeDelta;\x0aoutAge=newAge;\x0afloat\x20ageGradient=newAge/life;\x0a#ifdef\x20VELOCITYGRADIENTS\x0adirectionScale*=texture(velocityGradientSampler,vec2(ageGradient,0)).r;\x0a#endif\x0a#ifdef\x20DRAGGRADIENTS\x0adirectionScale*=1.0-texture(dragGradientSampler,vec2(ageGradient,0)).r;\x0a#endif\x0a#if\x20defined(CUSTOMEMITTER)\x0aoutPosition=position+(direction-position)*ageGradient;\x20\x0aoutInitialPosition=initialPosition;\x0a#else\x0aoutPosition=position+direction*directionScale;\x0a#endif\x0aoutLife=life;\x0aoutSeed=seed;\x0a#ifndef\x20COLORGRADIENTS\x20\x0aoutColor=color;\x0a#endif\x0a#ifdef\x20SIZEGRADIENTS\x0aoutSize.x=texture(sizeGradientSampler,vec2(ageGradient,0)).r;\x0aoutSize.yz=size.yz;\x0a#else\x0aoutSize=size;\x0a#endif\x20\x0a#ifndef\x20BILLBOARD\x20\x0aoutInitialDirection=initialDirection;\x0a#endif\x0a#ifdef\x20CUSTOMEMITTER\x0aoutDirection=direction;\x0a#else\x0avec3\x20updatedDirection=direction+gravity*timeDelta;\x0a#ifdef\x20LIMITVELOCITYGRADIENTS\x0afloat\x20limitVelocity=texture(limitVelocityGradientSampler,vec2(ageGradient,0)).r;\x0afloat\x20currentVelocity=length(updatedDirection);\x0aif\x20(currentVelocity>limitVelocity)\x20{\x0aupdatedDirection=updatedDirection*limitVelocityDamping;\x0a}\x0a#endif\x0aoutDirection=updatedDirection;\x0a#ifdef\x20NOISE\x0afloat\x20fetchedR=texture(noiseSampler,vec2(noiseCoordinates1.x,noiseCoordinates1.y)*vec2(0.5)+vec2(0.5)).r;\x0afloat\x20fetchedG=texture(noiseSampler,vec2(noiseCoordinates1.z,noiseCoordinates2.x)*vec2(0.5)+vec2(0.5)).r;\x0afloat\x20fetchedB=texture(noiseSampler,vec2(noiseCoordinates2.y,noiseCoordinates2.z)*vec2(0.5)+vec2(0.5)).r;\x0avec3\x20force=vec3(2.*fetchedR-1.,2.*fetchedG-1.,2.*fetchedB-1.)*noiseStrength;\x0aoutDirection=outDirection+force*timeDelta;\x0aoutNoiseCoordinates1=noiseCoordinates1;\x0aoutNoiseCoordinates2=noiseCoordinates2;\x0a#endif\x20\x0a#endif\x20\x0a#ifdef\x20ANGULARSPEEDGRADIENTS\x0afloat\x20angularSpeed=texture(angularSpeedGradientSampler,vec2(ageGradient,0)).r;\x0aoutAngle=angle+angularSpeed*timeDelta;\x0a#else\x0aoutAngle=vec2(angle.x+angle.y*timeDelta,angle.y);\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x20\x0afloat\x20offsetAge=outAge;\x0afloat\x20dist=cellInfos.y-cellInfos.x;\x0a#ifdef\x20ANIMATESHEETRANDOMSTART\x0aoutCellStartOffset=cellStartOffset;\x0aoffsetAge+=cellStartOffset;\x0a#else\x0afloat\x20cellStartOffset=0.;\x0a#endif\x20\x0afloat\x20ratio=0.;\x0aif\x20(cellInfos.w==1.0)\x20{\x0aratio=clamp(mod(cellStartOffset+cellInfos.z*offsetAge,life)/life,0.,1.0);\x0a}\x0aelse\x20{\x0aratio=clamp(cellStartOffset+cellInfos.z*offsetAge/life,0.,1.0);\x0a}\x0aoutCellIndex=float(int(cellInfos.x+ratio*dist));\x0a#endif\x0a}\x0a}';},0x44d6:(_0x17b216,_0x58c9e7,_0x339310)=>{var _0x2fbb94=a7_0x3304fb,_0x2d1611=_0x339310(0x26fa);_0x339310(0x8cd3),_0x2d1611['v'][_0x2fbb94(0xba5)][_0x2fbb94(0x9d0)]=_0x2fbb94(0x37f);},0x3b79:(_0x33a8de,_0x1e01ae,_0x52d1de)=>{var _0x2554ce=a7_0x3304fb,_0x45ede5=_0x52d1de(0x26fa);_0x52d1de(0x8cd3),_0x52d1de(0x2d2b),_0x52d1de(0xe90b),_0x52d1de(0x1761a),_0x45ede5['v'][_0x2554ce(0xba5)][_0x2554ce(0x4b2)]=_0x2554ce(0x603);},0x14e90:(_0x4c85fd,_0x4859ae,_0x59bcf4)=>{var _0x4455f2=a7_0x3304fb;_0x59bcf4(0x26fa)['v'][_0x4455f2(0xba5)][_0x4455f2(0x543)]=_0x4455f2(0xa46);},0x8671:(_0x3c805c,_0x147b4b,_0x1f9c53)=>{var _0x231884=a7_0x3304fb;_0x1f9c53(0x26fa)['v'][_0x231884(0xba5)]['highlightsPixelShader']='varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0aconst\x20vec3\x20RGBLuminanceCoefficients=vec3(0.2126,0.7152,0.0722);\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0avec4\x20tex=texture2D(textureSampler,vUV);\x0avec3\x20c=tex.rgb;\x0afloat\x20luma=dot(c.rgb,RGBLuminanceCoefficients);\x0agl_FragColor=vec4(pow(c,vec3(25.0-luma*15.0)),tex.a);\x20\x0a}';},0x160aa:(_0x118785,_0x11d1fb,_0xb47923)=>{var _0x5e9d7a=a7_0x3304fb,_0x3661af=_0xb47923(0x26fa);_0xb47923(0x12f21),_0xb47923(0x8cd3),_0xb47923(0x171c4),_0x3661af['v']['ShadersStore'][_0x5e9d7a(0xcb2)]='varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0a#include<imageProcessingDeclaration>\x0a#include<helperFunctions>\x0a#include<imageProcessingFunctions>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec4\x20result=texture2D(textureSampler,vUV);\x0a#ifdef\x20IMAGEPROCESSING\x0a#ifndef\x20FROMLINEARSPACE\x0aresult.rgb=toLinearSpace(result.rgb);\x0a#endif\x0aresult=applyImageProcessing(result);\x0a#else\x0a#ifdef\x20FROMLINEARSPACE\x0aresult=applyImageProcessing(result);\x0a#endif\x0a#endif\x0agl_FragColor=result;\x0a}';},0xe94b:(_0x1fa27f,_0x4d658b,_0x3b8ded)=>{var _0x1f62b8=a7_0x3304fb,_0x229e61=_0x3b8ded(0x26fa);_0x3b8ded(0x2567),_0x3b8ded(0x4a11),_0x229e61['v']['IncludesShadersStore'][_0x1f62b8(0xce2)]=_0x1f62b8(0x26e),_0x229e61['v'][_0x1f62b8(0x121)][_0x1f62b8(0xcf3)]=_0x1f62b8(0xbb2),_0x229e61['v']['ShadersStore'][_0x1f62b8(0x8b4)]=_0x1f62b8(0x64e);},0x78b2:(_0xa2db5c,_0x477ab5,_0x1264e4)=>{var _0x39481b=a7_0x3304fb,_0x47f11d=_0x1264e4(0x26fa);_0x1264e4(0x2567),_0x47f11d['v'][_0x39481b(0x121)][_0x39481b(0xc0e)]=_0x39481b(0x664),_0x47f11d['v']['ShadersStore'][_0x39481b(0x65d)]=_0x39481b(0x4db);},0xf009:(_0x4e9417,_0x433839,_0x18282c)=>{var _0x3a7e83=a7_0x3304fb,_0x143ffb=_0x18282c(0x26fa);_0x18282c(0x8cd3),_0x143ffb['v'][_0x3a7e83(0xba5)][_0x3a7e83(0x774)]='varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec4\x20color;\x0a#include<helperFunctions>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0avec4\x20baseColor=texture2D(textureSampler,vUV);\x0a#ifdef\x20LINEAR\x0abaseColor.rgb=toGammaSpace(baseColor.rgb);\x0a#endif\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0agl_FragColor=baseColor*color;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}';},0xbc19:(_0x42cc8d,_0x405a1d,_0x4871d6)=>{var _0x5f16e8=a7_0x3304fb;_0x4871d6(0x26fa)['v'][_0x5f16e8(0xba5)][_0x5f16e8(0x487)]=_0x5f16e8(0x9e7);},0xa277:(_0x44369f,_0xe3353e,_0x165158)=>{var _0x3ba275=a7_0x3304fb;_0x165158(0x26fa)['v']['ShadersStore'][_0x3ba275(0x2d0)]=_0x3ba275(0x2d3);},0x14b96:(_0x1cd546,_0x13db3c,_0x32d8b1)=>{var _0x550b97=a7_0x3304fb;_0x32d8b1(0x26fa)['v']['ShadersStore']['lensFlareVertexShader']=_0x550b97(0x377);},0x14eb9:(_0x13787c,_0x45a7e5,_0x3ef996)=>{var _0x1f860e=a7_0x3304fb;_0x3ef996(0x26fa)['v'][_0x1f860e(0xba5)][_0x1f860e(0x690)]=_0x1f860e(0x56e);},0xf3e4:(_0x201283,_0x32cbae,_0x520379)=>{var _0x184030=a7_0x3304fb,_0x422ef6=_0x520379(0x26fa);_0x520379(0x13fa8),_0x520379(0x10716),_0x422ef6['v']['ShadersStore'][_0x184030(0x4cf)]=_0x184030(0x9d9);},0x418e:(_0x24e187,_0x53bc7e,_0x415b69)=>{var _0x4bc692=a7_0x3304fb,_0x3e7db7=_0x415b69(0x26fa);_0x415b69(0xe7da),_0x415b69(0xd4f3),_0x415b69(0x16c62),_0x415b69(0xc24a),_0x3e7db7['v'][_0x4bc692(0xba5)][_0x4bc692(0x8a6)]=_0x4bc692(0x665);},0x965:(_0x1062e8,_0x3ea3da,_0x4bcae2)=>{var _0x56d4ea=a7_0x3304fb;_0x4bcae2(0x26fa)['v'][_0x56d4ea(0xba5)][_0x56d4ea(0x835)]=_0x56d4ea(0x702);},0xdd57:(_0x4f97c6,_0x4dd403,_0x2ec5f2)=>{var _0x244ac3=a7_0x3304fb,_0x1d35cc=_0x2ec5f2(0x26fa);_0x2ec5f2(0x11c69),_0x2ec5f2(0x2648),_0x2ec5f2(0x11b65),_0x2ec5f2(0x12771),_0x2ec5f2(0xe7da),_0x2ec5f2(0x13d7),_0x2ec5f2(0x1201e),_0x2ec5f2(0x16c62),_0x2ec5f2(0x9e45),_0x2ec5f2(0x1396d),_0x1d35cc['v'][_0x244ac3(0xba5)]['meshUVSpaceRendererVertexShader']='precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0aattribute\x20vec3\x20normal;\x0aattribute\x20vec2\x20uv;\x0auniform\x20mat4\x20projMatrix;\x0avarying\x20vec2\x20vDecalTC;\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#include<instancesDeclaration>\x0avoid\x20main(void)\x20{\x0avec3\x20positionUpdated=position;\x0avec3\x20normalUpdated=normal;\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(positionUpdated,1.0);\x0amat3\x20normWorldSM=mat3(finalWorld);\x0avec3\x20vNormalW;\x0a#if\x20defined(INSTANCES)\x20&&\x20defined(THIN_INSTANCES)\x0avNormalW=normalUpdated/vec3(dot(normWorldSM[0],normWorldSM[0]),dot(normWorldSM[1],normWorldSM[1]),dot(normWorldSM[2],normWorldSM[2]));\x0avNormalW=normalize(normWorldSM*vNormalW);\x0a#else\x0a#ifdef\x20NONUNIFORMSCALING\x0anormWorldSM=transposeMat3(inverseMat3(normWorldSM));\x0a#endif\x0avNormalW=normalize(normWorldSM*normalUpdated);\x0a#endif\x0avec3\x20normalView=normalize((projMatrix*vec4(vNormalW,0.0)).xyz);\x0avec3\x20decalTC=(projMatrix*worldPos).xyz;\x0avDecalTC=decalTC.xy;\x0agl_Position=vec4(uv*2.0-1.0,normalView.z>0.0\x20?\x202.\x20:\x20decalTC.z,1.0);\x0a}\x0a';},0x285d:(_0x3d6e6b,_0x29a187,_0x5efee8)=>{var _0x58374f=a7_0x3304fb;_0x5efee8(0x26fa)['v'][_0x58374f(0xba5)]['minmaxReduxPixelShader']=_0x58374f(0x313);},0x17d14:(_0x5bac0c,_0x5e8d1e,_0x5578a6)=>{var _0x55c4f1=a7_0x3304fb;_0x5578a6(0x26fa)['v']['ShadersStore']['motionBlurPixelShader']=_0x55c4f1(0x610);},0x12cdd:(_0x46cfcd,_0x2a5e90,_0x1018a4)=>{var _0xd4dbc8=a7_0x3304fb;_0x1018a4(0x26fa)['v'][_0xd4dbc8(0xba5)][_0xd4dbc8(0x51d)]='uniform\x20float\x20brightness;\x0auniform\x20float\x20persistence;\x0auniform\x20float\x20timeScale;\x0avarying\x20vec2\x20vUV;\x0avec2\x20hash22(vec2\x20p)\x0a{\x0ap=p*mat2(127.1,311.7,269.5,183.3);\x0ap=-1.0+2.0*fract(sin(p)*43758.5453123);\x0areturn\x20sin(p*6.283+timeScale);\x0a}\x0afloat\x20interpolationNoise(vec2\x20p)\x0a{\x0avec2\x20pi=floor(p);\x0avec2\x20pf=p-pi;\x0avec2\x20w=pf*pf*(3.-2.*pf);\x0afloat\x20f00=dot(hash22(pi+vec2(.0,.0)),pf-vec2(.0,.0));\x0afloat\x20f01=dot(hash22(pi+vec2(.0,1.)),pf-vec2(.0,1.));\x0afloat\x20f10=dot(hash22(pi+vec2(1.0,0.)),pf-vec2(1.0,0.));\x0afloat\x20f11=dot(hash22(pi+vec2(1.0,1.)),pf-vec2(1.0,1.));\x0afloat\x20xm1=mix(f00,f10,w.x);\x0afloat\x20xm2=mix(f01,f11,w.x);\x0afloat\x20ym=mix(xm1,xm2,w.y);\x20\x0areturn\x20ym;\x0a}\x0afloat\x20perlinNoise2D(float\x20x,float\x20y)\x0a{\x0afloat\x20sum=0.0;\x0afloat\x20frequency=0.0;\x0afloat\x20amplitude=0.0;\x0afor(int\x20i=0;\x20i<OCTAVES;\x20i++)\x0a{\x0afrequency=pow(2.0,float(i));\x0aamplitude=pow(persistence,float(i));\x0asum=sum+interpolationNoise(vec2(x*frequency,y*frequency))*amplitude;\x0a}\x0areturn\x20sum;\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0afloat\x20x=abs(vUV.x);\x0afloat\x20y=abs(vUV.y);\x0afloat\x20noise=brightness+(1.0-brightness)*perlinNoise2D(x,y);\x0agl_FragColor=vec4(noise,noise,noise,1.0);\x0a}\x0a';},0x7f01:(_0x378daa,_0x3b94a5,_0x5c6596)=>{var _0x33f40c=a7_0x3304fb;_0x5c6596(0x26fa)['v'][_0x33f40c(0xba5)][_0x33f40c(0x9a2)]=_0x33f40c(0x600);},0x1522f:(_0x2cddc5,_0x59e686,_0x13751d)=>{var _0x53b070=a7_0x3304fb;_0x13751d(0x26fa)['v'][_0x53b070(0xba5)][_0x53b070(0x98f)]='precision\x20highp\x20float;\x0auniform\x20sampler2D\x20uFrontColor;\x0auniform\x20sampler2D\x20uBackColor;\x0avoid\x20main()\x20{\x0aivec2\x20fragCoord=ivec2(gl_FragCoord.xy);\x0avec4\x20frontColor=texelFetch(uFrontColor,fragCoord,0);\x0avec4\x20backColor=texelFetch(uBackColor,fragCoord,0);\x0afloat\x20alphaMultiplier=1.0-frontColor.a;\x0aglFragColor=vec4(\x0afrontColor.rgb+alphaMultiplier*backColor.rgb,\x0afrontColor.a+backColor.a\x0a);\x0a}';},0xa5a3:(_0x462f39,_0x2d83b7,_0x12f147)=>{var _0x2abd52=a7_0x3304fb,_0x41f9fb=_0x12f147(0x26fa);_0x12f147(0x13fa8),_0x12f147(0x14b01),_0x12f147(0x10716),_0x12f147(0x614f),_0x41f9fb['v']['ShadersStore'][_0x2abd52(0x190)]=_0x2abd52(0x1ba);},0x14dbe:(_0x447869,_0xe75bb0,_0x471c87)=>{var _0x26e38f=a7_0x3304fb,_0x8fa298=_0x471c87(0x26fa);_0x471c87(0x11c69),_0x471c87(0x2648),_0x471c87(0x11b65),_0x471c87(0x12771),_0x471c87(0xd4f3),_0x471c87(0xe7da),_0x471c87(0x14b01),_0x471c87(0x13d7),_0x471c87(0x1201e),_0x471c87(0x16c62),_0x471c87(0x9e45),_0x471c87(0x1396d),_0x471c87(0xc24a),_0x471c87(0x8641),_0x8fa298['v']['ShadersStore'][_0x26e38f(0xcfa)]=_0x26e38f(0x189);},0x7583:(_0x22dc42,_0x39a1e1,_0x3f4249)=>{var _0xdda6e2=a7_0x3304fb,_0x153386=_0x3f4249(0x26fa);_0x3f4249(0x13fa8),_0x3f4249(0x12f21),_0x3f4249(0x14b01),_0x3f4249(0x8cd3),_0x3f4249(0x171c4),_0x3f4249(0x10716),_0x3f4249(0x614f),_0x153386['v'][_0xdda6e2(0xba5)][_0xdda6e2(0x1ad)]=_0xdda6e2(0xbc4);},0xa90d:(_0x591833,_0x38813c,_0xd6389a)=>{var _0x1fb6aa=a7_0x3304fb,_0x14b4eb=_0xd6389a(0x26fa);_0xd6389a(0xd4f3),_0xd6389a(0x14b01),_0xd6389a(0xc24a),_0xd6389a(0x8641),_0x14b4eb['v'][_0x1fb6aa(0xba5)][_0x1fb6aa(0x7e4)]=_0x1fb6aa(0x9cc);},0x109e7:(_0x1fd443,_0x2075b5,_0x29d8d4)=>{var _0x4f91fc=a7_0x3304fb;_0x29d8d4['d'](_0x2075b5,{'T':()=>_0x155dff}),_0x2075b5=_0x4f91fc(0xcb8);const _0x155dff={'name':_0x2075b5,'shader':_0x29d8d4(0x26fa)['v'][_0x4f91fc(0xba5)][_0x2075b5]=_0x4f91fc(0x68d)};},0x55cc:(_0x2d0400,_0x2ecd5e,_0x53cb27)=>{var _0x5ac037=a7_0x3304fb;_0x53cb27(0x26fa)['v'][_0x5ac037(0xba5)][_0x5ac037(0xa94)]=_0x5ac037(0xa4b);},0x431b:(_0x5429fc,_0x192dbe,_0x367fde)=>{var _0x30ae86=a7_0x3304fb,_0x379a68=_0x367fde(0x26fa);_0x367fde(0x7051),_0x367fde(0x4df2),_0x367fde(0x9af1),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0x6d9)]='uniform\x20vec4\x20vEyePosition;\x0auniform\x20vec3\x20vReflectionColor;\x0auniform\x20vec4\x20vAlbedoColor;\x0auniform\x20vec4\x20vLightingIntensity;\x0auniform\x20vec4\x20vReflectivityColor;\x0auniform\x20vec4\x20vMetallicReflectanceFactors;\x0auniform\x20vec3\x20vEmissiveColor;\x0auniform\x20float\x20visibility;\x0auniform\x20vec3\x20vAmbientColor;\x0a#ifdef\x20ALBEDO\x0auniform\x20vec2\x20vAlbedoInfos;\x0a#endif\x0a#ifdef\x20AMBIENT\x0auniform\x20vec4\x20vAmbientInfos;\x0a#endif\x0a#ifdef\x20BUMP\x0auniform\x20vec3\x20vBumpInfos;\x0auniform\x20vec2\x20vTangentSpaceParams;\x0a#endif\x0a#ifdef\x20OPACITY\x0auniform\x20vec2\x20vOpacityInfos;\x0a#endif\x0a#ifdef\x20EMISSIVE\x0auniform\x20vec2\x20vEmissiveInfos;\x0a#endif\x0a#ifdef\x20LIGHTMAP\x0auniform\x20vec2\x20vLightmapInfos;\x0a#endif\x0a#ifdef\x20REFLECTIVITY\x0auniform\x20vec3\x20vReflectivityInfos;\x0a#endif\x0a#ifdef\x20MICROSURFACEMAP\x0auniform\x20vec2\x20vMicroSurfaceSamplerInfos;\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_SPHERICAL)\x20||\x20defined(REFLECTIONMAP_PROJECTION)\x20||\x20defined(SS_REFRACTION)\x20||\x20defined(PREPASS)\x0auniform\x20mat4\x20view;\x0a#endif\x0a#ifdef\x20REFLECTION\x0auniform\x20vec2\x20vReflectionInfos;\x0a#ifdef\x20REALTIME_FILTERING\x0auniform\x20vec2\x20vReflectionFilteringInfo;\x0a#endif\x0auniform\x20mat4\x20reflectionMatrix;\x0auniform\x20vec3\x20vReflectionMicrosurfaceInfos;\x0a#if\x20defined(USE_LOCAL_REFLECTIONMAP_CUBIC)\x20&&\x20defined(REFLECTIONMAP_CUBIC)\x0auniform\x20vec3\x20vReflectionPosition;\x0auniform\x20vec3\x20vReflectionSize;\x20\x0a#endif\x0a#endif\x0a#if\x20defined(SS_REFRACTION)\x20&&\x20defined(SS_USE_LOCAL_REFRACTIONMAP_CUBIC)\x0auniform\x20vec3\x20vRefractionPosition;\x0auniform\x20vec3\x20vRefractionSize;\x20\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0auniform\x20vec2\x20vClearCoatParams;\x0auniform\x20vec4\x20vClearCoatRefractionParams;\x0a#if\x20defined(CLEARCOAT_TEXTURE)\x20||\x20defined(CLEARCOAT_TEXTURE_ROUGHNESS)\x0auniform\x20vec4\x20vClearCoatInfos;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0auniform\x20mat4\x20clearCoatMatrix;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TEXTURE_ROUGHNESS\x0auniform\x20mat4\x20clearCoatRoughnessMatrix;\x0a#endif\x0a#ifdef\x20CLEARCOAT_BUMP\x0auniform\x20vec2\x20vClearCoatBumpInfos;\x0auniform\x20vec2\x20vClearCoatTangentSpaceParams;\x0auniform\x20mat4\x20clearCoatBumpMatrix;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TINT\x0auniform\x20vec4\x20vClearCoatTintParams;\x0auniform\x20float\x20clearCoatColorAtDistance;\x0a#ifdef\x20CLEARCOAT_TINT_TEXTURE\x0auniform\x20vec2\x20vClearCoatTintInfos;\x0auniform\x20mat4\x20clearCoatTintMatrix;\x0a#endif\x0a#endif\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0auniform\x20vec4\x20vIridescenceParams;\x0a#if\x20defined(IRIDESCENCE_TEXTURE)\x20||\x20defined(IRIDESCENCE_THICKNESS_TEXTURE)\x0auniform\x20vec4\x20vIridescenceInfos;\x0a#endif\x0a#ifdef\x20IRIDESCENCE_TEXTURE\x0auniform\x20mat4\x20iridescenceMatrix;\x0a#endif\x0a#ifdef\x20IRIDESCENCE_THICKNESS_TEXTURE\x0auniform\x20mat4\x20iridescenceThicknessMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0auniform\x20vec3\x20vAnisotropy;\x0a#ifdef\x20ANISOTROPIC_TEXTURE\x0auniform\x20vec2\x20vAnisotropyInfos;\x0auniform\x20mat4\x20anisotropyMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20SHEEN\x0auniform\x20vec4\x20vSheenColor;\x0a#ifdef\x20SHEEN_ROUGHNESS\x0auniform\x20float\x20vSheenRoughness;\x0a#endif\x0a#if\x20defined(SHEEN_TEXTURE)\x20||\x20defined(SHEEN_TEXTURE_ROUGHNESS)\x0auniform\x20vec4\x20vSheenInfos;\x0a#endif\x0a#ifdef\x20SHEEN_TEXTURE\x0auniform\x20mat4\x20sheenMatrix;\x0a#endif\x0a#ifdef\x20SHEEN_TEXTURE_ROUGHNESS\x0auniform\x20mat4\x20sheenRoughnessMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20SUBSURFACE\x0a#ifdef\x20SS_REFRACTION\x0auniform\x20vec4\x20vRefractionMicrosurfaceInfos;\x0auniform\x20vec4\x20vRefractionInfos;\x0auniform\x20mat4\x20refractionMatrix;\x0a#ifdef\x20REALTIME_FILTERING\x0auniform\x20vec2\x20vRefractionFilteringInfo;\x0a#endif\x0a#endif\x0a#ifdef\x20SS_THICKNESSANDMASK_TEXTURE\x0auniform\x20vec2\x20vThicknessInfos;\x0auniform\x20mat4\x20thicknessMatrix;\x0a#endif\x0a#ifdef\x20SS_REFRACTIONINTENSITY_TEXTURE\x0auniform\x20vec2\x20vRefractionIntensityInfos;\x0auniform\x20mat4\x20refractionIntensityMatrix;\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCYINTENSITY_TEXTURE\x0auniform\x20vec2\x20vTranslucencyIntensityInfos;\x0auniform\x20mat4\x20translucencyIntensityMatrix;\x0a#endif\x0auniform\x20vec2\x20vThicknessParam;\x0auniform\x20vec3\x20vDiffusionDistance;\x0auniform\x20vec4\x20vTintColor;\x0auniform\x20vec3\x20vSubSurfaceIntensity;\x0a#endif\x0a#ifdef\x20PREPASS\x0a#ifdef\x20SS_SCATTERING\x0auniform\x20float\x20scatteringDiffusionProfile;\x0a#endif\x0a#endif\x0a#if\x20DEBUGMODE>0\x0auniform\x20vec2\x20vDebugMode;\x0a#endif\x0a#ifdef\x20DETAIL\x0auniform\x20vec4\x20vDetailInfos;\x0a#endif\x0a#include<decalFragmentDeclaration>\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#ifdef\x20SPHERICAL_HARMONICS\x0auniform\x20vec3\x20vSphericalL00;\x0auniform\x20vec3\x20vSphericalL1_1;\x0auniform\x20vec3\x20vSphericalL10;\x0auniform\x20vec3\x20vSphericalL11;\x0auniform\x20vec3\x20vSphericalL2_2;\x0auniform\x20vec3\x20vSphericalL2_1;\x0auniform\x20vec3\x20vSphericalL20;\x0auniform\x20vec3\x20vSphericalL21;\x0auniform\x20vec3\x20vSphericalL22;\x0a#else\x0auniform\x20vec3\x20vSphericalX;\x0auniform\x20vec3\x20vSphericalY;\x0auniform\x20vec3\x20vSphericalZ;\x0auniform\x20vec3\x20vSphericalXX_ZZ;\x0auniform\x20vec3\x20vSphericalYY_ZZ;\x0auniform\x20vec3\x20vSphericalZZ;\x0auniform\x20vec3\x20vSphericalXY;\x0auniform\x20vec3\x20vSphericalYZ;\x0auniform\x20vec3\x20vSphericalZX;\x0a#endif\x0a#endif\x0a#define\x20ADDITIONAL_FRAGMENT_DECLARATION\x0a',_0x367fde(0x1398d),_0x367fde(0x13ff7),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0xc7b)]=_0x30ae86(0x626),_0x367fde(0x15cb9),_0x367fde(0xf0d3),_0x367fde(0x19fd),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0xb3a)]=_0x30ae86(0x41d),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0x94e)]=_0x30ae86(0x8ba),_0x367fde(0x12f21),_0x367fde(0x13fa8),_0x367fde(0x14b01),_0x367fde(0x17b64),_0x367fde(0x8cd3),_0x367fde(0x766e),_0x367fde(0x2d2b),_0x379a68['v']['IncludesShadersStore'][_0x30ae86(0xaa7)]='#define\x20RECIPROCAL_PI2\x200.15915494\x0a#define\x20RECIPROCAL_PI\x200.31830988618\x0a#define\x20MINIMUMVARIANCE\x200.0005\x0afloat\x20convertRoughnessToAverageSlope(float\x20roughness)\x0a{\x0areturn\x20square(roughness)+MINIMUMVARIANCE;\x0a}\x0afloat\x20fresnelGrazingReflectance(float\x20reflectance0)\x20{\x0afloat\x20reflectance90=saturate(reflectance0*25.0);\x0areturn\x20reflectance90;\x0a}\x0avec2\x20getAARoughnessFactors(vec3\x20normalVector)\x20{\x0a#ifdef\x20SPECULARAA\x0avec3\x20nDfdx=dFdx(normalVector.xyz);\x0avec3\x20nDfdy=dFdy(normalVector.xyz);\x0afloat\x20slopeSquare=max(dot(nDfdx,nDfdx),dot(nDfdy,nDfdy));\x0afloat\x20geometricRoughnessFactor=pow(saturate(slopeSquare),0.333);\x0afloat\x20geometricAlphaGFactor=sqrt(slopeSquare);\x0ageometricAlphaGFactor*=0.75;\x0areturn\x20vec2(geometricRoughnessFactor,geometricAlphaGFactor);\x0a#else\x0areturn\x20vec2(0.);\x0a#endif\x0a}\x0a#ifdef\x20ANISOTROPIC\x0avec2\x20getAnisotropicRoughness(float\x20alphaG,float\x20anisotropy)\x20{\x0afloat\x20alphaT=max(alphaG*(1.0+anisotropy),MINIMUMVARIANCE);\x0afloat\x20alphaB=max(alphaG*(1.0-anisotropy),MINIMUMVARIANCE);\x0areturn\x20vec2(alphaT,alphaB);\x0a}\x0avec3\x20getAnisotropicBentNormals(const\x20vec3\x20T,const\x20vec3\x20B,const\x20vec3\x20N,const\x20vec3\x20V,float\x20anisotropy)\x20{\x0avec3\x20anisotropicFrameDirection=anisotropy>=0.0\x20?\x20B\x20:\x20T;\x0avec3\x20anisotropicFrameTangent=cross(normalize(anisotropicFrameDirection),V);\x0avec3\x20anisotropicFrameNormal=cross(anisotropicFrameTangent,anisotropicFrameDirection);\x0avec3\x20anisotropicNormal=normalize(mix(N,anisotropicFrameNormal,abs(anisotropy)));\x0areturn\x20anisotropicNormal;\x0a}\x0a#endif\x0a#if\x20defined(CLEARCOAT)\x20||\x20defined(SS_REFRACTION)\x0avec3\x20cocaLambert(vec3\x20alpha,float\x20distance)\x20{\x0areturn\x20exp(-alpha*distance);\x0a}\x0avec3\x20cocaLambert(float\x20NdotVRefract,float\x20NdotLRefract,vec3\x20alpha,float\x20thickness)\x20{\x0areturn\x20cocaLambert(alpha,(thickness*((NdotLRefract+NdotVRefract)/(NdotLRefract*NdotVRefract))));\x0a}\x0avec3\x20computeColorAtDistanceInMedia(vec3\x20color,float\x20distance)\x20{\x0areturn\x20-log(color)/distance;\x0a}\x0avec3\x20computeClearCoatAbsorption(float\x20NdotVRefract,float\x20NdotLRefract,vec3\x20clearCoatColor,float\x20clearCoatThickness,float\x20clearCoatIntensity)\x20{\x0avec3\x20clearCoatAbsorption=mix(vec3(1.0),\x0acocaLambert(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness),\x0aclearCoatIntensity);\x0areturn\x20clearCoatAbsorption;\x0a}\x0a#endif\x0a#ifdef\x20MICROSURFACEAUTOMATIC\x0afloat\x20computeDefaultMicroSurface(float\x20microSurface,vec3\x20reflectivityColor)\x0a{\x0aconst\x20float\x20kReflectivityNoAlphaWorkflow_SmoothnessMax=0.95;\x0afloat\x20reflectivityLuminance=getLuminance(reflectivityColor);\x0afloat\x20reflectivityLuma=sqrt(reflectivityLuminance);\x0amicroSurface=reflectivityLuma*kReflectivityNoAlphaWorkflow_SmoothnessMax;\x0areturn\x20microSurface;\x0a}\x0a#endif\x0a',_0x367fde(0x171c4),_0x367fde(0x1817f),_0x367fde(0x11b66),_0x379a68['v'][_0x30ae86(0x121)]['pbrDirectLightingSetupFunctions']=_0x30ae86(0xa93),_0x379a68['v']['IncludesShadersStore'][_0x30ae86(0x179)]=_0x30ae86(0x558),_0x367fde(0xe90b),_0x367fde(0x1761a),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0xb00)]=_0x30ae86(0x63f),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0x9f5)]='#if\x20defined(REFLECTION)\x20||\x20defined(SS_REFRACTION)\x0afloat\x20getLodFromAlphaG(float\x20cubeMapDimensionPixels,float\x20microsurfaceAverageSlope)\x20{\x0afloat\x20microsurfaceAverageSlopeTexels=cubeMapDimensionPixels*microsurfaceAverageSlope;\x0afloat\x20lod=log2(microsurfaceAverageSlopeTexels);\x0areturn\x20lod;\x0a}\x0afloat\x20getLinearLodFromRoughness(float\x20cubeMapDimensionPixels,float\x20roughness)\x20{\x0afloat\x20lod=log2(cubeMapDimensionPixels)*roughness;\x0areturn\x20lod;\x0a}\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(RADIANCEOCCLUSION)\x0afloat\x20environmentRadianceOcclusion(float\x20ambientOcclusion,float\x20NdotVUnclamped)\x20{\x0afloat\x20temp=NdotVUnclamped+ambientOcclusion;\x0areturn\x20saturate(square(temp)-1.0+ambientOcclusion);\x0a}\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(HORIZONOCCLUSION)\x0afloat\x20environmentHorizonOcclusion(vec3\x20view,vec3\x20normal,vec3\x20geometricNormal)\x20{\x0avec3\x20reflection=reflect(view,normal);\x0afloat\x20temp=saturate(1.0+1.1*dot(reflection,geometricNormal));\x0areturn\x20square(temp);\x0a}\x0a#endif\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20||\x20defined(SS_LODINREFRACTIONALPHA)\x0a#define\x20UNPACK_LOD(x)\x20(1.0-x)*255.0\x0afloat\x20getLodFromAlphaG(float\x20cubeMapDimensionPixels,float\x20alphaG,float\x20NdotV)\x20{\x0afloat\x20microsurfaceAverageSlope=alphaG;\x0amicrosurfaceAverageSlope*=sqrt(abs(NdotV));\x0areturn\x20getLodFromAlphaG(cubeMapDimensionPixels,microsurfaceAverageSlope);\x0a}\x0a#endif\x0a',_0x367fde(0xc907),_0x367fde(0x5a2d),_0x367fde(0x13827),_0x367fde(0xec4f),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0x50f)]=_0x30ae86(0xc0c),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0x506)]=_0x30ae86(0x7ec),_0x379a68['v']['IncludesShadersStore'][_0x30ae86(0xbb6)]='struct\x20ambientOcclusionOutParams\x0a{\x0avec3\x20ambientOcclusionColor;\x0a#if\x20DEBUGMODE>0\x0avec3\x20ambientOcclusionColorMap;\x0a#endif\x0a};\x0a#define\x20pbr_inline\x0avoid\x20ambientOcclusionBlock(\x0a#ifdef\x20AMBIENT\x0ain\x20vec3\x20ambientOcclusionColorMap_,\x0ain\x20vec4\x20vAmbientInfos,\x0a#endif\x0aout\x20ambientOcclusionOutParams\x20outParams\x0a)\x0a{\x0avec3\x20ambientOcclusionColor=vec3(1.,1.,1.);\x0a#ifdef\x20AMBIENT\x0avec3\x20ambientOcclusionColorMap=ambientOcclusionColorMap_*vAmbientInfos.y;\x0a#ifdef\x20AMBIENTINGRAYSCALE\x0aambientOcclusionColorMap=vec3(ambientOcclusionColorMap.r,ambientOcclusionColorMap.r,ambientOcclusionColorMap.r);\x0a#endif\x0aambientOcclusionColor=mix(ambientOcclusionColor,ambientOcclusionColorMap,vAmbientInfos.z);\x0a#if\x20DEBUGMODE>0\x0aoutParams.ambientOcclusionColorMap=ambientOcclusionColorMap;\x0a#endif\x0a#endif\x0aoutParams.ambientOcclusionColor=ambientOcclusionColor;\x0a}\x0a',_0x379a68['v']['IncludesShadersStore'][_0x30ae86(0xa80)]='#ifdef\x20ALPHAFRESNEL\x0a#if\x20defined(ALPHATEST)\x20||\x20defined(ALPHABLEND)\x0astruct\x20alphaFresnelOutParams\x0a{\x0afloat\x20alpha;\x0a};\x0a#define\x20pbr_inline\x0avoid\x20alphaFresnelBlock(\x0ain\x20vec3\x20normalW,\x0ain\x20vec3\x20viewDirectionW,\x0ain\x20float\x20alpha,\x0ain\x20float\x20microSurface,\x0aout\x20alphaFresnelOutParams\x20outParams\x0a)\x0a{\x0afloat\x20opacityPerceptual=alpha;\x0a#ifdef\x20LINEARALPHAFRESNEL\x0afloat\x20opacity0=opacityPerceptual;\x0a#else\x0afloat\x20opacity0=opacityPerceptual*opacityPerceptual;\x0a#endif\x0afloat\x20opacity90=fresnelGrazingReflectance(opacity0);\x0avec3\x20normalForward=faceforward(normalW,-viewDirectionW,normalW);\x0aoutParams.alpha=getReflectanceFromAnalyticalBRDFLookup_Jones(saturate(dot(viewDirectionW,normalForward)),vec3(opacity0),vec3(opacity90),sqrt(microSurface)).x;\x0a#ifdef\x20ALPHATEST\x0aif\x20(outParams.alpha<ALPHATESTVALUE)\x0adiscard;\x0a#ifndef\x20ALPHABLEND\x0aoutParams.alpha=1.0;\x0a#endif\x0a#endif\x0a}\x0a#endif\x0a#endif\x0a',_0x379a68['v'][_0x30ae86(0x121)]['pbrBlockAnisotropic']=_0x30ae86(0xcd2),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0x811)]=_0x30ae86(0xd0e),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0xbdc)]=_0x30ae86(0x75f),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0x3fb)]=_0x30ae86(0x117),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0x8d2)]='struct\x20iridescenceOutParams\x0a{\x0afloat\x20iridescenceIntensity;\x0afloat\x20iridescenceIOR;\x0afloat\x20iridescenceThickness;\x0avec3\x20specularEnvironmentR0;\x0a};\x0a#ifdef\x20IRIDESCENCE\x0a#define\x20pbr_inline\x0a#define\x20inline\x0avoid\x20iridescenceBlock(\x0ain\x20vec4\x20vIridescenceParams,\x0ain\x20float\x20viewAngle,\x0ain\x20vec3\x20specularEnvironmentR0,\x0a#ifdef\x20IRIDESCENCE_TEXTURE\x0ain\x20vec2\x20iridescenceMapData,\x0a#endif\x0a#ifdef\x20IRIDESCENCE_THICKNESS_TEXTURE\x0ain\x20vec2\x20iridescenceThicknessMapData,\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0ain\x20float\x20NdotVUnclamped,\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0ain\x20vec2\x20clearCoatMapData,\x0a#endif\x0a#endif\x0aout\x20iridescenceOutParams\x20outParams\x0a)\x0a{\x0afloat\x20iridescenceIntensity=vIridescenceParams.x;\x0afloat\x20iridescenceIOR=vIridescenceParams.y;\x0afloat\x20iridescenceThicknessMin=vIridescenceParams.z;\x0afloat\x20iridescenceThicknessMax=vIridescenceParams.w;\x0afloat\x20iridescenceThicknessWeight=1.;\x0a#ifdef\x20IRIDESCENCE_TEXTURE\x0airidescenceIntensity*=iridescenceMapData.x;\x0a#ifdef\x20IRIDESCENCE_USE_THICKNESS_FROM_MAINTEXTURE\x0airidescenceThicknessWeight=iridescenceMapData.g;\x0a#endif\x0a#endif\x0a#if\x20defined(IRIDESCENCE_THICKNESS_TEXTURE)\x0airidescenceThicknessWeight=iridescenceThicknessMapData.g;\x0a#endif\x0afloat\x20iridescenceThickness=mix(iridescenceThicknessMin,iridescenceThicknessMax,iridescenceThicknessWeight);\x0afloat\x20topIor=1.;\x20\x0a#ifdef\x20CLEARCOAT\x0afloat\x20clearCoatIntensity=vClearCoatParams.x;\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0aclearCoatIntensity*=clearCoatMapData.x;\x0a#endif\x0atopIor=mix(1.0,vClearCoatRefractionParams.w-1.,clearCoatIntensity);\x0aviewAngle=sqrt(1.0+square(1.0/topIor)*(square(NdotVUnclamped)-1.0));\x0a#endif\x0avec3\x20iridescenceFresnel=evalIridescence(topIor,iridescenceIOR,viewAngle,iridescenceThickness,specularEnvironmentR0);\x0aoutParams.specularEnvironmentR0=mix(specularEnvironmentR0,iridescenceFresnel,iridescenceIntensity);\x0aoutParams.iridescenceIntensity=iridescenceIntensity;\x0aoutParams.iridescenceThickness=iridescenceThickness;\x0aoutParams.iridescenceIOR=iridescenceIOR;\x0a}\x0a#endif\x0a',_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0x3f0)]=_0x30ae86(0xa54),_0x367fde(0x10716),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0x7ae)]=_0x30ae86(0xaf6),_0x367fde(0xdc9a),_0x379a68['v'][_0x30ae86(0x121)]['pbrBlockNormalFinal']=_0x30ae86(0x977),_0x367fde(0xace7),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0xa2b)]=_0x30ae86(0x660),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0x892)]=_0x30ae86(0x1ec),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0x12b)]='float\x20reflectance=max(max(reflectivityOut.surfaceReflectivityColor.r,reflectivityOut.surfaceReflectivityColor.g),reflectivityOut.surfaceReflectivityColor.b);\x0avec3\x20specularEnvironmentR0=reflectivityOut.surfaceReflectivityColor.rgb;\x0a#ifdef\x20METALLICWORKFLOW\x0avec3\x20specularEnvironmentR90=vec3(metallicReflectanceFactors.a);\x0a#else\x20\x0avec3\x20specularEnvironmentR90=vec3(1.0,1.0,1.0);\x0a#endif\x0a#ifdef\x20ALPHAFRESNEL\x0afloat\x20reflectance90=fresnelGrazingReflectance(reflectance);\x0aspecularEnvironmentR90=specularEnvironmentR90*reflectance90;\x0a#endif\x0a',_0x379a68['v'][_0x30ae86(0x121)]['pbrBlockReflectance']=_0x30ae86(0x299),_0x379a68['v'][_0x30ae86(0x121)]['pbrBlockDirectLighting']=_0x30ae86(0x5f1),_0x367fde(0x2144),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0xa70)]='#if\x20defined(ENVIRONMENTBRDF)\x0a#ifdef\x20MS_BRDF_ENERGY_CONSERVATION\x0avec3\x20energyConservationFactor=getEnergyConservationFactor(clearcoatOut.specularEnvironmentR0,environmentBrdf);\x0a#endif\x0a#endif\x0a#ifndef\x20METALLICWORKFLOW\x0a#ifdef\x20SPECULAR_GLOSSINESS_ENERGY_CONSERVATION\x0asurfaceAlbedo.rgb=(1.-reflectance)*surfaceAlbedo.rgb;\x0a#endif\x0a#endif\x0a#if\x20defined(SHEEN)\x20&&\x20defined(SHEEN_ALBEDOSCALING)\x20&&\x20defined(ENVIRONMENTBRDF)\x0asurfaceAlbedo.rgb=sheenOut.sheenAlbedoScaling*surfaceAlbedo.rgb;\x0a#endif\x0a#ifdef\x20REFLECTION\x0avec3\x20finalIrradiance=reflectionOut.environmentIrradiance;\x0a#if\x20defined(CLEARCOAT)\x0afinalIrradiance*=clearcoatOut.conservationFactor;\x0a#if\x20defined(CLEARCOAT_TINT)\x0afinalIrradiance*=clearcoatOut.absorption;\x0a#endif\x0a#endif\x0a#if\x20defined(SS_REFRACTION)\x0afinalIrradiance*=subSurfaceOut.refractionFactorForIrradiance;\x0a#endif\x0a#if\x20defined(SS_TRANSLUCENCY)\x0afinalIrradiance*=(1.0-subSurfaceOut.translucencyIntensity);\x0afinalIrradiance+=subSurfaceOut.refractionIrradiance;\x0a#endif\x0afinalIrradiance*=surfaceAlbedo.rgb;\x0afinalIrradiance*=vLightingIntensity.z;\x0afinalIrradiance*=aoOut.ambientOcclusionColor;\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20finalSpecular=specularBase;\x0afinalSpecular=max(finalSpecular,0.0);\x0avec3\x20finalSpecularScaled=finalSpecular*vLightingIntensity.x*vLightingIntensity.w;\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(MS_BRDF_ENERGY_CONSERVATION)\x0afinalSpecularScaled*=energyConservationFactor;\x0a#endif\x0a#if\x20defined(SHEEN)\x20&&\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(SHEEN_ALBEDOSCALING)\x0afinalSpecularScaled*=sheenOut.sheenAlbedoScaling;\x0a#endif\x0a#endif\x0a#ifdef\x20REFLECTION\x0avec3\x20finalRadiance=reflectionOut.environmentRadiance.rgb;\x0afinalRadiance*=subSurfaceOut.specularEnvironmentReflectance;\x0avec3\x20finalRadianceScaled=finalRadiance*vLightingIntensity.z;\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(MS_BRDF_ENERGY_CONSERVATION)\x0afinalRadianceScaled*=energyConservationFactor;\x0a#endif\x0a#if\x20defined(SHEEN)\x20&&\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(SHEEN_ALBEDOSCALING)\x0afinalRadianceScaled*=sheenOut.sheenAlbedoScaling;\x0a#endif\x0a#endif\x0a#ifdef\x20SHEEN\x0avec3\x20finalSheen=sheenBase*sheenOut.sheenColor;\x0afinalSheen=max(finalSheen,0.0);\x0avec3\x20finalSheenScaled=finalSheen*vLightingIntensity.x*vLightingIntensity.w;\x0a#if\x20defined(CLEARCOAT)\x20&&\x20defined(REFLECTION)\x20&&\x20defined(ENVIRONMENTBRDF)\x0asheenOut.finalSheenRadianceScaled*=clearcoatOut.conservationFactor;\x0a#if\x20defined(CLEARCOAT_TINT)\x0asheenOut.finalSheenRadianceScaled*=clearcoatOut.absorption;\x0a#endif\x0a#endif\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0avec3\x20finalClearCoat=clearCoatBase;\x0afinalClearCoat=max(finalClearCoat,0.0);\x0avec3\x20finalClearCoatScaled=finalClearCoat*vLightingIntensity.x*vLightingIntensity.w;\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(MS_BRDF_ENERGY_CONSERVATION)\x0afinalClearCoatScaled*=clearcoatOut.energyConservationFactorClearCoat;\x0a#endif\x0a#ifdef\x20SS_REFRACTION\x0asubSurfaceOut.finalRefraction*=clearcoatOut.conservationFactor;\x0a#ifdef\x20CLEARCOAT_TINT\x0asubSurfaceOut.finalRefraction*=clearcoatOut.absorption;\x0a#endif\x0a#endif\x0a#endif\x0a#ifdef\x20ALPHABLEND\x0afloat\x20luminanceOverAlpha=0.0;\x0a#if\x20defined(REFLECTION)\x20&&\x20defined(RADIANCEOVERALPHA)\x0aluminanceOverAlpha+=getLuminance(finalRadianceScaled);\x0a#if\x20defined(CLEARCOAT)\x0aluminanceOverAlpha+=getLuminance(clearcoatOut.finalClearCoatRadianceScaled);\x0a#endif\x0a#endif\x0a#if\x20defined(SPECULARTERM)\x20&&\x20defined(SPECULAROVERALPHA)\x0aluminanceOverAlpha+=getLuminance(finalSpecularScaled);\x0a#endif\x0a#if\x20defined(CLEARCOAT)\x20&&\x20defined(CLEARCOATOVERALPHA)\x0aluminanceOverAlpha+=getLuminance(finalClearCoatScaled);\x0a#endif\x0a#if\x20defined(RADIANCEOVERALPHA)\x20||\x20defined(SPECULAROVERALPHA)\x20||\x20defined(CLEARCOATOVERALPHA)\x0aalpha=saturate(alpha+luminanceOverAlpha*luminanceOverAlpha);\x0a#endif\x0a#endif\x0a',_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0xd0f)]=_0x30ae86(0x415),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0x8d0)]=_0x30ae86(0x876),_0x367fde(0x614f),_0x367fde(0xf45c),_0x379a68['v'][_0x30ae86(0x121)][_0x30ae86(0x8cc)]='#if\x20defined(IMAGEPROCESSINGPOSTPROCESS)\x20||\x20defined(SS_SCATTERING)\x0a#if\x20!defined(SKIPFINALCOLORCLAMP)\x0afinalColor.rgb=clamp(finalColor.rgb,0.,30.0);\x0a#endif\x0a#else\x0afinalColor=applyImageProcessing(finalColor);\x0a#endif\x0afinalColor.a*=visibility;\x0a#ifdef\x20PREMULTIPLYALPHA\x0afinalColor.rgb*=finalColor.a;\x0a#endif\x0a',_0x367fde(0x34d7),_0x379a68['v'][_0x30ae86(0x121)]['pbrDebug']=_0x30ae86(0x1f4),_0x379a68['v'][_0x30ae86(0xba5)][_0x30ae86(0x1d8)]=_0x30ae86(0x525);},0x69bc:(_0x4bb05d,_0x1f3e15,_0x1e859f)=>{var _0x1aeabe=a7_0x3304fb,_0xf070a5=_0x1e859f(0x26fa);_0x1e859f(0x28cb),_0xf070a5['v'][_0x1aeabe(0x121)][_0x1aeabe(0xc05)]=_0x1aeabe(0x7bf),_0x1e859f(0x1398d),_0x1e859f(0x6f2f),_0x1e859f(0x13ff7),_0x1e859f(0x8cd3),_0x1e859f(0x11c69),_0x1e859f(0x2648),_0x1e859f(0xe7da),_0x1e859f(0x124cc),_0x1e859f(0x12d29),_0x1e859f(0x11b66),_0x1e859f(0x35c4),_0x1e859f(0xd4f3),_0x1e859f(0x1162f),_0x1e859f(0x17cfd),_0x1e859f(0xd6d4),_0x1e859f(0x11b65),_0x1e859f(0x12771),_0x1e859f(0x14b01),_0x1e859f(0x13d7),_0x1e859f(0x1201e),_0x1e859f(0x16c62),_0x1e859f(0x9e45),_0x1e859f(0x1396d),_0x1e859f(0x1963),_0x1e859f(0x5c59),_0x1e859f(0x44ee),_0x1e859f(0xf72d),_0x1e859f(0xc24a),_0x1e859f(0xeda3),_0x1e859f(0xf1cf),_0x1e859f(0x4730),_0x1e859f(0x8641),_0xf070a5['v'][_0x1aeabe(0xba5)][_0x1aeabe(0x90a)]=_0x1aeabe(0x58b);},0x3e84:(_0x275332,_0x3c3ad3,_0x586047)=>{var _0x18b110=a7_0x3304fb;_0x586047(0x26fa)['v'][_0x18b110(0xba5)][_0x18b110(0x319)]=_0x18b110(0x385);},0x94a5:(_0x1c8424,_0x53f4df,_0x44c9a4)=>{var _0x50e79a=a7_0x3304fb;_0x44c9a4(0x26fa)['v'][_0x50e79a(0xba5)][_0x50e79a(0xc40)]=_0x50e79a(0x1b5);},0xffc7:(_0x574296,_0x2a1091,_0xf479e)=>{var _0x9c2c98=a7_0x3304fb;_0xf479e(0x26fa)['v']['ShadersStore'][_0x9c2c98(0x870)]=_0x9c2c98(0x6a2);},0x3c51:(_0xaad37a,_0x9ced70,_0x5df461)=>{var _0x2361e7=a7_0x3304fb,_0x1a897f=_0x5df461(0x26fa);_0x5df461(0x8cd3),_0x1a897f['v'][_0x2361e7(0xba5)][_0x2361e7(0x889)]=_0x2361e7(0xb96);},0xe352:(_0xa3bc16,_0x59d8b5,_0x353895)=>{var _0x5655ca=a7_0x3304fb,_0x240841=_0x353895(0x26fa);_0x353895(0x8cd3),_0x240841['v'][_0x5655ca(0xba5)][_0x5655ca(0x759)]=_0x5655ca(0x9ce);},0x47d3:(_0x4608a8,_0x345706,_0x234874)=>{var _0x134d87=a7_0x3304fb;_0x234874(0x26fa)['v'][_0x134d87(0xba5)][_0x134d87(0xc83)]=_0x134d87(0xb92);},0x9ba9:(_0x5876ab,_0x40cc2c,_0x1e0e4f)=>{var _0x3af90e=a7_0x3304fb;_0x1e0e4f(0x26fa)['v'][_0x3af90e(0xba5)][_0x3af90e(0xb67)]=_0x3af90e(0x331);},0x1198b:(_0x240700,_0x1951d7,_0x4c9255)=>{var _0x16a828=a7_0x3304fb,_0x328e16=_0x4c9255(0x26fa);_0x4c9255(0x8cd3),_0x328e16['v'][_0x16a828(0x121)][_0x16a828(0xccf)]=_0x16a828(0x8a7),_0x328e16['v'][_0x16a828(0xba5)][_0x16a828(0x9d5)]=_0x16a828(0xc65);},0xe884:(_0x4243cd,_0x144d97,_0x29a2d8)=>{_0x29a2d8(0x26fa)['v']['ShadersStore']['screenSpaceReflection2BlurPixelShader']='#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20TEXTUREFUNC(s,c,lod)\x20texture2DLodEXT(s,c,lod)\x0a#else\x0a#define\x20TEXTUREFUNC(s,c,bias)\x20texture2D(s,c,bias)\x0a#endif\x0auniform\x20sampler2D\x20textureSampler;\x0avarying\x20vec2\x20vUV;\x0auniform\x20vec2\x20texelOffsetScale;\x0aconst\x20float\x20weights[8]=float[8]\x20(0.071303,0.131514,0.189879,0.321392,0.452906,\x200.584419,0.715932,0.847445);\x0avoid\x20processSample(vec2\x20uv,float\x20i,vec2\x20stepSize,inout\x20vec4\x20accumulator,inout\x20float\x20denominator)\x0a{\x0avec2\x20offsetUV=stepSize*i+uv;\x0afloat\x20coefficient=weights[int(2.0-abs(i))];\x0aaccumulator+=TEXTUREFUNC(textureSampler,offsetUV,0.0)*coefficient;\x0adenominator+=coefficient;\x0a}\x0avoid\x20main()\x0a{\x0avec4\x20colorFull=TEXTUREFUNC(textureSampler,vUV,0.0);\x0aif\x20(dot(colorFull,vec4(1.0))==0.0)\x20{\x0agl_FragColor=colorFull;\x0areturn;\x0a}\x0afloat\x20blurRadius=colorFull.a*255.0;\x20\x0avec2\x20stepSize=texelOffsetScale.xy*blurRadius;\x0avec4\x20accumulator=TEXTUREFUNC(textureSampler,vUV,0.0)*0.214607;\x0afloat\x20denominator=0.214607;\x0aprocessSample(vUV,1.0,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*0.2,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*0.4,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*0.6,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*0.8,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*1.2,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*1.4,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*1.6,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*1.8,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*2.0,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*0.2,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*0.4,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*0.6,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*0.8,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*1.2,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*1.4,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*1.6,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*1.8,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*2.0,stepSize,accumulator,denominator);\x0agl_FragColor=vec4(accumulator.rgb/denominator,colorFull.a);\x0a}\x0a';},0xa5df:(_0x20ec49,_0x19b5f8,_0x418f8f)=>{var _0x4bc989=a7_0x3304fb,_0x571f6d=_0x418f8f(0x26fa);_0x418f8f(0x8cd3),_0x571f6d['v']['ShadersStore'][_0x4bc989(0xcab)]='uniform\x20sampler2D\x20textureSampler;\x20\x0auniform\x20sampler2D\x20mainSampler;\x0auniform\x20sampler2D\x20reflectivitySampler;\x0auniform\x20float\x20strength;\x0auniform\x20float\x20reflectionSpecularFalloffExponent;\x0auniform\x20float\x20reflectivityThreshold;\x0avarying\x20vec2\x20vUV;\x0a#include<helperFunctions>\x0avoid\x20main()\x0a{\x0a#ifdef\x20SSRAYTRACE_DEBUG\x0agl_FragColor=texture2D(textureSampler,vUV);\x0a#else\x0avec3\x20SSR=texture2D(textureSampler,vUV).rgb;\x0avec4\x20color=texture2D(mainSampler,vUV);\x0avec4\x20reflectivity=texture2D(reflectivitySampler,vUV);\x0aif\x20(max(reflectivity.r,max(reflectivity.g,reflectivity.b))<=reflectivityThreshold)\x20{\x0agl_FragColor=color;\x0areturn;\x0a}\x0a#ifdef\x20SSR_INPUT_IS_GAMMA_SPACE\x0acolor=toLinearSpace(color);\x0a#endif\x0avec3\x20reflectionMultiplier=clamp(pow(reflectivity.rgb*strength,vec3(reflectionSpecularFalloffExponent)),0.0,1.0);\x0avec3\x20colorMultiplier=1.0-reflectionMultiplier;\x0avec3\x20finalColor=(color.rgb*colorMultiplier)+(SSR*reflectionMultiplier);\x0a#ifdef\x20SSR_OUTPUT_IS_GAMMA_SPACE\x0afinalColor=toGammaSpace(finalColor);\x0a#endif\x0agl_FragColor=vec4(finalColor,color.a);\x0a#endif\x0a}\x0a';},0x4f8e:(_0xfee8e5,_0x4c72d3,_0x3d627e)=>{var _0x550d66=a7_0x3304fb,_0x1c1811=_0x3d627e(0x26fa);_0x3d627e(0x4a11),_0x1c1811['v'][_0x550d66(0x121)][_0x550d66(0x4fc)]='float\x20bayerDither2(vec2\x20_P)\x20{\x0areturn\x20mod(2.0*_P.y+_P.x+1.0,4.0);\x0a}\x0afloat\x20bayerDither4(vec2\x20_P)\x20{\x0avec2\x20P1=mod(_P,2.0);\x20\x0avec2\x20P2=floor(0.5*mod(_P,4.0));\x20\x0areturn\x204.0*bayerDither2(P1)+bayerDither2(P2);\x0a}\x0afloat\x20bayerDither8(vec2\x20_P)\x20{\x0avec2\x20P1=mod(_P,2.0);\x20\x0avec2\x20P2=floor(0.5\x20*mod(_P,4.0));\x20\x0avec2\x20P4=floor(0.25*mod(_P,8.0));\x20\x0areturn\x204.0*(4.0*bayerDither2(P1)+bayerDither2(P2))+bayerDither2(P4);\x0a}\x0a',_0x1c1811['v']['IncludesShadersStore'][_0x550d66(0x2e7)]=_0x550d66(0x5c4),_0x3d627e(0x13fa8),_0x3d627e(0x10716),_0x1c1811['v'][_0x550d66(0x121)][_0x550d66(0x471)]=_0x550d66(0x79c),_0x1c1811['v']['ShadersStore'][_0x550d66(0x710)]=_0x550d66(0x63a);},0xea7f:(_0x3fff50,_0x5e8750,_0x23e28e)=>{var _0x562ffd=a7_0x3304fb,_0x22f422=_0x23e28e(0x26fa);_0x23e28e(0x11c69),_0x23e28e(0x2648),_0x23e28e(0x11b65),_0x23e28e(0x12771),_0x23e28e(0x8cd3),_0x22f422['v']['IncludesShadersStore']['sceneVertexDeclaration']='uniform\x20mat4\x20viewProjection;\x0a#ifdef\x20MULTIVIEW\x0auniform\x20mat4\x20viewProjectionR;\x0a#endif\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0auniform\x20vec4\x20vEyePosition;\x0a',_0x22f422['v'][_0x562ffd(0x121)][_0x562ffd(0x8bd)]='uniform\x20mat4\x20world;\x0auniform\x20float\x20visibility;\x0a',_0x22f422['v'][_0x562ffd(0x121)][_0x562ffd(0x5da)]=_0x562ffd(0x216),_0x23e28e(0xb1dc),_0x23e28e(0x10150),_0x22f422['v']['IncludesShadersStore'][_0x562ffd(0x5db)]=_0x562ffd(0x1b1),_0x22f422['v']['IncludesShadersStore'][_0x562ffd(0x16c)]=_0x562ffd(0x773),_0x23e28e(0xd4f3),_0x23e28e(0x13d7),_0x23e28e(0x1201e),_0x23e28e(0x16c62),_0x23e28e(0x9e45),_0x23e28e(0x1396d),_0x22f422['v']['IncludesShadersStore'][_0x562ffd(0xc03)]='#if\x20SM_NORMALBIAS==1\x0a#if\x20SM_DIRECTIONINLIGHTDATA==1\x0avec3\x20worldLightDirSM=normalize(-lightDataSM.xyz);\x0a#else\x0avec3\x20directionToLightSM=lightDataSM.xyz-worldPos.xyz;\x0avec3\x20worldLightDirSM=normalize(directionToLightSM);\x0a#endif\x0afloat\x20ndlSM=dot(vNormalW,worldLightDirSM);\x0afloat\x20sinNLSM=sqrt(1.0-ndlSM*ndlSM);\x0afloat\x20normalBiasSM=biasAndScaleSM.y*sinNLSM;\x0aworldPos.xyz-=vNormalW*normalBiasSM;\x0a#endif\x0a',_0x22f422['v'][_0x562ffd(0x121)]['shadowMapVertexMetric']=_0x562ffd(0x815),_0x23e28e(0xc24a),_0x22f422['v'][_0x562ffd(0xba5)][_0x562ffd(0xc62)]=_0x562ffd(0x5f9);},0x5d33:(_0x4403bd,_0xef8783,_0x3da715)=>{_0x3da715(0x26fa)['v']['ShadersStore']['sharpenPixelShader']='varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20screenSize;\x0auniform\x20vec2\x20sharpnessAmounts;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec2\x20onePixel=vec2(1.0,1.0)/screenSize;\x0avec4\x20color=texture2D(textureSampler,vUV);\x0avec4\x20edgeDetection=texture2D(textureSampler,vUV+onePixel*vec2(0,-1))\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(-1,0))\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(1,0))\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(0,1))\x20-\x0acolor*4.0;\x0agl_FragColor=max(vec4(color.rgb*sharpnessAmounts.y,color.a)-(sharpnessAmounts.x*vec4(edgeDetection.rgb,0)),0.);\x0a}';},0x15d0b:(_0x1c4588,_0x42a099,_0x22d621)=>{var _0x387be6=a7_0x3304fb;_0x22d621(0x26fa)['v'][_0x387be6(0xba5)]['spriteMapPixelShader']=_0x387be6(0x59a);},0xfdf9:(_0xe23d38,_0x3869c6,_0x38b373)=>{var _0x1f8e1b=a7_0x3304fb;_0x38b373(0x26fa)['v'][_0x1f8e1b(0xba5)][_0x1f8e1b(0xa0d)]='precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0aattribute\x20vec3\x20normal;\x0aattribute\x20vec2\x20uv;\x0avarying\x20vec3\x20vPosition;\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec2\x20tUV;\x0avarying\x20vec2\x20stageUnits;\x0avarying\x20vec2\x20levelUnits;\x0avarying\x20vec2\x20tileID;\x0auniform\x20float\x20time;\x0auniform\x20mat4\x20worldViewProjection;\x0auniform\x20vec2\x20outputSize;\x0auniform\x20vec2\x20stageSize;\x0auniform\x20vec2\x20spriteMapSize;\x0auniform\x20float\x20stageScale;\x0avoid\x20main()\x20{\x0avec4\x20p=vec4(\x20position,1.\x20);\x0avPosition=p.xyz;\x0avUV=uv;\x0atUV=uv*stageSize;\x20\x0agl_Position=worldViewProjection*p;\x0a}';},0x1546d:(_0x2bc8e7,_0x373c8c,_0x1a5528)=>{var _0x49cf6a=a7_0x3304fb;_0x1a5528(0x26fa)['v'][_0x49cf6a(0xba5)][_0x49cf6a(0x1f9)]='uniform\x20sampler2D\x20textureSampler;\x0avarying\x20vec2\x20vUV;\x0a#ifdef\x20SSAO\x0auniform\x20sampler2D\x20randomSampler;\x0auniform\x20float\x20randTextureTiles;\x0auniform\x20float\x20samplesFactor;\x0auniform\x20vec3\x20sampleSphere[SAMPLES];\x0auniform\x20float\x20totalStrength;\x0auniform\x20float\x20radius;\x0auniform\x20float\x20area;\x0auniform\x20float\x20fallOff;\x0auniform\x20float\x20base;\x0avec3\x20normalFromDepth(float\x20depth,vec2\x20coords)\x0a{\x0avec2\x20offset1=vec2(0.0,radius);\x0avec2\x20offset2=vec2(radius,0.0);\x0afloat\x20depth1=texture2D(textureSampler,coords+offset1).r;\x0afloat\x20depth2=texture2D(textureSampler,coords+offset2).r;\x0avec3\x20p1=vec3(offset1,depth1-depth);\x0avec3\x20p2=vec3(offset2,depth2-depth);\x0avec3\x20normal=cross(p1,p2);\x0anormal.z=-normal.z;\x0areturn\x20normalize(normal);\x0a}\x0avoid\x20main()\x0a{\x0avec3\x20random=normalize(texture2D(randomSampler,vUV*randTextureTiles).rgb);\x0afloat\x20depth=texture2D(textureSampler,vUV).r;\x0avec3\x20position=vec3(vUV,depth);\x0avec3\x20normal=normalFromDepth(depth,vUV);\x0afloat\x20radiusDepth=radius/depth;\x0afloat\x20occlusion=0.0;\x0avec3\x20ray;\x0avec3\x20hemiRay;\x0afloat\x20occlusionDepth;\x0afloat\x20difference;\x0afor\x20(int\x20i=0;\x20i<SAMPLES;\x20i++)\x0a{\x0aray=radiusDepth*reflect(sampleSphere[i],random);\x0ahemiRay=position+sign(dot(ray,normal))*ray;\x0aocclusionDepth=texture2D(textureSampler,clamp(hemiRay.xy,vec2(0.001,0.001),vec2(0.999,0.999))).r;\x0adifference=depth-occlusionDepth;\x0aocclusion+=step(fallOff,difference)*(1.0-smoothstep(fallOff,area,difference));\x0a}\x0afloat\x20ao=1.0-totalStrength*occlusion*samplesFactor;\x0afloat\x20result=clamp(ao+base,0.0,1.0);\x0agl_FragColor.r=result;\x0agl_FragColor.g=result;\x0agl_FragColor.b=result;\x0agl_FragColor.a=1.0;\x0a}\x0a#endif\x0a';},0x2d01:(_0x34c2e2,_0x148b22,_0x2297c5)=>{var _0x1e82cf=a7_0x3304fb;_0x2297c5(0x26fa)['v']['ShadersStore'][_0x1e82cf(0x7cb)]='precision\x20highp\x20float;\x0auniform\x20sampler2D\x20textureSampler;\x0avarying\x20vec2\x20vUV;\x0a#ifdef\x20SSAO\x0afloat\x20scales[16]=float[16](\x0a0.1,\x0a0.11406250000000001,\x0a0.131640625,\x0a0.15625,\x0a0.187890625,\x0a0.2265625,\x0a0.272265625,\x0a0.325,\x0a0.384765625,\x0a0.4515625,\x0a0.525390625,\x0a0.60625,\x0a0.694140625,\x0a0.7890625,\x0a0.891015625,\x0a1.0\x0a);\x0auniform\x20float\x20near;\x0auniform\x20float\x20radius;\x0auniform\x20sampler2D\x20depthSampler;\x0auniform\x20sampler2D\x20randomSampler;\x0auniform\x20sampler2D\x20normalSampler;\x0auniform\x20float\x20randTextureTiles;\x0auniform\x20float\x20samplesFactor;\x0auniform\x20vec3\x20sampleSphere[SAMPLES];\x0auniform\x20float\x20totalStrength;\x0auniform\x20float\x20base;\x0auniform\x20float\x20xViewport;\x0auniform\x20float\x20yViewport;\x0auniform\x20mat3\x20depthProjection;\x0auniform\x20float\x20maxZ;\x0auniform\x20float\x20minZAspect;\x0auniform\x20vec2\x20texelSize;\x0auniform\x20mat4\x20projection;\x0avoid\x20main()\x0a{\x0avec3\x20random=textureLod(randomSampler,vUV*randTextureTiles,0.0).rgb;\x0afloat\x20depth=textureLod(depthSampler,vUV,0.0).r;\x0afloat\x20depthSign=depth/abs(depth);\x0adepth=depth*depthSign;\x0avec3\x20normal=textureLod(normalSampler,vUV,0.0).rgb;\x0afloat\x20occlusion=0.0;\x0afloat\x20correctedRadius=min(radius,minZAspect*depth/near);\x0avec3\x20vViewRay=vec3((vUV.x*2.0-1.0)*xViewport,(vUV.y*2.0-1.0)*yViewport,depthSign);\x0avec3\x20vDepthFactor=depthProjection*vec3(1.0,1.0,depth);\x0avec3\x20origin=vViewRay*vDepthFactor;\x0avec3\x20rvec=random*2.0-1.0;\x0arvec.z=0.0;\x0afloat\x20dotProduct=dot(rvec,normal);\x0arvec=1.0-abs(dotProduct)>1e-2\x20?\x20rvec\x20:\x20vec3(-rvec.y,0.0,rvec.x);\x0avec3\x20tangent=normalize(rvec-normal*dot(rvec,normal));\x0avec3\x20bitangent=cross(normal,tangent);\x0amat3\x20tbn=mat3(tangent,bitangent,normal);\x0afloat\x20difference;\x0afor\x20(int\x20i=0;\x20i<SAMPLES;\x20++i)\x20{\x0avec3\x20samplePosition=scales[(i+int(random.x*16.0))\x20%\x2016]*tbn*sampleSphere[(i+int(random.y*16.0))\x20%\x2016];\x0asamplePosition=samplePosition*correctedRadius+origin;\x0avec4\x20offset=vec4(samplePosition,1.0);\x0aoffset=projection*offset;\x0aoffset.xyz/=offset.w;\x0aoffset.xy=offset.xy*0.5+0.5;\x0aif\x20(offset.x<0.0\x20||\x20offset.y<0.0\x20||\x20offset.x>1.0\x20||\x20offset.y>1.0)\x20{\x0acontinue;\x0a}\x0afloat\x20sampleDepth=abs(textureLod(depthSampler,offset.xy,0.0).r);\x0adifference=depthSign*samplePosition.z-sampleDepth;\x0afloat\x20rangeCheck=1.0-smoothstep(correctedRadius*0.5,correctedRadius,difference);\x0aocclusion+=step(EPSILON,difference)*rangeCheck;\x0a}\x0aocclusion=occlusion*(1.0-smoothstep(maxZ*0.75,maxZ,depth));\x0afloat\x20ao=1.0-totalStrength*occlusion*samplesFactor;\x0afloat\x20result=clamp(ao+base,0.0,1.0);\x0agl_FragColor=vec4(vec3(result),1.0);\x0a}\x0a#endif\x0a#ifdef\x20BLUR\x0auniform\x20float\x20outSize;\x0auniform\x20float\x20soften;\x0auniform\x20float\x20tolerance;\x0auniform\x20int\x20samples;\x0a#ifndef\x20BLUR_BYPASS\x0auniform\x20sampler2D\x20depthSampler;\x0a#ifdef\x20BLUR_LEGACY\x0a#define\x20inline\x0afloat\x20blur13Bilateral(sampler2D\x20image,vec2\x20uv,vec2\x20step)\x20{\x0afloat\x20result=0.0;\x0avec2\x20off1=vec2(1.411764705882353)*step;\x0avec2\x20off2=vec2(3.2941176470588234)*step;\x0avec2\x20off3=vec2(5.176470588235294)*step;\x0afloat\x20compareDepth=abs(textureLod(depthSampler,uv,0.0).r);\x0afloat\x20sampleDepth;\x0afloat\x20weight;\x0afloat\x20weightSum=30.0;\x0aresult+=textureLod(image,uv,0.0).r*30.0;\x0asampleDepth=abs(textureLod(depthSampler,uv+off1,0.0).r);\x0aweight=clamp(1.0/(\x200.003+abs(compareDepth-sampleDepth)),0.0,30.0);\x0aweightSum+=\x20weight;\x0aresult+=textureLod(image,uv+off1,0.0).r*weight;\x0asampleDepth=abs(textureLod(depthSampler,uv-off1,0.0).r);\x0aweight=clamp(1.0/(\x200.003+abs(compareDepth-sampleDepth)),0.0,30.0);\x0aweightSum+=\x20weight;\x0aresult+=textureLod(image,uv-off1,0.0).r*weight;\x0asampleDepth=abs(textureLod(depthSampler,uv+off2,0.0).r);\x0aweight=clamp(1.0/(\x200.003+abs(compareDepth-sampleDepth)),0.0,30.0);\x0aweightSum+=weight;\x0aresult+=textureLod(image,uv+off2,0.0).r*weight;\x0asampleDepth=abs(textureLod(depthSampler,uv-off2,0.0).r);\x0aweight=clamp(1.0/(\x200.003+abs(compareDepth-sampleDepth)),0.0,30.0);\x0aweightSum+=weight;\x0aresult+=textureLod(image,uv-off2,0.0).r*weight;\x0asampleDepth=abs(textureLod(depthSampler,uv+off3,0.0).r);\x0aweight=clamp(1.0/(\x200.003+abs(compareDepth-sampleDepth)),0.0,30.0);\x0aweightSum+=weight;\x0aresult+=textureLod(image,uv+off3,0.0).r*weight;\x0asampleDepth=abs(textureLod(depthSampler,uv-off3,0.0).r);\x0aweight=clamp(1.0/(\x200.003+abs(compareDepth-sampleDepth)),0.0,30.0);\x0aweightSum+=weight;\x0aresult+=textureLod(image,uv-off3,0.0).r*weight;\x0areturn\x20result/weightSum;\x0a}\x0a#endif\x0a#endif\x0avoid\x20main()\x0a{\x0afloat\x20result=0.0;\x0a#ifdef\x20BLUR_BYPASS\x0aresult=textureLod(textureSampler,vUV,0.0).r;\x0a#else\x0a#ifdef\x20BLUR_H\x0avec2\x20step=vec2(1.0/outSize,0.0);\x0a#else\x0avec2\x20step=vec2(0.0,1.0/outSize);\x0a#endif\x0a#ifdef\x20BLUR_LEGACY\x0aresult=blur13Bilateral(textureSampler,vUV,step);\x0a#else\x0afloat\x20compareDepth=abs(textureLod(depthSampler,vUV,0.0).r);\x0afloat\x20weightSum=0.0;\x0afor\x20(int\x20i=-samples;\x20i<samples;\x20i+=2)\x0a{\x0avec2\x20samplePos=vUV+step*(float(i)+0.5);\x0afloat\x20sampleDepth=abs(textureLod(depthSampler,samplePos,0.0).r);\x0afloat\x20falloff=smoothstep(0.0,\x0afloat(samples),\x0afloat(samples)-abs(float(i))*soften);\x0afloat\x20minDivider=tolerance*0.5+0.003;\x0afloat\x20weight=falloff/(\x20minDivider+abs(compareDepth-sampleDepth));\x0aresult+=textureLod(textureSampler,samplePos,0.0).r*weight;\x0aweightSum+=weight;\x0a}\x0aresult/=weightSum;\x0a#endif\x0a#endif\x0agl_FragColor.rgb=vec3(result);\x0agl_FragColor.a=1.0;\x0a}\x0a#endif\x0a';},0xadd1:(_0x2c65b4,_0x56f76c,_0xa238a3)=>{var _0x57fa52=a7_0x3304fb;_0xa238a3(0x26fa)['v'][_0x57fa52(0xba5)]['ssaoCombinePixelShader']=_0x57fa52(0x462);},0x834e:(_0x24fc42,_0x2e8cef,_0x314464)=>{var _0x58d95f=a7_0x3304fb,_0x4b0de0=_0x314464(0x26fa);_0x314464(0x4a11),_0x4b0de0['v'][_0x58d95f(0xba5)][_0x58d95f(0x3ca)]=_0x58d95f(0x3f2);},0x15edb:(_0x599733,_0x2187ea,_0x444957)=>{var _0x7964e=a7_0x3304fb;_0x444957(0x26fa)['v'][_0x7964e(0xba5)][_0x7964e(0x9aa)]=_0x7964e(0x720);},0x933d:(_0xe1354,_0x4a9427,_0x3fa21f)=>{var _0x48500f=a7_0x3304fb;_0x3fa21f(0x26fa)['v'][_0x48500f(0xba5)]['tonemapPixelShader']=_0x48500f(0x3b6);},0xdd3b:(_0xd0b8d2,_0x170feb,_0x420b42)=>{var _0x3d03ab=a7_0x3304fb;_0x420b42(0x26fa)['v']['ShadersStore']['volumetricLightScatteringPixelShader']=_0x3d03ab(0x200);},0x5da2:(_0x327259,_0x2122c0,_0x2f8567)=>{var _0x150cd9=a7_0x3304fb;_0x2f8567(0x26fa)['v'][_0x150cd9(0xba5)][_0x150cd9(0xbd7)]=_0x150cd9(0x409);},0xc8d8:(_0x294744,_0x140b65,_0x16ee6a)=>{var _0x14fc45=a7_0x3304fb,_0xbeed73=_0x16ee6a(0x26fa);_0x16ee6a(0x11c69),_0x16ee6a(0x2648),_0x16ee6a(0x11b65),_0x16ee6a(0x12771),_0x16ee6a(0xe7da),_0x16ee6a(0x13d7),_0x16ee6a(0x1201e),_0x16ee6a(0x16c62),_0x16ee6a(0x9e45),_0x16ee6a(0x1396d),_0xbeed73['v'][_0x14fc45(0xba5)]['volumetricLightScatteringPassVertexShader']=_0x14fc45(0x8c3);},0x6c52:(_0xd80a7d,_0x5e977a,_0x35ebca)=>{var _0x14453b=a7_0x3304fb;_0x35ebca(0x26fa)['v']['ShadersStore'][_0x14453b(0x2ca)]=_0x14453b(0xa4e);},0xf063:(_0x2e9e1e,_0x3f9ea7,_0x219834)=>{var _0x1af342=a7_0x3304fb;_0x219834(0x26fa)['v'][_0x1af342(0xba5)]['vrMultiviewToSingleviewPixelShader']=_0x1af342(0xbca);},0x9bc9:(_0x203675,_0x482fd7,_0x14462b)=>{var _0x375b18=a7_0x3304fb;_0x14462b['d'](_0x482fd7,{'T':()=>_0x3597be});var _0x359e2c=_0x14462b(0x1610),_0x3a09d9=_0x14462b(0x1679c),_0x1a7cb2=_0x14462b(0xe59d),_0x482fd7=(_0x14462b(0xf5ea),_0x14462b(0x9314),_0x14462b(0x26fa));_0x14462b(0x17b64),_0x14462b(0xf45c),_0x14462b(0xa9cf),_0x482fd7['v'][_0x375b18(0xba5)]['spritesPixelShader']='uniform\x20bool\x20alphaTest;\x0avarying\x20vec4\x20vColor;\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0a#ifdef\x20PIXEL_PERFECT\x0avec2\x20uvPixelPerfect(vec2\x20uv)\x20{\x0avec2\x20res=vec2(textureSize(diffuseSampler,0));\x0auv=uv*res;\x0avec2\x20seam=floor(uv+0.5);\x0auv=seam+clamp((uv-seam)/fwidth(uv),-0.5,0.5);\x0areturn\x20uv/res;\x0a}\x0a#endif\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#ifdef\x20PIXEL_PERFECT\x0avec2\x20uv=uvPixelPerfect(vUV);\x0a#else\x0avec2\x20uv=vUV;\x0a#endif\x0avec4\x20color=texture2D(diffuseSampler,uv);\x0afloat\x20fAlphaTest=float(alphaTest);\x0aif\x20(fAlphaTest\x20!=\x200.)\x0a{\x0aif\x20(color.a<0.95)\x0adiscard;\x0a}\x0acolor*=vColor;\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}',_0x14462b(0x1162f),_0x482fd7['v']['ShadersStore'][_0x375b18(0x218)]=_0x375b18(0xb01);class _0x3597be{constructor(_0x378454,_0x1aa4d9,_0x4c4c9b=0.01,_0xc421a2=null){var _0x2359a9=_0x375b18;this[_0x2359a9(0x8f4)]=_0x359e2c['g'][_0x2359a9(0xc07)],this[_0x2359a9(0x672)]=!0x0,this['disableDepthWrite']=!0x1,this[_0x2359a9(0x172)]=!0x0,this[_0x2359a9(0x530)]=!0x1,this[_0x2359a9(0x7f9)]=!0x1,this[_0x2359a9(0x2b7)]=!0x1,this[_0x2359a9(0x28b)]={},this['_capacity']=_0x1aa4d9,this[_0x2359a9(0x2c0)]=_0x4c4c9b,this[_0x2359a9(0x489)]=_0x378454,this['_useInstancing']=_0x378454[_0x2359a9(0x7b9)]()[_0x2359a9(0x68f)]&&_0x378454[_0x2359a9(0x799)]['supportSpriteInstancing'],this['_useVAO']=_0x378454[_0x2359a9(0x7b9)]()[_0x2359a9(0x7e7)]&&!_0x378454[_0x2359a9(0xba2)],this[_0x2359a9(0x789)]=_0xc421a2,this[_0x2359a9(0x2b7)]||this['_buildIndexBuffer'](),this['_vertexBufferSize']=this['_useInstancing']?0x10:0x12,this[_0x2359a9(0xcf4)]=new Float32Array(_0x1aa4d9*this['_vertexBufferSize']*(this[_0x2359a9(0x2b7)]?0x1:0x4)),this[_0x2359a9(0xbbb)]=new _0x3a09d9['l'](_0x378454,this[_0x2359a9(0xcf4)],!0x0,this[_0x2359a9(0x11d)]),(_0x4c4c9b=this[_0x2359a9(0xbbb)][_0x2359a9(0xb75)](_0x3a09d9['o'][_0x2359a9(0x446)],0x0,0x4,this[_0x2359a9(0x11d)],this[_0x2359a9(0x2b7)]),_0xc421a2=this[_0x2359a9(0xbbb)][_0x2359a9(0xb75)]('options',0x4,0x2,this[_0x2359a9(0x11d)],this[_0x2359a9(0x2b7)]));let _0x5dae59=0x6,_0x3eb7e5;this['_useInstancing']?(_0x1aa4d9=new Float32Array([0x0,0x0,0x1,0x0,0x0,0x1,0x1,0x1]),this['_spriteBuffer']=new _0x3a09d9['l'](_0x378454,_0x1aa4d9,!0x1,0x2),_0x3eb7e5=this[_0x2359a9(0xbbe)][_0x2359a9(0xb75)]('offsets',0x0,0x2)):(_0x3eb7e5=this[_0x2359a9(0xbbb)][_0x2359a9(0xb75)](_0x2359a9(0x10e),_0x5dae59,0x2,this[_0x2359a9(0x11d)],this[_0x2359a9(0x2b7)]),_0x5dae59+=0x2);var _0x378454=this[_0x2359a9(0xbbb)][_0x2359a9(0xb75)]('inverts',_0x5dae59,0x2,this[_0x2359a9(0x11d)],this[_0x2359a9(0x2b7)]),_0x1aa4d9=this['_buffer']['createVertexBuffer'](_0x2359a9(0x3a0),_0x5dae59+0x2,0x4,this[_0x2359a9(0x11d)],this[_0x2359a9(0x2b7)]),_0x29c325=this[_0x2359a9(0xbbb)][_0x2359a9(0xb75)](_0x3a09d9['o'][_0x2359a9(0x48f)],_0x5dae59+0x6,0x4,this[_0x2359a9(0x11d)],this[_0x2359a9(0x2b7)]);this[_0x2359a9(0x28b)][_0x3a09d9['o'][_0x2359a9(0x446)]]=_0x4c4c9b,this[_0x2359a9(0x28b)][_0x2359a9(0x4b4)]=_0xc421a2,this[_0x2359a9(0x28b)][_0x2359a9(0x10e)]=_0x3eb7e5,this[_0x2359a9(0x28b)][_0x2359a9(0x1b2)]=_0x378454,this[_0x2359a9(0x28b)][_0x2359a9(0x3a0)]=_0x1aa4d9,this['_vertexBuffers'][_0x3a09d9['o'][_0x2359a9(0x48f)]]=_0x29c325,this[_0x2359a9(0x230)]();}get['capacity'](){var _0x5eb0d7=_0x375b18;return this[_0x5eb0d7(0xad2)];}get[_0x375b18(0xca2)](){return this['_pixelPerfect'];}set[_0x375b18(0xca2)](_0x5b0c21){var _0x14a376=_0x375b18;this[_0x14a376(0x530)]!==_0x5b0c21&&(this[_0x14a376(0x530)]=_0x5b0c21,this[_0x14a376(0x230)]());}[_0x375b18(0x230)](){var _0x142eaf=_0x375b18;null!=(_0x4a8875=this[_0x142eaf(0x126)])&&_0x4a8875['dispose'](),null!=(_0x4a8875=this['_drawWrapperFog'])&&_0x4a8875[_0x142eaf(0xb4b)](),null!=(_0x4a8875=this[_0x142eaf(0x344)])&&_0x4a8875['dispose'](),null!=(_0x4a8875=this[_0x142eaf(0xa1d)])&&_0x4a8875[_0x142eaf(0xb4b)](),this[_0x142eaf(0x126)]=new _0x1a7cb2['q'](this[_0x142eaf(0x489)]),this[_0x142eaf(0x2e2)]=new _0x1a7cb2['q'](this[_0x142eaf(0x489)]),this[_0x142eaf(0x344)]=new _0x1a7cb2['q'](this[_0x142eaf(0x489)],!0x1),this[_0x142eaf(0xa1d)]=new _0x1a7cb2['q'](this[_0x142eaf(0x489)],!0x1),this[_0x142eaf(0x126)]['drawContext']&&(this[_0x142eaf(0x126)][_0x142eaf(0x5cb)]['useInstancing']=this[_0x142eaf(0x2b7)]),this[_0x142eaf(0x2e2)]['drawContext']&&(this[_0x142eaf(0x2e2)][_0x142eaf(0x5cb)][_0x142eaf(0xbb0)]=this[_0x142eaf(0x2b7)]),this[_0x142eaf(0x344)][_0x142eaf(0x5cb)]&&(this[_0x142eaf(0x344)][_0x142eaf(0x5cb)][_0x142eaf(0xbb0)]=this[_0x142eaf(0x2b7)]),this[_0x142eaf(0xa1d)][_0x142eaf(0x5cb)]&&(this[_0x142eaf(0xa1d)][_0x142eaf(0x5cb)]['useInstancing']=this[_0x142eaf(0x2b7)]);var _0x4a8875=this[_0x142eaf(0x530)]?_0x142eaf(0x8c7):'';this[_0x142eaf(0x126)][_0x142eaf(0x2bc)]=this['_engine'][_0x142eaf(0x3ce)](_0x142eaf(0xd0c),[_0x3a09d9['o'][_0x142eaf(0x446)],_0x142eaf(0x4b4),_0x142eaf(0x10e),_0x142eaf(0x1b2),'cellInfo',_0x3a09d9['o'][_0x142eaf(0x48f)]],[_0x142eaf(0x611),_0x142eaf(0x8cd),_0x142eaf(0x8c2),'alphaTest'],[_0x142eaf(0x3a8)],_0x4a8875),this[_0x142eaf(0x344)][_0x142eaf(0x2bc)]=this[_0x142eaf(0x126)][_0x142eaf(0x2bc)],this['_drawWrapperDepth'][_0x142eaf(0x90f)]=this['_drawWrapperBase'][_0x142eaf(0x90f)],this[_0x142eaf(0x789)]&&(this[_0x142eaf(0x2e2)][_0x142eaf(0x2bc)]=this[_0x142eaf(0x789)][_0x142eaf(0xc8e)]()[_0x142eaf(0x3ce)](_0x142eaf(0xd0c),[_0x3a09d9['o'][_0x142eaf(0x446)],'options',_0x142eaf(0x10e),_0x142eaf(0x1b2),_0x142eaf(0x3a0),_0x3a09d9['o'][_0x142eaf(0x48f)]],['view',_0x142eaf(0x8cd),_0x142eaf(0x8c2),_0x142eaf(0x708),'vFogInfos',_0x142eaf(0x19c)],[_0x142eaf(0x3a8)],_0x4a8875+_0x142eaf(0xbec)),this['_drawWrapperFogDepth'][_0x142eaf(0x2bc)]=this['_drawWrapperFog'][_0x142eaf(0x2bc)],this[_0x142eaf(0xa1d)]['materialContext']=this[_0x142eaf(0x2e2)]['materialContext']);}[_0x375b18(0x7ad)](_0x207a3b,_0x3b6751,_0x334cce,_0x253045,_0x2e8bcb=null){var _0x2934a9=_0x375b18;if(this[_0x2934a9(0x800)]&&this[_0x2934a9(0x800)]['isReady']()&&_0x207a3b['length']){let _0x54c6e3=this[_0x2934a9(0x126)],_0x91b172=this['_drawWrapperDepth'],_0x5a8783=!0x1;this[_0x2934a9(0x172)]&&this[_0x2934a9(0x789)]&&this[_0x2934a9(0x789)][_0x2934a9(0x172)]&&0x0!==this[_0x2934a9(0x789)][_0x2934a9(0x18d)]&&(_0x54c6e3=this[_0x2934a9(0x2e2)],_0x91b172=this[_0x2934a9(0xa1d)],_0x5a8783=!0x0);const _0x5889de=_0x54c6e3[_0x2934a9(0x2bc)];if(_0x5889de[_0x2934a9(0x3f1)]()){const _0x195c0e=this[_0x2934a9(0x489)];var _0x188b53,_0x9dda93,_0x285702,_0x340f12=!(!this[_0x2934a9(0x789)]||!this[_0x2934a9(0x789)]['useRightHandedSystem']),_0x736337=this[_0x2934a9(0x800)][_0x2934a9(0x364)](),_0x564ca0=Math[_0x2934a9(0x1e1)](this['_capacity'],_0x207a3b[_0x2934a9(0x86f)]);let _0x5f1895=0x0,_0x2712c6=!0x0;for(let _0x414130=0x0;_0x414130<_0x564ca0;_0x414130++){const _0x295f14=_0x207a3b[_0x414130];_0x295f14&&_0x295f14[_0x2934a9(0x359)]&&(_0x2712c6=!0x1,_0x295f14['_animate'](_0x3b6751),this[_0x2934a9(0x605)](_0x5f1895++,_0x295f14,0x0,0x0,_0x736337,_0x340f12,_0x2e8bcb),this['_useInstancing']||(this[_0x2934a9(0x605)](_0x5f1895++,_0x295f14,0x1,0x0,_0x736337,_0x340f12,_0x2e8bcb),this['_appendSpriteVertex'](_0x5f1895++,_0x295f14,0x1,0x1,_0x736337,_0x340f12,_0x2e8bcb),this['_appendSpriteVertex'](_0x5f1895++,_0x295f14,0x0,0x1,_0x736337,_0x340f12,_0x2e8bcb)));}_0x2712c6||(this[_0x2934a9(0xbbb)][_0x2934a9(0x924)](this[_0x2934a9(0xcf4)]),_0x188b53=!!_0x195c0e['depthCullingState']['cull'],_0x9dda93=_0x195c0e[_0x2934a9(0x4cd)][_0x2934a9(0xcff)],_0x285702=_0x195c0e[_0x2934a9(0x4cd)][_0x2934a9(0x36d)],_0x195c0e[_0x2934a9(0x1e9)](_0x188b53,_0x9dda93,!0x1,!0x1,void 0x0,void 0x0,_0x285702),_0x195c0e[_0x2934a9(0x553)](_0x54c6e3),_0x5889de[_0x2934a9(0xbbc)](_0x2934a9(0x3a8),this[_0x2934a9(0x800)]),_0x5889de[_0x2934a9(0xa13)]('view',_0x334cce),_0x5889de['setMatrix']('projection',_0x253045),_0x5a8783&&(_0x334cce=this[_0x2934a9(0x789)],_0x5889de[_0x2934a9(0x453)]('vFogInfos',_0x334cce['fogMode'],_0x334cce[_0x2934a9(0x158)],_0x334cce[_0x2934a9(0x98a)],_0x334cce[_0x2934a9(0x62f)]),_0x5889de['setColor3'](_0x2934a9(0x19c),_0x334cce[_0x2934a9(0xaa8)])),this[_0x2934a9(0x7f9)]?(this[_0x2934a9(0x14a)]||(this[_0x2934a9(0x14a)]=_0x195c0e[_0x2934a9(0x440)](this[_0x2934a9(0x28b)],this['_indexBuffer'],_0x5889de)),_0x195c0e['bindVertexArrayObject'](this[_0x2934a9(0x14a)],this[_0x2934a9(0x1ee)])):_0x195c0e['bindBuffers'](this['_vertexBuffers'],this[_0x2934a9(0x1ee)],_0x5889de),_0x195c0e[_0x2934a9(0x4cd)]['depthFunc']=_0x195c0e[_0x2934a9(0xb6c)]?_0x359e2c['g']['GEQUAL']:_0x359e2c['g'][_0x2934a9(0x917)],this[_0x2934a9(0x9a7)]||(_0x5889de['setBool']('alphaTest',!0x0),_0x195c0e[_0x2934a9(0x1a5)](!0x1),_0x195c0e['enableEffect'](_0x91b172),this[_0x2934a9(0x2b7)]?_0x195c0e['drawArraysType'](_0x359e2c['g'][_0x2934a9(0x201)],0x0,0x4,_0x5f1895):_0x195c0e[_0x2934a9(0x249)](_0x359e2c['g'][_0x2934a9(0xb08)],0x0,_0x5f1895/0x4*0x6),_0x195c0e[_0x2934a9(0x553)](_0x54c6e3),_0x195c0e[_0x2934a9(0x1a5)](!0x0),_0x5889de[_0x2934a9(0x689)](_0x2934a9(0x708),!0x1)),_0x195c0e[_0x2934a9(0x31b)](this[_0x2934a9(0x8f4)]),this['_useInstancing']?_0x195c0e[_0x2934a9(0x808)](_0x359e2c['g'][_0x2934a9(0x201)],0x0,0x4,_0x5f1895):_0x195c0e[_0x2934a9(0x249)](_0x359e2c['g'][_0x2934a9(0xb08)],0x0,_0x5f1895/0x4*0x6),this[_0x2934a9(0x672)]&&_0x195c0e[_0x2934a9(0x31b)](_0x359e2c['g'][_0x2934a9(0x794)]),_0x340f12&&this['_scene']['getEngine']()[_0x2934a9(0x1e9)](_0x188b53,_0x9dda93,!0x1,!0x0,void 0x0,void 0x0,_0x285702),_0x195c0e[_0x2934a9(0x6e2)]());}}}[_0x375b18(0x605)](_0x564494,_0x2cc375,_0x180083,_0x1c80ca,_0x4aaa13,_0x484554,_0x119339){var _0x246024=_0x375b18;let _0x2c6ef1=_0x564494*this[_0x246024(0x11d)];0x0===_0x180083?_0x180083=this[_0x246024(0x2c0)]:0x1===_0x180083&&(_0x180083=0x1-this[_0x246024(0x2c0)]),0x0===_0x1c80ca?_0x1c80ca=this[_0x246024(0x2c0)]:0x1===_0x1c80ca&&(_0x1c80ca=0x1-this[_0x246024(0x2c0)]),_0x119339?_0x119339(_0x2cc375,_0x4aaa13):(_0x2cc375[_0x246024(0x1d3)]||(_0x2cc375[_0x246024(0x1d3)]=0x0),_0x564494=_0x4aaa13[_0x246024(0x3e9)]/this[_0x246024(0xc1d)],_0x119339=_0x2cc375[_0x246024(0x1d3)]/_0x564494>>0x0,_0x2cc375[_0x246024(0x62a)]=(_0x2cc375[_0x246024(0x1d3)]-_0x119339*_0x564494)*this[_0x246024(0xc1d)]/_0x4aaa13[_0x246024(0x3e9)],_0x2cc375[_0x246024(0x9f0)]=_0x119339*this[_0x246024(0x35b)]/_0x4aaa13[_0x246024(0x520)],_0x2cc375[_0x246024(0x745)]=this[_0x246024(0xc1d)],_0x2cc375[_0x246024(0xc3f)]=this[_0x246024(0x35b)]),this[_0x246024(0xcf4)][_0x2c6ef1]=_0x2cc375['position']['x'],this[_0x246024(0xcf4)][_0x2c6ef1+0x1]=_0x2cc375['position']['y'],this['_vertexData'][_0x2c6ef1+0x2]=_0x2cc375[_0x246024(0x2b6)]['z'],this[_0x246024(0xcf4)][_0x2c6ef1+0x3]=_0x2cc375[_0x246024(0x6b0)],this[_0x246024(0xcf4)][_0x2c6ef1+0x4]=_0x2cc375[_0x246024(0x3e9)],this[_0x246024(0xcf4)][_0x2c6ef1+0x5]=_0x2cc375[_0x246024(0x520)],this[_0x246024(0x2b7)]?_0x2c6ef1-=0x2:(this[_0x246024(0xcf4)][_0x2c6ef1+0x6]=_0x180083,this[_0x246024(0xcf4)][_0x2c6ef1+0x7]=_0x1c80ca),this[_0x246024(0xcf4)][_0x2c6ef1+0x8]=_0x484554?_0x2cc375[_0x246024(0xa90)]?0x0:0x1:_0x2cc375[_0x246024(0xa90)]?0x1:0x0,this['_vertexData'][_0x2c6ef1+0x9]=_0x2cc375[_0x246024(0x6de)]?0x1:0x0,this[_0x246024(0xcf4)][_0x2c6ef1+0xa]=_0x2cc375['_xOffset'],this[_0x246024(0xcf4)][_0x2c6ef1+0xb]=_0x2cc375[_0x246024(0x9f0)],this['_vertexData'][_0x2c6ef1+0xc]=_0x2cc375[_0x246024(0x745)]/_0x4aaa13['width'],this[_0x246024(0xcf4)][_0x2c6ef1+0xd]=_0x2cc375[_0x246024(0xc3f)]/_0x4aaa13[_0x246024(0x520)],this[_0x246024(0xcf4)][_0x2c6ef1+0xe]=_0x2cc375[_0x246024(0xc9e)]['r'],this[_0x246024(0xcf4)][_0x2c6ef1+0xf]=_0x2cc375[_0x246024(0xc9e)]['g'],this[_0x246024(0xcf4)][_0x2c6ef1+0x10]=_0x2cc375['color']['b'],this['_vertexData'][_0x2c6ef1+0x11]=_0x2cc375[_0x246024(0xc9e)]['a'];}['_buildIndexBuffer'](){var _0x1aedd1=_0x375b18;const _0x38023f=[];let _0x233441=0x0;for(let _0xfa79af=0x0;_0xfa79af<this['_capacity'];_0xfa79af++)_0x38023f[_0x1aedd1(0x725)](_0x233441),_0x38023f['push'](_0x233441+0x1),_0x38023f[_0x1aedd1(0x725)](_0x233441+0x2),_0x38023f[_0x1aedd1(0x725)](_0x233441),_0x38023f[_0x1aedd1(0x725)](_0x233441+0x2),_0x38023f[_0x1aedd1(0x725)](_0x233441+0x3),_0x233441+=0x4;this['_indexBuffer']=this['_engine'][_0x1aedd1(0x198)](_0x38023f);}[_0x375b18(0x9ed)](){var _0x450800=_0x375b18,_0x57ce33;this['_indexBuffer']&&this[_0x450800(0x468)](),this[_0x450800(0x7f9)]&&(this['_vertexArrayObject']=void 0x0),this[_0x450800(0xbbb)][_0x450800(0x2a7)]();for(const _0x3e5add in this['_vertexBuffers']){const _0x13c0d3=this[_0x450800(0x28b)][_0x3e5add];_0x13c0d3[_0x450800(0x2a7)]();}null!=(_0x57ce33=this['_spriteBuffer'])&&_0x57ce33['_rebuild']();}[_0x375b18(0xb4b)](){var _0x27de00=_0x375b18;this[_0x27de00(0xbbb)]&&(this[_0x27de00(0xbbb)]['dispose'](),this['_buffer']=null),this[_0x27de00(0xbbe)]&&(this[_0x27de00(0xbbe)]['dispose'](),this['_spriteBuffer']=null),this[_0x27de00(0x1ee)]&&(this['_engine']['_releaseBuffer'](this['_indexBuffer']),this[_0x27de00(0x1ee)]=null),this[_0x27de00(0x14a)]&&(this[_0x27de00(0x489)][_0x27de00(0x253)](this[_0x27de00(0x14a)]),this[_0x27de00(0x14a)]=null),this['texture']&&(this[_0x27de00(0x800)][_0x27de00(0xb4b)](),this['texture']=null),this[_0x27de00(0x126)][_0x27de00(0xb4b)](),this[_0x27de00(0x2e2)][_0x27de00(0xb4b)](),this[_0x27de00(0x344)][_0x27de00(0xb4b)](),this[_0x27de00(0xa1d)]['dispose']();}}},0xda7:(_0x4078e3,_0x39db6f,_0x1e6524)=>{var _0x1a3dec=a7_0x3304fb;_0x1e6524['d'](_0x39db6f,{'l':()=>_0x510aa1});class _0x510aa1{constructor(){var _0x2abec3=a7_0x4135;this['width']=0x1,this['height']=0x1,this['angle']=0x0,this[_0x2abec3(0xa90)]=!0x1,this[_0x2abec3(0x6de)]=!0x1,this[_0x2abec3(0x359)]=!0x0,this[_0x2abec3(0x7aa)]=!0x1,this[_0x2abec3(0xc28)]=!0x1,this['_fromIndex']=0x0,this[_0x2abec3(0x207)]=0x0,this[_0x2abec3(0x23c)]=0x0,this[_0x2abec3(0x6ab)]=0x1,this['_time']=0x0,this[_0x2abec3(0x4a8)]=null,this[_0x2abec3(0x2b6)]={'x':0x1,'y':0x1,'z':0x1},this['color']={'r':0x1,'g':0x1,'b':0x1,'a':0x1};}get[_0x1a3dec(0x4b5)](){var _0x23975b=_0x1a3dec;return this[_0x23975b(0x7aa)];}get[_0x1a3dec(0x345)](){var _0x5e30e0=_0x1a3dec;return this[_0x5e30e0(0x32e)];}get['toIndex'](){var _0x2cb21f=_0x1a3dec;return this[_0x2cb21f(0x207)];}get[_0x1a3dec(0xc9f)](){var _0x12f060=_0x1a3dec;return this[_0x12f060(0xc28)];}get[_0x1a3dec(0x78d)](){var _0x4b0f7a=_0x1a3dec;return Math[_0x4b0f7a(0x3f8)](this[_0x4b0f7a(0x23c)],0x1);}['playAnimation'](_0x267c19,_0x295622,_0x3ad59a,_0xbcbc0,_0x917536){var _0x1343e0=_0x1a3dec;this[_0x1343e0(0x32e)]=_0x267c19,this[_0x1343e0(0x207)]=_0x295622,this['_loopAnimation']=_0x3ad59a,this[_0x1343e0(0x23c)]=_0xbcbc0||0x1,this[_0x1343e0(0x7aa)]=!0x0,this['_onBaseAnimationEnd']=_0x917536,_0x267c19<_0x295622?this[_0x1343e0(0x6ab)]=0x1:(this[_0x1343e0(0x6ab)]=-0x1,this[_0x1343e0(0x207)]=_0x267c19,this[_0x1343e0(0x32e)]=_0x295622),this[_0x1343e0(0x1d3)]=_0x267c19,this[_0x1343e0(0x3db)]=0x0;}[_0x1a3dec(0x19e)](){var _0x157054=_0x1a3dec;this[_0x157054(0x7aa)]=!0x1;}[_0x1a3dec(0xc58)](_0xf3931){var _0x259777=_0x1a3dec;this[_0x259777(0x7aa)]&&(this[_0x259777(0x3db)]+=_0xf3931,this[_0x259777(0x3db)]>this['_delay']&&(this[_0x259777(0x3db)]=this[_0x259777(0x3db)]%this['_delay'],this[_0x259777(0x1d3)]+=this[_0x259777(0x6ab)],(0x0<this[_0x259777(0x6ab)]&&this[_0x259777(0x1d3)]>this[_0x259777(0x207)]||this['_direction']<0x0&&this[_0x259777(0x1d3)]<this['_fromIndex'])&&(this[_0x259777(0xc28)]?this[_0x259777(0x1d3)]=0x0<this[_0x259777(0x6ab)]?this[_0x259777(0x32e)]:this[_0x259777(0x207)]:(this['cellIndex']=this[_0x259777(0x207)],this[_0x259777(0x7aa)]=!0x1,this[_0x259777(0x4a8)]&&this[_0x259777(0x4a8)]()))));}}},0x162ca:(_0x17ced0,_0x260c10,_0xa0abf1)=>{var _0x26063f=a7_0x3304fb;_0xa0abf1['d'](_0x260c10,{'Q':()=>_0x2ca000});class _0x2ca000{constructor(){var _0x49608d=a7_0x4135;this[_0x49608d(0x9ad)]=new Array(0x4),this['_blendEquationParameters']=new Array(0x2),this[_0x49608d(0x9f8)]=new Array(0x4),this['_isBlendConstantsDirty']=!0x1,this['_alphaBlend']=!0x1,this[_0x49608d(0x11b)]=!0x1,this[_0x49608d(0xcbf)]=!0x1,this[_0x49608d(0x38d)]=!0x1,this[_0x49608d(0x4ac)]();}get[_0x26063f(0x8fc)](){var _0x4b09ac=_0x26063f;return this[_0x4b09ac(0x11b)]||this[_0x4b09ac(0xcbf)]||this[_0x4b09ac(0x38d)];}get['alphaBlend'](){var _0x375bb=_0x26063f;return this[_0x375bb(0x79f)];}set[_0x26063f(0x616)](_0x40be8e){var _0x24af79=_0x26063f;this['_alphaBlend']!==_0x40be8e&&(this[_0x24af79(0x79f)]=_0x40be8e,this['_isAlphaBlendDirty']=!0x0);}[_0x26063f(0xcfb)](_0x1f8462,_0x168b43,_0x5cba33,_0x341c1a){var _0x41c596=_0x26063f;this[_0x41c596(0x9f8)][0x0]===_0x1f8462&&this[_0x41c596(0x9f8)][0x1]===_0x168b43&&this[_0x41c596(0x9f8)][0x2]===_0x5cba33&&this[_0x41c596(0x9f8)][0x3]===_0x341c1a||(this[_0x41c596(0x9f8)][0x0]=_0x1f8462,this[_0x41c596(0x9f8)][0x1]=_0x168b43,this['_blendConstants'][0x2]=_0x5cba33,this['_blendConstants'][0x3]=_0x341c1a,this[_0x41c596(0x2eb)]=!0x0);}[_0x26063f(0xb3d)](_0x40d4af,_0x5b1a29,_0x1f079b,_0x3d851e){var _0x3fe249=_0x26063f;this['_blendFunctionParameters'][0x0]===_0x40d4af&&this[_0x3fe249(0x9ad)][0x1]===_0x5b1a29&&this['_blendFunctionParameters'][0x2]===_0x1f079b&&this['_blendFunctionParameters'][0x3]===_0x3d851e||(this[_0x3fe249(0x9ad)][0x0]=_0x40d4af,this[_0x3fe249(0x9ad)][0x1]=_0x5b1a29,this[_0x3fe249(0x9ad)][0x2]=_0x1f079b,this[_0x3fe249(0x9ad)][0x3]=_0x3d851e,this[_0x3fe249(0xcbf)]=!0x0);}[_0x26063f(0x6f9)](_0x5665d5,_0x56c0a8){var _0x183bb7=_0x26063f;this[_0x183bb7(0xc44)][0x0]===_0x5665d5&&this[_0x183bb7(0xc44)][0x1]===_0x56c0a8||(this[_0x183bb7(0xc44)][0x0]=_0x5665d5,this[_0x183bb7(0xc44)][0x1]=_0x56c0a8,this[_0x183bb7(0x38d)]=!0x0);}[_0x26063f(0x4ac)](){var _0x1d7022=_0x26063f;this[_0x1d7022(0x79f)]=!0x1,this[_0x1d7022(0x9ad)][0x0]=null,this[_0x1d7022(0x9ad)][0x1]=null,this[_0x1d7022(0x9ad)][0x2]=null,this[_0x1d7022(0x9ad)][0x3]=null,this[_0x1d7022(0xc44)][0x0]=null,this[_0x1d7022(0xc44)][0x1]=null,this['_blendConstants'][0x0]=null,this[_0x1d7022(0x9f8)][0x1]=null,this['_blendConstants'][0x2]=null,this[_0x1d7022(0x9f8)][0x3]=null,this[_0x1d7022(0x11b)]=!0x0,this['_isBlendFunctionParametersDirty']=!0x1,this[_0x1d7022(0x38d)]=!0x1,this['_isBlendConstantsDirty']=!0x1;}[_0x26063f(0x650)](_0x1d6977){var _0xe40310=_0x26063f;this[_0xe40310(0x8fc)]&&(this[_0xe40310(0x11b)]&&(this[_0xe40310(0x79f)]?_0x1d6977[_0xe40310(0x625)](_0x1d6977['BLEND']):_0x1d6977[_0xe40310(0x76c)](_0x1d6977[_0xe40310(0xac5)]),this[_0xe40310(0x11b)]=!0x1),this[_0xe40310(0xcbf)]&&(_0x1d6977[_0xe40310(0xa9f)](this[_0xe40310(0x9ad)][0x0],this[_0xe40310(0x9ad)][0x1],this[_0xe40310(0x9ad)][0x2],this['_blendFunctionParameters'][0x3]),this['_isBlendFunctionParametersDirty']=!0x1),this[_0xe40310(0x38d)]&&(_0x1d6977[_0xe40310(0x209)](this['_blendEquationParameters'][0x0],this['_blendEquationParameters'][0x1]),this[_0xe40310(0x38d)]=!0x1),this[_0xe40310(0x2eb)]&&(_0x1d6977[_0xe40310(0x148)](this[_0xe40310(0x9f8)][0x0],this[_0xe40310(0x9f8)][0x1],this[_0xe40310(0x9f8)][0x2],this[_0xe40310(0x9f8)][0x3]),this[_0xe40310(0x2eb)]=!0x1));}}},0x6346:(_0x39119d,_0x98a51e,_0x3bf688)=>{var _0x3db00e=a7_0x3304fb;_0x3bf688['d'](_0x98a51e,{'k':()=>_0x48239b});class _0x48239b{constructor(_0x50dda1=!0x0){var _0x592b33=a7_0x4135;this[_0x592b33(0x7d8)]=!0x1,this[_0x592b33(0x961)]=!0x1,this[_0x592b33(0xce8)]=!0x1,this[_0x592b33(0x742)]=!0x1,this[_0x592b33(0x6d1)]=!0x1,this[_0x592b33(0xb64)]=!0x1,this[_0x592b33(0x5eb)]=!0x1,_0x50dda1&&this[_0x592b33(0x4ac)]();}get[_0x3db00e(0x8fc)](){var _0x21e695=_0x3db00e;return this[_0x21e695(0xce8)]||this[_0x21e695(0x7d8)]||this[_0x21e695(0x961)]||this[_0x21e695(0x742)]||this[_0x21e695(0x6d1)]||this[_0x21e695(0xb64)]||this['_isFrontFaceDirty'];}get[_0x3db00e(0xcff)](){return this['_zOffset'];}set[_0x3db00e(0xcff)](_0x2cd870){var _0x5477d3=_0x3db00e;this[_0x5477d3(0x81a)]!==_0x2cd870&&(this['_zOffset']=_0x2cd870,this[_0x5477d3(0xb64)]=!0x0);}get[_0x3db00e(0x36d)](){var _0x166b5e=_0x3db00e;return this[_0x166b5e(0x9a1)];}set[_0x3db00e(0x36d)](_0x587e34){var _0x1ca790=_0x3db00e;this[_0x1ca790(0x9a1)]!==_0x587e34&&(this['_zOffsetUnits']=_0x587e34,this[_0x1ca790(0xb64)]=!0x0);}get[_0x3db00e(0x294)](){return this['_cullFace'];}set['cullFace'](_0x4b77f0){var _0x3ae9c5=_0x3db00e;this[_0x3ae9c5(0x3fd)]!==_0x4b77f0&&(this[_0x3ae9c5(0x3fd)]=_0x4b77f0,this[_0x3ae9c5(0x742)]=!0x0);}get['cull'](){var _0x527233=_0x3db00e;return this[_0x527233(0x24c)];}set['cull'](_0x33f1f3){var _0x94d993=_0x3db00e;this[_0x94d993(0x24c)]!==_0x33f1f3&&(this[_0x94d993(0x24c)]=_0x33f1f3,this[_0x94d993(0x6d1)]=!0x0);}get['depthFunc'](){var _0x26d60c=_0x3db00e;return this[_0x26d60c(0x791)];}set[_0x3db00e(0x193)](_0x38db0d){var _0x396c38=_0x3db00e;this[_0x396c38(0x791)]!==_0x38db0d&&(this[_0x396c38(0x791)]=_0x38db0d,this[_0x396c38(0xce8)]=!0x0);}get[_0x3db00e(0xcc0)](){return this['_depthMask'];}set[_0x3db00e(0xcc0)](_0x557da5){var _0x3b1c33=_0x3db00e;this[_0x3b1c33(0x49a)]!==_0x557da5&&(this[_0x3b1c33(0x49a)]=_0x557da5,this['_isDepthMaskDirty']=!0x0);}get[_0x3db00e(0x5a0)](){var _0x55fbca=_0x3db00e;return this[_0x55fbca(0x6e7)];}set[_0x3db00e(0x5a0)](_0x3a9737){var _0x440b1c=_0x3db00e;this[_0x440b1c(0x6e7)]!==_0x3a9737&&(this[_0x440b1c(0x6e7)]=_0x3a9737,this[_0x440b1c(0x7d8)]=!0x0);}get[_0x3db00e(0x7ba)](){return this['_frontFace'];}set[_0x3db00e(0x7ba)](_0x6461c3){var _0x487198=_0x3db00e;this['_frontFace']!==_0x6461c3&&(this[_0x487198(0x907)]=_0x6461c3,this[_0x487198(0x5eb)]=!0x0);}[_0x3db00e(0x4ac)](){var _0x362e77=_0x3db00e;this[_0x362e77(0x49a)]=!0x0,this[_0x362e77(0x6e7)]=!0x0,this[_0x362e77(0x791)]=null,this[_0x362e77(0x3fd)]=null,this[_0x362e77(0x24c)]=null,this[_0x362e77(0x81a)]=0x0,this[_0x362e77(0x9a1)]=0x0,this['_frontFace']=null,this[_0x362e77(0x7d8)]=!0x0,this[_0x362e77(0x961)]=!0x0,this[_0x362e77(0xce8)]=!0x1,this[_0x362e77(0x742)]=!0x1,this[_0x362e77(0x6d1)]=!0x1,this[_0x362e77(0xb64)]=!0x0,this[_0x362e77(0x5eb)]=!0x1;}[_0x3db00e(0x650)](_0xdca77e){var _0x534a55=_0x3db00e;this[_0x534a55(0x8fc)]&&(this['_isCullDirty']&&(this[_0x534a55(0x9f7)]?_0xdca77e[_0x534a55(0x625)](_0xdca77e['CULL_FACE']):_0xdca77e['disable'](_0xdca77e[_0x534a55(0x3f9)]),this[_0x534a55(0x6d1)]=!0x1),this[_0x534a55(0x742)]&&(_0xdca77e[_0x534a55(0x294)](this[_0x534a55(0x294)]),this[_0x534a55(0x742)]=!0x1),this[_0x534a55(0x961)]&&(_0xdca77e['depthMask'](this[_0x534a55(0xcc0)]),this[_0x534a55(0x961)]=!0x1),this['_isDepthTestDirty']&&(this[_0x534a55(0x5a0)]?_0xdca77e[_0x534a55(0x625)](_0xdca77e[_0x534a55(0xa4a)]):_0xdca77e[_0x534a55(0x76c)](_0xdca77e[_0x534a55(0xa4a)]),this[_0x534a55(0x7d8)]=!0x1),this[_0x534a55(0xce8)]&&(_0xdca77e[_0x534a55(0x193)](this[_0x534a55(0x193)]),this[_0x534a55(0xce8)]=!0x1),this['_isZOffsetDirty']&&(this[_0x534a55(0xcff)]||this[_0x534a55(0x36d)]?(_0xdca77e[_0x534a55(0x625)](_0xdca77e[_0x534a55(0x677)]),_0xdca77e[_0x534a55(0xc43)](this[_0x534a55(0xcff)],this[_0x534a55(0x36d)])):_0xdca77e[_0x534a55(0x76c)](_0xdca77e[_0x534a55(0x677)]),this['_isZOffsetDirty']=!0x1),this[_0x534a55(0x5eb)]&&(_0xdca77e[_0x534a55(0x7ba)](this[_0x534a55(0x7ba)]),this[_0x534a55(0x5eb)]=!0x1));}}},0x14e41:(_0x4e4056,_0x26a61c,_0x1dbfe9)=>{var _0x335a7e=a7_0x3304fb;_0x1dbfe9['d'](_0x26a61c,{'C':()=>_0xd46e72});class _0xd46e72{constructor(_0x4ea615=!0x0){var _0x18f157=a7_0x4135;this[_0x18f157(0x5f4)]=!0x1,this['_isStencilMaskDirty']=!0x1,this[_0x18f157(0x819)]=!0x1,this[_0x18f157(0xc93)]=!0x1,this[_0x18f157(0x159)]=!0x1,_0x4ea615&&this['reset']();}get[_0x335a7e(0x8fc)](){var _0x652c88=_0x335a7e;return this['_isStencilTestDirty']||this[_0x652c88(0x8b9)]||this['_isStencilFuncDirty']||this[_0x652c88(0xc93)];}get[_0x335a7e(0xa98)](){var _0x404fb2=_0x335a7e;return this[_0x404fb2(0x7b1)];}set[_0x335a7e(0xa98)](_0xdec416){var _0x637d6f=_0x335a7e;this[_0x637d6f(0x7b1)]!==_0xdec416&&(this[_0x637d6f(0x7b1)]=_0xdec416,this[_0x637d6f(0x819)]=!0x0);}get['funcRef'](){return this['_funcRef'];}set['funcRef'](_0x274ede){var _0x48f46a=_0x335a7e;this[_0x48f46a(0x33d)]!==_0x274ede&&(this['_funcRef']=_0x274ede,this[_0x48f46a(0x819)]=!0x0);}get['funcMask'](){var _0x1880e4=_0x335a7e;return this[_0x1880e4(0xae7)];}set[_0x335a7e(0x517)](_0x5304a5){var _0x15693f=_0x335a7e;this[_0x15693f(0xae7)]!==_0x5304a5&&(this[_0x15693f(0xae7)]=_0x5304a5,this[_0x15693f(0x819)]=!0x0);}get[_0x335a7e(0x97d)](){return this['_opStencilFail'];}set['opStencilFail'](_0x5d3acf){var _0x17b88d=_0x335a7e;this[_0x17b88d(0x5e2)]!==_0x5d3acf&&(this['_opStencilFail']=_0x5d3acf,this[_0x17b88d(0xc93)]=!0x0);}get[_0x335a7e(0xc82)](){return this['_opDepthFail'];}set['opDepthFail'](_0x488cb2){var _0x4f7f04=_0x335a7e;this[_0x4f7f04(0x371)]!==_0x488cb2&&(this[_0x4f7f04(0x371)]=_0x488cb2,this[_0x4f7f04(0xc93)]=!0x0);}get[_0x335a7e(0x778)](){var _0x361b45=_0x335a7e;return this[_0x361b45(0x680)];}set[_0x335a7e(0x778)](_0xec84fb){var _0x3f6d68=_0x335a7e;this[_0x3f6d68(0x680)]!==_0xec84fb&&(this['_opStencilDepthPass']=_0xec84fb,this[_0x3f6d68(0xc93)]=!0x0);}get[_0x335a7e(0xc86)](){var _0x4ff4e2=_0x335a7e;return this[_0x4ff4e2(0x7e1)];}set[_0x335a7e(0xc86)](_0xa833ff){var _0x43b52f=_0x335a7e;this[_0x43b52f(0x7e1)]!==_0xa833ff&&(this['_mask']=_0xa833ff,this['_isStencilMaskDirty']=!0x0);}get['enabled'](){return this['_enabled'];}set['enabled'](_0x2ad6bd){var _0x4f5847=_0x335a7e;this[_0x4f5847(0x398)]!==_0x2ad6bd&&(this[_0x4f5847(0x398)]=_0x2ad6bd,this[_0x4f5847(0x5f4)]=!0x0);}[_0x335a7e(0x4ac)](){var _0x1bd543=_0x335a7e,_0x11ffd5;this['stencilMaterial']=void 0x0,null!=(_0x11ffd5=this[_0x1bd543(0x8f8)])&&_0x11ffd5[_0x1bd543(0x4ac)](),this[_0x1bd543(0x5f4)]=!0x0,this[_0x1bd543(0x8b9)]=!0x0,this['_isStencilFuncDirty']=!0x0,this[_0x1bd543(0xc93)]=!0x0;}[_0x335a7e(0x650)](_0x642c5c){var _0xcdf066=_0x335a7e,_0x46b49c;_0x642c5c&&(_0x46b49c=!this['useStencilGlobalOnly']&&!(null==(_0x46b49c=this['stencilMaterial'])||!_0x46b49c[_0xcdf066(0x34e)]),this[_0xcdf066(0x34e)]=(_0x46b49c?this['stencilMaterial']:this['stencilGlobal'])[_0xcdf066(0x34e)],this[_0xcdf066(0xa98)]=(_0x46b49c?this[_0xcdf066(0x2f8)]:this[_0xcdf066(0x8f8)])[_0xcdf066(0xa98)],this[_0xcdf066(0x825)]=(_0x46b49c?this[_0xcdf066(0x2f8)]:this[_0xcdf066(0x8f8)])['funcRef'],this[_0xcdf066(0x517)]=(_0x46b49c?this[_0xcdf066(0x2f8)]:this['stencilGlobal'])[_0xcdf066(0x517)],this[_0xcdf066(0x97d)]=(_0x46b49c?this[_0xcdf066(0x2f8)]:this[_0xcdf066(0x8f8)])[_0xcdf066(0x97d)],this[_0xcdf066(0xc82)]=(_0x46b49c?this[_0xcdf066(0x2f8)]:this[_0xcdf066(0x8f8)])[_0xcdf066(0xc82)],this[_0xcdf066(0x778)]=(_0x46b49c?this[_0xcdf066(0x2f8)]:this['stencilGlobal'])['opStencilDepthPass'],this[_0xcdf066(0xc86)]=(_0x46b49c?this[_0xcdf066(0x2f8)]:this['stencilGlobal'])[_0xcdf066(0xc86)],this['isDirty']&&(this['_isStencilTestDirty']&&(this['enabled']?_0x642c5c[_0xcdf066(0x625)](_0x642c5c['STENCIL_TEST']):_0x642c5c[_0xcdf066(0x76c)](_0x642c5c['STENCIL_TEST']),this[_0xcdf066(0x5f4)]=!0x1),this[_0xcdf066(0x8b9)]&&(_0x642c5c[_0xcdf066(0x5a6)](this[_0xcdf066(0xc86)]),this[_0xcdf066(0x8b9)]=!0x1),this[_0xcdf066(0x819)]&&(_0x642c5c[_0xcdf066(0xa99)](this[_0xcdf066(0xa98)],this['funcRef'],this['funcMask']),this[_0xcdf066(0x819)]=!0x1),this[_0xcdf066(0xc93)]&&(_0x642c5c[_0xcdf066(0xcd5)](this[_0xcdf066(0x97d)],this[_0xcdf066(0xc82)],this['opStencilDepthPass']),this[_0xcdf066(0xc93)]=!0x1)));}}},0x14072:(_0x2fb0af,_0x42f0af,_0x8e4d5c)=>{var _0x44597e=a7_0x3304fb;_0x8e4d5c['d'](_0x42f0af,{'F':()=>_0x118891});class _0x118891{constructor(_0x39b1d3){var _0x58e6a7=a7_0x4135;this[_0x58e6a7(0x6fd)]=_0x39b1d3,this[_0x58e6a7(0x905)]=!0x1,this['_removeOnDetach']=[],this[_0x58e6a7(0x430)]=!0x1,this[_0x58e6a7(0xbf1)]=!0x1,this[_0x58e6a7(0x136)]='';}get[_0x44597e(0x13d)](){var _0x2998c7=_0x44597e;return this[_0x2998c7(0x905)];}['attach'](_0x4f0916){var _0x4d9b56=_0x44597e;if(this[_0x4d9b56(0x430)])return!0x1;if(_0x4f0916)this[_0x4d9b56(0x13d)]&&this[_0x4d9b56(0x3a5)]();else{if(this[_0x4d9b56(0x13d)])return!0x1;}return this['_attached']=!0x0,this[_0x4d9b56(0xae1)](this[_0x4d9b56(0x6fd)][_0x4d9b56(0xca4)],_0x4c6fc2=>this[_0x4d9b56(0x978)](_0x4c6fc2)),!0x0;}['detach'](){var _0x23beb5=_0x44597e;return this[_0x23beb5(0x905)]?(this[_0x23beb5(0x905)]=!0x1,this[_0x23beb5(0xafb)][_0x23beb5(0xa7c)](_0x33ea38=>{var _0x4b06a9=_0x23beb5;_0x33ea38[_0x4b06a9(0x4e1)][_0x4b06a9(0xa7e)](_0x33ea38[_0x4b06a9(0xb9e)]);}),!0x0):!(this[_0x23beb5(0xbf1)]=!0x0);}[_0x44597e(0xb4b)](){var _0x258347=_0x44597e;this[_0x258347(0x3a5)](),this[_0x258347(0x430)]=!0x0;}[_0x44597e(0x862)](){return!0x0;}['_addNewAttachObserver'](_0x4d7921,_0x51c132){var _0x525a2e=_0x44597e;this[_0x525a2e(0xafb)]['push']({'observable':_0x4d7921,'observer':_0x4d7921[_0x525a2e(0x8d3)](_0x51c132)});}}},0x10dea:(_0x5af5c9,_0x5f1615,_0x22edbf)=>{var _0x7aaaa8=a7_0x3304fb;_0x22edbf['d'](_0x5f1615,{'s':()=>_0x551e52});class _0x551e52{constructor(_0x461e3a,_0x390bce,_0x1b85b3,_0x54e17b,_0x5b6959){var _0x4de724=a7_0x4135;this[_0x4de724(0x7a9)]=_0x461e3a,this[_0x4de724(0x997)]=_0x390bce,this[_0x4de724(0x809)]=_0x1b85b3,this[_0x4de724(0x7fa)]=_0x54e17b,this['createRenderTargetTextureProvider']=_0x5b6959;}get['isFixedFoveationSupported'](){var _0x16ca83=a7_0x4135;return _0x16ca83(0x976)==this['layerType']&&_0x16ca83(0x641)==typeof this[_0x16ca83(0x809)][_0x16ca83(0x175)];}get[_0x7aaaa8(0x175)](){var _0x3ec808=_0x7aaaa8;return this[_0x3ec808(0x21f)]?this[_0x3ec808(0x809)][_0x3ec808(0x175)]:null;}set[_0x7aaaa8(0x175)](_0x1f9fc2){var _0x542580=_0x7aaaa8;this[_0x542580(0x21f)]&&(_0x1f9fc2=Math[_0x542580(0x3f8)](0x0,Math['min'](0x1,_0x1f9fc2||0x0)),this[_0x542580(0x809)][_0x542580(0x175)]=_0x1f9fc2);}}},0x34e4:(_0x490281,_0x4337da,_0x43e540)=>{var _0x43f4a2=a7_0x3304fb;_0x43e540['d'](_0x4337da,{'T':()=>_0x5f3820});var _0x429348=_0x43e540(0x11029);class _0x5f3820{constructor(_0xad3f35,_0x11b145){var _0x347267=a7_0x4135;this[_0x347267(0xa72)]=0x0,this[_0x347267(0x4be)]={},this['currentOffsetStartTemp']=0x0,_0xad3f35 instanceof SharedArrayBuffer?(this[_0x347267(0x1fa)]=_0xad3f35,this[_0x347267(0xa72)]=_0xad3f35['byteLength']/(0x4*_0x5f3820[_0x347267(0x40c)]),this[_0x347267(0x4be)]=_0x11b145):(this[_0x347267(0x1fa)]=new SharedArrayBuffer(_0xad3f35*(0x4*_0x5f3820['modelDataLength'])),this[_0x347267(0xa72)]=_0xad3f35),this[_0x347267(0x649)]=new TextEncoder(),this[_0x347267(0xcbc)]=new TextDecoder(),this[_0x347267(0x1c5)]=new Float32Array(this[_0x347267(0x1fa)]),this[_0x347267(0x170)]=new Int32Array(this[_0x347267(0x1fa)]),this[_0x347267(0xb4c)]=new Uint8Array(this[_0x347267(0x1fa)]),this[_0x347267(0xacd)]=new Uint8Array(0xc8);}[_0x43f4a2(0x802)](_0x110e10){var _0x1abb58=_0x43f4a2;return _0x110e10=this[_0x1abb58(0x4be)][_0x110e10],this['f32d'][_0x1abb58(0x2fe)](_0x110e10,_0x110e10+0x3);}[_0x43f4a2(0xa06)](_0x2aa42f){var _0x34e501=_0x43f4a2;return _0x2aa42f=this[_0x34e501(0x4be)][_0x2aa42f]+0x3,this[_0x34e501(0x1c5)][_0x34e501(0x2fe)](_0x2aa42f,_0x2aa42f+0x3);}[_0x43f4a2(0x274)](_0x573e1a){var _0x51fa0c=_0x43f4a2;return _0x573e1a=this[_0x51fa0c(0x4be)][_0x573e1a]+0x6,this[_0x51fa0c(0x1c5)][_0x51fa0c(0x2fe)](_0x573e1a,_0x573e1a+0x10);}[_0x43f4a2(0x7e2)](_0x526944){var _0x263621=_0x43f4a2;return _0x526944=this[_0x263621(0x4be)][_0x526944]+0x1d,this['i32d'][_0x263621(0x2fe)](_0x526944,_0x526944+0x1);}['status'](_0x22d275){var _0x22d66f=_0x43f4a2;return _0x22d275=this[_0x22d66f(0x4be)][_0x22d275]+0x1c,this['i32d'][_0x22d66f(0x2fe)](_0x22d275,_0x22d275+0x1);}[_0x43f4a2(0x6d3)](_0x53bdd0){var _0x1b9fc8=_0x43f4a2;return _0x53bdd0=this[_0x1b9fc8(0x4be)][_0x53bdd0]+0x1b,this[_0x1b9fc8(0x170)][_0x1b9fc8(0x2fe)](_0x53bdd0,_0x53bdd0+0x1);}['废弃'](_0x2bb8af){var _0x101a44=_0x43f4a2;return _0x2bb8af=this[_0x101a44(0x4be)][_0x2bb8af]+0x1a,this[_0x101a44(0x170)][_0x101a44(0x2fe)](_0x2bb8af,_0x2bb8af+0x1);}[_0x43f4a2(0x9ab)](_0x50f98b){var _0x1e8ff0=_0x43f4a2;return _0x50f98b=this[_0x1e8ff0(0x4be)][_0x50f98b]+0x19,this[_0x1e8ff0(0x170)][_0x1e8ff0(0x2fe)](_0x50f98b,_0x50f98b+0x1);}[_0x43f4a2(0x9e4)](_0x5e88dc){var _0xb2df53=_0x43f4a2;return _0x5e88dc=this[_0xb2df53(0x4be)][_0x5e88dc]+0x18,this[_0xb2df53(0x170)][_0xb2df53(0x2fe)](_0x5e88dc,_0x5e88dc+0x1);}[_0x43f4a2(0x7d5)](_0x523352){var _0x3f3e87=_0x43f4a2;return _0x523352=this[_0x3f3e87(0x4be)][_0x523352]+0x17,this['i32d']['subarray'](_0x523352,_0x523352+0x1);}[_0x43f4a2(0x6a9)](_0x3e8813){var _0x48977d=_0x43f4a2;return _0x3e8813=this[_0x48977d(0x4be)][_0x3e8813]+0x16,this[_0x48977d(0x170)][_0x48977d(0x2fe)](_0x3e8813,_0x3e8813+0x1);}[_0x43f4a2(0x67d)](_0x167022){var _0x1ce6b1=_0x43f4a2;return _0x167022=0x4*this[_0x1ce6b1(0x4be)][_0x167022]+0x78,_0x167022=this[_0x1ce6b1(0xb4c)][_0x1ce6b1(0x2fe)](_0x167022,0xc8+_0x167022),(this['textBuffer'][_0x1ce6b1(0x6c1)](_0x167022),this['textD'][_0x1ce6b1(0x199)](this['textBuffer'])[_0x1ce6b1(0x89b)](/\x00/g,''));}[_0x43f4a2(0x604)](_0x1809a6,_0xe1fc65){var _0xa85a13=_0x43f4a2;if(_0xe1fc65){_0x1809a6=0x4*this[_0xa85a13(0x4be)][_0x1809a6]+0x78;let _0x30bbbc=this[_0xa85a13(0xb4c)]['subarray'](_0x1809a6,0xc8+_0x1809a6);_0x30bbbc[_0xa85a13(0x6c1)](this['textE'][_0xa85a13(0x723)](_0xe1fc65));}}[_0x43f4a2(0x373)](_0x9b73a0){var _0x26823e=_0x43f4a2;return _0x9b73a0=0x4*this[_0x26823e(0x4be)][_0x9b73a0]+0x140,_0x9b73a0=this[_0x26823e(0xb4c)]['subarray'](_0x9b73a0,0x20+_0x9b73a0),0x0!==_0x9b73a0[0x0]?(this[_0x26823e(0xacd)][_0x26823e(0x6c1)](_0x9b73a0),this[_0x26823e(0xcbc)][_0x26823e(0x199)](this['textBuffer'][_0x26823e(0x2fe)](0x0,0x20))):'';}[_0x43f4a2(0x951)](_0x3e01eb,_0x2f74bc){var _0x27787b=_0x43f4a2;if(_0x2f74bc){_0x3e01eb=0x4*this[_0x27787b(0x4be)][_0x3e01eb]+0x140;let _0x1ab891=this[_0x27787b(0xb4c)][_0x27787b(0x2fe)](_0x3e01eb,0x20+_0x3e01eb);_0x1ab891[_0x27787b(0x6c1)](this[_0x27787b(0x649)][_0x27787b(0x723)](_0x2f74bc));}}[_0x43f4a2(0x93c)](_0x556604){var _0x293169=_0x43f4a2;this[_0x293169(0x4be)][_0x556604['id']]=this[_0x293169(0x6ec)],this[_0x293169(0x6ec)]+=_0x5f3820['modelDataLength'];var _0x3feda2=this[_0x293169(0x4be)][_0x556604['id']];let _0x35c6d5=this[_0x293169(0x1c5)][_0x293169(0x2fe)](_0x3feda2,_0x3feda2+0x16),_0x12ca5c=[0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1];_0x556604[_0x293169(0x274)]&&(_0x12ca5c=(0x0,_0x429348['ux'])(_0x556604[_0x293169(0x274)]['split']('\x20'))),_0x35c6d5[_0x293169(0x6c1)]([...(0x0,_0x429348['ux'])(_0x556604[_0x293169(0x802)][_0x293169(0x684)]('\x20')),...(0x0,_0x429348['ux'])(_0x556604[_0x293169(0xa06)][_0x293169(0x684)]('\x20')),..._0x12ca5c]),_0x3feda2=this[_0x293169(0x4be)][_0x556604['id']]+0x16;let _0x475517=this[_0x293169(0x170)][_0x293169(0x2fe)](_0x3feda2,_0x3feda2+0x7);_0x475517[_0x293169(0x6c1)]([_0x556604[_0x293169(0x6a9)],_0x556604[_0x293169(0x7d5)],_0x556604[_0x293169(0x9e4)],_0x556604['materialCount'],0x0,-0x1,_0x556604[_0x293169(0x264)]||0x1]),this[_0x293169(0x604)](_0x556604['id'],_0x556604[_0x293169(0x164)]),this[_0x293169(0x951)](_0x556604['id'],_0x556604[_0x293169(0xb76)]);}[_0x43f4a2(0x89f)](){var _0x4a2b70=_0x43f4a2;let _0x3d44db={};for(var _0x2ca97e in this[_0x4a2b70(0x4be)]){var _0x2ca97e=~~_0x2ca97e,_0x351771=this[_0x4a2b70(0x4be)][_0x2ca97e];let _0x1513a9=this[_0x4a2b70(0x1c5)]['subarray'](_0x351771,_0x351771+0x16);_0x351771=this['modelIndexOffsetStart'][_0x2ca97e]+0x16,_0x351771=this[_0x4a2b70(0x170)][_0x4a2b70(0x2fe)](_0x351771,_0x351771+0x7),_0x3d44db[_0x2ca97e]={'id':_0x2ca97e,'boxMin':_0x1513a9[_0x4a2b70(0x2fe)](0x0,0x3),'boxMax':_0x1513a9['subarray'](0x3,0x6),'transform':_0x1513a9[_0x4a2b70(0x2fe)](0x6,0x16),'componentCount':_0x351771[0x0],'meshInstancesCount':_0x351771[0x1],'meshCount':_0x351771[0x2],'materialCount':_0x351771[0x3],'fileName':this['getFileName'](_0x2ca97e),'uniqueId':this[_0x4a2b70(0x373)](_0x2ca97e),'status':_0x351771[0x6]};}return _0x3d44db;}['model'](_0xb76e3c){var _0x319fc3=_0x43f4a2,_0x1a47d3=this[_0x319fc3(0x4be)][_0xb76e3c];let _0x5a3166=this[_0x319fc3(0x1c5)][_0x319fc3(0x2fe)](_0x1a47d3,_0x1a47d3+0x16);return _0x1a47d3=this[_0x319fc3(0x4be)][_0xb76e3c]+0x16,_0x1a47d3=this['i32d']['subarray'](_0x1a47d3,_0x1a47d3+0x7),{'id':_0xb76e3c,'boxMin':_0x5a3166['subarray'](0x0,0x3),'boxMax':_0x5a3166[_0x319fc3(0x2fe)](0x3,0x6),'transform':_0x5a3166[_0x319fc3(0x2fe)](0x6,0x16),'componentCount':_0x1a47d3[0x0],'meshInstancesCount':_0x1a47d3[0x1],'meshCount':_0x1a47d3[0x2],'materialCount':_0x1a47d3[0x3],'fileName':this[_0x319fc3(0x67d)](_0xb76e3c),'uniqueId':this[_0x319fc3(0x373)](_0xb76e3c),'status':_0x1a47d3[0x6]};}[_0x43f4a2(0x363)](_0x1b7e12){var _0x38dac6=_0x43f4a2;return this[_0x38dac6(0x4be)][_0x38dac6(0xa71)](_0x1b7e12);}}_0x5f3820[_0x43f4a2(0x40c)]=0x58;},0x15d06:(_0x333e50,_0x39764d,_0x38c771)=>{var _0x4b5bb1=a7_0x3304fb,_0xca7a8;_0x38c771['d'](_0x39764d,{'p':()=>_0x3fcb8b}),_0xca7a8={'cameraId':0x0,0x0:'cameraId','cameraWorldPosition':0x1,0x1:'cameraWorldPosition','worldDirection':0x2,0x2:'worldDirection','worldUp':0x3,0x3:_0x4b5bb1(0x2e1),'viewMatrix':0x4,0x4:_0x4b5bb1(0x124),'worldMatrix':0x5,0x5:_0x4b5bb1(0xc7e),'projectionMatrix':0x6,0x6:_0x4b5bb1(0xabd),'heartbeat':0x7,0x7:_0x4b5bb1(0xaf9),'useCache':0x8,0x8:'useCache','maxRenderTriangleCount':0x9,0x9:'maxRenderTriangleCount','frameMaxRenderMemoryLength':0xa,0xa:_0x4b5bb1(0x829),'pickId':0xb,0xb:_0x4b5bb1(0xb0b),'pickWorldPosition':0xc,0xc:_0x4b5bb1(0x8b2),'pickWorldNormal':0xd,0xd:_0x4b5bb1(0x1eb),'getBox':0xe,0xe:_0x4b5bb1(0x160),'maxTextureSize':0xf,0xf:_0x4b5bb1(0xaad),'renderPageFocus':0x10,0x10:_0x4b5bb1(0x972),'renderWidthHeight':0x11,0x11:'renderWidthHeight','allowSingleMeshMaxTriangleFaceQuantity':0x12,0x12:_0x4b5bb1(0x46c),'visibleModelBox':0x13,0x13:'visibleModelBox','isMainRender':0x14,0x14:_0x4b5bb1(0x9d7),'mousePosition':0x15,0x15:_0x4b5bb1(0x2a9),'sunDirection':0x16,0x16:_0x4b5bb1(0x935),'startTime':0x17,0x17:_0x4b5bb1(0x40d),'onlyShowShells':0x18,0x18:_0x4b5bb1(0x30f),'enableMouseHover':0x19,0x19:'enableMouseHover'};class _0x3fcb8b{constructor(_0x3c45e8,_0x2a58a9){var _0x7144aa=_0x4b5bb1;if(this[_0x7144aa(0xca6)]={},this[_0x7144aa(0xa2d)]=0x0,this[_0x7144aa(0x3c7)]=0x0,this[_0x7144aa(0x784)]=0x7fe00000,this['arrayBufferBlockCount']=0x0,this[_0x7144aa(0x4f0)]=Float64Array,_0x3c45e8||_0x2a58a9){for(var _0x49bb0d in(this[_0x7144aa(0x844)]=_0x2a58a9,_0x3c45e8))this[_0x7144aa(0x1ce)](_0x49bb0d,_0x3c45e8[_0x49bb0d][_0x7144aa(0x86f)]);}else{this['dataStoreArrayBuffer']=[],_0x2a58a9=0x6f*Float64Array[_0x7144aa(0xbd0)];if(this[_0x7144aa(0x40e)]=Math[_0x7144aa(0x17c)](_0x2a58a9/this['arrayBufferBlockMaxByteLength']),0x0===this[_0x7144aa(0x40e)])this[_0x7144aa(0x844)][_0x7144aa(0x725)](new SharedArrayBuffer(_0x2a58a9));else{for(let _0x49defc=0x0;_0x49defc<this[_0x7144aa(0x40e)];_0x49defc++)this[_0x7144aa(0x844)]['push'](new SharedArrayBuffer(this[_0x7144aa(0x784)]));this[_0x7144aa(0x844)]['push'](new SharedArrayBuffer(_0x2a58a9%this[_0x7144aa(0x784)]));}this[_0x7144aa(0x1ce)](_0xca7a8[_0x7144aa(0x392)],0x1),this[_0x7144aa(0x1ce)](_0xca7a8[_0x7144aa(0x902)],0x3),this[_0x7144aa(0x1ce)](_0xca7a8[_0x7144aa(0x123)],0x3),this[_0x7144aa(0x1ce)](_0xca7a8[_0x7144aa(0x2e1)],0x3),this[_0x7144aa(0x1ce)](_0xca7a8['viewMatrix'],0x10),this[_0x7144aa(0x1ce)](_0xca7a8['worldMatrix'],0x10),this['AddStore'](_0xca7a8['projectionMatrix'],0x15),this[_0x7144aa(0x1ce)](_0xca7a8[_0x7144aa(0xaf9)],0x1),this[_0x7144aa(0x1ce)](_0xca7a8[_0x7144aa(0x222)],0x1),this['AddStore'](_0xca7a8['maxRenderTriangleCount'],0x1),this[_0x7144aa(0x1ce)](_0xca7a8['frameMaxRenderMemoryLength'],0x1),this[_0x7144aa(0x1ce)](_0xca7a8[_0x7144aa(0xb0b)],0x5),this[_0x7144aa(0x1ce)](_0xca7a8[_0x7144aa(0x8b2)],0x4),this[_0x7144aa(0x1ce)](_0xca7a8['pickWorldNormal'],0x4),this['AddStore'](_0xca7a8[_0x7144aa(0x160)],0x7),this['AddStore'](_0xca7a8[_0x7144aa(0xaad)],0x1),this[_0x7144aa(0x1ce)](_0xca7a8[_0x7144aa(0x972)],0x1),this[_0x7144aa(0x1ce)](_0xca7a8[_0x7144aa(0x28c)],0x2),this['AddStore'](_0xca7a8['allowSingleMeshMaxTriangleFaceQuantity'],0x1),this[_0x7144aa(0x1ce)](_0xca7a8[_0x7144aa(0x2f4)],0xa),this[_0x7144aa(0x1ce)](_0xca7a8[_0x7144aa(0x9d7)],0x1),this[_0x7144aa(0x1ce)](_0xca7a8['mousePosition'],0x2),this[_0x7144aa(0x1ce)](_0xca7a8[_0x7144aa(0x935)],0x3),this['AddStore'](_0xca7a8['startTime'],0x1),this[_0x7144aa(0x1ce)](_0xca7a8[_0x7144aa(0x30f)],0x1),this['AddStore'](_0xca7a8[_0x7144aa(0xcb1)],0x1);}}get['enableMouseHover'](){var _0xfc8786=_0x4b5bb1;return this[_0xfc8786(0x3ee)](_0xca7a8[_0xfc8786(0xcb1)])[0x0];}set['enableMouseHover'](_0x2f7cde){var _0x42e672=_0x4b5bb1;this[_0x42e672(0x3ee)](_0xca7a8[_0x42e672(0xcb1)])[0x0]=_0x2f7cde;}get[_0x4b5bb1(0x30f)](){var _0x113396=_0x4b5bb1;return this[_0x113396(0x3ee)](_0xca7a8[_0x113396(0x30f)])[0x0];}set['onlyShowShells'](_0x49156b){var _0x5a5fa8=_0x4b5bb1;this[_0x5a5fa8(0x3ee)](_0xca7a8['onlyShowShells'])[0x0]=_0x49156b;}get[_0x4b5bb1(0x40d)](){var _0x202a32=_0x4b5bb1;return this[_0x202a32(0x3ee)](_0xca7a8['startTime'])[0x0];}set[_0x4b5bb1(0x40d)](_0xcd01b3){var _0x34824f=_0x4b5bb1;this[_0x34824f(0x3ee)](_0xca7a8[_0x34824f(0x40d)])[0x0]=_0xcd01b3;}set[_0x4b5bb1(0x935)](_0x45b933){var _0x53593b=_0x4b5bb1;this[_0x53593b(0x64a)](_0xca7a8[_0x53593b(0x935)],_0x45b933);}get['sunDirection'](){var _0x116757=_0x4b5bb1;return this[_0x116757(0x3ee)](_0xca7a8[_0x116757(0x935)]);}set[_0x4b5bb1(0x2a9)](_0x463a56){var _0x3b4c25=_0x4b5bb1;this[_0x3b4c25(0x64a)](_0xca7a8[_0x3b4c25(0x2a9)],_0x463a56);}get[_0x4b5bb1(0x2a9)](){var _0x2bacda=_0x4b5bb1;return this[_0x2bacda(0x3ee)](_0xca7a8[_0x2bacda(0x2a9)]);}get[_0x4b5bb1(0x9d7)](){var _0x44a517=_0x4b5bb1;return this[_0x44a517(0x3ee)](_0xca7a8[_0x44a517(0x9d7)])[0x0];}set[_0x4b5bb1(0x9d7)](_0x311444){var _0x37e395=_0x4b5bb1;this[_0x37e395(0x3ee)](_0xca7a8[_0x37e395(0x9d7)])[0x0]=_0x311444;}get['allowSingleMeshMaxTriangleFaceQuantity'](){var _0x1a6635=_0x4b5bb1;return this['GetData'](_0xca7a8[_0x1a6635(0x46c)])[0x0];}set[_0x4b5bb1(0x46c)](_0x28a01c){var _0x46d9e6=_0x4b5bb1;this[_0x46d9e6(0x3ee)](_0xca7a8[_0x46d9e6(0x46c)])[0x0]=_0x28a01c;}get['visibleModelBox'](){var _0x55e753=_0x4b5bb1;return this[_0x55e753(0x3ee)](_0xca7a8['visibleModelBox']);}set[_0x4b5bb1(0x2f4)](_0x3fc333){var _0x3c96be=_0x4b5bb1;this[_0x3c96be(0x64a)](_0xca7a8[_0x3c96be(0x2f4)],_0x3fc333);}get[_0x4b5bb1(0x28c)](){var _0x17c837=_0x4b5bb1;return this[_0x17c837(0x3ee)](_0xca7a8['renderWidthHeight']);}set[_0x4b5bb1(0x28c)](_0x3f796b){var _0xf69036=_0x4b5bb1;this[_0xf69036(0x64a)](_0xca7a8['renderWidthHeight'],_0x3f796b);}get[_0x4b5bb1(0x972)](){var _0x246902=_0x4b5bb1;return this['GetData'](_0xca7a8[_0x246902(0x972)])[0x0];}set[_0x4b5bb1(0x972)](_0x223a2c){var _0xd9ae87=_0x4b5bb1;this[_0xd9ae87(0x3ee)](_0xca7a8[_0xd9ae87(0x972)])[0x0]=_0x223a2c;}get[_0x4b5bb1(0xaad)](){var _0x3305b4=_0x4b5bb1;return this[_0x3305b4(0x3ee)](_0xca7a8[_0x3305b4(0xaad)])[0x0];}set['maxTextureSize'](_0x1cb39f){var _0x1932d5=_0x4b5bb1;this[_0x1932d5(0x3ee)](_0xca7a8['maxTextureSize'])[0x0]=_0x1cb39f;}get[_0x4b5bb1(0x160)](){var _0x5cf7b1=_0x4b5bb1;return this[_0x5cf7b1(0x3ee)](_0xca7a8[_0x5cf7b1(0x160)]);}set[_0x4b5bb1(0x160)](_0x472971){this['SetData'](_0xca7a8['getBox'],_0x472971);}get[_0x4b5bb1(0x1eb)](){var _0x48355f=_0x4b5bb1;return this[_0x48355f(0x3ee)](_0xca7a8[_0x48355f(0x1eb)]);}set[_0x4b5bb1(0x1eb)](_0xfa9f63){var _0x39ce26=_0x4b5bb1;this['SetData'](_0xca7a8[_0x39ce26(0x1eb)],_0xfa9f63);}get[_0x4b5bb1(0x8b2)](){var _0x37727e=_0x4b5bb1;return this[_0x37727e(0x3ee)](_0xca7a8[_0x37727e(0x8b2)]);}set[_0x4b5bb1(0x8b2)](_0x513405){var _0x5c576a=_0x4b5bb1;this[_0x5c576a(0x64a)](_0xca7a8[_0x5c576a(0x8b2)],_0x513405);}get[_0x4b5bb1(0xb0b)](){var _0x333c5c=_0x4b5bb1;return this[_0x333c5c(0x3ee)](_0xca7a8[_0x333c5c(0xb0b)]);}set[_0x4b5bb1(0xb0b)](_0x386929){var _0x3aef2d=_0x4b5bb1;this['SetData'](_0xca7a8[_0x3aef2d(0xb0b)],_0x386929);}get['frameMaxRenderMemoryLength'](){var _0x5212d5=_0x4b5bb1;return this[_0x5212d5(0x3ee)](_0xca7a8['frameMaxRenderMemoryLength'])[0x0];}set['frameMaxRenderMemoryLength'](_0xe4ddfc){var _0x5b359a=_0x4b5bb1;this[_0x5b359a(0x3ee)](_0xca7a8[_0x5b359a(0x829)])[0x0]=_0xe4ddfc;}get[_0x4b5bb1(0x173)](){var _0x469bb1=_0x4b5bb1;return this[_0x469bb1(0x3ee)](_0xca7a8[_0x469bb1(0x173)])[0x0];}set[_0x4b5bb1(0x173)](_0x5e55a8){var _0x25ca96=_0x4b5bb1;this[_0x25ca96(0x3ee)](_0xca7a8[_0x25ca96(0x173)])[0x0]=_0x5e55a8;}get[_0x4b5bb1(0x222)](){var _0x3a902f=_0x4b5bb1;return this[_0x3a902f(0x3ee)](_0xca7a8[_0x3a902f(0x222)])[0x0];}set[_0x4b5bb1(0x222)](_0x30e1cb){var _0x31799d=_0x4b5bb1;this[_0x31799d(0x3ee)](_0xca7a8[_0x31799d(0x222)])[0x0]=_0x30e1cb;}get[_0x4b5bb1(0x392)](){var _0x59f6da=_0x4b5bb1;return this[_0x59f6da(0x3ee)](_0xca7a8['cameraId'])[0x0];}set['cameraId'](_0x1af586){var _0x11cd33=_0x4b5bb1;this[_0x11cd33(0x3ee)](_0xca7a8['cameraId'])[0x0]=0xf423f<_0x1af586?0x2:_0x1af586;}get[_0x4b5bb1(0x902)](){var _0xd3350e=_0x4b5bb1;return this[_0xd3350e(0x3ee)](_0xca7a8[_0xd3350e(0x902)]);}set[_0x4b5bb1(0x902)](_0x23236a){var _0x51ac05=_0x4b5bb1;this[_0x51ac05(0x64a)](_0xca7a8[_0x51ac05(0x902)],_0x23236a);}get[_0x4b5bb1(0x123)](){var _0x5f3089=_0x4b5bb1;return this[_0x5f3089(0x3ee)](_0xca7a8[_0x5f3089(0x123)]);}set[_0x4b5bb1(0x123)](_0x4cfddd){var _0x5aefdd=_0x4b5bb1;this[_0x5aefdd(0x64a)](_0xca7a8['worldDirection'],_0x4cfddd);}get[_0x4b5bb1(0x2e1)](){var _0x594933=_0x4b5bb1;return this[_0x594933(0x3ee)](_0xca7a8[_0x594933(0x2e1)]);}set[_0x4b5bb1(0x2e1)](_0x4f0e6b){var _0x4e9d14=_0x4b5bb1;this[_0x4e9d14(0x64a)](_0xca7a8[_0x4e9d14(0x2e1)],_0x4f0e6b);}get[_0x4b5bb1(0x124)](){var _0x38a522=_0x4b5bb1;return this[_0x38a522(0x3ee)](_0xca7a8['viewMatrix']);}set['viewMatrix'](_0x996d5f){var _0xb8c67c=_0x4b5bb1;this[_0xb8c67c(0x64a)](_0xca7a8[_0xb8c67c(0x124)],_0x996d5f);}get[_0x4b5bb1(0xc7e)](){var _0x539024=_0x4b5bb1;return this[_0x539024(0x3ee)](_0xca7a8[_0x539024(0xc7e)]);}set[_0x4b5bb1(0xc7e)](_0x3daeb5){var _0x32bab9=_0x4b5bb1;this['SetData'](_0xca7a8[_0x32bab9(0xc7e)],_0x3daeb5);}get['projectionMatrix'](){var _0x5032c6=_0x4b5bb1;return this[_0x5032c6(0x3ee)](_0xca7a8[_0x5032c6(0xabd)]);}set[_0x4b5bb1(0xabd)](_0x44b312){var _0x25dfa4=_0x4b5bb1;this[_0x25dfa4(0x64a)](_0xca7a8[_0x25dfa4(0xabd)],_0x44b312);}get['heartbeat'](){var _0x1735aa=_0x4b5bb1;return this[_0x1735aa(0x3ee)](_0xca7a8[_0x1735aa(0xaf9)])[0x0];}set['heartbeat'](_0x58e471){var _0x56f7f3=_0x4b5bb1;this[_0x56f7f3(0x3ee)](_0xca7a8['heartbeat'])[0x0]=_0x58e471;}[_0x4b5bb1(0x1ce)](_0x4a3813,_0x577d47){var _0x18ab3c=_0x4b5bb1;this[_0x18ab3c(0xca6)][_0x18ab3c(0xa71)](_0x4a3813)||(this[_0x18ab3c(0xca6)][_0x4a3813]={},this['dataStoreObject'][_0x4a3813]['length']=_0x577d47,this[_0x18ab3c(0x3c7)]+_0x577d47*this[_0x18ab3c(0x4f0)][_0x18ab3c(0xbd0)]>this[_0x18ab3c(0x784)]&&(this[_0x18ab3c(0xa2d)]++,this[_0x18ab3c(0x3c7)]=0x0),this[_0x18ab3c(0xca6)][_0x4a3813][_0x18ab3c(0x611)]=new this[(_0x18ab3c(0x4f0))](this[_0x18ab3c(0x844)][this[_0x18ab3c(0xa2d)]],this[_0x18ab3c(0x3c7)],this['dataStoreObject'][_0x4a3813][_0x18ab3c(0x86f)]),this[_0x18ab3c(0xca6)][_0x4a3813]['byteOffset']=this[_0x18ab3c(0x3c7)],this['dataStoreDataByteOffset']+=this[_0x18ab3c(0x4f0)][_0x18ab3c(0xbd0)]*this[_0x18ab3c(0xca6)][_0x4a3813][_0x18ab3c(0x86f)]);}[_0x4b5bb1(0x64a)](_0x45c980,_0x4a5dc7){var _0x55934a=_0x4b5bb1;_0x4a5dc7&&this[_0x55934a(0xca6)][_0x45c980][_0x55934a(0x611)]['set'](_0x4a5dc7);}[_0x4b5bb1(0x3ee)](_0x1ae1a4){var _0x1204e5=_0x4b5bb1;return null==(_0x1ae1a4=this[_0x1204e5(0xca6)][_0x1ae1a4])?void 0x0:_0x1ae1a4[_0x1204e5(0x611)];}}}}]);function a7_0x3311(){var _0x28c4dd=[';\x0d\x0a','#extension\x20GL_OVR_multiview2\x20:\x20require\x0alayout\x20(num_views\x20=\x202)\x20in;\x0a','fluidRenderingStandardBlur','precision\x20mediump\x20sampler2DArray;\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2DArray\x20multiviewSampler;\x0auniform\x20int\x20imageIndex;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0agl_FragColor=texture2D(multiviewSampler,vec3(vUV,imageIndex));\x0a}','_createDepthStencilTexture','\x22,\x20null);\x0d\x0a','glowMapGenerationPixelShader','blurMaxFilterSize','varyingDeclaration','BYTES_PER_ELEMENT','_uniforms','Unable\x20to\x20create\x20multi\x20sampled\x20framebuffer','#if\x20NUM_BONE_INFLUENCERS>0\x0aattribute\x20vec4\x20matricesIndices;\x0aattribute\x20vec4\x20matricesWeights;\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0aattribute\x20vec4\x20matricesIndicesExtra;\x0aattribute\x20vec4\x20matricesWeightsExtra;\x0a#endif\x0a#ifndef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0a#ifdef\x20BONETEXTURE\x0auniform\x20sampler2D\x20boneSampler;\x0auniform\x20float\x20boneTextureWidth;\x0a#else\x0auniform\x20mat4\x20mBones[BonesPerMesh];\x0a#ifdef\x20BONES_VELOCITY_ENABLED\x0auniform\x20mat4\x20mPreviousBones[BonesPerMesh];\x0a#endif\x0a#endif\x0a#ifdef\x20BONETEXTURE\x0a#define\x20inline\x0amat4\x20readMatrixFromRawSampler(sampler2D\x20smp,float\x20index)\x0a{\x0afloat\x20offset=index\x20*4.0;\x0afloat\x20dx=1.0/boneTextureWidth;\x0avec4\x20m0=texture2D(smp,vec2(dx*(offset+0.5),0.));\x0avec4\x20m1=texture2D(smp,vec2(dx*(offset+1.5),0.));\x0avec4\x20m2=texture2D(smp,vec2(dx*(offset+2.5),0.));\x0avec4\x20m3=texture2D(smp,vec2(dx*(offset+3.5),0.));\x0areturn\x20mat4(m0,m1,m2,m3);\x0a}\x0a#endif\x0a#endif\x0a#endif\x0a','isPointerLock','indexOf','animatedInputs','volumetricLightScatteringPassPixelShader','updateDirectColor4','TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL','ProjectOnTriangleToRef','setStencilPassOp','pbrBlockSheen','RGB\x20format\x20not\x20supported\x20in\x20WebGPU','MATERIAL_TextureDirtyFlag','IRIDESCENCE_TEXTURE','All','uniform','originalPickingInfo','copy','isAnimationSheetEnabled','clickInfo','onPrePointerObservable',');\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20','Lerp','fxaaVertexShader','releaseComputeEffects','buffer','#define\x20FOG','STATIC_DRAW','scale','_attributeNextLocation','bindGroupEntries','disableAutoAttach','_alphaState','#ifdef\x20CLIPPLANE\x0avarying\x20fClipDistance:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0avarying\x20fClipDistance2:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0avarying\x20fClipDistance3:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0avarying\x20fClipDistance4:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0avarying\x20fClipDistance5:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0avarying\x20fClipDistance6:\x20f32;\x0a#endif\x0a','_onGenerateOnlyFragmentCodeChanged',')\x20is\x20not\x20a\x20storage\x20texture!','_Stack','crossEye','hashCode','FromArrayToRef','getVRDisplays','_addSamplerBindingDescription','boundingBox','\x20=\x20','CONSTANT_COLOR','LeftOver','version','RG11B10UFloat','preProcessor','shadowMapVertexNormalBias','setIntArray4','pbrVertexDeclaration','DEPTH_COMPONENT','ALPHA_COMBINE','-DepthStencil','Sint','textureFormatInUse','_bindTextureDirectly','struct\x20albedoOpacityOutParams\x0a{\x0avec3\x20surfaceAlbedo;\x0afloat\x20alpha;\x0a};\x0a#define\x20pbr_inline\x0avoid\x20albedoOpacityBlock(\x0ain\x20vec4\x20vAlbedoColor,\x0a#ifdef\x20ALBEDO\x0ain\x20vec4\x20albedoTexture,\x0ain\x20vec2\x20albedoInfos,\x0a#endif\x0a#ifdef\x20OPACITY\x0ain\x20vec4\x20opacityMap,\x0ain\x20vec2\x20vOpacityInfos,\x0a#endif\x0a#ifdef\x20DETAIL\x0ain\x20vec4\x20detailColor,\x0ain\x20vec4\x20vDetailInfos,\x0a#endif\x0a#ifdef\x20DECAL\x0ain\x20vec4\x20decalColor,\x0ain\x20vec4\x20vDecalInfos,\x0a#endif\x0aout\x20albedoOpacityOutParams\x20outParams\x0a)\x0a{\x0avec3\x20surfaceAlbedo=vAlbedoColor.rgb;\x0afloat\x20alpha=vAlbedoColor.a;\x0a#ifdef\x20ALBEDO\x0a#if\x20defined(ALPHAFROMALBEDO)\x20||\x20defined(ALPHATEST)\x0aalpha*=albedoTexture.a;\x0a#endif\x0a#ifdef\x20GAMMAALBEDO\x0asurfaceAlbedo*=toLinearSpace(albedoTexture.rgb);\x0a#else\x0asurfaceAlbedo*=albedoTexture.rgb;\x0a#endif\x0asurfaceAlbedo*=albedoInfos.y;\x0a#endif\x0a#include<decalFragment>\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0asurfaceAlbedo*=vColor.rgb;\x0a#endif\x0a#ifdef\x20DETAIL\x0afloat\x20detailAlbedo=2.0*mix(0.5,detailColor.r,vDetailInfos.y);\x0asurfaceAlbedo.rgb=surfaceAlbedo.rgb*detailAlbedo*detailAlbedo;\x20\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_UPDATE_ALBEDO\x0a#ifdef\x20OPACITY\x0a#ifdef\x20OPACITYRGB\x0aalpha=getLuminance(opacityMap.rgb);\x0a#else\x0aalpha*=opacityMap.a;\x0a#endif\x0aalpha*=vOpacityInfos.y;\x0a#endif\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#if\x20!defined(SS_LINKREFRACTIONTOTRANSPARENCY)\x20&&\x20!defined(ALPHAFRESNEL)\x0a#ifdef\x20ALPHATEST\x0aif\x20(alpha<ALPHATESTVALUE)\x0adiscard;\x0a#ifndef\x20ALPHABLEND\x0aalpha=1.0;\x0a#endif\x0a#endif\x0a#endif\x0aoutParams.surfaceAlbedo=surfaceAlbedo;\x0aoutParams.alpha=alpha;\x0a}\x0a','pixelStorei','kernelBlurVertex','_pointerOverDisableMeshTesting','_mesh','supportedPipelines','const\x20float\x20PI=3.1415926535897932384626433832795;\x0aconst\x20float\x20HALF_MIN=5.96046448e-08;\x20\x0aconst\x20float\x20LinearEncodePowerApprox=2.2;\x0aconst\x20float\x20GammaEncodePowerApprox=1.0/LinearEncodePowerApprox;\x0aconst\x20vec3\x20LuminanceEncodeApprox=vec3(0.2126,0.7152,0.0722);\x0aconst\x20float\x20Epsilon=0.0000001;\x0a#define\x20saturate(x)\x20clamp(x,0.0,1.0)\x0a#define\x20absEps(x)\x20abs(x)+Epsilon\x0a#define\x20maxEps(x)\x20max(x,Epsilon)\x0a#define\x20saturateEps(x)\x20clamp(x,Epsilon,1.0)\x0amat3\x20transposeMat3(mat3\x20inMatrix)\x20{\x0avec3\x20i0=inMatrix[0];\x0avec3\x20i1=inMatrix[1];\x0avec3\x20i2=inMatrix[2];\x0amat3\x20outMatrix=mat3(\x0avec3(i0.x,i1.x,i2.x),\x0avec3(i0.y,i1.y,i2.y),\x0avec3(i0.z,i1.z,i2.z)\x0a);\x0areturn\x20outMatrix;\x0a}\x0amat3\x20inverseMat3(mat3\x20inMatrix)\x20{\x0afloat\x20a00=inMatrix[0][0],a01=inMatrix[0][1],a02=inMatrix[0][2];\x0afloat\x20a10=inMatrix[1][0],a11=inMatrix[1][1],a12=inMatrix[1][2];\x0afloat\x20a20=inMatrix[2][0],a21=inMatrix[2][1],a22=inMatrix[2][2];\x0afloat\x20b01=a22*a11-a12*a21;\x0afloat\x20b11=-a22*a10+a12*a20;\x0afloat\x20b21=a21*a10-a11*a20;\x0afloat\x20det=a00*b01+a01*b11+a02*b21;\x0areturn\x20mat3(b01,(-a22*a01+a02*a21),(a12*a01-a02*a11),\x0ab11,(a22*a00-a02*a20),(-a12*a00+a02*a10),\x0ab21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;\x0a}\x0a#if\x20USE_EXACT_SRGB_CONVERSIONS\x0avec3\x20toLinearSpaceExact(vec3\x20color)\x0a{\x0avec3\x20nearZeroSection=0.0773993808*color;\x0avec3\x20remainingSection=pow(0.947867299*(color+vec3(0.055)),vec3(2.4));\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0areturn\x20mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.04045)));\x0a#else\x0areturn\x0avec3(\x0acolor.r<=0.04045\x20?\x20nearZeroSection.r\x20:\x20remainingSection.r,\x0acolor.g<=0.04045\x20?\x20nearZeroSection.g\x20:\x20remainingSection.g,\x0acolor.b<=0.04045\x20?\x20nearZeroSection.b\x20:\x20remainingSection.b);\x0a#endif\x0a}\x0avec3\x20toGammaSpaceExact(vec3\x20color)\x0a{\x0avec3\x20nearZeroSection=12.92*color;\x0avec3\x20remainingSection=1.055*pow(color,vec3(0.41666))-vec3(0.055);\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0areturn\x20mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.0031308)));\x0a#else\x0areturn\x0avec3(\x0acolor.r<=0.0031308\x20?\x20nearZeroSection.r\x20:\x20remainingSection.r,\x0acolor.g<=0.0031308\x20?\x20nearZeroSection.g\x20:\x20remainingSection.g,\x0acolor.b<=0.0031308\x20?\x20nearZeroSection.b\x20:\x20remainingSection.b);\x0a#endif\x0a}\x0a#endif\x0afloat\x20toLinearSpace(float\x20color)\x0a{\x0a#if\x20USE_EXACT_SRGB_CONVERSIONS\x0afloat\x20nearZeroSection=0.0773993808*color;\x0afloat\x20remainingSection=pow(0.947867299*(color+0.055),2.4);\x0areturn\x20color<=0.04045\x20?\x20nearZeroSection\x20:\x20remainingSection;\x0a#else\x0areturn\x20pow(color,LinearEncodePowerApprox);\x0a#endif\x0a}\x0avec3\x20toLinearSpace(vec3\x20color)\x0a{\x0a#if\x20USE_EXACT_SRGB_CONVERSIONS\x0areturn\x20toLinearSpaceExact(color);\x0a#else\x0areturn\x20pow(color,vec3(LinearEncodePowerApprox));\x0a#endif\x0a}\x0avec4\x20toLinearSpace(vec4\x20color)\x0a{\x0a#if\x20USE_EXACT_SRGB_CONVERSIONS\x0areturn\x20vec4(toLinearSpaceExact(color.rgb),color.a);\x0a#else\x0areturn\x20vec4(pow(color.rgb,vec3(LinearEncodePowerApprox)),color.a);\x0a#endif\x0a}\x0afloat\x20toGammaSpace(float\x20color)\x0a{\x0a#if\x20USE_EXACT_SRGB_CONVERSIONS\x0afloat\x20nearZeroSection=12.92*color;\x0afloat\x20remainingSection=1.055*pow(color,0.41666)-0.055;\x0areturn\x20color<=0.0031308\x20?\x20nearZeroSection\x20:\x20remainingSection;\x0a#else\x0areturn\x20pow(color,GammaEncodePowerApprox);\x0a#endif\x0a}\x0avec3\x20toGammaSpace(vec3\x20color)\x0a{\x0a#if\x20USE_EXACT_SRGB_CONVERSIONS\x0areturn\x20toGammaSpaceExact(color);\x0a#else\x0areturn\x20pow(color,vec3(GammaEncodePowerApprox));\x0a#endif\x0a}\x0avec4\x20toGammaSpace(vec4\x20color)\x0a{\x0a#if\x20USE_EXACT_SRGB_CONVERSIONS\x0areturn\x20vec4(toGammaSpaceExact(color.rgb),color.a);\x0a#else\x0areturn\x20vec4(pow(color.rgb,vec3(GammaEncodePowerApprox)),color.a);\x0a#endif\x0a}\x0afloat\x20square(float\x20value)\x0a{\x0areturn\x20value*value;\x0a}\x0avec3\x20square(vec3\x20value)\x0a{\x0areturn\x20value*value;\x0a}\x0afloat\x20pow5(float\x20value)\x20{\x0afloat\x20sq=value*value;\x0areturn\x20sq*sq*value;\x0a}\x0afloat\x20getLuminance(vec3\x20color)\x0a{\x0areturn\x20clamp(dot(color,LuminanceEncodeApprox),0.,1.);\x0a}\x0afloat\x20getRand(vec2\x20seed)\x20{\x0areturn\x20fract(sin(dot(seed.xy\x20,vec2(12.9898,78.233)))*43758.5453);\x0a}\x0afloat\x20dither(vec2\x20seed,float\x20varianceAmount)\x20{\x0afloat\x20rand=getRand(seed);\x0afloat\x20normVariance=varianceAmount/255.0;\x0afloat\x20dither=mix(-normVariance,normVariance,rand);\x0areturn\x20dither;\x0a}\x0aconst\x20float\x20rgbdMaxRange=255.0;\x0avec4\x20toRGBD(vec3\x20color)\x20{\x0afloat\x20maxRGB=maxEps(max(color.r,max(color.g,color.b)));\x0afloat\x20D\x20=max(rgbdMaxRange/maxRGB,1.);\x0aD\x20=clamp(floor(D)/255.0,0.,1.);\x0avec3\x20rgb=color.rgb*D;\x0argb=toGammaSpace(rgb);\x0areturn\x20vec4(clamp(rgb,0.,1.),D);\x20\x0a}\x0avec3\x20fromRGBD(vec4\x20rgbd)\x20{\x0argbd.rgb=toLinearSpace(rgbd.rgb);\x0areturn\x20rgbd.rgb/rgbd.a;\x0a}\x0avec3\x20parallaxCorrectNormal(\x20vec3\x20vertexPos,vec3\x20origVec,vec3\x20cubeSize,vec3\x20cubePos\x20)\x20{\x0avec3\x20invOrigVec=vec3(1.0,1.0,1.0)/origVec;\x0avec3\x20halfSize=cubeSize*0.5;\x0avec3\x20intersecAtMaxPlane=(cubePos+halfSize-vertexPos)*invOrigVec;\x0avec3\x20intersecAtMinPlane=(cubePos-halfSize-vertexPos)*invOrigVec;\x0avec3\x20largestIntersec=max(intersecAtMaxPlane,intersecAtMinPlane);\x0afloat\x20distance=min(min(largestIntersec.x,largestIntersec.y),largestIntersec.z);\x0avec3\x20intersectPositionWS=vertexPos+origVec*distance;\x0areturn\x20intersectPositionWS-cubePos;\x0a}\x0a','FALLOFF_PHYSICAL','\x20=\x20computeFixedEquirectangularCoords(','availableVaryings','readFromStorageBuffer:\x20Unsupported\x20method\x20in\x20this\x20engine!','#define\x20CONEEMITTER','TEXTUREFORMAT_COMPRESSED_RGB8_ETC2','_releaseComputeEffect','ASTC6x6Unorm','cancelAnimationFrame','clipPlaneFragmentDeclaration2','cellWidth','_injectAtEnd','#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20TEXTUREFUNC(s,c,lod)\x20texture2DLodEXT(s,c,lod)\x0a#else\x0a#define\x20TEXTUREFUNC(s,c,bias)\x20texture2D(s,c,bias)\x0a#endif\x0auniform\x20sampler2D\x20textureSampler;\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20circleOfConfusionSampler;\x0auniform\x20sampler2D\x20blurStep0;\x0a#if\x20BLUR_LEVEL>0\x0auniform\x20sampler2D\x20blurStep1;\x0a#endif\x0a#if\x20BLUR_LEVEL>1\x0auniform\x20sampler2D\x20blurStep2;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0afloat\x20coc=TEXTUREFUNC(circleOfConfusionSampler,vUV,0.0).r;\x0a#if\x20BLUR_LEVEL==0\x0avec4\x20original=TEXTUREFUNC(textureSampler,vUV,0.0);\x0avec4\x20blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);\x0agl_FragColor=mix(original,blurred0,coc);\x0a#endif\x0a#if\x20BLUR_LEVEL==1\x0aif(coc<0.5){\x0avec4\x20original=TEXTUREFUNC(textureSampler,vUV,0.0);\x0avec4\x20blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);\x0agl_FragColor=mix(original,blurred1,coc/0.5);\x0a}else{\x0avec4\x20blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);\x0avec4\x20blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);\x0agl_FragColor=mix(blurred1,blurred0,(coc-0.5)/0.5);\x0a}\x0a#endif\x0a#if\x20BLUR_LEVEL==2\x0aif(coc<0.33){\x0avec4\x20original=TEXTUREFUNC(textureSampler,vUV,0.0);\x0avec4\x20blurred2=TEXTUREFUNC(blurStep2,vUV,0.0);\x0agl_FragColor=mix(original,blurred2,coc/0.33);\x0a}else\x20if(coc<0.66){\x0avec4\x20blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);\x0avec4\x20blurred2=TEXTUREFUNC(blurStep2,vUV,0.0);\x0agl_FragColor=mix(blurred2,blurred1,(coc-0.33)/0.33);\x0a}else{\x0avec4\x20blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);\x0avec4\x20blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);\x0agl_FragColor=mix(blurred1,blurred0,(coc-0.66)/0.34);\x0a}\x0a#endif\x0a}\x0a','_MSAAFramebuffer','renderPassDescriptor','dbgShowShaderCode','not','_findStartingGroupBinding','clickToPlay','TEXTURE_SKYBOX_MODE','_addUniformToLeftOverUBO','_loopAnimation','MODE_SIDEBYSIDE','_previousButtonPressed','fireVertexShader','getReflectionTextureMatrix','#ifdef\x20LIGHT{X}\x0auniform\x20vec4\x20vLightData{X};\x0auniform\x20vec4\x20vLightDiffuse{X};\x0a#ifdef\x20SPECULARTERM\x0auniform\x20vec4\x20vLightSpecular{X};\x0a#else\x0avec4\x20vLightSpecular{X}=vec4(0.);\x0a#endif\x0a#ifdef\x20SHADOW{X}\x0a#ifdef\x20SHADOWCSM{X}\x0auniform\x20mat4\x20lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20vec4\x20vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20float\x20vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20vec4\x20vPositionFromCamera{X};\x0a#elif\x20defined(SHADOWCUBE{X})\x0a#else\x0avarying\x20vec4\x20vPositionFromLight{X};\x0avarying\x20float\x20vDepthMetric{X};\x0auniform\x20mat4\x20lightMatrix{X};\x0a#endif\x0auniform\x20vec4\x20shadowsInfo{X};\x0auniform\x20vec2\x20depthValues{X};\x0a#endif\x0a#ifdef\x20SPOTLIGHT{X}\x0auniform\x20vec4\x20vLightDirection{X};\x0auniform\x20vec4\x20vLightFalloff{X};\x0a#elif\x20defined(POINTLIGHT{X})\x0auniform\x20vec4\x20vLightFalloff{X};\x0a#elif\x20defined(HEMILIGHT{X})\x0auniform\x20vec3\x20vLightGround{X};\x0a#endif\x0a#endif\x0a','getEyeParameters','particleSystems','_getNextFreeBinding','GL_ALPHA_FUNCTION_DST_ALPHA','setStencilReadMask','deleteRenderbuffer','#ifdef\x20PREPASS\x0a#extension\x20GL_EXT_draw_buffers\x20:\x20require\x0alayout(location=0)\x20out\x20highp\x20vec4\x20glFragData[{X}];highp\x20vec4\x20gl_FragColor;\x0a#ifdef\x20PREPASS_DEPTH\x0avarying\x20highp\x20vec3\x20vViewPos;\x0a#endif\x0a#ifdef\x20PREPASS_VELOCITY\x0avarying\x20highp\x20vec4\x20vCurrentPosition;varying\x20highp\x20vec4\x20vPreviousPosition;\x0a#endif\x0a#endif\x0a','_varyingTransfer','precision\x20highp\x20float;\x0a#include<__decl__backgroundVertex>\x0a#include<helperFunctions>\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20MAINUV1\x0avarying\x20vec2\x20vMainUV1;\x0a#endif\x0a#ifdef\x20MAINUV2\x0avarying\x20vec2\x20vMainUV2;\x0a#endif\x0a#if\x20defined(DIFFUSE)\x20&&\x20DIFFUSEDIRECTUV==0\x0avarying\x20vec2\x20vDiffuseUV;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightVxFragment>[0..maxSimultaneousLights]\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avarying\x20vec3\x20vPositionUVW;\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avarying\x20vec3\x20vDirectionW;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avPositionUVW=position;\x0a#endif\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0a#ifdef\x20MULTIVIEW\x0aif\x20(gl_ViewID_OVR==0u)\x20{\x0agl_Position=viewProjection*finalWorld*vec4(position,1.0);\x0a}\x20else\x20{\x0agl_Position=viewProjectionR*finalWorld*vec4(position,1.0);\x0a}\x0a#else\x0agl_Position=viewProjection*finalWorld*vec4(position,1.0);\x0a#endif\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0avPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0amat3\x20normalWorld=mat3(finalWorld);\x0a#ifdef\x20NONUNIFORMSCALING\x0anormalWorld=transposeMat3(inverseMat3(normalWorld));\x0a#endif\x0avNormalW=normalize(normalWorld*normal);\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avDirectionW=normalize(vec3(finalWorld*vec4(position,0.0)));\x0a#ifdef\x20EQUIRECTANGULAR_RELFECTION_FOV\x0amat3\x20screenToWorld=inverseMat3(mat3(finalWorld*viewProjection));\x0avec3\x20segment=mix(vDirectionW,screenToWorld*vec3(0.0,0.0,1.0),abs(fFovMultiplier-1.0));\x0aif\x20(fFovMultiplier<=1.0)\x20{\x0avDirectionW=normalize(segment);\x0a}\x20else\x20{\x0avDirectionW=normalize(vDirectionW+(vDirectionW-segment));\x0a}\x0a#endif\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20MAINUV1\x0avMainUV1=uv;\x0a#endif\x0a#ifdef\x20MAINUV2\x0avMainUV2=uv2;\x0a#endif\x0a#if\x20defined(DIFFUSE)\x20&&\x20DIFFUSEDIRECTUV==0\x0aif\x20(vDiffuseInfos.x==0.)\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\x0a}\x0aelse\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#ifdef\x20VERTEXCOLOR\x0avColor=color;\x0a#endif\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','needsImageProcessing','faceForward','onError','_reflectionVectorName','GetWebGPUTextureFormat','GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_COLOR','onPointerObservable','screenSpaceReflections2','_ySize','proceduralVertexShader','TransformNormal','emitter','polygonOffset','_blendEquationParameters','get','activeParticleCount','_getHalfFloatAsFloatRGBAArrayBuffer','uOffset','readDataFromBuffer','TEXTURETYPE_UNSIGNED_SHORT_5_6_5','physicsBody','_IsInternalTexture','ASTC5x5UnormSRGB','COLOR_ATTACHMENT','_disposePhysicsObserver','_submitVRFrame','uniform\x20float\x20particleAlpha;\x0avarying\x20vec2\x20uv;\x0avarying\x20vec3\x20diffuseColor;\x0avoid\x20main(void)\x20{\x0avec3\x20normal;\x0anormal.xy=uv*2.0-1.0;\x0afloat\x20r2=dot(normal.xy,normal.xy);\x0aif\x20(r2>1.0)\x20discard;\x0aglFragColor=vec4(diffuseColor,1.0);\x0a}\x0a','_nativeTexture','\x0a\x20\x20\x20\x20#extension\x20GL_EXT_samplerless_texture_functions\x20:\x20enable\x0a\x0a\x20\x20\x20\x20const\x20vec2\x20pos[4]\x20=\x20vec2[4](vec2(-1.0f,\x201.0f),\x20vec2(1.0f,\x201.0f),\x20vec2(-1.0f,\x20-1.0f),\x20vec2(1.0f,\x20-1.0f));\x0a\x20\x20\x20\x20const\x20vec2\x20tex[4]\x20=\x20vec2[4](vec2(0.0f,\x200.0f),\x20vec2(1.0f,\x200.0f),\x20vec2(0.0f,\x201.0f),\x20vec2(1.0f,\x201.0f));\x0a\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x200)\x20uniform\x20texture2D\x20img;\x0a\x0a\x20\x20\x20\x20#ifdef\x20INVERTY\x0a\x20\x20\x20\x20\x20\x20\x20\x20layout(location\x20=\x200)\x20out\x20flat\x20ivec2\x20vTextureSize;\x0a\x20\x20\x20\x20#endif\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20INVERTY\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vTextureSize\x20=\x20textureSize(img,\x200);\x0a\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20vec4(pos[gl_VertexIndex],\x200.0,\x201.0);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','enableBlur','GetDepthFormatOnly','_physicsBody','_currentRenderTextureInd','_animate','getUniformBlockIndex','MAINUV6','createMultipleRenderTarget','PREPASS_ALBEDO_SQRT_TEXTURE_TYPE','_normals','removePipeline','55qOYqWn','_ubCopyWithOfst','_updateMultiviewUbo','shadowMapVertexShader','\x0a\x20\x20\x20\x20@group(0)\x20@binding(0)\x20var\x20videoSampler:\x20sampler;\x0a\x20\x20\x20\x20@group(0)\x20@binding(1)\x20var\x20videoTexture:\x20texture_external;\x0a\x0a\x20\x20\x20\x20@fragment\x0a\x20\x20\x20\x20fn\x20main(\x0a\x20\x20\x20\x20\x20\x20\x20\x20@location(0)\x20fragUV:\x20vec2<f32>\x0a\x20\x20\x20\x20)\x20->\x20@location(0)\x20vec4<f32>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20textureSampleBaseClampToEdge(videoTexture,\x20videoSampler,\x20fragUV);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','Float\x20texture\x20filtering\x20is\x20not\x20supported.\x20Mipmap\x20generation\x20and\x20sampling\x20mode\x20are\x20forced\x20to\x20false\x20and\x20TEXTURE_NEAREST_SAMPLINGMODE,\x20respectively.','#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20TEXTUREFUNC(s,c,lod)\x20texture2DLodEXT(s,c,lod)\x0a#define\x20TEXTURECUBEFUNC(s,c,lod)\x20textureLod(s,c,lod)\x0a#else\x0a#define\x20TEXTUREFUNC(s,c,bias)\x20texture2D(s,c,bias)\x0a#define\x20TEXTURECUBEFUNC(s,c,bias)\x20textureCube(s,c,bias)\x0a#endif\x0auniform\x20sampler2D\x20textureSampler;\x0avarying\x20vec2\x20vUV;\x0a#ifdef\x20SSR_SUPPORTED\x0auniform\x20sampler2D\x20reflectivitySampler;\x0auniform\x20sampler2D\x20normalSampler;\x0auniform\x20sampler2D\x20depthSampler;\x0a#ifdef\x20SSRAYTRACE_USE_BACK_DEPTHBUFFER\x0auniform\x20sampler2D\x20backDepthSampler;\x0auniform\x20float\x20backSizeFactor;\x0a#endif\x0a#ifdef\x20SSR_USE_ENVIRONMENT_CUBE\x0auniform\x20samplerCube\x20envCubeSampler;\x0a#ifdef\x20SSR_USE_LOCAL_REFLECTIONMAP_CUBIC\x0auniform\x20vec3\x20vReflectionPosition;\x0auniform\x20vec3\x20vReflectionSize;\x0a#endif\x0a#endif\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20invView;\x0auniform\x20mat4\x20projection;\x0auniform\x20mat4\x20invProjectionMatrix;\x0auniform\x20mat4\x20projectionPixel;\x0auniform\x20float\x20nearPlaneZ;\x0auniform\x20float\x20stepSize;\x0auniform\x20float\x20maxSteps;\x0auniform\x20float\x20strength;\x0auniform\x20float\x20thickness;\x0auniform\x20float\x20roughnessFactor;\x0auniform\x20float\x20reflectionSpecularFalloffExponent;\x0auniform\x20float\x20maxDistance;\x0auniform\x20float\x20selfCollisionNumSkip;\x0auniform\x20float\x20reflectivityThreshold;\x0a#include<helperFunctions>\x0a#include<screenSpaceRayTrace>\x0avec3\x20fresnelSchlick(float\x20cosTheta,vec3\x20F0)\x0a{\x0areturn\x20F0+(1.0-F0)*pow(1.0-cosTheta,5.0);\x0a}\x0avec3\x20hash(vec3\x20a)\x0a{\x0aa=fract(a*0.8);\x0aa+=dot(a,a.yxz+19.19);\x0areturn\x20fract((a.xxy+a.yxx)*a.zyx);\x0a}\x0avec3\x20computeViewPosFromUVDepth(vec2\x20texCoord,float\x20depth)\x20{\x0avec4\x20ndc;\x0andc.xy=texCoord*2.0-1.0;\x0a#ifdef\x20SSRAYTRACE_RIGHT_HANDED_SCENE\x0andc.z=-projection[2].z-projection[3].z/depth;\x0a#else\x0andc.z=projection[2].z+projection[3].z/depth;\x0a#endif\x0andc.w=1.0;\x0avec4\x20eyePos=invProjectionMatrix*ndc;\x0aeyePos.xyz/=eyePos.w;\x0areturn\x20eyePos.xyz;\x0a}\x0afloat\x20computeAttenuationForIntersection(ivec2\x20hitPixel,vec2\x20hitUV,vec3\x20vsRayOrigin,vec3\x20vsHitPoint,vec3\x20reflectionVector,float\x20maxRayDistance,float\x20numIterations)\x20{\x0afloat\x20attenuation=1.0;\x0a#ifdef\x20SSR_ATTENUATE_SCREEN_BORDERS\x0avec2\x20dCoords=smoothstep(0.2,0.6,abs(vec2(0.5,0.5)-hitUV.xy));\x0aattenuation*=clamp(1.0-(dCoords.x+dCoords.y),0.0,1.0);\x0a#endif\x0a#ifdef\x20SSR_ATTENUATE_INTERSECTION_DISTANCE\x0aattenuation*=1.0-clamp(distance(vsRayOrigin,vsHitPoint)/maxRayDistance,0.0,1.0);\x0a#endif\x0a#ifdef\x20SSR_ATTENUATE_INTERSECTION_NUMITERATIONS\x0aattenuation*=1.0-(numIterations/maxSteps);\x0a#endif\x0a#ifdef\x20SSR_ATTENUATE_BACKFACE_REFLECTION\x0avec3\x20reflectionNormal=texelFetch(normalSampler,hitPixel,0).xyz;\x0afloat\x20directionBasedAttenuation=smoothstep(-0.17,0.0,dot(reflectionNormal,-reflectionVector));\x0aattenuation*=directionBasedAttenuation;\x0a#endif\x0areturn\x20attenuation;\x0a}\x0a#endif\x0avoid\x20main()\x0a{\x0a#ifdef\x20SSR_SUPPORTED\x0avec4\x20colorFull=TEXTUREFUNC(textureSampler,vUV,0.0);\x0avec3\x20color=colorFull.rgb;\x0avec4\x20reflectivity=TEXTUREFUNC(reflectivitySampler,vUV,0.0);\x0aif\x20(max(reflectivity.r,max(reflectivity.g,reflectivity.b))<=reflectivityThreshold)\x20{\x0a#ifdef\x20SSR_USE_BLUR\x0agl_FragColor=vec4(0.);\x0a#else\x0agl_FragColor=colorFull;\x0a#endif\x0areturn;\x0a}\x0a#ifdef\x20SSR_INPUT_IS_GAMMA_SPACE\x0acolor=toLinearSpace(color);\x0a#endif\x0avec2\x20texSize=vec2(textureSize(depthSampler,0));\x0avec3\x20csNormal=texelFetch(normalSampler,ivec2(vUV*texSize),0).xyz;\x20\x0afloat\x20depth=texelFetch(depthSampler,ivec2(vUV*texSize),0).r;\x0avec3\x20csPosition=computeViewPosFromUVDepth(vUV,depth);\x0avec3\x20csViewDirection=normalize(csPosition);\x0avec3\x20csReflectedVector=reflect(csViewDirection,csNormal);\x0a#ifdef\x20SSR_USE_ENVIRONMENT_CUBE\x0avec3\x20wReflectedVector=vec3(invView*vec4(csReflectedVector,0.0));\x0a#ifdef\x20SSR_USE_LOCAL_REFLECTIONMAP_CUBIC\x0avec4\x20worldPos=invView*vec4(csPosition,1.0);\x0awReflectedVector=parallaxCorrectNormal(worldPos.xyz,normalize(wReflectedVector),vReflectionSize,vReflectionPosition);\x0a#endif\x0a#ifdef\x20SSR_INVERTCUBICMAP\x0awReflectedVector.y*=-1.0;\x0a#endif\x0a#ifdef\x20SSRAYTRACE_RIGHT_HANDED_SCENE\x0awReflectedVector.z*=-1.0;\x0a#endif\x0avec3\x20envColor=TEXTURECUBEFUNC(envCubeSampler,wReflectedVector,0.0).xyz;\x0a#ifdef\x20SSR_ENVIRONMENT_CUBE_IS_GAMMASPACE\x0aenvColor=toLinearSpace(envColor);\x0a#endif\x0a#else\x0avec3\x20envColor=color;\x0a#endif\x0afloat\x20reflectionAttenuation=1.0;\x0abool\x20rayHasHit=false;\x0avec2\x20startPixel;\x0avec2\x20hitPixel;\x0avec3\x20hitPoint;\x0afloat\x20numIterations;\x0a#ifdef\x20SSRAYTRACE_DEBUG\x0avec3\x20debugColor;\x0a#endif\x0a#ifdef\x20SSR_ATTENUATE_FACING_CAMERA\x0areflectionAttenuation*=1.0-smoothstep(0.25,0.5,dot(-csViewDirection,csReflectedVector));\x0a#endif\x0aif\x20(reflectionAttenuation>0.0)\x20{\x0a#ifdef\x20SSR_USE_BLUR\x0avec3\x20jitt=vec3(0.);\x0a#else\x0afloat\x20roughness=1.0-reflectivity.a;\x0avec3\x20jitt=mix(vec3(0.0),hash(csPosition),roughness)*roughnessFactor;\x20\x0a#endif\x0avec2\x20uv2=vUV*texSize;\x0afloat\x20c=(uv2.x+uv2.y)*0.25;\x0afloat\x20jitter=mod(c,1.0);\x20\x0arayHasHit=traceScreenSpaceRay1(\x0acsPosition,\x0anormalize(csReflectedVector+jitt),\x0aprojectionPixel,\x0adepthSampler,\x0atexSize,\x0a#ifdef\x20SSRAYTRACE_USE_BACK_DEPTHBUFFER\x0abackDepthSampler,\x0abackSizeFactor,\x0a#endif\x0athickness,\x0anearPlaneZ,\x0astepSize,\x0ajitter,\x0amaxSteps,\x0amaxDistance,\x0aselfCollisionNumSkip,\x0astartPixel,\x0ahitPixel,\x0ahitPoint,\x0anumIterations\x0a#ifdef\x20SSRAYTRACE_DEBUG\x0a,debugColor\x0a#endif\x0a);\x0a}\x0a#ifdef\x20SSRAYTRACE_DEBUG\x0agl_FragColor=vec4(debugColor,1.);\x0areturn;\x0a#endif\x0avec3\x20F0=reflectivity.rgb;\x0avec3\x20fresnel=fresnelSchlick(max(dot(csNormal,-csViewDirection),0.0),F0);\x0avec3\x20SSR=envColor;\x0aif\x20(rayHasHit)\x20{\x0avec3\x20reflectedColor=texelFetch(textureSampler,ivec2(hitPixel),0).rgb;\x0a#ifdef\x20SSR_INPUT_IS_GAMMA_SPACE\x0areflectedColor=toLinearSpace(reflectedColor);\x0a#endif\x0areflectionAttenuation*=computeAttenuationForIntersection(ivec2(hitPixel),hitPixel/texSize,csPosition,hitPoint,csReflectedVector,maxDistance,numIterations);\x0aSSR=reflectedColor*reflectionAttenuation+(1.0-reflectionAttenuation)*envColor;\x0a}\x0aSSR*=fresnel;\x0a#ifdef\x20SSR_USE_BLUR\x0afloat\x20blur_radius=0.0;\x0afloat\x20roughness=1.0-reflectivity.a*(1.0-roughnessFactor);\x0aif\x20(roughness>0.001)\x20{\x0afloat\x20cone_angle=min(roughness,0.999)*3.14159265*0.5;\x0afloat\x20cone_len=distance(startPixel,hitPixel);\x0afloat\x20op_len=2.0*tan(cone_angle)*cone_len;\x20\x0afloat\x20a=op_len;\x0afloat\x20h=cone_len;\x0afloat\x20a2=a*a;\x0afloat\x20fh2=4.0f*h*h;\x0ablur_radius=(a*(sqrt(a2+fh2)-a))/(4.0f*h);\x0a}\x0agl_FragColor=vec4(SSR,blur_radius/255.0);\x20\x0a#else\x0avec3\x20reflectionMultiplier=clamp(pow(reflectivity.rgb*strength,vec3(reflectionSpecularFalloffExponent)),0.0,1.0);\x0avec3\x20colorMultiplier=1.0-reflectionMultiplier;\x0avec3\x20finalColor=(color*colorMultiplier)+(SSR*reflectionMultiplier);\x0a#ifdef\x20SSR_OUTPUT_IS_GAMMA_SPACE\x0afinalColor=toGammaSpace(finalColor);\x0a#endif\x0agl_FragColor=vec4(finalColor,colorFull.a);\x0a#endif\x0a#else\x0agl_FragColor=TEXTUREFUNC(textureSampler,vUV,0.0);\x0a#endif\x0a}\x0a','deleteQuery','updateDynamicVertexBuffer','autoConfigure','metersPerUnit','canRead','TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1\x20format\x20not\x20supported\x20in\x20WebGPU','_camera','_defines','TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT','_activeCamera','reflectionColor','compressedTexImage2D','autoBindSampler','_copyTextureToTexture','@group(','rightOperand','CubeArray','ASTC12x10Unorm','getEffectDefines','markAllMaterialsAsDirty','void\x20DUMMYFUNC','pbrFragmentExtraDeclaration','TEXTUREFORMAT_RGBA','needsPreviousWorldMatrices','worldMatrix','ConvertCubeMapTextureToSphericalPolynomial','TransformCoordinatesFromFloatsToRef','PrePass\x20and\x20subsurface\x20configuration\x20needs\x20to\x20be\x20enabled\x20for\x20subsurface\x20scattering.','opDepthFail','screenSpaceCurvaturePixelShader','geometryUboDeclaration','TEXTURE_3D','mask','uniform\x20vec4\x20color;\x0a','finalizeShaders','startDirectionFunction','fluidRenderingParticleDiffusePixelShader','precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;\x0auniform\x20sampler2D\x20diffuseSampler;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0avec3\x20computeCustomDiffuseLighting(lightingInfo\x20info,vec3\x20diffuseBase,float\x20shadow)\x0a{\x0adiffuseBase=info.diffuse*shadow;\x0a#ifdef\x20CELLBASIC\x0afloat\x20level=1.0;\x0aif\x20(info.ndl<0.5)\x0alevel=0.5;\x0adiffuseBase.rgb*vec3(level,level,level);\x0a#else\x0afloat\x20ToonThresholds[4];\x0aToonThresholds[0]=0.95;\x0aToonThresholds[1]=0.5;\x0aToonThresholds[2]=0.2;\x0aToonThresholds[3]=0.03;\x0afloat\x20ToonBrightnessLevels[5];\x0aToonBrightnessLevels[0]=1.0;\x0aToonBrightnessLevels[1]=0.8;\x0aToonBrightnessLevels[2]=0.6;\x0aToonBrightnessLevels[3]=0.35;\x0aToonBrightnessLevels[4]=0.2;\x0aif\x20(info.ndl>ToonThresholds[0])\x0a{\x0adiffuseBase.rgb*=ToonBrightnessLevels[0];\x0a}\x0aelse\x20if\x20(info.ndl>ToonThresholds[1])\x0a{\x0adiffuseBase.rgb*=ToonBrightnessLevels[1];\x0a}\x0aelse\x20if\x20(info.ndl>ToonThresholds[2])\x0a{\x0adiffuseBase.rgb*=ToonBrightnessLevels[2];\x0a}\x0aelse\x20if\x20(info.ndl>ToonThresholds[3])\x0a{\x0adiffuseBase.rgb*=ToonBrightnessLevels[3];\x0a}\x0aelse\x0a{\x0adiffuseBase.rgb*=ToonBrightnessLevels[4];\x0a}\x0a#endif\x0areturn\x20max(diffuseBase,vec3(0.2));\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20baseColor=vec4(1.,1.,1.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20DIFFUSE\x0abaseColor=texture2D(diffuseSampler,vDiffuseUV);\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0abaseColor.rgb*=vDiffuseInfos.y;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0alightingInfo\x20info;\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0afloat\x20shadow=1.;\x0afloat\x20glossiness=0.;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0a#endif\x20\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\x0avec4\x20color=vec4(finalDiffuse,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','trim','bumpVertexDeclaration','getEngine','ONE_MINUS_SRC_COLOR',',\x20null,\x20undefined,\x20undefined,\x20undefined,\x20','_resetPostProcessChain','_countIncrement','_isStencilOpDirty','doNotSyncBoundingInfo','InternalsUBOName','_uniformDeclaration','_excludedCompressedTextures','setHardwareScalingLevel','uniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20bloomBlur;\x0avarying\x20vec2\x20vUV;\x0auniform\x20float\x20bloomWeight;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0agl_FragColor=texture2D(textureSampler,vUV);\x0avec3\x20blurred=texture2D(bloomBlur,vUV).rgb;\x0agl_FragColor.rgb=gl_FragColor.rgb+(blurred.rgb*bloomWeight);\x20\x0a}\x0a','_record','registerInput','TEXTUREFORMAT_LUMINANCE\x20format\x20not\x20supported\x20in\x20WebGPU','releaseMSAARenderBuffers','color','loopAnimation','mainUVVaryingDeclaration','SRGB8_ALPHA8','pixelPerfect','_getRGBABufferInternalSizedFormat','onXRFrameObservable','BACK','dataStoreObject','maxFilterSize','_setCursorAndPointerOverMesh','replaceStrings','_SceneComponentInitialization','screenSpaceReflection2BlurCombinerPixelShader',')\x20@binding(','updateVideoTexture','fragmentShader','setCompressedTextureExclusions','uniform\x20vec3\x20diffusionS[5];\x0auniform\x20float\x20diffusionD[5];\x0auniform\x20float\x20filterRadii[5];','enableMouseHover','imageProcessingPixelShader','createMipMaps','uniformBuffer','texStorage3D','createDynamicUniformBuffer','precision\x20highp\x20float;\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0auniform\x20vec3\x20cameraPosition;\x0auniform\x20vec3\x20cameraOffset;\x0auniform\x20vec3\x20up;\x0auniform\x20float\x20luminance;\x0auniform\x20float\x20turbidity;\x0auniform\x20float\x20rayleigh;\x0auniform\x20float\x20mieCoefficient;\x0auniform\x20float\x20mieDirectionalG;\x0auniform\x20vec3\x20sunPosition;\x0a#include<fogFragmentDeclaration>\x0aconst\x20float\x20e=2.71828182845904523536028747135266249775724709369995957;\x0aconst\x20float\x20pi=3.141592653589793238462643383279502884197169;\x0aconst\x20float\x20n=1.0003;\x0aconst\x20float\x20N=2.545E25;\x0aconst\x20float\x20pn=0.035;\x0aconst\x20vec3\x20lambda=vec3(680E-9,550E-9,450E-9);\x0aconst\x20vec3\x20K=vec3(0.686,0.678,0.666);\x0aconst\x20float\x20v=4.0;\x0aconst\x20float\x20rayleighZenithLength=8.4E3;\x0aconst\x20float\x20mieZenithLength=1.25E3;\x0aconst\x20float\x20EE=1000.0;\x0aconst\x20float\x20sunAngularDiameterCos=0.999956676946448443553574619906976478926848692873900859324;\x0aconst\x20float\x20cutoffAngle=pi/1.95;\x0aconst\x20float\x20steepness=1.5;\x0avec3\x20totalRayleigh(vec3\x20lambda)\x0a{\x0areturn\x20(8.0*pow(pi,3.0)*pow(pow(n,2.0)-1.0,2.0)*(6.0+3.0*pn))/(3.0*N*pow(lambda,vec3(4.0))*(6.0-7.0*pn));\x0a}\x0avec3\x20simplifiedRayleigh()\x0a{\x0areturn\x200.0005/vec3(94,40,18);\x0a}\x0afloat\x20rayleighPhase(float\x20cosTheta)\x0a{\x20\x0areturn\x20(3.0/(16.0*pi))*(1.0+pow(cosTheta,2.0));\x0a}\x0avec3\x20totalMie(vec3\x20lambda,vec3\x20K,float\x20T)\x0a{\x0afloat\x20c=(0.2*T\x20)*10E-18;\x0areturn\x200.434*c*pi*pow((2.0*pi)/lambda,vec3(v-2.0))*K;\x0a}\x0afloat\x20hgPhase(float\x20cosTheta,float\x20g)\x0a{\x0areturn\x20(1.0/(4.0*pi))*((1.0-pow(g,2.0))/pow(1.0-2.0*g*cosTheta+pow(g,2.0),1.5));\x0a}\x0afloat\x20sunIntensity(float\x20zenithAngleCos)\x0a{\x0areturn\x20EE*max(0.0,1.0-exp((-(cutoffAngle-acos(zenithAngleCos))/steepness)));\x0a}\x0afloat\x20A=0.15;\x0afloat\x20B=0.50;\x0afloat\x20C=0.10;\x0afloat\x20D=0.20;\x0afloat\x20EEE=0.02;\x0afloat\x20F=0.30;\x0afloat\x20W=1000.0;\x0avec3\x20Uncharted2Tonemap(vec3\x20x)\x0a{\x0areturn\x20((x*(A*x+C*B)+D*EEE)/(x*(A*x+B)+D*F))-EEE/F;\x0a}\x0a#if\x20DITHER\x0a#include<helperFunctions>\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0a/**\x0a*--------------------------------------------------------------------------------------------------\x0a*\x20Sky\x20Color\x0a*--------------------------------------------------------------------------------------------------\x0a*/\x0afloat\x20sunfade=1.0-clamp(1.0-exp((sunPosition.y/450000.0)),0.0,1.0);\x0afloat\x20rayleighCoefficient=rayleigh-(1.0*(1.0-sunfade));\x0avec3\x20sunDirection=normalize(sunPosition);\x0afloat\x20sunE=sunIntensity(dot(sunDirection,up));\x0avec3\x20betaR=simplifiedRayleigh()*rayleighCoefficient;\x0avec3\x20betaM=totalMie(lambda,K,turbidity)*mieCoefficient;\x0afloat\x20zenithAngle=acos(max(0.0,dot(up,normalize(vPositionW-cameraPosition+cameraOffset))));\x0afloat\x20sR=rayleighZenithLength/(cos(zenithAngle)+0.15*pow(93.885-((zenithAngle*180.0)/pi),-1.253));\x0afloat\x20sM=mieZenithLength/(cos(zenithAngle)+0.15*pow(93.885-((zenithAngle*180.0)/pi),-1.253));\x0avec3\x20Fex=exp(-(betaR*sR+betaM*sM));\x0afloat\x20cosTheta=dot(normalize(vPositionW-cameraPosition),sunDirection);\x0afloat\x20rPhase=rayleighPhase(cosTheta*0.5+0.5);\x0avec3\x20betaRTheta=betaR*rPhase;\x0afloat\x20mPhase=hgPhase(cosTheta,mieDirectionalG);\x0avec3\x20betaMTheta=betaM*mPhase;\x0avec3\x20Lin=pow(sunE*((betaRTheta+betaMTheta)/(betaR+betaM))*(1.0-Fex),vec3(1.5));\x0aLin*=mix(vec3(1.0),pow(sunE*((betaRTheta+betaMTheta)/(betaR+betaM))*Fex,vec3(1.0/2.0)),clamp(pow(1.0-dot(up,sunDirection),5.0),0.0,1.0));\x0avec3\x20direction=normalize(vPositionW-cameraPosition);\x0afloat\x20theta=acos(direction.y);\x0afloat\x20phi=atan(direction.z,direction.x);\x0avec2\x20uv=vec2(phi,theta)/vec2(2.0*pi,pi)+vec2(0.5,0.0);\x0avec3\x20L0=vec3(0.1)*Fex;\x0afloat\x20sundisk=smoothstep(sunAngularDiameterCos,sunAngularDiameterCos+0.00002,cosTheta);\x0aL0+=(sunE*19000.0*Fex)*sundisk;\x0avec3\x20whiteScale=1.0/Uncharted2Tonemap(vec3(W));\x0avec3\x20texColor=(Lin+L0);\x0atexColor*=0.04\x20;\x0atexColor+=vec3(0.0,0.001,0.0025)*0.3;\x0afloat\x20g_fMaxLuminance=1.0;\x0afloat\x20fLumScaled=0.1/luminance;\x20\x0afloat\x20fLumCompressed=(fLumScaled*(1.0+(fLumScaled/(g_fMaxLuminance*g_fMaxLuminance))))/(1.0+fLumScaled);\x20\x0afloat\x20ExposureBias=fLumCompressed;\x0avec3\x20curr=Uncharted2Tonemap((log2(2.0/pow(luminance,4.0)))*texColor);\x0avec3\x20retColor=curr*whiteScale;\x0a/**\x0a*--------------------------------------------------------------------------------------------------\x0a*\x20Sky\x20Color\x0a*--------------------------------------------------------------------------------------------------\x0a*/\x0afloat\x20alpha=1.0;\x0a#ifdef\x20VERTEXCOLOR\x0aretColor.rgb*=vColor.rgb;\x0a#endif\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#if\x20DITHER\x0aretColor.rgb+=dither(gl_FragCoord.xy,0.5);\x0a#endif\x0avec4\x20color=clamp(vec4(retColor.rgb,alpha),0.0,1.0);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','passPixelShader','#ifdef\x20MORPHTARGETS\x0a#ifdef\x20MORPHTARGETS_TEXTURE\x0avar\x20vertexID\x20:\x20f32;\x0a#endif\x0a#endif\x0a','_setInternalTexture','createCanvas','textD','finalize','radius','_isBlendFunctionParametersDirty','depthMask','frameId','bloomMergePixelShader','surface','_isDisabled','HemisphericParticleEmitter','_hasSwiped','LIGHTTYPEID_HEMISPHERICLIGHT','getEffect','getRenderTarget','uv3','GetSamplerHashCode','getViewCount','isTrue','CLIPPLANE3','screenSpaceRayTrace','matricesWeightsExtra','RenderAttachment','#ifdef\x20ANISOTROPIC\x0astruct\x20anisotropicOutParams\x0a{\x0afloat\x20anisotropy;\x0avec3\x20anisotropicTangent;\x0avec3\x20anisotropicBitangent;\x0avec3\x20anisotropicNormal;\x0a#if\x20DEBUGMODE>0\x0avec3\x20anisotropyMapData;\x0a#endif\x0a};\x0a#define\x20pbr_inline\x0avoid\x20anisotropicBlock(\x0ain\x20vec3\x20vAnisotropy,\x0a#ifdef\x20ANISOTROPIC_TEXTURE\x0ain\x20vec3\x20anisotropyMapData,\x0a#endif\x0ain\x20mat3\x20TBN,\x0ain\x20vec3\x20normalW,\x0ain\x20vec3\x20viewDirectionW,\x0aout\x20anisotropicOutParams\x20outParams\x0a)\x0a{\x0afloat\x20anisotropy=vAnisotropy.b;\x0avec3\x20anisotropyDirection=vec3(vAnisotropy.xy,0.);\x0a#ifdef\x20ANISOTROPIC_TEXTURE\x0aanisotropy*=anisotropyMapData.b;\x0aanisotropyDirection.rg*=anisotropyMapData.rg*2.0-1.0;\x0a#if\x20DEBUGMODE>0\x0aoutParams.anisotropyMapData=anisotropyMapData;\x0a#endif\x0a#endif\x0amat3\x20anisoTBN=mat3(normalize(TBN[0]),normalize(TBN[1]),normalize(TBN[2]));\x0avec3\x20anisotropicTangent=normalize(anisoTBN*anisotropyDirection);\x0avec3\x20anisotropicBitangent=normalize(cross(anisoTBN[2],anisotropicTangent));\x0aoutParams.anisotropy=anisotropy;\x0aoutParams.anisotropicTangent=anisotropicTangent;\x0aoutParams.anisotropicBitangent=anisotropicBitangent;\x0aoutParams.anisotropicNormal=getAnisotropicBentNormals(anisotropicTangent,anisotropicBitangent,normalW,viewDirectionW,anisotropy);\x0a}\x0a#endif\x0a','submit','ALPHA_ALPHATOCOLOR','stencilOp','repeatKey','vrPresentationAttributes','premultiplyAlpha','_internalCount','RGBA8Unorm','!false','acos','BC6HRGBFloat','updateFlag','\x0a\x20\x20\x20\x20@group(0)\x20@binding(0)\x20var\x20videoSampler:\x20sampler;\x0a\x20\x20\x20\x20@group(0)\x20@binding(1)\x20var\x20videoTexture:\x20texture_external;\x0a\x0a\x20\x20\x20\x20@fragment\x0a\x20\x20\x20\x20fn\x20main(\x0a\x20\x20\x20\x20\x20\x20\x20\x20@location(0)\x20fragUV:\x20vec2<f32>\x0a\x20\x20\x20\x20)\x20->\x20@location(0)\x20vec4<f32>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20textureSampleBaseClampToEdge(videoTexture,\x20videoSampler,\x20vec2<f32>(fragUV.x,\x201.0\x20-\x20fragUV.y));\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','renderTargets','references','kernelBlurFragment','POINTERTAP','TEXTURE_CUBE_MAP_NEGATIVE_Z','Boolean','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0aattribute\x20vec3\x20normal;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20projection;\x0auniform\x20mat4\x20view;\x0avarying\x20vec3\x20vPosition;\x0avarying\x20vec3\x20vNormal;\x0a#include<fogVertexDeclaration>\x0a#ifdef\x20OPACITY\x0avarying\x20vec2\x20vOpacityUV;\x0auniform\x20mat4\x20opacityMatrix;\x0auniform\x20vec2\x20vOpacityInfos;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0a#include<fogVertex>\x0avec4\x20cameraSpacePosition=view*worldPos;\x0agl_Position=projection*cameraSpacePosition;\x0a#ifdef\x20OPACITY\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0aif\x20(vOpacityInfos.x==0.)\x0a{\x0avOpacityUV=vec2(opacityMatrix*vec4(uv,1.0,0.0));\x0a}\x0aelse\x0a{\x0avOpacityUV=vec2(opacityMatrix*vec4(uv2,1.0,0.0));\x0a}\x0a#endif\x20\x0avPosition=position;\x0avNormal=normal;\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','DRAW_FRAMEBUFFER','_isDepthFuncDirty','bakedVertexAnimation','GLSL','maxZ','matrixBuffer','_getWebGLTextureType','#define\x20CLIPPLANE3','setFloat2','getGPUFrameTimeCounter','updateUniformBuffer','#ifdef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0a{\x0a#ifdef\x20INSTANCES\x0alet\x20VATStartFrame:\x20f32=vertexInputs.bakedVertexAnimationSettingsInstanced.x;\x0alet\x20VATEndFrame:\x20f32=vertexInputs.bakedVertexAnimationSettingsInstanced.y;\x0alet\x20VATOffsetFrame:\x20f32=vertexInputs.bakedVertexAnimationSettingsInstanced.z;\x0alet\x20VATSpeed:\x20f32=vertexInputs.bakedVertexAnimationSettingsInstanced.w;\x0a#else\x0alet\x20VATStartFrame:\x20f32=uniforms.bakedVertexAnimationSettings.x;\x0alet\x20VATEndFrame:\x20f32=uniforms.bakedVertexAnimationSettings.y;\x0alet\x20VATOffsetFrame:\x20f32=uniforms.bakedVertexAnimationSettings.z;\x0alet\x20VATSpeed:\x20f32=uniforms.bakedVertexAnimationSettings.w;\x0a#endif\x0alet\x20totalFrames:\x20f32=VATEndFrame-VATStartFrame+1.0;\x0alet\x20time:\x20f32=uniforms.bakedVertexAnimationTime*VATSpeed/totalFrames;\x0alet\x20frameCorrection:\x20f32=select(1.0,0.0,time<1.0);\x0alet\x20numOfFrames:\x20f32=totalFrames-frameCorrection;\x0avar\x20VATFrameNum:\x20f32=fract(time)*numOfFrames;\x0aVATFrameNum=(VATFrameNum+VATOffsetFrame)\x20%\x20numOfFrames;\x0aVATFrameNum=floor(VATFrameNum);\x0aVATFrameNum=VATFrameNum+VATStartFrame+frameCorrection;\x0avar\x20VATInfluence\x20:\x20mat4x4<f32>;\x0aVATInfluence=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[0],VATFrameNum)*vertexInputs.matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0aVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[1],VATFrameNum)*vertexInputs.matricesWeights[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0aVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[2],VATFrameNum)*vertexInputs.matricesWeights[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0aVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[3],VATFrameNum)*vertexInputs.matricesWeights[3];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0aVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[0],VATFrameNum)*vertexInputs.matricesWeightsExtra[0];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0aVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[1],VATFrameNum)*vertexInputs.matricesWeightsExtra[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0aVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[2],VATFrameNum)*vertexInputs.matricesWeightsExtra[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0aVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[3],VATFrameNum)*vertexInputs.matricesWeightsExtra[3];\x0a#endif\x0afinalWorld=finalWorld*VATInfluence;\x0a}\x0a#endif\x0a','kernelBlurFragment2','_vertexData','texturesRequired','_loadFile','comparisonFunction','Depth24PlusStencil8','_readTexturePixels','outlineVertexShader','setAlphaBlendConstants','_useStandardBlur','_beforeCompositionPostProcesses','Raw2DArray','zOffset','ASTC10x10UnormSRGB','_internalTexturesCache','numDrawCalls','CopySrc','_currentDrawContext','Sampler','entries','TEXTURE_CUBIC_MODE','bool\x20testLightingForSSS(float\x20diffusionProfile)\x0a{\x0areturn\x20diffusionProfile<1.;\x0a}','TEXTURE_NEAREST_LINEAR','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;\x0auniform\x20mat4\x20diffuseMatrix;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0agl_Position=viewProjection*worldPos;\x0avPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0aif\x20(vDiffuseInfos.x==0.)\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\x0a}\x0aelse\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','variableNames','sprites','fragmentOutputs.fragDepth','#ifdef\x20REFLECTION\x0astruct\x20reflectionOutParams\x0a{\x0avec4\x20environmentRadiance;\x0avec3\x20environmentIrradiance;\x0a#ifdef\x20REFLECTIONMAP_3D\x0avec3\x20reflectionCoords;\x0a#else\x0avec2\x20reflectionCoords;\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCY\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#if\x20!defined(NORMAL)\x20||\x20!defined(USESPHERICALINVERTEX)\x0avec3\x20irradianceVector;\x0a#endif\x0a#endif\x0a#endif\x0a};\x0a#define\x20pbr_inline\x0avoid\x20createReflectionCoords(\x0ain\x20vec3\x20vPositionW,\x0ain\x20vec3\x20normalW,\x0a#ifdef\x20ANISOTROPIC\x0ain\x20anisotropicOutParams\x20anisotropicOut,\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0aout\x20vec3\x20reflectionCoords\x0a#else\x0aout\x20vec2\x20reflectionCoords\x0a#endif\x0a)\x0a{\x0a#ifdef\x20ANISOTROPIC\x0avec3\x20reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),anisotropicOut.anisotropicNormal);\x0a#else\x0avec3\x20reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_OPPOSITEZ\x0areflectionVector.z*=-1.0;\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0areflectionCoords=reflectionVector;\x0a#else\x0areflectionCoords=reflectionVector.xy;\x0a#ifdef\x20REFLECTIONMAP_PROJECTION\x0areflectionCoords/=reflectionVector.z;\x0a#endif\x0areflectionCoords.y=1.0-reflectionCoords.y;\x0a#endif\x0a}\x0a#define\x20pbr_inline\x0a#define\x20inline\x0avoid\x20sampleReflectionTexture(\x0ain\x20float\x20alphaG,\x0ain\x20vec3\x20vReflectionMicrosurfaceInfos,\x0ain\x20vec2\x20vReflectionInfos,\x0ain\x20vec3\x20vReflectionColor,\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0ain\x20float\x20NdotVUnclamped,\x0a#endif\x0a#ifdef\x20LINEARSPECULARREFLECTION\x0ain\x20float\x20roughness,\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSampler,\x0aconst\x20vec3\x20reflectionCoords,\x0a#else\x0ain\x20sampler2D\x20reflectionSampler,\x0aconst\x20vec2\x20reflectionCoords,\x0a#endif\x0a#ifndef\x20LODBASEDMICROSFURACE\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSamplerLow,\x0ain\x20samplerCube\x20reflectionSamplerHigh,\x0a#else\x0ain\x20sampler2D\x20reflectionSamplerLow,\x0ain\x20sampler2D\x20reflectionSamplerHigh,\x0a#endif\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0ain\x20vec2\x20vReflectionFilteringInfo,\x0a#endif\x0aout\x20vec4\x20environmentRadiance\x0a)\x0a{\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0afloat\x20reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG,NdotVUnclamped);\x0a#elif\x20defined(LINEARSPECULARREFLECTION)\x0afloat\x20reflectionLOD=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness);\x0a#else\x0afloat\x20reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG);\x0a#endif\x0a#ifdef\x20LODBASEDMICROSFURACE\x0areflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;\x0a#ifdef\x20LODINREFLECTIONALPHA\x0afloat\x20automaticReflectionLOD=UNPACK_LOD(sampleReflection(reflectionSampler,reflectionCoords).a);\x0afloat\x20requestedReflectionLOD=max(automaticReflectionLOD,reflectionLOD);\x0a#else\x0afloat\x20requestedReflectionLOD=reflectionLOD;\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0aenvironmentRadiance=vec4(radiance(alphaG,reflectionSampler,reflectionCoords,vReflectionFilteringInfo),1.0);\x0a#else\x0aenvironmentRadiance=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);\x0a#endif\x0a#else\x0afloat\x20lodReflectionNormalized=saturate(reflectionLOD/log2(vReflectionMicrosurfaceInfos.x));\x0afloat\x20lodReflectionNormalizedDoubled=lodReflectionNormalized*2.0;\x0avec4\x20environmentMid=sampleReflection(reflectionSampler,reflectionCoords);\x0aif\x20(lodReflectionNormalizedDoubled<1.0){\x0aenvironmentRadiance=mix(\x0asampleReflection(reflectionSamplerHigh,reflectionCoords),\x0aenvironmentMid,\x0alodReflectionNormalizedDoubled\x0a);\x0a}\x20else\x20{\x0aenvironmentRadiance=mix(\x0aenvironmentMid,\x0asampleReflection(reflectionSamplerLow,reflectionCoords),\x0alodReflectionNormalizedDoubled-1.0\x0a);\x0a}\x0a#endif\x0a#ifdef\x20RGBDREFLECTION\x0aenvironmentRadiance.rgb=fromRGBD(environmentRadiance);\x0a#endif\x0a#ifdef\x20GAMMAREFLECTION\x0aenvironmentRadiance.rgb=toLinearSpace(environmentRadiance.rgb);\x0a#endif\x0aenvironmentRadiance.rgb*=vReflectionInfos.x;\x0aenvironmentRadiance.rgb*=vReflectionColor.rgb;\x0a}\x0a#define\x20pbr_inline\x0a#define\x20inline\x0avoid\x20reflectionBlock(\x0ain\x20vec3\x20vPositionW,\x0ain\x20vec3\x20normalW,\x0ain\x20float\x20alphaG,\x0ain\x20vec3\x20vReflectionMicrosurfaceInfos,\x0ain\x20vec2\x20vReflectionInfos,\x0ain\x20vec3\x20vReflectionColor,\x0a#ifdef\x20ANISOTROPIC\x0ain\x20anisotropicOutParams\x20anisotropicOut,\x0a#endif\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0ain\x20float\x20NdotVUnclamped,\x0a#endif\x0a#ifdef\x20LINEARSPECULARREFLECTION\x0ain\x20float\x20roughness,\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSampler,\x0a#else\x0ain\x20sampler2D\x20reflectionSampler,\x0a#endif\x0a#if\x20defined(NORMAL)\x20&&\x20defined(USESPHERICALINVERTEX)\x0ain\x20vec3\x20vEnvironmentIrradiance,\x0a#endif\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#if\x20!defined(NORMAL)\x20||\x20!defined(USESPHERICALINVERTEX)\x0ain\x20mat4\x20reflectionMatrix,\x0a#endif\x0a#endif\x0a#ifdef\x20USEIRRADIANCEMAP\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20irradianceSampler,\x0a#else\x0ain\x20sampler2D\x20irradianceSampler,\x0a#endif\x0a#endif\x0a#ifndef\x20LODBASEDMICROSFURACE\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSamplerLow,\x0ain\x20samplerCube\x20reflectionSamplerHigh,\x0a#else\x0ain\x20sampler2D\x20reflectionSamplerLow,\x0ain\x20sampler2D\x20reflectionSamplerHigh,\x0a#endif\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0ain\x20vec2\x20vReflectionFilteringInfo,\x0a#endif\x0aout\x20reflectionOutParams\x20outParams\x0a)\x0a{\x0avec4\x20environmentRadiance=vec4(0.,0.,0.,0.);\x0a#ifdef\x20REFLECTIONMAP_3D\x0avec3\x20reflectionCoords=vec3(0.);\x0a#else\x0avec2\x20reflectionCoords=vec2(0.);\x0a#endif\x0acreateReflectionCoords(\x0avPositionW,\x0anormalW,\x0a#ifdef\x20ANISOTROPIC\x0aanisotropicOut,\x0a#endif\x0areflectionCoords\x0a);\x0asampleReflectionTexture(\x0aalphaG,\x0avReflectionMicrosurfaceInfos,\x0avReflectionInfos,\x0avReflectionColor,\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0aNdotVUnclamped,\x0a#endif\x0a#ifdef\x20LINEARSPECULARREFLECTION\x0aroughness,\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0areflectionSampler,\x0areflectionCoords,\x0a#else\x0areflectionSampler,\x0areflectionCoords,\x0a#endif\x0a#ifndef\x20LODBASEDMICROSFURACE\x0areflectionSamplerLow,\x0areflectionSamplerHigh,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0avReflectionFilteringInfo,\x0a#endif\x0aenvironmentRadiance\x0a);\x0avec3\x20environmentIrradiance=vec3(0.,0.,0.);\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#if\x20defined(NORMAL)\x20&&\x20defined(USESPHERICALINVERTEX)\x0aenvironmentIrradiance=vEnvironmentIrradiance;\x0a#else\x0a#ifdef\x20ANISOTROPIC\x0avec3\x20irradianceVector=vec3(reflectionMatrix*vec4(anisotropicOut.anisotropicNormal,0)).xyz;\x0a#else\x0avec3\x20irradianceVector=vec3(reflectionMatrix*vec4(normalW,0)).xyz;\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_OPPOSITEZ\x0airradianceVector.z*=-1.0;\x0a#endif\x0a#ifdef\x20INVERTCUBICMAP\x0airradianceVector.y*=-1.0;\x0a#endif\x0a#if\x20defined(REALTIME_FILTERING)\x0aenvironmentIrradiance=irradiance(reflectionSampler,irradianceVector,vReflectionFilteringInfo);\x0a#else\x0aenvironmentIrradiance=computeEnvironmentIrradiance(irradianceVector);\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCY\x0aoutParams.irradianceVector=irradianceVector;\x0a#endif\x0a#endif\x0a#elif\x20defined(USEIRRADIANCEMAP)\x0avec4\x20environmentIrradiance4=sampleReflection(irradianceSampler,reflectionCoords);\x0aenvironmentIrradiance=environmentIrradiance4.rgb;\x0a#ifdef\x20RGBDREFLECTION\x0aenvironmentIrradiance.rgb=fromRGBD(environmentIrradiance4);\x0a#endif\x0a#ifdef\x20GAMMAREFLECTION\x0aenvironmentIrradiance.rgb=toLinearSpace(environmentIrradiance.rgb);\x0a#endif\x0a#endif\x0aenvironmentIrradiance*=vReflectionColor.rgb;\x0aoutParams.environmentRadiance=environmentRadiance;\x0aoutParams.environmentIrradiance=environmentIrradiance;\x0aoutParams.reflectionCoords=reflectionCoords;\x0a}\x0a#endif\x0a','pbrBlockFinalUnlitComponents','_reflectionCoordsName','computeToken','logDepthVertex','TriangleStrip','_gl','parts','R32Uint','hasTexture','offsets','includesShadersStore','_sphericalPolynomialComputed','bindTexture','activeCamera','__decl__','REFLECTIONMAP_SKYBOX','TEXTURE0','textureCount','struct\x20clearcoatOutParams\x0a{\x0avec3\x20specularEnvironmentR0;\x0afloat\x20conservationFactor;\x0avec3\x20clearCoatNormalW;\x0avec2\x20clearCoatAARoughnessFactors;\x0afloat\x20clearCoatIntensity;\x0afloat\x20clearCoatRoughness;\x0a#ifdef\x20REFLECTION\x0avec3\x20finalClearCoatRadianceScaled;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TINT\x0avec3\x20absorption;\x0afloat\x20clearCoatNdotVRefract;\x0avec3\x20clearCoatColor;\x0afloat\x20clearCoatThickness;\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(MS_BRDF_ENERGY_CONSERVATION)\x0avec3\x20energyConservationFactorClearCoat;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0amat3\x20TBNClearCoat;\x0avec2\x20clearCoatMapData;\x0avec4\x20clearCoatTintMapData;\x0avec4\x20environmentClearCoatRadiance;\x0afloat\x20clearCoatNdotV;\x0avec3\x20clearCoatEnvironmentReflectance;\x0a#endif\x0a};\x0a#ifdef\x20CLEARCOAT\x0a#define\x20pbr_inline\x0a#define\x20inline\x0avoid\x20clearcoatBlock(\x0ain\x20vec3\x20vPositionW,\x0ain\x20vec3\x20geometricNormalW,\x0ain\x20vec3\x20viewDirectionW,\x0ain\x20vec2\x20vClearCoatParams,\x0a#if\x20defined(CLEARCOAT_TEXTURE_ROUGHNESS)\x20&&\x20!defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL)\x20&&\x20!defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\x0ain\x20vec4\x20clearCoatMapRoughnessData,\x0a#endif\x0ain\x20vec3\x20specularEnvironmentR0,\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0ain\x20vec2\x20clearCoatMapData,\x0a#endif\x0a#ifdef\x20CLEARCOAT_TINT\x0ain\x20vec4\x20vClearCoatTintParams,\x0ain\x20float\x20clearCoatColorAtDistance,\x0ain\x20vec4\x20vClearCoatRefractionParams,\x0a#ifdef\x20CLEARCOAT_TINT_TEXTURE\x0ain\x20vec4\x20clearCoatTintMapData,\x0a#endif\x0a#endif\x0a#ifdef\x20CLEARCOAT_BUMP\x0ain\x20vec2\x20vClearCoatBumpInfos,\x0ain\x20vec4\x20clearCoatBumpMapData,\x0ain\x20vec2\x20vClearCoatBumpUV,\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x0ain\x20mat3\x20vTBN,\x0a#else\x0ain\x20vec2\x20vClearCoatTangentSpaceParams,\x0a#endif\x0a#ifdef\x20OBJECTSPACE_NORMALMAP\x0ain\x20mat4\x20normalMatrix,\x0a#endif\x0a#endif\x0a#if\x20defined(FORCENORMALFORWARD)\x20&&\x20defined(NORMAL)\x0ain\x20vec3\x20faceNormal,\x0a#endif\x0a#ifdef\x20REFLECTION\x0ain\x20vec3\x20vReflectionMicrosurfaceInfos,\x0ain\x20vec2\x20vReflectionInfos,\x0ain\x20vec3\x20vReflectionColor,\x0ain\x20vec4\x20vLightingIntensity,\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSampler,\x0a#else\x0ain\x20sampler2D\x20reflectionSampler,\x0a#endif\x0a#ifndef\x20LODBASEDMICROSFURACE\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSamplerLow,\x0ain\x20samplerCube\x20reflectionSamplerHigh,\x0a#else\x0ain\x20sampler2D\x20reflectionSamplerLow,\x0ain\x20sampler2D\x20reflectionSamplerHigh,\x0a#endif\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0ain\x20vec2\x20vReflectionFilteringInfo,\x0a#endif\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0a#ifdef\x20RADIANCEOCCLUSION\x0ain\x20float\x20ambientMonochrome,\x0a#endif\x0a#endif\x0a#if\x20defined(CLEARCOAT_BUMP)\x20||\x20defined(TWOSIDEDLIGHTING)\x0ain\x20float\x20frontFacingMultiplier,\x0a#endif\x0aout\x20clearcoatOutParams\x20outParams\x0a)\x0a{\x0afloat\x20clearCoatIntensity=vClearCoatParams.x;\x0afloat\x20clearCoatRoughness=vClearCoatParams.y;\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0aclearCoatIntensity*=clearCoatMapData.x;\x0a#ifdef\x20CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE\x0aclearCoatRoughness*=clearCoatMapData.y;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0aoutParams.clearCoatMapData=clearCoatMapData;\x0a#endif\x0a#endif\x0a#if\x20defined(CLEARCOAT_TEXTURE_ROUGHNESS)\x20&&\x20!defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\x0a#ifdef\x20CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL\x0aclearCoatRoughness*=clearCoatMapData.y;\x0a#else\x0aclearCoatRoughness*=clearCoatMapRoughnessData.y;\x0a#endif\x0a#endif\x0aoutParams.clearCoatIntensity=clearCoatIntensity;\x0aoutParams.clearCoatRoughness=clearCoatRoughness;\x0a#ifdef\x20CLEARCOAT_TINT\x0avec3\x20clearCoatColor=vClearCoatTintParams.rgb;\x0afloat\x20clearCoatThickness=vClearCoatTintParams.a;\x0a#ifdef\x20CLEARCOAT_TINT_TEXTURE\x0a#ifdef\x20CLEARCOAT_TINT_GAMMATEXTURE\x0aclearCoatColor*=toLinearSpace(clearCoatTintMapData.rgb);\x0a#else\x0aclearCoatColor*=clearCoatTintMapData.rgb;\x0a#endif\x0aclearCoatThickness*=clearCoatTintMapData.a;\x0a#if\x20DEBUGMODE>0\x0aoutParams.clearCoatTintMapData=clearCoatTintMapData;\x0a#endif\x0a#endif\x0aoutParams.clearCoatColor=computeColorAtDistanceInMedia(clearCoatColor,clearCoatColorAtDistance);\x0aoutParams.clearCoatThickness=clearCoatThickness;\x0a#endif\x0a#ifdef\x20CLEARCOAT_REMAP_F0\x0avec3\x20specularEnvironmentR0Updated=getR0RemappedForClearCoat(specularEnvironmentR0);\x0a#else\x0avec3\x20specularEnvironmentR0Updated=specularEnvironmentR0;\x0a#endif\x0aoutParams.specularEnvironmentR0=mix(specularEnvironmentR0,specularEnvironmentR0Updated,clearCoatIntensity);\x0avec3\x20clearCoatNormalW=geometricNormalW;\x0a#ifdef\x20CLEARCOAT_BUMP\x0a#ifdef\x20NORMALXYSCALE\x0afloat\x20clearCoatNormalScale=1.0;\x0a#else\x0afloat\x20clearCoatNormalScale=vClearCoatBumpInfos.y;\x0a#endif\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x0amat3\x20TBNClearCoat=vTBN;\x0a#else\x0avec2\x20TBNClearCoatUV=vClearCoatBumpUV*frontFacingMultiplier;\x0amat3\x20TBNClearCoat=cotangent_frame(clearCoatNormalW*clearCoatNormalScale,vPositionW,TBNClearCoatUV,vClearCoatTangentSpaceParams);\x0a#endif\x0a#if\x20DEBUGMODE>0\x0aoutParams.TBNClearCoat=TBNClearCoat;\x0a#endif\x0a#ifdef\x20OBJECTSPACE_NORMALMAP\x0aclearCoatNormalW=normalize(clearCoatBumpMapData.xyz\x20*2.0-1.0);\x0aclearCoatNormalW=normalize(mat3(normalMatrix)*clearCoatNormalW);\x0a#else\x0aclearCoatNormalW=perturbNormal(TBNClearCoat,clearCoatBumpMapData.xyz,vClearCoatBumpInfos.y);\x0a#endif\x0a#endif\x0a#if\x20defined(FORCENORMALFORWARD)\x20&&\x20defined(NORMAL)\x0aclearCoatNormalW*=sign(dot(clearCoatNormalW,faceNormal));\x0a#endif\x0a#if\x20defined(TWOSIDEDLIGHTING)\x20&&\x20defined(NORMAL)\x0aclearCoatNormalW=clearCoatNormalW*frontFacingMultiplier;\x0a#endif\x0aoutParams.clearCoatNormalW=clearCoatNormalW;\x0aoutParams.clearCoatAARoughnessFactors=getAARoughnessFactors(clearCoatNormalW.xyz);\x0afloat\x20clearCoatNdotVUnclamped=dot(clearCoatNormalW,viewDirectionW);\x0afloat\x20clearCoatNdotV=absEps(clearCoatNdotVUnclamped);\x0a#if\x20DEBUGMODE>0\x0aoutParams.clearCoatNdotV=clearCoatNdotV;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TINT\x0avec3\x20clearCoatVRefract=refract(-viewDirectionW,clearCoatNormalW,vClearCoatRefractionParams.y);\x0aoutParams.clearCoatNdotVRefract=absEps(dot(clearCoatNormalW,clearCoatVRefract));\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20(!defined(REFLECTIONMAP_SKYBOX)\x20||\x20defined(MS_BRDF_ENERGY_CONSERVATION))\x0avec3\x20environmentClearCoatBrdf=getBRDFLookup(clearCoatNdotV,clearCoatRoughness);\x0a#endif\x0a#if\x20defined(REFLECTION)\x0afloat\x20clearCoatAlphaG=convertRoughnessToAverageSlope(clearCoatRoughness);\x0a#ifdef\x20SPECULARAA\x0aclearCoatAlphaG+=outParams.clearCoatAARoughnessFactors.y;\x0a#endif\x0avec4\x20environmentClearCoatRadiance=vec4(0.,0.,0.,0.);\x0avec3\x20clearCoatReflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),clearCoatNormalW);\x0a#ifdef\x20REFLECTIONMAP_OPPOSITEZ\x0aclearCoatReflectionVector.z*=-1.0;\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0avec3\x20clearCoatReflectionCoords=clearCoatReflectionVector;\x0a#else\x0avec2\x20clearCoatReflectionCoords=clearCoatReflectionVector.xy;\x0a#ifdef\x20REFLECTIONMAP_PROJECTION\x0aclearCoatReflectionCoords/=clearCoatReflectionVector.z;\x0a#endif\x0aclearCoatReflectionCoords.y=1.0-clearCoatReflectionCoords.y;\x0a#endif\x0asampleReflectionTexture(\x0aclearCoatAlphaG,\x0avReflectionMicrosurfaceInfos,\x0avReflectionInfos,\x0avReflectionColor,\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0aclearCoatNdotVUnclamped,\x0a#endif\x0a#ifdef\x20LINEARSPECULARREFLECTION\x0aclearCoatRoughness,\x0a#endif\x0areflectionSampler,\x0aclearCoatReflectionCoords,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0areflectionSamplerLow,\x0areflectionSamplerHigh,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0avReflectionFilteringInfo,\x0a#endif\x0aenvironmentClearCoatRadiance\x0a);\x0a#if\x20DEBUGMODE>0\x0aoutParams.environmentClearCoatRadiance=environmentClearCoatRadiance;\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0avec3\x20clearCoatEnvironmentReflectance=getReflectanceFromBRDFLookup(vec3(vClearCoatRefractionParams.x),environmentClearCoatBrdf);\x0a#ifdef\x20HORIZONOCCLUSION\x0a#ifdef\x20BUMP\x0a#ifdef\x20REFLECTIONMAP_3D\x0afloat\x20clearCoatEho=environmentHorizonOcclusion(-viewDirectionW,clearCoatNormalW,geometricNormalW);\x0aclearCoatEnvironmentReflectance*=clearCoatEho;\x0a#endif\x0a#endif\x0a#endif\x0a#else\x0avec3\x20clearCoatEnvironmentReflectance=getReflectanceFromAnalyticalBRDFLookup_Jones(clearCoatNdotV,vec3(1.),vec3(1.),sqrt(1.-clearCoatRoughness));\x0a#endif\x0aclearCoatEnvironmentReflectance*=clearCoatIntensity;\x0a#if\x20DEBUGMODE>0\x0aoutParams.clearCoatEnvironmentReflectance=clearCoatEnvironmentReflectance;\x0a#endif\x0aoutParams.finalClearCoatRadianceScaled=\x0aenvironmentClearCoatRadiance.rgb\x20*\x0aclearCoatEnvironmentReflectance\x20*\x0avLightingIntensity.z;\x0a#endif\x0a#if\x20defined(CLEARCOAT_TINT)\x0aoutParams.absorption=computeClearCoatAbsorption(outParams.clearCoatNdotVRefract,outParams.clearCoatNdotVRefract,outParams.clearCoatColor,clearCoatThickness,clearCoatIntensity);\x0a#endif\x0afloat\x20fresnelIBLClearCoat=fresnelSchlickGGX(clearCoatNdotV,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);\x0afresnelIBLClearCoat*=clearCoatIntensity;\x0aoutParams.conservationFactor=(1.-fresnelIBLClearCoat);\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(MS_BRDF_ENERGY_CONSERVATION)\x0aoutParams.energyConservationFactorClearCoat=getEnergyConservationFactor(outParams.specularEnvironmentR0,environmentClearCoatBrdf);\x0a#endif\x0a}\x0a#endif\x0a','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20BUMP\x0avarying\x20vec2\x20vNormalUV;\x0a#ifdef\x20BUMPSUPERIMPOSE\x0avarying\x20vec2\x20vNormalUV2;\x0a#endif\x0auniform\x20mat4\x20normalMatrix;\x0auniform\x20vec2\x20vNormalInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<logDepthDeclaration>\x0auniform\x20mat4\x20worldReflectionViewProjection;\x0auniform\x20vec2\x20windDirection;\x0auniform\x20float\x20waveLength;\x0auniform\x20float\x20time;\x0auniform\x20float\x20windForce;\x0auniform\x20float\x20waveHeight;\x0auniform\x20float\x20waveSpeed;\x0auniform\x20float\x20waveCount;\x0avarying\x20vec3\x20vPosition;\x0avarying\x20vec3\x20vRefractionMapTexCoord;\x0avarying\x20vec3\x20vReflectionMapTexCoord;\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0avPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20BUMP\x0aif\x20(vNormalInfos.x==0.)\x0a{\x0avNormalUV=vec2(normalMatrix*vec4((uv*1.0)/waveLength+time*windForce*windDirection,1.0,0.0));\x0a#ifdef\x20BUMPSUPERIMPOSE\x0avNormalUV2=vec2(normalMatrix*vec4((uv*0.721)/waveLength+time*1.2*windForce*windDirection,1.0,0.0));\x0a#endif\x0a}\x0aelse\x0a{\x0avNormalUV=vec2(normalMatrix*vec4((uv2*1.0)/waveLength+time*windForce*windDirection\x20,1.0,0.0));\x0a#ifdef\x20BUMPSUPERIMPOSE\x0avNormalUV2=vec2(normalMatrix*vec4((uv2*0.721)/waveLength+time*1.2*windForce*windDirection\x20,1.0,0.0));\x0a#endif\x0a}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0afloat\x20finalWaveCount=1.0/(waveCount*0.5);\x0avec3\x20p=position;\x0afloat\x20newY=(sin(((p.x/finalWaveCount)+time*waveSpeed))*waveHeight*windDirection.x*5.0)\x0a+\x20(cos(((p.z/finalWaveCount)+\x20time*waveSpeed))*waveHeight*windDirection.y*5.0);\x0ap.y+=abs(newY);\x0agl_Position=viewProjection*finalWorld*vec4(p,1.0);\x0a#ifdef\x20REFLECTION\x0aworldPos=viewProjection*finalWorld*vec4(p,1.0);\x0avPosition=position;\x0avRefractionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\x0avRefractionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\x0avRefractionMapTexCoord.z=worldPos.w;\x0aworldPos=worldReflectionViewProjection*vec4(position,1.0);\x0avReflectionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\x0avReflectionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\x0avReflectionMapTexCoord.z=worldPos.w;\x0a#endif\x0a#include<logDepthVertex>\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','createExternalTexture','_AddTagTo','_isAlphaBlendDirty','cameraToUseForPointers','_vertexBufferSize','_emitUniformFromString','#if\x20defined(_DEFINENAME_)\x20&&\x20_DEFINENAME_DIRECTUV==0\x0aif\x20(v_INFONAME_==0.)\x0a{\x0av_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uvUpdated,1.0,0.0));\x0a}\x0a#ifdef\x20UV2\x0aelse\x20if\x20(v_INFONAME_==1.)\x0a{\x0av_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv2,1.0,0.0));\x0a}\x0a#endif\x0a#ifdef\x20UV3\x0aelse\x20if\x20(v_INFONAME_==2.)\x0a{\x0av_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv3,1.0,0.0));\x0a}\x0a#endif\x0a#ifdef\x20UV4\x0aelse\x20if\x20(v_INFONAME_==3.)\x0a{\x0av_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv4,1.0,0.0));\x0a}\x0a#endif\x0a#ifdef\x20UV5\x0aelse\x20if\x20(v_INFONAME_==4.)\x0a{\x0av_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv5,1.0,0.0));\x0a}\x0a#endif\x0a#ifdef\x20UV6\x0aelse\x20if\x20(v_INFONAME_==5.)\x0a{\x0av_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv6,1.0,0.0));\x0a}\x0a#endif\x0a#endif\x0a','Load','IncludesShadersStore','read_write','worldDirection','viewMatrix','halfDomeMode','_drawWrapperBase','_cacheFloat3','_physicsImpostor',');\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20','doNotHandleCursors','pbrBlockReflectance0','lines','TEXTURE_MAG_FILTER','endFrame','firePixelShader','thinInstanceRegisterAttribute','addCount','_renderTarget','getSampler','FALLOFF_DEFAULT','clearRect','xrNativeFeatureName','lookForClosingBracketForUniformBuffer','deviceType','#include<','ADVANCED','resize','_defineSphericalName','attached','ALPHA_ADD','postProcessor','_fillEffectInformation','isVRPresenting','morphTargetsVertexGlobal','_transformTextureUrl','TEXTUREFORMAT_R','wrapU','getQueryResult','updateArray','blendColor','[$1].el','_vertexArrayObject','sourceEvent','gpuRenderParticlesPixelShader','_workingCanvas','FLOAT_32_UNSIGNED_INT_24_8_REV','_textureHelper','#ifdef\x20PREPASS_DEPTH\x0avViewPos=(view*worldPos).rgb;\x0a#endif\x0a#if\x20defined(PREPASS_VELOCITY)\x20&&\x20defined(BONES_VELOCITY_ENABLED)\x0avCurrentPosition=viewProjection*worldPos;\x0a#if\x20NUM_BONE_INFLUENCERS>0\x0amat4\x20previousInfluence;\x0apreviousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0apreviousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0apreviousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0apreviousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\x0a#endif\x0avPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);\x0a#else\x0avPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\x0a#endif\x0a#endif\x0a','AddSamplers','particles','geometryPixelShader','_definePlanarName','};\x0a\x0a','_initTexture','texturesSupported','fogStart','useStencilGlobalOnly','_clearDepthValue','_defineEquirectangularFixedName','attribute\x20vec2\x20position;\x0avarying\x20vec2\x20vUV;\x0aconst\x20vec2\x20madd=vec2(0.5,0.5);\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avUV=position*madd+madd;\x0agl_Position=vec4(position,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','_thinInstanceUpdateBufferSize','_invalidateMesh','setLayerAndFaceIndices','getBox','vec4\x20','INTENSITYMODE_LUMINOUSINTENSITY','TEXTURE_LINEAR_LINEAR','fileName','Invalid\x20fragment\x20shader:\x20The\x20varying\x20named\x20\x22','setStencilDepthFailOp','//Constants\x0d\x0a','TEXTURE_CREATIONFLAG_STORAGE','morphTargetsVertexGlobalDeclaration','createRenderBundleEncoder','framebufferRenderbuffer','shadowMapVertexExtraDeclaration','ASTC10x5UnormSRGB','@location(','Unknown\x20format\x20','i32d','INTENSITYMODE_LUMINANCE','fogEnabled','maxRenderTriangleCount','mesh','fixedFoveation','run','setDepthWrite','RGBA32Uint','pbrDirectLightingFalloffFunctions','bindUniformBuffer','_samplerDeclaration','floor','backgroundFragmentDeclaration','_tempVector','_varyingsWGSL','_dumpPropertiesCode','InvertYPremultiplyAlpha','deleteTexture','generateOnlyFragmentCode','uniform\x20mat4\x20viewProjection;\x0auniform\x20mat4\x20view;\x0a#ifdef\x20DIFFUSE\x0auniform\x20mat4\x20diffuseMatrix;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20AMBIENT\x0auniform\x20mat4\x20ambientMatrix;\x0auniform\x20vec2\x20vAmbientInfos;\x0a#endif\x0a#ifdef\x20OPACITY\x0auniform\x20mat4\x20opacityMatrix;\x0auniform\x20vec2\x20vOpacityInfos;\x0a#endif\x0a#ifdef\x20EMISSIVE\x0auniform\x20vec2\x20vEmissiveInfos;\x0auniform\x20mat4\x20emissiveMatrix;\x0a#endif\x0a#ifdef\x20LIGHTMAP\x0auniform\x20vec2\x20vLightmapInfos;\x0auniform\x20mat4\x20lightmapMatrix;\x0a#endif\x0a#if\x20defined(SPECULAR)\x20&&\x20defined(SPECULARTERM)\x0auniform\x20vec2\x20vSpecularInfos;\x0auniform\x20mat4\x20specularMatrix;\x0a#endif\x0a#ifdef\x20BUMP\x0auniform\x20vec3\x20vBumpInfos;\x0auniform\x20mat4\x20bumpMatrix;\x0a#endif\x0a#ifdef\x20REFLECTION\x0auniform\x20mat4\x20reflectionMatrix;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0a#ifdef\x20DETAIL\x0auniform\x20vec4\x20vDetailInfos;\x0auniform\x20mat4\x20detailMatrix;\x0a#endif\x0a#include<decalVertexDeclaration>\x0a#define\x20ADDITIONAL_VERTEX_DECLARATION\x0a','isEnabled','_previousStartingPointerTime','leftOverUniforms','equals','attribute\x20vec3\x20position;\x0aattribute\x20vec3\x20normal;\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#include<clipPlaneVertexDeclaration>\x0auniform\x20float\x20offset;\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20ALPHATEST\x0avarying\x20vec2\x20vUV;\x0auniform\x20mat4\x20diffuseMatrix;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#endif\x0a#include<logDepthDeclaration>\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec3\x20positionUpdated=position;\x0avec3\x20normalUpdated=normal;\x0a#ifdef\x20UV1\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0avec3\x20offsetPosition=positionUpdated+(normalUpdated*offset);\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(offsetPosition,1.0);\x0agl_Position=viewProjection*worldPos;\x0a#ifdef\x20ALPHATEST\x0a#ifdef\x20UV1\x0avUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20UV2\x0avUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<logDepthVertex>\x0a}\x0a','object','HALF_FLOAT_OES','_attachments','fogMode','ALPHA_ONEONE_ONEONE','_processPointerMove','outlinePixelShader','setWriteMask','direction1','depthFunc','deviceSlot','subSurfaceScatteringPixelShader','GL_ALPHA_FUNCTION_ONE_MINUS_DST_COLOR','value','createIndexBuffer','decode','blocksWithDefines','RightClick','vFogColor','vClipPlane','stopAnimation','bindGroupLayouts','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20','.z;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','!true','_processCustomBuffers','RGB9E5UFloat','setColorWrite','uniform\x20sampler2D\x20textureSampler;\x20\x0auniform\x20sampler2D\x20colorTable;\x20\x0avarying\x20vec2\x20vUV;\x0aconst\x20float\x20SLICE_COUNT=16.0;\x20\x0avec4\x20sampleAs3DTexture(sampler2D\x20textureSampler,vec3\x20uv,float\x20width)\x20{\x0afloat\x20sliceSize=1.0/width;\x20\x0afloat\x20slicePixelSize=sliceSize/width;\x20\x0afloat\x20sliceInnerSize=slicePixelSize*(width-1.0);\x20\x0afloat\x20zSlice0=min(floor(uv.z*width),width-1.0);\x0afloat\x20zSlice1=min(zSlice0+1.0,width-1.0);\x0afloat\x20xOffset=slicePixelSize*0.5+uv.x*sliceInnerSize;\x0afloat\x20s0=xOffset+(zSlice0*sliceSize);\x0afloat\x20s1=xOffset+(zSlice1*sliceSize);\x0avec4\x20slice0Color=texture2D(textureSampler,vec2(s0,uv.y));\x0avec4\x20slice1Color=texture2D(textureSampler,vec2(s1,uv.y));\x0afloat\x20zOffset=mod(uv.z*width,1.0);\x0avec4\x20result=mix(slice0Color,slice1Color,zOffset);\x0areturn\x20result;\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec4\x20screen_color=texture2D(textureSampler,vUV);\x0agl_FragColor=sampleAs3DTexture(colorTable,screen_color.rgb,SLICE_COUNT);\x0a}','unBindMultiColorAttachmentFramebuffer','thinInstanceGetWorldMatrices','#endif\x0d\x0a','forceSphericalPolynomialsRecompute','257118upYPEM','setBindGroup','particlesPixelShader','targetTypes','ASTC12x10UnormSRGB','Object','layout(std140,column_major)\x20uniform;\x0a#include<sceneUboDeclaration>\x0a#include<meshUboDeclaration>\x0a','inverts','GetExponentOfTwo','externalTexture','attribute\x20vec2\x20position;\x0avarying\x20vec2\x20vPosition;\x0avarying\x20vec2\x20vUV;\x0aconst\x20vec2\x20madd=vec2(0.5,0.5);\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avPosition=position;\x0avUV=position*madd+madd;\x0agl_Position=vec4(position,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','initWebVR','ssDiffusionProfileColors','Occlusion','ALPHA_MAXIMIZED','#ifdef\x20LOGARITHMICDEPTH\x0a#extension\x20GL_EXT_frag_depth\x20:\x20enable\x0a#endif\x0auniform\x20vec4\x20color;\x0a#ifdef\x20ALPHATEST\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<logDepthDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0a#ifdef\x20ALPHATEST\x0aif\x20(texture2D(diffuseSampler,vUV).a<0.4)\x0adiscard;\x0a#endif\x0a#include<logDepthFragment>\x0agl_FragColor=color;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','KnownUBOs','textureMaxLevel','button','maxSamples','_mainRenderPassWrapper','clipPlaneVertexDeclaration','precision\x20highp\x20float;\x0d\x0a','_bindFrameBuffer','_meshUnderPointerId','defined(','f32d','compatibilityMode','ALPHA_LAYER_ACCUMULATE','_debugInsertMarker','toGlobalToRef','TEXTURE_LINEAR_LINEAR_MIPLINEAR','_varyingNextLocation','_doubleClickOccured','POINTERUP','AddStore','MouseWheelZ','_coroutineScheduler','setValue','_SamplerFunctionByWebGLSamplerType','cellIndex','ASTC10x10Unorm','buildUniformLayout','_pointerMoveStage','#ifdef','pbrPixelShader','\x20=\x20texture2DLodEXT(','_buildHeight','ASTC8x5Unorm','#ifdef\x20CLIPPLANE\x0avarying\x20float\x20fClipDistance;\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0avarying\x20float\x20fClipDistance2;\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0avarying\x20float\x20fClipDistance3;\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0avarying\x20float\x20fClipDistance4;\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0avarying\x20float\x20fClipDistance5;\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0avarying\x20float\x20fClipDistance6;\x0a#endif\x0a','Comparison','ALPHA_SCREENMODE','\x0d\x0a#endif','generateMipmaps','min','varyingFragmentKeywordName','supportsUniformBuffers','webVR\x20submitFrame\x20has\x20had\x20an\x20unexpected\x20failure:\x20','_emitExtension','destroyDeferredTextures','removeIfDef','E3d','setState','depthSampler','pickWorldNormal','float\x20NdotVUnclamped=dot(normalW,viewDirectionW);\x0afloat\x20NdotV=absEps(NdotVUnclamped);\x0afloat\x20alphaG=convertRoughnessToAverageSlope(roughness);\x0avec2\x20AARoughnessFactors=getAARoughnessFactors(normalW.xyz);\x0a#ifdef\x20SPECULARAA\x0aalphaG+=AARoughnessFactors.y;\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x0avec3\x20environmentBrdf=getBRDFLookup(NdotV,roughness);\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0a#ifdef\x20RADIANCEOCCLUSION\x0a#ifdef\x20AMBIENTINGRAYSCALE\x0afloat\x20ambientMonochrome=aoOut.ambientOcclusionColor.r;\x0a#else\x0afloat\x20ambientMonochrome=getLuminance(aoOut.ambientOcclusionColor);\x0a#endif\x0afloat\x20seo=environmentRadianceOcclusion(ambientMonochrome,NdotVUnclamped);\x0a#endif\x0a#ifdef\x20HORIZONOCCLUSION\x0a#ifdef\x20BUMP\x0a#ifdef\x20REFLECTIONMAP_3D\x0afloat\x20eho=environmentHorizonOcclusion(-viewDirectionW,normalW,geometricNormalW);\x0a#endif\x0a#endif\x0a#endif\x0a#endif\x0a','lavaVertexShader','_indexBuffer','motionBlur','_play','actionManager','TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV\x20format\x20not\x20supported\x20in\x20WebGPU','2449768rcGrzx','#if\x20DEBUGMODE>0\x0aif\x20(vClipSpacePosition.x/vClipSpacePosition.w>=vDebugMode.x)\x20{\x0a#if\x20DEBUGMODE==1\x0agl_FragColor.rgb=vPositionW.rgb;\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==2\x20&&\x20defined(NORMAL)\x0agl_FragColor.rgb=vNormalW.rgb;\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==3\x20&&\x20defined(BUMP)\x20||\x20DEBUGMODE==3\x20&&\x20defined(PARALLAX)\x20||\x20DEBUGMODE==3\x20&&\x20defined(ANISOTROPIC)\x0agl_FragColor.rgb=TBN[0];\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==4\x20&&\x20defined(BUMP)\x20||\x20DEBUGMODE==4\x20&&\x20defined(PARALLAX)\x20||\x20DEBUGMODE==4\x20&&\x20defined(ANISOTROPIC)\x0agl_FragColor.rgb=TBN[1];\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==5\x0agl_FragColor.rgb=normalW;\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==6\x20&&\x20defined(MAINUV1)\x0agl_FragColor.rgb=vec3(vMainUV1,0.0);\x0a#elif\x20DEBUGMODE==7\x20&&\x20defined(MAINUV2)\x0agl_FragColor.rgb=vec3(vMainUV2,0.0);\x0a#elif\x20DEBUGMODE==8\x20&&\x20defined(CLEARCOAT)\x20&&\x20defined(CLEARCOAT_BUMP)\x0agl_FragColor.rgb=clearcoatOut.TBNClearCoat[0];\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==9\x20&&\x20defined(CLEARCOAT)\x20&&\x20defined(CLEARCOAT_BUMP)\x0agl_FragColor.rgb=clearcoatOut.TBNClearCoat[1];\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==10\x20&&\x20defined(CLEARCOAT)\x0agl_FragColor.rgb=clearcoatOut.clearCoatNormalW;\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==11\x20&&\x20defined(ANISOTROPIC)\x0agl_FragColor.rgb=anisotropicOut.anisotropicNormal;\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==12\x20&&\x20defined(ANISOTROPIC)\x0agl_FragColor.rgb=anisotropicOut.anisotropicTangent;\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==13\x20&&\x20defined(ANISOTROPIC)\x0agl_FragColor.rgb=anisotropicOut.anisotropicBitangent;\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==20\x20&&\x20defined(ALBEDO)\x0agl_FragColor.rgb=albedoTexture.rgb;\x0a#elif\x20DEBUGMODE==21\x20&&\x20defined(AMBIENT)\x0agl_FragColor.rgb=aoOut.ambientOcclusionColorMap.rgb;\x0a#elif\x20DEBUGMODE==22\x20&&\x20defined(OPACITY)\x0agl_FragColor.rgb=opacityMap.rgb;\x0a#elif\x20DEBUGMODE==23\x20&&\x20defined(EMISSIVE)\x0agl_FragColor.rgb=emissiveColorTex.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==24\x20&&\x20defined(LIGHTMAP)\x0agl_FragColor.rgb=lightmapColor.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==25\x20&&\x20defined(REFLECTIVITY)\x20&&\x20defined(METALLICWORKFLOW)\x0agl_FragColor.rgb=reflectivityOut.surfaceMetallicColorMap.rgb;\x0a#elif\x20DEBUGMODE==26\x20&&\x20defined(REFLECTIVITY)\x20&&\x20!defined(METALLICWORKFLOW)\x0agl_FragColor.rgb=reflectivityOut.surfaceReflectivityColorMap.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==27\x20&&\x20defined(CLEARCOAT)\x20&&\x20defined(CLEARCOAT_TEXTURE)\x0agl_FragColor.rgb=vec3(clearcoatOut.clearCoatMapData.rg,0.0);\x0a#elif\x20DEBUGMODE==28\x20&&\x20defined(CLEARCOAT)\x20&&\x20defined(CLEARCOAT_TINT)\x20&&\x20defined(CLEARCOAT_TINT_TEXTURE)\x0agl_FragColor.rgb=clearcoatOut.clearCoatTintMapData.rgb;\x0a#elif\x20DEBUGMODE==29\x20&&\x20defined(SHEEN)\x20&&\x20defined(SHEEN_TEXTURE)\x0agl_FragColor.rgb=sheenOut.sheenMapData.rgb;\x0a#elif\x20DEBUGMODE==30\x20&&\x20defined(ANISOTROPIC)\x20&&\x20defined(ANISOTROPIC_TEXTURE)\x0agl_FragColor.rgb=anisotropicOut.anisotropyMapData.rgb;\x0a#elif\x20DEBUGMODE==31\x20&&\x20defined(SUBSURFACE)\x20&&\x20defined(SS_THICKNESSANDMASK_TEXTURE)\x0agl_FragColor.rgb=subSurfaceOut.thicknessMap.rgb;\x0a#elif\x20DEBUGMODE==40\x20&&\x20defined(SS_REFRACTION)\x0agl_FragColor.rgb=subSurfaceOut.environmentRefraction.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==41\x20&&\x20defined(REFLECTION)\x0agl_FragColor.rgb=reflectionOut.environmentRadiance.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==42\x20&&\x20defined(CLEARCOAT)\x20&&\x20defined(REFLECTION)\x0agl_FragColor.rgb=clearcoatOut.environmentClearCoatRadiance.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==50\x0agl_FragColor.rgb=diffuseBase.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==51\x20&&\x20defined(SPECULARTERM)\x0agl_FragColor.rgb=specularBase.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==52\x20&&\x20defined(CLEARCOAT)\x0agl_FragColor.rgb=clearCoatBase.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==53\x20&&\x20defined(SHEEN)\x0agl_FragColor.rgb=sheenBase.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==54\x20&&\x20defined(REFLECTION)\x0agl_FragColor.rgb=reflectionOut.environmentIrradiance.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==60\x0agl_FragColor.rgb=surfaceAlbedo.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==61\x0agl_FragColor.rgb=clearcoatOut.specularEnvironmentR0;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==62\x20&&\x20defined(METALLICWORKFLOW)\x0agl_FragColor.rgb=vec3(reflectivityOut.metallicRoughness.r);\x0a#elif\x20DEBUGMODE==71\x20&&\x20defined(METALLICWORKFLOW)\x0agl_FragColor.rgb=reflectivityOut.metallicF0;\x0a#elif\x20DEBUGMODE==63\x0agl_FragColor.rgb=vec3(roughness);\x0a#elif\x20DEBUGMODE==64\x0agl_FragColor.rgb=vec3(alphaG);\x0a#elif\x20DEBUGMODE==65\x0agl_FragColor.rgb=vec3(NdotV);\x0a#elif\x20DEBUGMODE==66\x20&&\x20defined(CLEARCOAT)\x20&&\x20defined(CLEARCOAT_TINT)\x0agl_FragColor.rgb=clearcoatOut.clearCoatColor.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==67\x20&&\x20defined(CLEARCOAT)\x0agl_FragColor.rgb=vec3(clearcoatOut.clearCoatRoughness);\x0a#elif\x20DEBUGMODE==68\x20&&\x20defined(CLEARCOAT)\x0agl_FragColor.rgb=vec3(clearcoatOut.clearCoatNdotV);\x0a#elif\x20DEBUGMODE==69\x20&&\x20defined(SUBSURFACE)\x20&&\x20defined(SS_TRANSLUCENCY)\x0agl_FragColor.rgb=subSurfaceOut.transmittance;\x0a#elif\x20DEBUGMODE==70\x20&&\x20defined(SUBSURFACE)\x20&&\x20defined(SS_REFRACTION)\x0agl_FragColor.rgb=subSurfaceOut.refractionTransmittance;\x0a#elif\x20DEBUGMODE==80\x20&&\x20defined(RADIANCEOCCLUSION)\x0agl_FragColor.rgb=vec3(seo);\x0a#elif\x20DEBUGMODE==81\x20&&\x20defined(HORIZONOCCLUSION)\x0agl_FragColor.rgb=vec3(eho);\x0a#elif\x20DEBUGMODE==82\x20&&\x20defined(MS_BRDF_ENERGY_CONSERVATION)\x0agl_FragColor.rgb=vec3(energyConservationFactor);\x0a#elif\x20DEBUGMODE==83\x20&&\x20defined(ENVIRONMENTBRDF)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0agl_FragColor.rgb=specularEnvironmentReflectance;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==84\x20&&\x20defined(CLEARCOAT)\x20&&\x20defined(ENVIRONMENTBRDF)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0agl_FragColor.rgb=clearcoatOut.clearCoatEnvironmentReflectance;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==85\x20&&\x20defined(SHEEN)\x20&&\x20defined(REFLECTION)\x0agl_FragColor.rgb=sheenOut.sheenEnvironmentReflectance;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==86\x20&&\x20defined(ALPHABLEND)\x0agl_FragColor.rgb=vec3(luminanceOverAlpha);\x0a#elif\x20DEBUGMODE==87\x0agl_FragColor.rgb=vec3(alpha);\x0a#endif\x0agl_FragColor.rgb*=vDebugMode.y;\x0a#ifdef\x20DEBUGMODE_NORMALIZE\x0agl_FragColor.rgb=normalize(gl_FragColor.rgb)*0.5+0.5;\x0a#endif\x0a#ifdef\x20DEBUGMODE_GAMMA\x0agl_FragColor.rgb=toGammaSpace(gl_FragColor.rgb);\x0a#endif\x0agl_FragColor.a=1.0;\x0a#ifdef\x20PREPASS\x0agl_FragData[0]=toLinearSpace(gl_FragColor);\x20\x0agl_FragData[1]=vec4(0.,0.,0.,0.);\x20\x0a#endif\x0areturn;\x0a}\x0a#endif\x0a','onSizeChangedObservable','setFloat3','_pointerCaptures','vec3\x20computeFixedEquirectangularCoords(vec4\x20worldPos,vec3\x20worldNormal,vec3\x20direction)\x0a{\x0afloat\x20lon=atan(direction.z,direction.x);\x0afloat\x20lat=acos(direction.y);\x0avec2\x20sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;\x0afloat\x20s=sphereCoords.x*0.5+0.5;\x0afloat\x20t=sphereCoords.y;\x0areturn\x20vec3(s,t,0);\x20\x0a}\x0avec3\x20computeMirroredFixedEquirectangularCoords(vec4\x20worldPos,vec3\x20worldNormal,vec3\x20direction)\x0a{\x0afloat\x20lon=atan(direction.z,direction.x);\x0afloat\x20lat=acos(direction.y);\x0avec2\x20sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;\x0afloat\x20s=sphereCoords.x*0.5+0.5;\x0afloat\x20t=sphereCoords.y;\x0areturn\x20vec3(1.0-s,t,0);\x20\x0a}\x0avec3\x20computeEquirectangularCoords(vec4\x20worldPos,vec3\x20worldNormal,vec3\x20eyePosition,mat4\x20reflectionMatrix)\x0a{\x0avec3\x20cameraToVertex=normalize(worldPos.xyz-eyePosition);\x0avec3\x20r=normalize(reflect(cameraToVertex,worldNormal));\x0ar=vec3(reflectionMatrix*vec4(r,0));\x0afloat\x20lon=atan(r.z,r.x);\x0afloat\x20lat=acos(r.y);\x0avec2\x20sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;\x0afloat\x20s=sphereCoords.x*0.5+0.5;\x0afloat\x20t=sphereCoords.y;\x0areturn\x20vec3(s,t,0);\x0a}\x0avec3\x20computeSphericalCoords(vec4\x20worldPos,vec3\x20worldNormal,mat4\x20view,mat4\x20reflectionMatrix)\x0a{\x0avec3\x20viewDir=normalize(vec3(view*worldPos));\x0avec3\x20viewNormal=normalize(vec3(view*vec4(worldNormal,0.0)));\x0avec3\x20r=reflect(viewDir,viewNormal);\x0ar=vec3(reflectionMatrix*vec4(r,0));\x0ar.z=r.z-1.0;\x0afloat\x20m=2.0*length(r);\x0areturn\x20vec3(r.x/m+0.5,1.0-r.y/m-0.5,0);\x0a}\x0avec3\x20computePlanarCoords(vec4\x20worldPos,vec3\x20worldNormal,vec3\x20eyePosition,mat4\x20reflectionMatrix)\x0a{\x0avec3\x20viewDir=worldPos.xyz-eyePosition;\x0avec3\x20coords=normalize(reflect(viewDir,worldNormal));\x0areturn\x20vec3(reflectionMatrix*vec4(coords,1));\x0a}\x0avec3\x20computeCubicCoords(vec4\x20worldPos,vec3\x20worldNormal,vec3\x20eyePosition,mat4\x20reflectionMatrix)\x0a{\x0avec3\x20viewDir=normalize(worldPos.xyz-eyePosition);\x0avec3\x20coords=reflect(viewDir,worldNormal);\x0acoords=vec3(reflectionMatrix*vec4(coords,0));\x0a#ifdef\x20INVERTCUBICMAP\x0acoords.y*=-1.0;\x0a#endif\x0areturn\x20coords;\x0a}\x0avec3\x20computeCubicLocalCoords(vec4\x20worldPos,vec3\x20worldNormal,vec3\x20eyePosition,mat4\x20reflectionMatrix,vec3\x20reflectionSize,vec3\x20reflectionPosition)\x0a{\x0avec3\x20viewDir=normalize(worldPos.xyz-eyePosition);\x0avec3\x20coords=reflect(viewDir,worldNormal);\x0acoords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);\x0acoords=vec3(reflectionMatrix*vec4(coords,0));\x0a#ifdef\x20INVERTCUBICMAP\x0acoords.y*=-1.0;\x0a#endif\x0areturn\x20coords;\x0a}\x0avec3\x20computeProjectionCoords(vec4\x20worldPos,mat4\x20view,mat4\x20reflectionMatrix)\x0a{\x0areturn\x20vec3(reflectionMatrix*(view*worldPos));\x0a}\x0avec3\x20computeSkyBoxCoords(vec3\x20positionW,mat4\x20reflectionMatrix)\x0a{\x0areturn\x20vec3(reflectionMatrix*vec4(positionW,1.));\x0a}\x0a#ifdef\x20REFLECTION\x0avec3\x20computeReflectionCoords(vec4\x20worldPos,vec3\x20worldNormal)\x0a{\x0a#ifdef\x20REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\x0avec3\x20direction=normalize(vDirectionW);\x0areturn\x20computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_EQUIRECTANGULAR_FIXED\x0avec3\x20direction=normalize(vDirectionW);\x0areturn\x20computeFixedEquirectangularCoords(worldPos,worldNormal,direction);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_EQUIRECTANGULAR\x0areturn\x20computeEquirectangularCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_SPHERICAL\x0areturn\x20computeSphericalCoords(worldPos,worldNormal,view,reflectionMatrix);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_PLANAR\x0areturn\x20computePlanarCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_CUBIC\x0a#ifdef\x20USE_LOCAL_REFLECTIONMAP_CUBIC\x0areturn\x20computeCubicLocalCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix,vReflectionSize,vReflectionPosition);\x0a#else\x0areturn\x20computeCubicCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\x0a#endif\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_PROJECTION\x0areturn\x20computeProjectionCoords(worldPos,view,reflectionMatrix);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0areturn\x20computeSkyBoxCoords(vPositionUVW,reflectionMatrix);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_EXPLICIT\x0areturn\x20vec3(0,0,0);\x0a#endif\x0a}\x0a#endif\x0a','ssaoPixelShader','modelArrayBuff','chromaticAberrationPixelShader','TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV','RG32Sint','#ifdef\x20LOGARITHMICDEPTH\x0a#extension\x20GL_EXT_frag_depth\x20:\x20enable\x0a#endif\x0aprecision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0a#ifdef\x20SPECULARTERM\x0auniform\x20vec4\x20vSpecularColor;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<imageProcessingDeclaration>\x0a#include<imageProcessingFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#ifdef\x20BUMP\x0avarying\x20vec2\x20vNormalUV;\x0a#ifdef\x20BUMPSUPERIMPOSE\x0avarying\x20vec2\x20vNormalUV2;\x0a#endif\x0auniform\x20sampler2D\x20normalSampler;\x0auniform\x20vec2\x20vNormalInfos;\x0a#endif\x0auniform\x20sampler2D\x20refractionSampler;\x0auniform\x20sampler2D\x20reflectionSampler;\x0aconst\x20float\x20LOG2=1.442695;\x0auniform\x20vec3\x20cameraPosition;\x0auniform\x20vec4\x20waterColor;\x0auniform\x20float\x20colorBlendFactor;\x0auniform\x20vec4\x20waterColor2;\x0auniform\x20float\x20colorBlendFactor2;\x0auniform\x20float\x20bumpHeight;\x0auniform\x20float\x20time;\x0avarying\x20vec3\x20vRefractionMapTexCoord;\x0avarying\x20vec3\x20vReflectionMapTexCoord;\x0avarying\x20vec3\x20vPosition;\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<logDepthDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20baseColor=vec4(1.,1.,1.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20BUMP\x0a#ifdef\x20BUMPSUPERIMPOSE\x0abaseColor=0.6*texture2D(normalSampler,vNormalUV)+0.4*texture2D(normalSampler,vec2(vNormalUV2.x,vNormalUV2.y));\x0a#else\x0abaseColor=texture2D(normalSampler,vNormalUV);\x0a#endif\x0avec3\x20bumpColor=baseColor.rgb;\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0abaseColor.rgb*=vNormalInfos.y;\x0a#else\x0avec3\x20bumpColor=vec3(1.0);\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec2\x20perturbation=bumpHeight*(baseColor.rg-0.5);\x0a#ifdef\x20BUMPAFFECTSREFLECTION\x0avec3\x20normalW=normalize(vNormalW+vec3(perturbation.x*8.0,0.0,perturbation.y*8.0));\x0aif\x20(normalW.y<0.0)\x20{\x0anormalW.y=-normalW.y;\x0a}\x0a#else\x0avec3\x20normalW=normalize(vNormalW);\x0a#endif\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0avec2\x20perturbation=bumpHeight*(vec2(1.0,1.0)-0.5);\x0a#endif\x0a#ifdef\x20FRESNELSEPARATE\x0a#ifdef\x20REFLECTION\x0avec2\x20projectedRefractionTexCoords=clamp(vRefractionMapTexCoord.xy/vRefractionMapTexCoord.z+perturbation*0.5,0.0,1.0);\x0avec4\x20refractiveColor=texture2D(refractionSampler,projectedRefractionTexCoords);\x0a#ifdef\x20IS_REFRACTION_LINEAR\x0arefractiveColor.rgb=toGammaSpace(refractiveColor.rgb);\x0a#endif\x0avec2\x20projectedReflectionTexCoords=clamp(vec2(\x0avReflectionMapTexCoord.x/vReflectionMapTexCoord.z+perturbation.x*0.3,\x0avReflectionMapTexCoord.y/vReflectionMapTexCoord.z+perturbation.y\x0a),0.0,1.0);\x0avec4\x20reflectiveColor=texture2D(reflectionSampler,projectedReflectionTexCoords);\x0a#ifdef\x20IS_REFLECTION_LINEAR\x0areflectiveColor.rgb=toGammaSpace(reflectiveColor.rgb);\x0a#endif\x0avec3\x20upVector=vec3(0.0,1.0,0.0);\x0afloat\x20fresnelTerm=clamp(abs(pow(dot(viewDirectionW,upVector),3.0)),0.05,0.65);\x0afloat\x20IfresnelTerm=1.0-fresnelTerm;\x0arefractiveColor=colorBlendFactor*waterColor+(1.0-colorBlendFactor)*refractiveColor;\x0areflectiveColor=IfresnelTerm*colorBlendFactor2*waterColor+(1.0-colorBlendFactor2*IfresnelTerm)*reflectiveColor;\x0avec4\x20combinedColor=refractiveColor*fresnelTerm+reflectiveColor*IfresnelTerm;\x0abaseColor=combinedColor;\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0a#ifdef\x20SPECULARTERM\x0afloat\x20glossiness=vSpecularColor.a;\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0avec3\x20specularColor=vSpecularColor.rgb;\x0a#else\x0afloat\x20glossiness=0.;\x0a#endif\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0avec3\x20finalDiffuse=clamp(baseColor.rgb,0.0,1.0);\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20finalSpecular=specularBase*specularColor;\x0a#else\x0avec3\x20finalSpecular=vec3(0.0);\x0a#endif\x0a#else\x20\x0a#ifdef\x20REFLECTION\x0avec2\x20projectedRefractionTexCoords=clamp(vRefractionMapTexCoord.xy/vRefractionMapTexCoord.z+perturbation,0.0,1.0);\x0avec4\x20refractiveColor=texture2D(refractionSampler,projectedRefractionTexCoords);\x0a#ifdef\x20IS_REFRACTION_LINEAR\x0arefractiveColor.rgb=toGammaSpace(refractiveColor.rgb);\x0a#endif\x0avec2\x20projectedReflectionTexCoords=clamp(vReflectionMapTexCoord.xy/vReflectionMapTexCoord.z+perturbation,0.0,1.0);\x0avec4\x20reflectiveColor=texture2D(reflectionSampler,projectedReflectionTexCoords);\x0a#ifdef\x20IS_REFLECTION_LINEAR\x0areflectiveColor.rgb=toGammaSpace(reflectiveColor.rgb);\x0a#endif\x0avec3\x20upVector=vec3(0.0,1.0,0.0);\x0afloat\x20fresnelTerm=max(dot(viewDirectionW,upVector),0.0);\x0avec4\x20combinedColor=refractiveColor*fresnelTerm+reflectiveColor*(1.0-fresnelTerm);\x0abaseColor=colorBlendFactor*waterColor+(1.0-colorBlendFactor)*combinedColor;\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0a#ifdef\x20SPECULARTERM\x0afloat\x20glossiness=vSpecularColor.a;\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0avec3\x20specularColor=vSpecularColor.rgb;\x0a#else\x0afloat\x20glossiness=0.;\x0a#endif\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0avec3\x20finalDiffuse=clamp(baseColor.rgb,0.0,1.0);\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20finalSpecular=specularBase*specularColor;\x0a#else\x0avec3\x20finalSpecular=vec3(0.0);\x0a#endif\x0a#endif\x0avec4\x20color=vec4(finalDiffuse+finalSpecular,alpha);\x0a#include<logDepthFragment>\x0a#include<fogFragment>\x0a#ifdef\x20IMAGEPROCESSINGPOSTPROCESS\x0acolor.rgb=toLinearSpace(color.rgb);\x0a#elif\x20defined(IMAGEPROCESSING)\x0acolor.rgb=toLinearSpace(color.rgb);\x0acolor=applyImageProcessing(color);\x0a#endif\x0agl_FragColor=color;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','oitDeclaration','uniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20lightScatteringSampler;\x0auniform\x20float\x20decay;\x0auniform\x20float\x20exposure;\x0auniform\x20float\x20weight;\x0auniform\x20float\x20density;\x0auniform\x20vec2\x20meshPositionOnScreen;\x0avarying\x20vec2\x20vUV;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0avec2\x20tc=vUV;\x0avec2\x20deltaTexCoord=(tc-meshPositionOnScreen.xy);\x0adeltaTexCoord*=1.0/float(NUM_SAMPLES)*density;\x0afloat\x20illuminationDecay=1.0;\x0avec4\x20color=texture2D(lightScatteringSampler,tc)*0.4;\x0afor(int\x20i=0;\x20i<NUM_SAMPLES;\x20i++)\x20{\x0atc-=deltaTexCoord;\x0avec4\x20dataSample=texture2D(lightScatteringSampler,tc)*0.4;\x0adataSample*=illuminationDecay*weight;\x0acolor+=dataSample;\x0ailluminationDecay*=decay;\x0a}\x0avec4\x20realColor=texture2D(textureSampler,vUV);\x0agl_FragColor=((vec4((vec3(color.r,color.g,color.b)*exposure),1))+(realColor*(1.5-0.4)));\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','MATERIAL_TriangleStripDrawMode','_getEngine','TEXTURE_WRAP_T','bilinearFiltering','onInputChangedObservable','TEXTURE_TRILINEAR_SAMPLINGMODE','_toIndex','TEXTURETYPE_HALF_FLOAT','blendEquationSeparate','_areImageProcessingDirty','subSurfaceScatteringFunctions','u32','serialize','fragment','_OperatorPriority','_caps','compilationString','setImmediate','setInt','getIndex','copyVideoToTexture','#include<sceneVertexDeclaration>\x0a#include<meshVertexDeclaration>\x0a','freeBindingIndex','spritesVertexShader','_depthStencilTexture','readTwoValuesAndSubtract','MATERIAL_TriangleFanDrawMode','scene','_checkPrePointerObservable','ACTION_OnPickOutTrigger','isFixedFoveationSupported','_textures','_blurTextureType','useCache','fluidRenderingParticleThicknessVertexShader','_angle','count','readFromStorageBuffer','_bundleEncoder','#ifdef\x20MORPHTARGETS\x0auniform\x20morphTargetInfluences\x20:\x20array<f32,NUM_MORPH_INFLUENCERS>;\x0a#ifdef\x20MORPHTARGETS_TEXTURE\x20\x0auniform\x20morphTargetTextureIndices\x20:\x20array<f32,NUM_MORPH_INFLUENCERS>;\x0auniform\x20morphTargetTextureInfo\x20:\x20vec3<f32>;\x0avar\x20morphTargets\x20:\x20texture_2d_array<f32>;\x0avar\x20morphTargetsSampler\x20:\x20sampler;\x0afn\x20readVector3FromRawSampler(targetIndex\x20:\x20i32,vertexIndex\x20:\x20f32)->vec3<f32>\x0a{\x20\x0alet\x20y=floor(vertexIndex/uniforms.morphTargetTextureInfo.y);\x0alet\x20x=vertexIndex-y*uniforms.morphTargetTextureInfo.y;\x0alet\x20textureUV=vec2<f32>((x+0.5)/uniforms.morphTargetTextureInfo.y,(y+0.5)/uniforms.morphTargetTextureInfo.z);\x0areturn\x20textureSampleLevel(morphTargets,morphTargetsSampler,textureUV,i32(uniforms.morphTargetTextureIndices[targetIndex]),0.0).xyz;\x0a}\x0a#endif\x0a#endif\x0a','initialize','createBuffer','readPixels','updateId','layout(std140,column_major)\x20uniform;\x0auniform\x20Material\x0a{\x0avec4\x20diffuseLeftColor;\x0avec4\x20diffuseRightColor;\x0avec4\x20opacityParts;\x0avec4\x20reflectionLeftColor;\x0avec4\x20reflectionRightColor;\x0avec4\x20refractionLeftColor;\x0avec4\x20refractionRightColor;\x0avec4\x20emissiveLeftColor;\x0avec4\x20emissiveRightColor;\x0avec2\x20vDiffuseInfos;\x0avec2\x20vAmbientInfos;\x0avec2\x20vOpacityInfos;\x0avec2\x20vReflectionInfos;\x0avec3\x20vReflectionPosition;\x0avec3\x20vReflectionSize;\x0avec2\x20vEmissiveInfos;\x0avec2\x20vLightmapInfos;\x0avec2\x20vSpecularInfos;\x0avec3\x20vBumpInfos;\x0amat4\x20diffuseMatrix;\x0amat4\x20ambientMatrix;\x0amat4\x20opacityMatrix;\x0amat4\x20reflectionMatrix;\x0amat4\x20emissiveMatrix;\x0amat4\x20lightmapMatrix;\x0amat4\x20specularMatrix;\x0amat4\x20bumpMatrix;\x0avec2\x20vTangentSpaceParams;\x0afloat\x20pointSize;\x0afloat\x20alphaCutOff;\x0amat4\x20refractionMatrix;\x0avec4\x20vRefractionInfos;\x0avec3\x20vRefractionPosition;\x0avec3\x20vRefractionSize;\x0avec4\x20vSpecularColor;\x0avec3\x20vEmissiveColor;\x0avec4\x20vDiffuseColor;\x0avec3\x20vAmbientColor;\x0a#define\x20ADDITIONAL_UBO_DECLARATION\x0a};\x0a#include<sceneUboDeclaration>\x0a#include<meshUboDeclaration>\x0a','_commandEncoderForCreation','PREPASS_REFLECTIVITY_TEXTURE_TYPE','_createEffects','E2dArray','PREPASS_VELOCITY_TEXTURE_TYPE','_currentRenderTarget','setBlendConstant','TEXTUREFORMAT_RGBA_INTEGER\x20format\x20not\x20supported\x20in\x20WebGPU\x20when\x20type\x20is\x20TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV','ACTION_OnCenterPickTrigger','offlineProvider','setFloatArray','null','drawBuffers','preventDefaultOnPointerUp','_delay','createComputePipelineContext','dispatchWorkgroups','asArray','_buildBlock','hasPickTriggers','Zero','_framebufferDepthStencil','indexCount','prePassRenderer','instancesDeclaration','DEPTH_COMPONENT24','R8Snorm','drawElementsType','_onPointerUp','disablePhysicsEngine','_cull','GL_ALPHA_FUNCTION_CONSTANT_COLOR','_ApplyPreProcessing','_BuildExpression','CopyVideoToTexture_','#define\x20CLIPPLANE2','No\x20fixed\x20size\x20for\x20Stencil8\x20format!','releaseVertexArrayObject','skipPointerMovePicking','TEXTUREFORMAT_RGB','#ifdef\x20DECAL\x0a#ifdef\x20GAMMADECAL\x0adecalColor.rgb=toLinearSpace(decalColor.rgb);\x0a#endif\x0a#ifdef\x20DECAL_SMOOTHALPHA\x0adecalColor.a*=decalColor.a;\x0a#endif\x0asurfaceAlbedo.rgb=mix(surfaceAlbedo.rgb,decalColor.rgb,decalColor.a);\x0a#endif\x0a','_cacheMatrix','R16Float','logDepthFragment','simulatePointerMove','setColor3','ALPHA_EQUATION_REVERSE_SUBTRACT','.rgb','_getInternalFormat','updateFloat2','TEXTUREFORMAT_DEPTH16','115477IYfYhV','textureFloatRender','Textures\x20type\x20does\x20not\x20support\x20cascades.','status','_blurTextureSizeX','getOrAddWithFactory','bindGroupLayoutEntries','vec3','RENDERBUFFER','readValues','getAlphaMode','###___ANCHOR','_textureArrayProcessing','#ifdef\x20DOF\x0afactor=sampleCoC(sampleCoord{X});\x20\x0acomputedWeight=KERNEL_WEIGHT{X}*factor;\x0asumOfWeights+=computedWeight;\x0a#else\x0acomputedWeight=KERNEL_WEIGHT{X};\x0a#endif\x0a#ifdef\x20PACKEDFLOAT\x0ablend+=unpack(texture2D(textureSampler,sampleCoord{X}))*computedWeight;\x0a#else\x0ablend+=texture2D(textureSampler,sampleCoord{X})*computedWeight;\x0a#endif\x0a','backgroundUboDeclaration','_cacheFloat2','SRC_ALPHA','types','COLOR_BUFFER_BIT','transform','onBeforeCameraRenderObservable','_setupDepthStencilTexture','done','sampler3D','\x0a\x20\x20vertexInputs\x20=\x20input;\x0a','_files','release','_getFreeVariableName','_bundleList','strides','unBindFramebuffer','autoClear','shadowOnlyVertexShader','setStorageBuffer','vec2\x20uvOffset=vec2(0.0,0.0);\x0a#if\x20defined(BUMP)\x20||\x20defined(PARALLAX)\x20||\x20defined(DETAIL)\x0a#ifdef\x20NORMALXYSCALE\x0afloat\x20normalScale=1.0;\x0a#elif\x20defined(BUMP)\x0afloat\x20normalScale=vBumpInfos.y;\x0a#else\x0afloat\x20normalScale=1.0;\x0a#endif\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x0amat3\x20TBN=vTBN;\x0a#elif\x20defined(BUMP)\x0avec2\x20TBNUV=gl_FrontFacing\x20?\x20vBumpUV\x20:\x20-vBumpUV;\x0amat3\x20TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vTangentSpaceParams);\x0a#else\x0avec2\x20TBNUV=gl_FrontFacing\x20?\x20vDetailUV\x20:\x20-vDetailUV;\x0amat3\x20TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vec2(1.,1.));\x0a#endif\x0a#elif\x20defined(ANISOTROPIC)\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x0amat3\x20TBN=vTBN;\x0a#else\x0avec2\x20TBNUV=gl_FrontFacing\x20?\x20vMainUV1\x20:\x20-vMainUV1;\x0amat3\x20TBN=cotangent_frame(normalW,vPositionW,TBNUV,vec2(1.,1.));\x0a#endif\x0a#endif\x0a#ifdef\x20PARALLAX\x0amat3\x20invTBN=transposeMat3(TBN);\x0a#ifdef\x20PARALLAXOCCLUSION\x0auvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,vBumpUV,vBumpInfos.z);\x0a#else\x0auvOffset=parallaxOffset(invTBN*viewDirectionW,vBumpInfos.z);\x0a#endif\x0a#endif\x0a#ifdef\x20DETAIL\x0avec4\x20detailColor=texture2D(detailSampler,vDetailUV+uvOffset);\x0avec2\x20detailNormalRG=detailColor.wy*2.0-1.0;\x0afloat\x20detailNormalB=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));\x0avec3\x20detailNormal=vec3(detailNormalRG,detailNormalB);\x0a#endif\x0a#ifdef\x20BUMP\x0a#ifdef\x20OBJECTSPACE_NORMALMAP\x0a#define\x20CUSTOM_FRAGMENT_BUMP_FRAGMENT\x0anormalW=normalize(texture2D(bumpSampler,vBumpUV).xyz\x20*2.0-1.0);\x0anormalW=normalize(mat3(normalMatrix)*normalW);\x0a#elif\x20!defined(DETAIL)\x0anormalW=perturbNormal(TBN,texture2D(bumpSampler,vBumpUV+uvOffset).xyz,vBumpInfos.y);\x0a#else\x0avec3\x20bumpNormal=texture2D(bumpSampler,vBumpUV+uvOffset).xyz*2.0-1.0;\x0a#if\x20DETAIL_NORMALBLENDMETHOD==0\x20\x0adetailNormal.xy*=vDetailInfos.z;\x0avec3\x20blendedNormal=normalize(vec3(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));\x0a#elif\x20DETAIL_NORMALBLENDMETHOD==1\x20\x0adetailNormal.xy*=vDetailInfos.z;\x0abumpNormal+=vec3(0.0,0.0,1.0);\x0adetailNormal*=vec3(-1.0,-1.0,1.0);\x0avec3\x20blendedNormal=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal;\x0a#endif\x0anormalW=perturbNormalBase(TBN,blendedNormal,vBumpInfos.y);\x0a#endif\x0a#elif\x20defined(DETAIL)\x0adetailNormal.xy*=vDetailInfos.z;\x0anormalW=perturbNormalBase(TBN,detailNormal,vDetailInfos.z);\x0a#endif\x0a','worldPosition','LIGHTTYPEID_DIRECTIONALLIGHT','_count','enableEffectInPipeline','isReadyOrNotBlocking','_pendingDebugCommands','internal\x20copy\x20texture\x20with\x20invertY','_vertexBuffers','renderWidthHeight','gl_InstanceIndex','testExpression','createCommandEncoder','ALPHA_EQUATION_MAX','_collectBindingNames',');\x0d\x0a','getBuffer','cullFace','FluidRenderingRTT-','HasDepthAndStencilAspects','renderTarget','meshUnderPointer','#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0avec3\x20specularEnvironmentReflectance=getReflectanceFromBRDFLookup(clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,environmentBrdf);\x0a#ifdef\x20RADIANCEOCCLUSION\x0aspecularEnvironmentReflectance*=seo;\x0a#endif\x0a#ifdef\x20HORIZONOCCLUSION\x0a#ifdef\x20BUMP\x0a#ifdef\x20REFLECTIONMAP_3D\x0aspecularEnvironmentReflectance*=eho;\x0a#endif\x0a#endif\x0a#endif\x0a#else\x0avec3\x20specularEnvironmentReflectance=getReflectanceFromAnalyticalBRDFLookup_Jones(NdotV,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,sqrt(microSurface));\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0aspecularEnvironmentReflectance*=clearcoatOut.conservationFactor;\x0a#if\x20defined(CLEARCOAT_TINT)\x0aspecularEnvironmentReflectance*=clearcoatOut.absorption;\x0a#endif\x0a#endif\x0a','vAng','setTimeout','_textureBlurred','TEXTURE_BILINEAR_SAMPLINGMODE','depthOfFieldMergePixelShader','getTextureMatrix','_IsHardwareTexture','numBoneInfluencers','#ifdef\x20_DEFINENAME_\x0a#if\x20_DEFINENAME_DIRECTUV==1\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV1\x0a#elif\x20_DEFINENAME_DIRECTUV==2\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV2\x0a#elif\x20_DEFINENAME_DIRECTUV==3\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV3\x0a#elif\x20_DEFINENAME_DIRECTUV==4\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV4\x0a#elif\x20_DEFINENAME_DIRECTUV==5\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV5\x0a#elif\x20_DEFINENAME_DIRECTUV==6\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV6\x0a#else\x0avarying\x20vec2\x20v_VARYINGNAME_UV;\x0a#endif\x0auniform\x20sampler2D\x20_SAMPLERNAME_Sampler;\x0a#endif\x0a','#define\x20','_defineLocalCubicName','\x20{\x0a\x20\x20yFactor_:\x20f32,\x0a\x20\x20textureOutputHeight_:\x20f32,\x0a};\x0avar<uniform>\x20internals\x20:\x20','TextureWithoutSampler','_rebuild','_generatePickInfo','mousePosition','_generateLeftOverUBOCode','ASTC5x4UnormSRGB','_ProcessIncludes','_useMultiviewToSingleView','_rebuildComputeEffects','#ifdef\x20CLIPPLANE\x0avertexOutputs.fClipDistance=dot(worldPos,uniforms.vClipPlane);\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0avertexOutputs.fClipDistance2=dot(worldPos,uniforms.vClipPlane2);\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0avertexOutputs.fClipDistance3=dot(worldPos,uniforms.vClipPlane3);\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0avertexOutputs.fClipDistance4=dot(worldPos,uniforms.vClipPlane4);\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0avertexOutputs.fClipDistance5=dot(worldPos,uniforms.vClipPlane5);\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0avertexOutputs.fClipDistance6=dot(worldPos,uniforms.vClipPlane6);\x0a#endif\x0a','framebufferTextureMultisampleMultiviewOVR','TEXTURE_NEAREST_LINEAR_MIPNEAREST',',\x20falling\x20back\x20to\x20the\x20','markAsFresnelDirty','reflectionFunction','applyImpulse','position','_useInstancing','MouseWheelY','createMSAATexture','canvasTabIndex','true','effect','!!INVALID\x20EXPRESSION!!','blackAndWhitePixelShader','MAINUV3','_epsilon','#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0a#define\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#else\x0auniform\x20vec4\x20color;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0agl_FragColor=vColor;\x0a#else\x0agl_FragColor=color;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','_ProcessPrecision','InvertYPremultiplyAlphaWithOfst','getTranslation','_unTranslatedPointerX','#ifdef\x20LIGHT{X}\x0auniform\x20Light{X}\x0a{\x0avec4\x20vLightData;\x0avec4\x20vLightDiffuse;\x0avec4\x20vLightSpecular;\x0a#ifdef\x20SPOTLIGHT{X}\x0avec4\x20vLightDirection;\x0avec4\x20vLightFalloff;\x0a#elif\x20defined(POINTLIGHT{X})\x0avec4\x20vLightFalloff;\x0a#elif\x20defined(HEMILIGHT{X})\x0avec3\x20vLightGround;\x0a#endif\x0avec4\x20shadowsInfo;\x0avec2\x20depthValues;\x0a}\x20light{X};\x0a#ifdef\x20PROJECTEDLIGHTTEXTURE{X}\x0auniform\x20mat4\x20textureProjectionMatrix{X};\x0auniform\x20sampler2D\x20projectionLightSampler{X};\x0a#endif\x0a#ifdef\x20SHADOW{X}\x0a#ifdef\x20SHADOWCSM{X}\x0auniform\x20mat4\x20lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20cascadeBlendFactor{X};\x0avarying\x20vec4\x20vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20float\x20vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20vec4\x20vPositionFromCamera{X};\x0a#if\x20defined(SHADOWPCSS{X})\x0auniform\x20highp\x20sampler2DArrayShadow\x20shadowSampler{X};\x0auniform\x20highp\x20sampler2DArray\x20depthSampler{X};\x0auniform\x20vec2\x20lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20penumbraDarkness{X};\x0a#elif\x20defined(SHADOWPCF{X})\x0auniform\x20highp\x20sampler2DArrayShadow\x20shadowSampler{X};\x0a#else\x0auniform\x20highp\x20sampler2DArray\x20shadowSampler{X};\x0a#endif\x0a#ifdef\x20SHADOWCSMDEBUG{X}\x0aconst\x20vec3\x20vCascadeColorsMultiplier{X}[8]=vec3[8]\x0a(\x0avec3\x20(\x201.5,0.0,0.0\x20),\x0avec3\x20(\x200.0,1.5,0.0\x20),\x0avec3\x20(\x200.0,0.0,5.5\x20),\x0avec3\x20(\x201.5,0.0,5.5\x20),\x0avec3\x20(\x201.5,1.5,0.0\x20),\x0avec3\x20(\x201.0,1.0,1.0\x20),\x0avec3\x20(\x200.0,1.0,5.5\x20),\x0avec3\x20(\x200.5,3.5,0.75\x20)\x0a);\x0avec3\x20shadowDebug{X};\x0a#endif\x0a#ifdef\x20SHADOWCSMUSESHADOWMAXZ{X}\x0aint\x20index{X}=-1;\x0a#else\x0aint\x20index{X}=SHADOWCSMNUM_CASCADES{X}-1;\x0a#endif\x0afloat\x20diff{X}=0.;\x0a#elif\x20defined(SHADOWCUBE{X})\x0auniform\x20samplerCube\x20shadowSampler{X};\x20\x0a#else\x0avarying\x20vec4\x20vPositionFromLight{X};\x0avarying\x20float\x20vDepthMetric{X};\x0a#if\x20defined(SHADOWPCSS{X})\x0auniform\x20highp\x20sampler2DShadow\x20shadowSampler{X};\x0auniform\x20highp\x20sampler2D\x20depthSampler{X};\x0a#elif\x20defined(SHADOWPCF{X})\x0auniform\x20highp\x20sampler2DShadow\x20shadowSampler{X};\x0a#else\x0auniform\x20sampler2D\x20shadowSampler{X};\x0a#endif\x0auniform\x20mat4\x20lightMatrix{X};\x0a#endif\x0a#endif\x0a#endif\x0a','isPhysicsEnabled','observers','_ubDontInvertY','vrDistortionCorrectionPixelShader','_bufferManager','GL_ALPHA_FUNCTION_ONE_MINUS_SRC_COLOR','sqrt','_createDepthStencilCubeTexture','_projectOnUnIndexedTrianglesToRef','lensFlarePixelShader','Cube','IsExponentOfTwo','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec4\x20color;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0avec4\x20baseColor=texture2D(textureSampler,vUV);\x0agl_FragColor=baseColor*color;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','#define\x20SPHEREEMITTER\x0a#define\x20DIRECTEDSPHEREEMITTER','(-yFactor_)*dFdy','_textureFormat','orderedAttributes','substitutionVars','previousMatrixData','glFragColor','setInt4','KEEP','IsCompressedFormat','_useDirectMapping','boundingBoxSize','SNAPSHOTRENDERING_STANDARD','worldUp','_drawWrapperFog','temps','Multiview\x20is\x20not\x20supported','normalize','_getUseSRGBBuffer','shadowMapFragmentExtraDeclaration','textureHalfFloatLinearFiltering','fogVertex','_onAfterUnbindFrameBufferObservable','_isBlendConstantsDirty','\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x200)\x20uniform\x20Uniforms\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20uniform\x20vec4\x20color;\x0a\x20\x20\x20\x20};\x0a\x0a\x20\x20\x20\x20layout(location\x20=\x200)\x20out\x20vec4\x20outColor;\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20outColor\x20=\x20color;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','TEXTURE_MIN_FILTER','iridescenceOutParams\x20iridescenceOut;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20IRIDESCENCE\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20iridescenceBlock(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec4(','samplerCube','attributes','{W:\x20','TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV','\x5c$&','visibleModelBox','StorageTexture','ssDiffusionS','#ifdef\x20EXPOSURE\x0auniform\x20float\x20exposureLinear;\x0a#endif\x0a#ifdef\x20CONTRAST\x0auniform\x20float\x20contrast;\x0a#endif\x0a#if\x20defined(VIGNETTE)\x20||\x20defined(DITHER)\x0auniform\x20vec2\x20vInverseScreenSize;\x0a#endif\x0a#ifdef\x20VIGNETTE\x0auniform\x20vec4\x20vignetteSettings1;\x0auniform\x20vec4\x20vignetteSettings2;\x0a#endif\x0a#ifdef\x20COLORCURVES\x0auniform\x20vec4\x20vCameraColorCurveNegative;\x0auniform\x20vec4\x20vCameraColorCurveNeutral;\x0auniform\x20vec4\x20vCameraColorCurvePositive;\x0a#endif\x0a#ifdef\x20COLORGRADING\x0a#ifdef\x20COLORGRADING3D\x0auniform\x20highp\x20sampler3D\x20txColorTransform;\x0a#else\x0auniform\x20sampler2D\x20txColorTransform;\x0a#endif\x0auniform\x20vec4\x20colorTransformSettings;\x0a#endif\x0a#ifdef\x20DITHER\x0auniform\x20float\x20ditherIntensity;\x0a#endif\x0a','stencilMaterial','#define\x20CYLINDEREMITTER\x0a#define\x20DIRECTEDCYLINDEREMITTER','framebufferTexture2D','insertDebugMarker','parent','thinInstanceAdd','subarray','#include<helperFunctions>\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20float\x20threshold;\x0auniform\x20float\x20exposure;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0agl_FragColor=texture2D(textureSampler,vUV);\x0afloat\x20luma=dot(LuminanceEncodeApprox,gl_FragColor.rgb*exposure);\x0agl_FragColor.rgb=step(threshold,luma)*gl_FragColor.rgb;\x0a}','createSceneUniformBuffer','_strided_arr','setSubData','removeAttributes','MAINUV2','getBundleEncoder','map','fluidRenderingParticleDepthVertexShader','ACTION_OnLongPressTrigger','_workingContext','updateInt3','_delayQuerySetDispose','getInputBlockByPredicate','#ifdef\x20TEXTURELODSUPPORT\x0a#extension\x20GL_EXT_shader_texture_lod\x20:\x20enable\x0a#endif\x0aprecision\x20highp\x20float;\x0a#include<__decl__backgroundFragment>\x0a#include<helperFunctions>\x0a#define\x20RECIPROCAL_PI2\x200.15915494\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20MAINUV1\x0avarying\x20vec2\x20vMainUV1;\x0a#endif\x20\x0a#ifdef\x20MAINUV2\x20\x0avarying\x20vec2\x20vMainUV2;\x20\x0a#endif\x20\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20DIFFUSE\x0a#if\x20DIFFUSEDIRECTUV==1\x0a#define\x20vDiffuseUV\x20vMainUV1\x0a#elif\x20DIFFUSEDIRECTUV==2\x0a#define\x20vDiffuseUV\x20vMainUV2\x0a#else\x0avarying\x20vec2\x20vDiffuseUV;\x0a#endif\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#endif\x0a#ifdef\x20REFLECTION\x0a#ifdef\x20REFLECTIONMAP_3D\x0a#define\x20sampleReflection(s,c)\x20textureCube(s,c)\x0auniform\x20samplerCube\x20reflectionSampler;\x0a#ifdef\x20TEXTURELODSUPPORT\x0a#define\x20sampleReflectionLod(s,c,l)\x20textureCubeLodEXT(s,c,l)\x0a#else\x0auniform\x20samplerCube\x20reflectionSamplerLow;\x0auniform\x20samplerCube\x20reflectionSamplerHigh;\x0a#endif\x0a#else\x0a#define\x20sampleReflection(s,c)\x20texture2D(s,c)\x0auniform\x20sampler2D\x20reflectionSampler;\x0a#ifdef\x20TEXTURELODSUPPORT\x0a#define\x20sampleReflectionLod(s,c,l)\x20texture2DLodEXT(s,c,l)\x0a#else\x0auniform\x20samplerCube\x20reflectionSamplerLow;\x0auniform\x20samplerCube\x20reflectionSamplerHigh;\x0a#endif\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avarying\x20vec3\x20vPositionUVW;\x0a#else\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avarying\x20vec3\x20vDirectionW;\x0a#endif\x0a#endif\x0a#include<reflectionFunction>\x0a#endif\x0a#ifndef\x20FROMLINEARSPACE\x0a#define\x20FROMLINEARSPACE;\x0a#endif\x0a#ifndef\x20SHADOWONLY\x0a#define\x20SHADOWONLY;\x0a#endif\x0a#include<imageProcessingDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<imageProcessingFunctions>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#ifdef\x20REFLECTIONFRESNEL\x0a#define\x20FRESNEL_MAXIMUM_ON_ROUGH\x200.25\x0avec3\x20fresnelSchlickEnvironmentGGX(float\x20VdotN,vec3\x20reflectance0,vec3\x20reflectance90,float\x20smoothness)\x0a{\x0afloat\x20weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);\x0areturn\x20reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));\x0a}\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(0.0,1.0,0.0);\x0a#endif\x0afloat\x20shadow=1.;\x0afloat\x20globalShadow=0.;\x0afloat\x20shadowLightCount=0.;\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#ifdef\x20SHADOWINUSE\x0aglobalShadow/=shadowLightCount;\x0a#else\x0aglobalShadow=1.0;\x0a#endif\x0a#ifndef\x20BACKMAT_SHADOWONLY\x0avec4\x20reflectionColor=vec4(1.,1.,1.,1.);\x0a#ifdef\x20REFLECTION\x0avec3\x20reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\x0a#ifdef\x20REFLECTIONMAP_OPPOSITEZ\x0areflectionVector.z*=-1.0;\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0avec3\x20reflectionCoords=reflectionVector;\x0a#else\x0avec2\x20reflectionCoords=reflectionVector.xy;\x0a#ifdef\x20REFLECTIONMAP_PROJECTION\x0areflectionCoords/=reflectionVector.z;\x0a#endif\x0areflectionCoords.y=1.0-reflectionCoords.y;\x0a#endif\x0a#ifdef\x20REFLECTIONBLUR\x0afloat\x20reflectionLOD=vReflectionInfos.y;\x0a#ifdef\x20TEXTURELODSUPPORT\x0areflectionLOD=reflectionLOD*log2(vReflectionMicrosurfaceInfos.x)*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;\x0areflectionColor=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);\x0a#else\x0afloat\x20lodReflectionNormalized=saturate(reflectionLOD);\x0afloat\x20lodReflectionNormalizedDoubled=lodReflectionNormalized*2.0;\x0avec4\x20reflectionSpecularMid=sampleReflection(reflectionSampler,reflectionCoords);\x0aif(lodReflectionNormalizedDoubled<1.0){\x0areflectionColor=mix(\x0asampleReflection(reflectionSamplerHigh,reflectionCoords),\x0areflectionSpecularMid,\x0alodReflectionNormalizedDoubled\x0a);\x0a}\x20else\x20{\x0areflectionColor=mix(\x0areflectionSpecularMid,\x0asampleReflection(reflectionSamplerLow,reflectionCoords),\x0alodReflectionNormalizedDoubled-1.0\x0a);\x0a}\x0a#endif\x0a#else\x0avec4\x20reflectionSample=sampleReflection(reflectionSampler,reflectionCoords);\x0areflectionColor=reflectionSample;\x0a#endif\x0a#ifdef\x20RGBDREFLECTION\x0areflectionColor.rgb=fromRGBD(reflectionColor);\x0a#endif\x0a#ifdef\x20GAMMAREFLECTION\x0areflectionColor.rgb=toLinearSpace(reflectionColor.rgb);\x0a#endif\x0a#ifdef\x20REFLECTIONBGR\x0areflectionColor.rgb=reflectionColor.bgr;\x0a#endif\x0areflectionColor.rgb*=vReflectionInfos.x;\x0a#endif\x0avec3\x20diffuseColor=vec3(1.,1.,1.);\x0afloat\x20finalAlpha=alpha;\x0a#ifdef\x20DIFFUSE\x0avec4\x20diffuseMap=texture2D(diffuseSampler,vDiffuseUV);\x0a#ifdef\x20GAMMADIFFUSE\x0adiffuseMap.rgb=toLinearSpace(diffuseMap.rgb);\x0a#endif\x0adiffuseMap.rgb*=vDiffuseInfos.y;\x0a#ifdef\x20DIFFUSEHASALPHA\x0afinalAlpha*=diffuseMap.a;\x0a#endif\x0adiffuseColor=diffuseMap.rgb;\x0a#endif\x0a#ifdef\x20REFLECTIONFRESNEL\x0avec3\x20colorBase=diffuseColor;\x0a#else\x0avec3\x20colorBase=reflectionColor.rgb*diffuseColor;\x0a#endif\x0acolorBase=max(colorBase,0.0);\x0a#ifdef\x20USERGBCOLOR\x0avec3\x20finalColor=colorBase;\x0a#else\x0a#ifdef\x20USEHIGHLIGHTANDSHADOWCOLORS\x0avec3\x20mainColor=mix(vPrimaryColorShadow.rgb,vPrimaryColor.rgb,colorBase);\x0a#else\x0avec3\x20mainColor=vPrimaryColor.rgb;\x0a#endif\x0avec3\x20finalColor=colorBase*mainColor;\x0a#endif\x0a#ifdef\x20REFLECTIONFRESNEL\x0avec3\x20reflectionAmount=vReflectionControl.xxx;\x0avec3\x20reflectionReflectance0=vReflectionControl.yyy;\x0avec3\x20reflectionReflectance90=vReflectionControl.zzz;\x0afloat\x20VdotN=dot(normalize(vEyePosition.xyz),normalW);\x0avec3\x20planarReflectionFresnel=fresnelSchlickEnvironmentGGX(saturate(VdotN),reflectionReflectance0,reflectionReflectance90,1.0);\x0areflectionAmount*=planarReflectionFresnel;\x0a#ifdef\x20REFLECTIONFALLOFF\x0afloat\x20reflectionDistanceFalloff=1.0-saturate(length(vPositionW.xyz-vBackgroundCenter)*vReflectionControl.w);\x0areflectionDistanceFalloff*=reflectionDistanceFalloff;\x0areflectionAmount*=reflectionDistanceFalloff;\x0a#endif\x0afinalColor=mix(finalColor,reflectionColor.rgb,saturate(reflectionAmount));\x0a#endif\x0a#ifdef\x20OPACITYFRESNEL\x0afloat\x20viewAngleToFloor=dot(normalW,normalize(vEyePosition.xyz-vBackgroundCenter));\x0aconst\x20float\x20startAngle=0.1;\x0afloat\x20fadeFactor=saturate(viewAngleToFloor/startAngle);\x0afinalAlpha*=fadeFactor*fadeFactor;\x0a#endif\x0a#ifdef\x20SHADOWINUSE\x0afinalColor=mix(finalColor*shadowLevel,finalColor,globalShadow);\x0a#endif\x0avec4\x20color=vec4(finalColor,finalAlpha);\x0a#else\x0avec4\x20color=vec4(vPrimaryColor.rgb,(1.0-clamp(globalShadow,0.,1.))*alpha);\x0a#endif\x0a#include<fogFragment>\x0a#ifdef\x20IMAGEPROCESSINGPOSTPROCESS\x0a#if\x20!defined(SKIPFINALCOLORCLAMP)\x0acolor.rgb=clamp(color.rgb,0.,30.0);\x0a#endif\x0a#else\x0acolor=applyImageProcessing(color);\x0a#endif\x0a#ifdef\x20PREMULTIPLYALPHA\x0acolor.rgb*=color.a;\x0a#endif\x0a#ifdef\x20NOISE\x0acolor.rgb+=dither(vPositionW.xy,0.5);\x0acolor=max(color,0.0);\x0a#endif\x0agl_FragColor=color;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','\x0a#define\x20CONEEMITTERSPAWNPOINT','onlyShowShells','copyFromFloats','LastCreatedScene','blockingBlocks','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0a#if\x20defined(INITIAL)\x0auniform\x20sampler2D\x20sourceTexture;\x0auniform\x20vec2\x20texSize;\x0avoid\x20main(void)\x0a{\x0aivec2\x20coord=ivec2(vUV*(texSize-1.0));\x0afloat\x20f1=texelFetch(sourceTexture,coord,0).r;\x0afloat\x20f2=texelFetch(sourceTexture,coord+ivec2(1,0),0).r;\x0afloat\x20f3=texelFetch(sourceTexture,coord+ivec2(1,1),0).r;\x0afloat\x20f4=texelFetch(sourceTexture,coord+ivec2(0,1),0).r;\x0afloat\x20minz=min(min(min(f1,f2),f3),f4);\x0a#ifdef\x20DEPTH_REDUX\x0afloat\x20maxz=max(max(max(sign(1.0-f1)*f1,sign(1.0-f2)*f2),sign(1.0-f3)*f3),sign(1.0-f4)*f4);\x0a#else\x0afloat\x20maxz=max(max(max(f1,f2),f3),f4);\x0a#endif\x0aglFragColor=vec4(minz,maxz,0.,0.);\x0a}\x0a#elif\x20defined(MAIN)\x0auniform\x20vec2\x20texSize;\x0avoid\x20main(void)\x0a{\x0aivec2\x20coord=ivec2(vUV*(texSize-1.0));\x0avec2\x20f1=texelFetch(textureSampler,coord,0).rg;\x0avec2\x20f2=texelFetch(textureSampler,coord+ivec2(1,0),0).rg;\x0avec2\x20f3=texelFetch(textureSampler,coord+ivec2(1,1),0).rg;\x0avec2\x20f4=texelFetch(textureSampler,coord+ivec2(0,1),0).rg;\x0afloat\x20minz=min(min(min(f1.x,f2.x),f3.x),f4.x);\x0afloat\x20maxz=max(max(max(f1.y,f2.y),f3.y),f4.y);\x0aglFragColor=vec4(minz,maxz,0.,0.);\x0a}\x0a#elif\x20defined(ONEBEFORELAST)\x0auniform\x20ivec2\x20texSize;\x0avoid\x20main(void)\x0a{\x0aivec2\x20coord=ivec2(vUV*vec2(texSize-1));\x0avec2\x20f1=texelFetch(textureSampler,coord\x20%\x20texSize,0).rg;\x0avec2\x20f2=texelFetch(textureSampler,(coord+ivec2(1,0))\x20%\x20texSize,0).rg;\x0avec2\x20f3=texelFetch(textureSampler,(coord+ivec2(1,1))\x20%\x20texSize,0).rg;\x0avec2\x20f4=texelFetch(textureSampler,(coord+ivec2(0,1))\x20%\x20texSize,0).rg;\x0afloat\x20minz=min(f1.x,f2.x);\x0afloat\x20maxz=max(f1.y,f2.y);\x0aglFragColor=vec4(minz,maxz,0.,0.);\x0a}\x0a#elif\x20defined(LAST)\x0avoid\x20main(void)\x0a{\x0aglFragColor=vec4(0.);\x0aif\x20(true)\x20{\x20\x0adiscard;\x0a}\x0a}\x0a#endif\x0a','Texture','renderPass','onDeviceConnectedObservable','from','samplerFragmentDeclaration','postprocessVertexShader','isParallelCompiled','setAlphaMode','USE_LOCAL_REFLECTIONMAP_CUBIC','AddIndividualParser','vClipPlane5','_rigCameras','textureUsages','buildTextureLayout','setColor4','RemoveTagsFrom','_ssDiffusionS','precision\x20highp\x20float;attribute\x20vec3\x20position;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;uniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0auniform\x20float\x20time;uniform\x20float\x20speed;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDistortionCoords1;varying\x20vec2\x20vDistortionCoords2;varying\x20vec2\x20vDistortionCoords3;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);\x0a#ifdef\x20DIFFUSE\x0avDiffuseUV=uv;vDiffuseUV.y-=0.2;\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#ifdef\x20DIFFUSE\x0avec3\x20layerSpeed=vec3(-0.2,-0.52,-0.1)*speed;vDistortionCoords1.x=uv.x;vDistortionCoords1.y=uv.y+layerSpeed.x*time/1000.0;vDistortionCoords2.x=uv.x;vDistortionCoords2.y=uv.y+layerSpeed.y*time/1000.0;vDistortionCoords3.x=uv.x;vDistortionCoords3.y=uv.y+layerSpeed.z*time/1000.0;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','setInt3','setFloatArray2','_generateDepthBuffer','_TextureTypeByWebGLSamplerType','_pickedDownMesh','RGBA16Float','_keyTemp','_webgpuMSAATexture','_fromIndex','_textureMode','contains','uniform\x20sampler2D\x20textureSampler;\x0a#ifdef\x20SSR_SUPPORTED\x0auniform\x20sampler2D\x20reflectivitySampler;\x0auniform\x20sampler2D\x20normalSampler;\x0auniform\x20sampler2D\x20positionSampler;\x0a#endif\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0auniform\x20float\x20stepSize;\x0auniform\x20float\x20strength;\x0auniform\x20float\x20threshold;\x0auniform\x20float\x20roughnessFactor;\x0auniform\x20float\x20reflectionSpecularFalloffExponent;\x0avarying\x20vec2\x20vUV;\x0a#ifdef\x20SSR_SUPPORTED\x0astruct\x20ReflectionInfo\x20{\x0avec3\x20color;\x0avec4\x20coords;\x0a};\x0a/**\x0a*\x20According\x20to\x20specular,see\x20https:\x0a*/\x0avec3\x20fresnelSchlick(float\x20cosTheta,vec3\x20F0)\x0a{\x0areturn\x20F0+(1.0-F0)*pow(1.0-cosTheta,5.0);\x0a}\x0a/**\x0a*\x20Once\x20the\x20pixel\x27s\x20coordinates\x20has\x20been\x20found,let\x27s\x20adjust\x20(smooth)\x20a\x20little\x20bit\x0a*\x20by\x20sampling\x20multiple\x20reflection\x20pixels.\x0a*/\x0aReflectionInfo\x20smoothReflectionInfo(vec3\x20dir,vec3\x20hitCoord)\x0a{\x0aReflectionInfo\x20info;\x0ainfo.color=vec3(0.0);\x0avec4\x20projectedCoord;\x0afloat\x20sampledDepth;\x0afor(int\x20i=0;\x20i<SMOOTH_STEPS;\x20i++)\x0a{\x0aprojectedCoord=projection*vec4(hitCoord,1.0);\x0aprojectedCoord.xy/=projectedCoord.w;\x0aprojectedCoord.xy=0.5*projectedCoord.xy+vec2(0.5);\x0asampledDepth=(view*texture2D(positionSampler,projectedCoord.xy)).z;\x0afloat\x20depth=sampledDepth-hitCoord.z;\x0adir*=0.5;\x0aif(depth>0.0)\x0ahitCoord-=dir;\x0aelse\x0ahitCoord+=dir;\x0ainfo.color+=texture2D(textureSampler,projectedCoord.xy).rgb;\x0a}\x0aprojectedCoord=projection*vec4(hitCoord,1.0);\x0aprojectedCoord.xy/=projectedCoord.w;\x0aprojectedCoord.xy=0.5*projectedCoord.xy+vec2(0.5);\x0ainfo.coords=vec4(projectedCoord.xy,sampledDepth,1.0);\x0ainfo.color+=texture2D(textureSampler,projectedCoord.xy).rgb;\x0ainfo.color/=float(SMOOTH_STEPS+1);\x0areturn\x20info;\x0a}\x0a/**\x0a*\x20Tests\x20the\x20given\x20world\x20position\x20(hitCoord)\x20according\x20to\x20the\x20given\x20reflection\x20vector\x20(dir)\x0a*\x20until\x20it\x20finds\x20a\x20collision\x20(means\x20that\x20depth\x20is\x20enough\x20close\x20to\x20say\x20\x22it\x27s\x20the\x20pixel\x20to\x20sample!\x22).\x0a*/\x0aReflectionInfo\x20getReflectionInfo(vec3\x20dir,vec3\x20hitCoord)\x0a{\x0aReflectionInfo\x20info;\x0avec4\x20projectedCoord;\x0afloat\x20sampledDepth;\x0adir*=stepSize;\x0afor(int\x20i=0;\x20i<REFLECTION_SAMPLES;\x20i++)\x0a{\x0ahitCoord+=dir;\x0aprojectedCoord=projection*vec4(hitCoord,1.0);\x0aprojectedCoord.xy/=projectedCoord.w;\x0aprojectedCoord.xy=0.5*projectedCoord.xy+vec2(0.5);\x0asampledDepth=(view*texture2D(positionSampler,projectedCoord.xy)).z;\x0afloat\x20depth=sampledDepth-hitCoord.z;\x0a#ifdef\x20RIGHT_HANDED_SCENE\x0adepth*=-1.0;\x0a#endif\x0aif(((depth-dir.z)<threshold)\x20&&\x20depth<=0.0)\x0a{\x0a#ifdef\x20ENABLE_SMOOTH_REFLECTIONS\x0areturn\x20smoothReflectionInfo(dir,hitCoord);\x0a#else\x0ainfo.color=texture2D(textureSampler,projectedCoord.xy).rgb;\x0ainfo.coords=vec4(projectedCoord.xy,sampledDepth,0.0);\x0areturn\x20info;\x0a#endif\x0a}\x0a}\x0ainfo.color=texture2D(textureSampler,projectedCoord.xy).rgb;\x0ainfo.coords=vec4(projectedCoord.xy,sampledDepth,0.0);\x0areturn\x20info;\x0a}\x0avec3\x20hash(vec3\x20a)\x0a{\x0aa=fract(a*0.8);\x0aa+=dot(a,a.yxz+19.19);\x0areturn\x20fract((a.xxy+a.yxx)*a.zyx);\x0a}\x0a#endif\x0avoid\x20main()\x0a{\x0a#ifdef\x20SSR_SUPPORTED\x0avec4\x20albedoFull=texture2D(textureSampler,vUV);\x0avec3\x20albedo=albedoFull.rgb;\x0afloat\x20spec=texture2D(reflectivitySampler,vUV).r;\x0aif\x20(spec==0.0)\x20{\x0agl_FragColor=albedoFull;\x0areturn;\x0a}\x0avec3\x20normal=(texture2D(normalSampler,vUV)).xyz;\x0avec3\x20position=(view*texture2D(positionSampler,vUV)).xyz;\x0avec3\x20reflected=normalize(reflect(normalize(position),normalize(normal)));\x0afloat\x20roughness=1.0-texture2D(reflectivitySampler,vUV).a;\x0avec3\x20jitt=mix(vec3(0.0),hash(position),roughness)*roughnessFactor;\x0aReflectionInfo\x20info=getReflectionInfo(jitt+reflected,position);\x0avec2\x20dCoords=smoothstep(0.2,0.6,abs(vec2(0.5,0.5)-info.coords.xy));\x0afloat\x20screenEdgefactor=clamp(1.0-(dCoords.x+dCoords.y),0.0,1.0);\x0avec3\x20F0=vec3(0.04);\x0aF0\x20=mix(F0,albedo,spec);\x0avec3\x20fresnel=fresnelSchlick(max(dot(normalize(normal),normalize(position)),0.0),F0);\x0a#ifdef\x20RIGHT_HANDED_SCENE\x0areflected.z*=-1.0;\x0a#endif\x0afloat\x20reflectionMultiplier=clamp(pow(spec*strength,reflectionSpecularFalloffExponent)*screenEdgefactor*reflected.z,0.0,0.9);\x0afloat\x20albedoMultiplier=1.0-reflectionMultiplier;\x0avec3\x20SSR=info.color*fresnel;\x0agl_FragColor=vec4((albedo*albedoMultiplier)+(SSR*reflectionMultiplier),albedoFull.a);\x0a#else\x0agl_FragColor=texture2D(textureSampler,vUV);\x0a#endif\x0a}\x0a','compute','_currentTotalIndices','uniform\x20mat4\x20world;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20MULTIVIEW\x0auniform\x20mat4\x20viewProjectionR;\x0a#endif\x0a','#define\x20RECIPROCAL_PI2\x200.15915494','enableVR','requestPresent','crossEyeMode','CONSTANT_ALPHA','loadCubeData','_pointerX','removeTags','_funcRef','_deferredReleaseTextures','RandomRange','RGBA32Float','hasQueries','TEXTURETYPE_UNSIGNED_BYTE','CompareLightsPriority','_drawWrapperDepth','fromIndex','freeGroupIndex','ACTION_OnDoublePickTrigger','Mouse','prepareDefines','useEquirectangularFOV','input\x20','_checkForPicking','harmonicsFunctions','enabled','bindAttachments','fluidRenderingParticleThicknessPixelShader','singleClick','uniformBufferRegexp','createUniformBuffer','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20','FLOAT','TEXTURE_PROJECTION_MODE','ACTION_OnPickUpTrigger','FluidRenderingDepthTextureCopyRTT','isVisible','rawBoundingInfo','cellHeight','_webgpuProcessingContext','\x20:\x20','E1d','_GetEffectCreationOptions','inlineShaderCode','NodeMaterial\x20does\x20not\x20have\x20a\x20fragment\x20output.\x20You\x20need\x20to\x20at\x20least\x20add\x20a\x20block\x20that\x20generates\x20a\x20glFragColor\x20value.\x0d\x0a','_step','isExist','getBaseSize','StorageBinding','s3tc','DST_ALPHA','texture2D','offset','_missingVaryings','\x20=\x20textureCube(','_isDirty','zOffsetUnits','\x20\x20return\x20fragmentOutputs;','isConnected','onLoadedObservable','_opDepthFail','gridPixelShader','getUniqueId','_applyTextureArrayProcessing','_ExtractOperation','fillUniformsAttributesAndSamplerNames','attribute\x20vec2\x20position;\x0auniform\x20mat4\x20viewportMatrix;\x0avarying\x20vec2\x20vUV;\x0aconst\x20vec2\x20madd=vec2(0.5,0.5);\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avUV=position*madd+madd;\x0agl_Position=viewportMatrix*vec4(position,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','_blurPostProcesses','#ifdef\x20WEBGL2\x0auniform\x20mat4\x20world;\x0auniform\x20float\x20visibility;\x0a#else\x0alayout(std140,column_major)\x20uniform;\x0auniform\x20Mesh\x0a{\x0amat4\x20world;\x0afloat\x20visibility;\x0a};\x0a#endif\x0a#define\x20WORLD_UBO\x0a','computeElement','skipOnPointerObservable','_GpuTextureViewDimensionByWebGPUTextureType','_copyInvertYTempTexture','deleteCompoundImpostor','#include<helperFunctions>\x0auniform\x20sampler2D\x20textureSampler;\x20\x0auniform\x20float\x20intensity;\x0auniform\x20float\x20animatedSeed;\x0avarying\x20vec2\x20vUV;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0agl_FragColor=texture2D(textureSampler,vUV);\x0avec2\x20seed=vUV*(animatedSeed);\x0afloat\x20grain=dither(seed,intensity);\x0afloat\x20lum=getLuminance(gl_FragColor.rgb);\x0afloat\x20grainAmount=(cos(-PI+(lum*PI*2.))+1.)/2.;\x0agl_FragColor.rgb+=grain*grainAmount;\x0agl_FragColor.rgb=max(gl_FragColor.rgb,0.0);\x0a}','startPositionFunction','_prefiltered','next','_multiviewSceneUbo','_ssDiffusionD','attribute\x20vec2\x20position;\x0auniform\x20vec2\x20scale;\x0avarying\x20vec2\x20vUV;\x0aconst\x20vec2\x20madd=vec2(0.5,0.5);\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avUV=(position*madd+madd)*scale;\x0agl_Position=vec4(position,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','createStorageBuffer:\x20Unsupported\x20method\x20in\x20this\x20engine!','BGRA8UnormSRGB','vClipPlane6','#define\x20CLIPPLANE4','_processPointerDown','_device','varyingProcessor','_isBlendEquationParametersDirty','_name','specularBase','TEXTURE','_setDefaultValue','cameraId','lavaPixelShader','_setCubeMapTextureParams','RGB','videoHeight','matricesIndicesExtra','_enabled','useDirectMapping','GL_ALPHA_FUNCTION_CONSTANT_ALPHA','supportUniformBuffers','Depth24UnormStencil8','_bindUnboundFramebuffer','_worldPositionNameInFragmentOnlyMode','nameInArrayOfTexture','cellInfo','setPipeline','getRenderPipeline','ExponentialBackoff','uScale','detach','setDepthStencilFormat','albedoSampler','diffuseSampler','createImageBitmap','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20leftSampler;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec4\x20leftFrag=texture2D(leftSampler,vUV);\x0aleftFrag=vec4(1.0,leftFrag.g,leftFrag.b,1.0);\x0avec4\x20rightFrag=texture2D(textureSampler,vUV);\x0arightFrag=vec4(rightFrag.r,1.0,1.0,1.0);\x0agl_FragColor=vec4(rightFrag.rgb*leftFrag.rgb,1.0);\x0a}','#version\x203','_compiledComputeEffects','boundingBoxRendererPixelShader','fluidRenderingParticleDepthPixelShader','pointermove','_sphericalPolynomialPromise','glowMapMergeVertexShader','setUInt','ASTC4x4UnormSRGB','Vector3','_currentBoundBuffer','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20float\x20_ExposureAdjustment;\x0a#if\x20defined(HABLE_TONEMAPPING)\x0aconst\x20float\x20A=0.15;\x0aconst\x20float\x20B=0.50;\x0aconst\x20float\x20C=0.10;\x0aconst\x20float\x20D=0.20;\x0aconst\x20float\x20E=0.02;\x0aconst\x20float\x20F=0.30;\x0aconst\x20float\x20W=11.2;\x0a#endif\x0afloat\x20Luminance(vec3\x20c)\x0a{\x0areturn\x20dot(c,vec3(0.22,0.707,0.071));\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0avec3\x20colour=texture2D(textureSampler,vUV).rgb;\x0a#if\x20defined(REINHARD_TONEMAPPING)\x0afloat\x20lum=Luminance(colour.rgb);\x20\x0afloat\x20lumTm=lum*_ExposureAdjustment;\x0afloat\x20scale=lumTm/(1.0+lumTm);\x20\x0acolour*=scale/lum;\x0a#elif\x20defined(HABLE_TONEMAPPING)\x0acolour*=_ExposureAdjustment;\x0aconst\x20float\x20ExposureBias=2.0;\x0avec3\x20x=ExposureBias*colour;\x0avec3\x20curr=((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;\x0ax=vec3(W,W,W);\x0avec3\x20whiteScale=1.0/(((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F);\x0acolour=curr*whiteScale;\x0a#elif\x20defined(OPTIMIZED_HEJIDAWSON_TONEMAPPING)\x0acolour*=_ExposureAdjustment;\x0avec3\x20X=max(vec3(0.0,0.0,0.0),colour-0.004);\x0avec3\x20retColor=(X*(6.2*X+0.5))/(X*(6.2*X+1.7)+0.06);\x0acolour=retColor*retColor;\x0a#elif\x20defined(PHOTOGRAPHIC_TONEMAPPING)\x0acolour=\x20vec3(1.0,1.0,1.0)-exp2(-_ExposureAdjustment*colour);\x0a#endif\x0agl_FragColor=vec4(colour.rgb,1.0);\x0a}','updateUInt3','HingeJoint','onActivateObservable','setPointerOverMesh','PREPASS_POSITION_TEXTURE_TYPE','forceBindGroupCreation','LIGHTTYPEID_POINTLIGHT','releaseTexture','_rigPostProcess','viewForWriting','setAlphaConstants','getPerfCollector','getRenderHeight','previousWorld','x6_','pushDebugGroup','dataStoreDataByteOffset','toLowerCase','precision\x20highp\x20float;\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0auniform\x20vec2\x20translationPivot;\x0auniform\x20vec3\x20worldOffset;\x0a#ifdef\x20LOCAL\x0auniform\x20mat4\x20emitterWM;\x0a#endif\x0aattribute\x20vec3\x20position;\x0aattribute\x20float\x20age;\x0aattribute\x20float\x20life;\x0aattribute\x20vec3\x20size;\x0a#ifndef\x20BILLBOARD\x0aattribute\x20vec3\x20initialDirection;\x0a#endif\x0a#ifdef\x20BILLBOARDSTRETCHED\x0aattribute\x20vec3\x20direction;\x0a#endif\x0aattribute\x20float\x20angle;\x0a#ifdef\x20ANIMATESHEET\x0aattribute\x20float\x20cellIndex;\x0a#endif\x0aattribute\x20vec2\x20offset;\x0aattribute\x20vec2\x20uv;\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec4\x20vColor;\x0avarying\x20vec3\x20vPositionW;\x0a#if\x20defined(BILLBOARD)\x20&&\x20!defined(BILLBOARDY)\x20&&\x20!defined(BILLBOARDSTRETCHED)\x0auniform\x20mat4\x20invView;\x0a#endif\x0a#include<clipPlaneVertexDeclaration2>\x0a#include<logDepthDeclaration>\x0a#ifdef\x20COLORGRADIENTS\x0auniform\x20sampler2D\x20colorGradientSampler;\x0a#else\x0auniform\x20vec4\x20colorDead;\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x0auniform\x20vec3\x20sheetInfos;\x0a#endif\x0a#ifdef\x20BILLBOARD\x0auniform\x20vec3\x20eyePosition;\x0a#endif\x0avec3\x20rotate(vec3\x20yaxis,vec3\x20rotatedCorner)\x20{\x0avec3\x20xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));\x0avec3\x20zaxis=normalize(cross(yaxis,xaxis));\x0avec3\x20row0=vec3(xaxis.x,xaxis.y,xaxis.z);\x0avec3\x20row1=vec3(yaxis.x,yaxis.y,yaxis.z);\x0avec3\x20row2=vec3(zaxis.x,zaxis.y,zaxis.z);\x0amat3\x20rotMatrix=\x20mat3(row0,row1,row2);\x0avec3\x20alignedCorner=rotMatrix*rotatedCorner;\x0a#ifdef\x20LOCAL\x0areturn\x20((emitterWM*vec4(position,1.0)).xyz+worldOffset)+alignedCorner;\x0a#else\x0areturn\x20(position+worldOffset)+alignedCorner;\x0a#endif\x0a}\x0a#ifdef\x20BILLBOARDSTRETCHED\x0avec3\x20rotateAlign(vec3\x20toCamera,vec3\x20rotatedCorner)\x20{\x0avec3\x20normalizedToCamera=normalize(toCamera);\x0avec3\x20normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));\x0avec3\x20crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));\x0avec3\x20row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);\x0avec3\x20row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);\x0avec3\x20row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\x0amat3\x20rotMatrix=\x20mat3(row0,row1,row2);\x0avec3\x20alignedCorner=rotMatrix*rotatedCorner;\x0a#ifdef\x20LOCAL\x0areturn\x20((emitterWM*vec4(position,1.0)).xyz+worldOffset)+alignedCorner;\x0a#else\x0areturn\x20(position+worldOffset)+alignedCorner;\x0a#endif\x0a}\x0a#endif\x0avoid\x20main()\x20{\x0a#ifdef\x20ANIMATESHEET\x0afloat\x20rowOffset=floor(cellIndex/sheetInfos.z);\x0afloat\x20columnOffset=cellIndex-rowOffset*sheetInfos.z;\x0avec2\x20uvScale=sheetInfos.xy;\x0avec2\x20uvOffset=vec2(uv.x\x20,1.0-uv.y);\x0avUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;\x0a#else\x0avUV=uv;\x0a#endif\x0afloat\x20ratio=age/life;\x0a#ifdef\x20COLORGRADIENTS\x0avColor=texture2D(colorGradientSampler,vec2(ratio,0));\x0a#else\x0avColor=color*vec4(1.0-ratio)+colorDead*vec4(ratio);\x0a#endif\x0avec2\x20cornerPos=(offset-translationPivot)*size.yz*size.x+translationPivot;\x0a#ifdef\x20BILLBOARD\x0avec4\x20rotatedCorner;\x0arotatedCorner.w=0.;\x0a#ifdef\x20BILLBOARDY\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.y=0.;\x0avec3\x20yaxis=(position+worldOffset)-eyePosition;\x0ayaxis.y=0.;\x0avPositionW=rotate(normalize(yaxis),rotatedCorner.xyz);\x0avec4\x20viewPosition=(view*vec4(vPositionW,1.0));\x0a#elif\x20defined(BILLBOARDSTRETCHED)\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.z=0.;\x0avec3\x20toCamera=(position+worldOffset)-eyePosition;\x0avPositionW=rotateAlign(toCamera,rotatedCorner.xyz);\x0avec4\x20viewPosition=(view*vec4(vPositionW,1.0));\x0a#else\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.z=0.;\x0a#ifdef\x20LOCAL\x0avec4\x20viewPosition=view*vec4(((emitterWM*vec4(position,1.0)).xyz+worldOffset),1.0)+rotatedCorner;\x0a#else\x0avec4\x20viewPosition=view*vec4((position+worldOffset),1.0)+rotatedCorner;\x0a#endif\x0avPositionW=(invView*viewPosition).xyz;\x0a#endif\x0a#else\x0avec3\x20rotatedCorner;\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.y=0.;\x0arotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0avec3\x20yaxis=normalize(initialDirection);\x0avPositionW=rotate(yaxis,rotatedCorner);\x0avec4\x20viewPosition=view*vec4(vPositionW,1.0);\x0a#endif\x0agl_Position=projection*viewPosition;\x0a#if\x20defined(CLIPPLANE)\x20||\x20defined(CLIPPLANE2)\x20||\x20defined(CLIPPLANE3)\x20||\x20defined(CLIPPLANE4)\x20||\x20defined(CLIPPLANE5)\x20||\x20defined(CLIPPLANE6)\x0avec4\x20worldPos=vec4(vPositionW,1.0);\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<logDepthVertex>\x0a}','standardPixelShader','_cascadeLoadImgs','ASTC8x5UnormSRGB','uniformBlockBinding','createEffect','.xyz','multiview','lightFragment','bufferData','_colorTextureArray','_createCompositionEffect','triplanarPixelShader','lineProcessor','NEAREST','getHashCode','createRenderTargetTexture','blurSizeDivisor','_time','_pointerDownStage','_glSRGBExtensionValues','RG8Unorm','#ifdef\x20CLIPPLANE\x0auniform\x20vClipPlane:\x20vec4<f32>;\x0avarying\x20fClipDistance:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0auniform\x20vClipPlane2:\x20vec4<f32>;\x0avarying\x20fClipDistance2:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0auniform\x20vClipPlane3:\x20vec4<f32>;\x0avarying\x20fClipDistance3:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0auniform\x20vClipPlane4:\x20vec4<f32>;\x0avarying\x20fClipDistance4:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0auniform\x20vClipPlane5:\x20vec4<f32>;\x0avarying\x20fClipDistance5:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0auniform\x20vClipPlane6:\x20vec4<f32>;\x0avarying\x20fClipDistance6:\x20f32;\x0a#endif\x0a','setDepthBiasSlopeScale','getOrAdd','#ifdef\x20','removeEventListener','_defaultAttachments','sampler2D','BC5RGSnorm','AddUniforms','createRawTexture','width','updateTexture','_renderTargetEncoder','onVRDisplayChangedObservable','UNIFORM_BUFFER','GetData','PREPASS_DEPTH_TEXTURE_TYPE','pbrBlockSubSurface','isReady','uniform\x20sampler2D\x20textureSampler;\x0avarying\x20vec2\x20vUV;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0a#if\x20defined(PASS_POST_PROCESS)\x0avoid\x20main(void)\x0a{\x0avec4\x20color=texture2D(textureSampler,vUV);\x0agl_FragColor=color;\x0a}\x0a#endif\x0a#if\x20defined(DOWN_SAMPLE_X4)\x0auniform\x20vec2\x20dsOffsets[16];\x0avoid\x20main(void)\x0a{\x0avec4\x20average=vec4(0.0,0.0,0.0,0.0);\x0aaverage=texture2D(textureSampler,vUV+dsOffsets[0]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[1]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[2]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[3]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[4]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[5]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[6]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[7]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[8]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[9]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[10]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[11]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[12]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[13]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[14]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[15]);\x0aaverage/=16.0;\x0agl_FragColor=average;\x0a}\x0a#endif\x0a#if\x20defined(BRIGHT_PASS)\x0auniform\x20vec2\x20dsOffsets[4];\x0auniform\x20float\x20brightThreshold;\x0avoid\x20main(void)\x0a{\x0avec4\x20average=vec4(0.0,0.0,0.0,0.0);\x0aaverage=texture2D(textureSampler,vUV+vec2(dsOffsets[0].x,dsOffsets[0].y));\x0aaverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[1].x,dsOffsets[1].y));\x0aaverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[2].x,dsOffsets[2].y));\x0aaverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[3].x,dsOffsets[3].y));\x0aaverage*=0.25;\x0afloat\x20luminance=length(average.rgb);\x0aif\x20(luminance<brightThreshold)\x20{\x0aaverage=vec4(0.0,0.0,0.0,1.0);\x0a}\x0agl_FragColor=average;\x0a}\x0a#endif\x0a#if\x20defined(TEXTURE_ADDER)\x0auniform\x20sampler2D\x20otherSampler;\x0auniform\x20sampler2D\x20lensSampler;\x0auniform\x20float\x20exposure;\x0avoid\x20main(void)\x0a{\x0avec3\x20colour=texture2D(textureSampler,vUV).rgb;\x0acolour*=exposure;\x0avec3\x20X=max(vec3(0.0,0.0,0.0),colour-0.004);\x0avec3\x20retColor=(X*(6.2*X+0.5))/(X*(6.2*X+1.7)+0.06);\x0acolour=retColor*retColor;\x0acolour+=colour*texture2D(lensSampler,vUV).rgb;\x0avec4\x20finalColor=vec4(colour.rgb,1.0)+texture2D(otherSampler,vUV);\x0agl_FragColor=finalColor;\x0a}\x0a#endif\x0a#if\x20defined(VLS)\x0a#define\x20PI\x203.1415926535897932384626433832795\x0auniform\x20mat4\x20shadowViewProjection;\x0auniform\x20mat4\x20lightWorld;\x0auniform\x20vec3\x20cameraPosition;\x0auniform\x20vec3\x20sunDirection;\x0auniform\x20vec3\x20sunColor;\x0auniform\x20vec2\x20depthValues;\x0auniform\x20float\x20scatteringCoefficient;\x0auniform\x20float\x20scatteringPower;\x0auniform\x20sampler2D\x20shadowMapSampler;\x0auniform\x20sampler2D\x20positionSampler;\x0afloat\x20computeScattering(float\x20lightDotView)\x0a{\x0afloat\x20result=1.0-scatteringCoefficient*scatteringCoefficient;\x0aresult/=(4.0*PI*pow(1.0+scatteringCoefficient*scatteringCoefficient-(2.0*scatteringCoefficient)*lightDotView,1.5));\x0areturn\x20result;\x0a}\x0avoid\x20main(void)\x0a{\x0avec3\x20worldPos=texture2D(positionSampler,vUV).rgb;\x0avec3\x20startPosition=cameraPosition;\x0avec3\x20rayVector=worldPos-startPosition;\x0afloat\x20rayLength=length(rayVector);\x0avec3\x20rayDirection=rayVector/rayLength;\x0afloat\x20stepLength=rayLength/NB_STEPS;\x0avec3\x20stepL=rayDirection*stepLength;\x0avec3\x20currentPosition=startPosition;\x0avec3\x20accumFog=vec3(0.0);\x0afor\x20(int\x20i=0;\x20i<int(NB_STEPS);\x20i++)\x0a{\x0avec4\x20worldInShadowCameraSpace=shadowViewProjection*vec4(currentPosition,1.0);\x0afloat\x20depthMetric=\x20(worldInShadowCameraSpace.z+depthValues.x)/(depthValues.y);\x0afloat\x20shadowPixelDepth=clamp(depthMetric,0.0,1.0);\x0aworldInShadowCameraSpace.xyz/=worldInShadowCameraSpace.w;\x0aworldInShadowCameraSpace.xyz=0.5*worldInShadowCameraSpace.xyz+vec3(0.5);\x0afloat\x20shadowMapValue=texture2D(shadowMapSampler,worldInShadowCameraSpace.xy).r;\x0aif\x20(shadowMapValue>shadowPixelDepth)\x0aaccumFog+=sunColor*computeScattering(dot(rayDirection,sunDirection));\x0acurrentPosition+=stepL;\x0a}\x0aaccumFog/=NB_STEPS;\x0avec3\x20color=accumFog*scatteringPower;\x0agl_FragColor=vec4(color*exp(color)\x20,1.0);\x0a}\x0a#endif\x0a#if\x20defined(VLSMERGE)\x0auniform\x20sampler2D\x20originalSampler;\x0avoid\x20main(void)\x0a{\x0agl_FragColor=texture2D(originalSampler,vUV)+texture2D(textureSampler,vUV);\x0a}\x0a#endif\x0a#if\x20defined(LUMINANCE)\x0auniform\x20vec2\x20lumOffsets[4];\x0avoid\x20main()\x0a{\x0afloat\x20average=0.0;\x0avec4\x20color=vec4(0.0);\x0afloat\x20maximum=-1e20;\x0avec3\x20weight=vec3(0.299,0.587,0.114);\x0afor\x20(int\x20i=0;\x20i<4;\x20i++)\x0a{\x0acolor=texture2D(textureSampler,vUV+\x20lumOffsets[i]);\x0afloat\x20GreyValue=dot(color.rgb,vec3(0.33,0.33,0.33));\x0a#ifdef\x20WEIGHTED_AVERAGE\x0afloat\x20GreyValue=dot(color.rgb,weight);\x0a#endif\x0a#ifdef\x20BRIGHTNESS\x0afloat\x20GreyValue=max(color.r,max(color.g,color.b));\x0a#endif\x0a#ifdef\x20HSL_COMPONENT\x0afloat\x20GreyValue=0.5*(max(color.r,max(color.g,color.b))+min(color.r,min(color.g,color.b)));\x0a#endif\x0a#ifdef\x20MAGNITUDE\x0afloat\x20GreyValue=length(color.rgb);\x0a#endif\x0amaximum=max(maximum,GreyValue);\x0aaverage+=(0.25*log(1e-5+GreyValue));\x0a}\x0aaverage=exp(average);\x0agl_FragColor=vec4(average,maximum,0.0,1.0);\x0a}\x0a#endif\x0a#if\x20defined(LUMINANCE_DOWN_SAMPLE)\x0auniform\x20vec2\x20dsOffsets[9];\x0auniform\x20float\x20halfDestPixelSize;\x0a#ifdef\x20FINAL_DOWN_SAMPLER\x0a#include<packingFunctions>\x0a#endif\x0avoid\x20main()\x0a{\x0avec4\x20color=vec4(0.0);\x0afloat\x20average=0.0;\x0afor\x20(int\x20i=0;\x20i<9;\x20i++)\x0a{\x0acolor=texture2D(textureSampler,vUV+vec2(halfDestPixelSize,halfDestPixelSize)+dsOffsets[i]);\x0aaverage+=color.r;\x0a}\x0aaverage/=9.0;\x0a#ifdef\x20FINAL_DOWN_SAMPLER\x0agl_FragColor=pack(average);\x0a#else\x0agl_FragColor=vec4(average,average,0.0,1.0);\x0a#endif\x0a}\x0a#endif\x0a#if\x20defined(HDR)\x0auniform\x20sampler2D\x20textureAdderSampler;\x0auniform\x20float\x20averageLuminance;\x0avoid\x20main()\x0a{\x0avec4\x20color=texture2D(textureAdderSampler,vUV);\x0a#ifndef\x20AUTO_EXPOSURE\x0avec4\x20adjustedColor=color/averageLuminance;\x0acolor=adjustedColor;\x0acolor.a=1.0;\x0a#endif\x0agl_FragColor=color;\x0a}\x0a#endif\x0a#if\x20defined(LENS_FLARE)\x0a#define\x20GHOSTS\x203\x0auniform\x20sampler2D\x20lensColorSampler;\x0auniform\x20float\x20strength;\x0auniform\x20float\x20ghostDispersal;\x0auniform\x20float\x20haloWidth;\x0auniform\x20vec2\x20resolution;\x0auniform\x20float\x20distortionStrength;\x0afloat\x20hash(vec2\x20p)\x0a{\x0afloat\x20h=dot(p,vec2(127.1,311.7));\x0areturn\x20-1.0+2.0*fract(sin(h)*43758.5453123);\x0a}\x0afloat\x20noise(in\x20vec2\x20p)\x0a{\x0avec2\x20i=floor(p);\x0avec2\x20f=fract(p);\x0avec2\x20u=f*f*(3.0-2.0*f);\x0areturn\x20mix(mix(hash(i+vec2(0.0,0.0)),\x0ahash(i+vec2(1.0,0.0)),u.x),\x0amix(hash(i+vec2(0.0,1.0)),\x0ahash(i+vec2(1.0,1.0)),u.x),u.y);\x0a}\x0afloat\x20fbm(vec2\x20p)\x0a{\x0afloat\x20f=0.0;\x0af+=0.5000*noise(p);\x20p*=2.02;\x0af+=0.2500*noise(p);\x20p*=2.03;\x0af+=0.1250*noise(p);\x20p*=2.01;\x0af+=0.0625*noise(p);\x20p*=2.04;\x0af/=0.9375;\x0areturn\x20f;\x0a}\x0avec3\x20pattern(vec2\x20uv)\x0a{\x0avec2\x20p=-1.0+2.0*uv;\x0afloat\x20p2=dot(p,p);\x0afloat\x20f=fbm(vec2(15.0*p2))/2.0;\x0afloat\x20r=0.2+0.6*sin(12.5*length(uv-vec2(0.5)));\x0afloat\x20g=0.2+0.6*sin(20.5*length(uv-vec2(0.5)));\x0afloat\x20b=0.2+0.6*sin(17.2*length(uv-vec2(0.5)));\x0areturn\x20(1.0-f)*vec3(r,g,b);\x0a}\x0afloat\x20luminance(vec3\x20color)\x0a{\x0areturn\x20dot(color.rgb,vec3(0.2126,0.7152,0.0722));\x0a}\x0avec4\x20textureDistorted(sampler2D\x20tex,vec2\x20texcoord,vec2\x20direction,vec3\x20distortion)\x0a{\x0areturn\x20vec4(\x0atexture2D(tex,texcoord+direction*distortion.r).r,\x0atexture2D(tex,texcoord+direction*distortion.g).g,\x0atexture2D(tex,texcoord+direction*distortion.b).b,\x0a1.0\x0a);\x0a}\x0avoid\x20main(void)\x0a{\x0avec2\x20uv=-vUV+vec2(1.0);\x0avec2\x20ghostDir=(vec2(0.5)-uv)*ghostDispersal;\x0avec2\x20texelSize=1.0/resolution;\x0avec3\x20distortion=vec3(-texelSize.x*distortionStrength,0.0,texelSize.x*distortionStrength);\x0avec4\x20result=vec4(0.0);\x0afloat\x20ghostIndice=1.0;\x0afor\x20(int\x20i=0;\x20i<GHOSTS;\x20++i)\x0a{\x0avec2\x20offset=fract(uv+ghostDir*ghostIndice);\x0afloat\x20weight=length(vec2(0.5)-offset)/length(vec2(0.5));\x0aweight=pow(1.0-weight,10.0);\x0aresult+=textureDistorted(textureSampler,offset,normalize(ghostDir),distortion)*weight*strength;\x0aghostIndice+=1.0;\x0a}\x0avec2\x20haloVec=normalize(ghostDir)*haloWidth;\x0afloat\x20weight=length(vec2(0.5)-fract(uv+haloVec))/length(vec2(0.5));\x0aweight=pow(1.0-weight,10.0);\x0aresult+=textureDistorted(textureSampler,fract(uv+haloVec),normalize(ghostDir),distortion)*weight*strength;\x0aresult*=texture2D(lensColorSampler,vec2(length(vec2(0.5)-uv)/length(vec2(0.5))));\x0agl_FragColor=result;\x0a}\x0a#endif\x0a#if\x20defined(LENS_FLARE_COMPOSE)\x0auniform\x20sampler2D\x20otherSampler;\x0auniform\x20sampler2D\x20lensDirtSampler;\x0auniform\x20sampler2D\x20lensStarSampler;\x0auniform\x20mat4\x20lensStarMatrix;\x0avoid\x20main(void)\x0a{\x0avec2\x20lensFlareCoords=(lensStarMatrix*vec4(vUV,1.0,1.0)).xy;\x0avec4\x20lensMod=texture2D(lensDirtSampler,vUV);\x0alensMod+=texture2D(lensStarSampler,vUV/*lensFlareCoords*/);\x0avec4\x20result=texture2D(textureSampler,vUV)*lensMod;\x0agl_FragColor=texture2D(otherSampler,vUV)+result;\x0a}\x0a#endif\x0a#if\x20defined(DEPTH_OF_FIELD)\x0auniform\x20sampler2D\x20otherSampler;\x0auniform\x20sampler2D\x20depthSampler;\x0auniform\x20float\x20distance;\x0avoid\x20main(void)\x0a{\x0avec4\x20sharp=texture2D(otherSampler,vUV);\x0avec4\x20blur=texture2D(textureSampler,vUV);\x0afloat\x20dist=clamp(texture2D(depthSampler,vUV).r*distance,0.0,1.0);\x0afloat\x20factor=0.0;\x0aif\x20(dist<0.05)\x0afactor=1.0;\x0aelse\x20if\x20(dist<0.1)\x0afactor=20.0*(0.1-dist);\x0aelse\x20if\x20(dist<0.5)\x0afactor=0.0;\x0aelse\x0afactor=2.0*(dist-0.5);\x0afactor=clamp(factor,0.0,0.90);\x0agl_FragColor=mix(sharp,blur,factor);\x0a}\x0a#endif\x0a#if\x20defined(MOTION_BLUR)\x0auniform\x20mat4\x20inverseViewProjection;\x0auniform\x20mat4\x20prevViewProjection;\x0auniform\x20vec2\x20screenSize;\x0auniform\x20float\x20motionScale;\x0auniform\x20float\x20motionStrength;\x0auniform\x20sampler2D\x20depthSampler;\x0avoid\x20main(void)\x0a{\x0avec2\x20texelSize=1.0/screenSize;\x0afloat\x20depth=texture2D(depthSampler,vUV).r;\x0avec4\x20cpos=vec4(vUV*2.0-1.0,depth,1.0);\x0acpos=cpos*inverseViewProjection;\x0avec4\x20ppos=cpos*prevViewProjection;\x0appos.xyz/=ppos.w;\x0appos.xy=ppos.xy*0.5+0.5;\x0avec2\x20velocity=(ppos.xy-vUV)*motionScale*motionStrength;\x0afloat\x20speed=length(velocity/texelSize);\x0aint\x20nSamples=int(clamp(speed,1.0,MAX_MOTION_SAMPLES));\x0avec4\x20result=texture2D(textureSampler,vUV);\x0afor\x20(int\x20i=1;\x20i<int(MAX_MOTION_SAMPLES);\x20++i)\x20{\x0aif\x20(i>=nSamples)\x0abreak;\x0avec2\x20offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5);\x0aresult+=texture2D(textureSampler,offset1);\x0a}\x0agl_FragColor=result/float(nSamples);\x0a}\x0a#endif\x0a','_debugPopGroup','baseWidth','_mrtAttachments','setIntArray3','ASTC8x8Unorm','max','CULL_FACE','440170cwttFD','pbrBlockClearcoat','FALLOFF_STANDARD','_cullFace','_cameraObserverCount','setViewport','DEPTH32F_STENCIL8','ACTION_OnPickDownTrigger','CLAMP_ADDRESSMODE','TEXTURETYPE_FLOAT','WebGPUComputeContext.getBindGroups:\x20bindingsMapping\x20is\x20required\x20until\x20browsers\x20support\x20reflection\x20for\x20wgsl\x20shaders!','DepthStencil','TEXTURE_CUBE_MAP_NEGATIVE_Y','ACTION_OnPickTrigger','uniformRegexp','#if\x20defined(ALPHATEST)\x20||\x20defined(NEED_UV)\x0avarying\x20vec2\x20vUV;\x0a#endif\x0a#if\x20defined(ALPHATEST)\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0a#if\x20defined(ALPHATEST)\x0avec4\x20diffuseColor=texture2D(diffuseSampler,vUV);\x0aif\x20(diffuseColor.a<0.4)\x0adiscard;\x0a#endif\x0agl_FragColor=vec4(0.0,0.0,0.0,1.0);\x0a}\x0a','byteOffset','_prepareComputePipelineContext','modelDataLength','startTime','arrayBufferBlockCount','ALPHA_INTERPOLATE','#if\x20defined(BUMP)\x20||\x20defined(CLEARCOAT_BUMP)\x20||\x20defined(ANISOTROPIC)\x20||\x20defined(DETAIL)\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x20\x0avarying\x20mat3\x20vTBN;\x0a#endif\x0a#ifdef\x20OBJECTSPACE_NORMALMAP\x0auniform\x20mat4\x20normalMatrix;\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x0amat4\x20toNormalMatrix(mat4\x20wMatrix)\x0a{\x0amat4\x20ret=inverse(wMatrix);\x0aret=transpose(ret);\x0aret[0][3]=0.;\x0aret[1][3]=0.;\x0aret[2][3]=0.;\x0aret[3]=vec4(0.,0.,0.,1.);\x0areturn\x20ret;\x0a}\x0a#else\x0amat4\x20toNormalMatrix(mat4\x20m)\x0a{\x0afloat\x0aa00=m[0][0],a01=m[0][1],a02=m[0][2],a03=m[0][3],\x0aa10=m[1][0],a11=m[1][1],a12=m[1][2],a13=m[1][3],\x0aa20=m[2][0],a21=m[2][1],a22=m[2][2],a23=m[2][3],\x0aa30=m[3][0],a31=m[3][1],a32=m[3][2],a33=m[3][3],\x0ab00=a00*a11-a01*a10,\x0ab01=a00*a12-a02*a10,\x0ab02=a00*a13-a03*a10,\x0ab03=a01*a12-a02*a11,\x0ab04=a01*a13-a03*a11,\x0ab05=a02*a13-a03*a12,\x0ab06=a20*a31-a21*a30,\x0ab07=a20*a32-a22*a30,\x0ab08=a20*a33-a23*a30,\x0ab09=a21*a32-a22*a31,\x0ab10=a21*a33-a23*a31,\x0ab11=a22*a33-a23*a32,\x0adet=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;\x0amat4\x20mi=mat4(\x0aa11*b11-a12*b10+a13*b09,\x0aa02*b10-a01*b11-a03*b09,\x0aa31*b05-a32*b04+a33*b03,\x0aa22*b04-a21*b05-a23*b03,\x0aa12*b08-a10*b11-a13*b07,\x0aa00*b11-a02*b08+a03*b07,\x0aa32*b02-a30*b05-a33*b01,\x0aa20*b05-a22*b02+a23*b01,\x0aa10*b10-a11*b08+a13*b06,\x0aa01*b08-a00*b10-a03*b06,\x0aa30*b04-a31*b02+a33*b00,\x0aa21*b02-a20*b04-a23*b00,\x0aa11*b07-a10*b09-a12*b06,\x0aa00*b09-a01*b07+a02*b06,\x0aa31*b01-a30*b03-a32*b00,\x0aa20*b03-a21*b01+a22*b00)/det;\x0areturn\x20mat4(mi[0][0],mi[1][0],mi[2][0],mi[3][0],\x0ami[0][1],mi[1][1],mi[2][1],mi[3][1],\x0ami[0][2],mi[1][2],mi[2][2],mi[3][2],\x0ami[0][3],mi[1][3],mi[2][3],mi[3][3]);\x0a}\x0a#endif\x0a#endif\x0avec3\x20perturbNormalBase(mat3\x20cotangentFrame,vec3\x20normal,float\x20scale)\x0a{\x0a#ifdef\x20NORMALXYSCALE\x0anormal=normalize(normal*vec3(scale,scale,1.0));\x0a#endif\x0areturn\x20normalize(cotangentFrame*normal);\x0a}\x0avec3\x20perturbNormal(mat3\x20cotangentFrame,vec3\x20textureSample,float\x20scale)\x0a{\x0areturn\x20perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);\x0a}\x0amat3\x20cotangent_frame(vec3\x20normal,vec3\x20p,vec2\x20uv,vec2\x20tangentSpaceParams)\x0a{\x0avec3\x20dp1=dFdx(p);\x0avec3\x20dp2=dFdy(p);\x0avec2\x20duv1=dFdx(uv);\x0avec2\x20duv2=dFdy(uv);\x0avec3\x20dp2perp=cross(dp2,normal);\x0avec3\x20dp1perp=cross(normal,dp1);\x0avec3\x20tangent=dp2perp*duv1.x+dp1perp*duv2.x;\x0avec3\x20bitangent=dp2perp*duv1.y+dp1perp*duv2.y;\x0atangent*=tangentSpaceParams.x;\x0abitangent*=tangentSpaceParams.y;\x0afloat\x20det=max(dot(tangent,tangent),dot(bitangent,bitangent));\x0afloat\x20invmax=det==0.0\x20?\x200.0\x20:\x20inversesqrt(det);\x0areturn\x20mat3(tangent*invmax,bitangent*invmax,normal);\x0a}\x0a#endif\x0a','radiusRange','TEXTUREFORMAT_RED','precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0a#ifdef\x20SPECULARTERM\x0auniform\x20vec4\x20vSpecularColor;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vTextureUV;\x0auniform\x20sampler2D\x20mixMap1Sampler;\x0auniform\x20vec2\x20vTextureInfos;\x0a#ifdef\x20MIXMAP2\x0auniform\x20sampler2D\x20mixMap2Sampler;\x0a#endif\x0auniform\x20sampler2D\x20diffuse1Sampler;\x0auniform\x20sampler2D\x20diffuse2Sampler;\x0auniform\x20sampler2D\x20diffuse3Sampler;\x0auniform\x20sampler2D\x20diffuse4Sampler;\x0auniform\x20vec2\x20diffuse1Infos;\x0auniform\x20vec2\x20diffuse2Infos;\x0auniform\x20vec2\x20diffuse3Infos;\x0auniform\x20vec2\x20diffuse4Infos;\x0a#ifdef\x20MIXMAP2\x0auniform\x20sampler2D\x20diffuse5Sampler;\x0auniform\x20sampler2D\x20diffuse6Sampler;\x0auniform\x20sampler2D\x20diffuse7Sampler;\x0auniform\x20sampler2D\x20diffuse8Sampler;\x0auniform\x20vec2\x20diffuse5Infos;\x0auniform\x20vec2\x20diffuse6Infos;\x0auniform\x20vec2\x20diffuse7Infos;\x0auniform\x20vec2\x20diffuse8Infos;\x0a#endif\x0a#endif\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20finalMixColor=vec4(1.,1.,1.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0a#ifdef\x20MIXMAP2\x0avec4\x20mixColor2=vec4(1.,1.,1.,1.);\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0afloat\x20glossiness=vSpecularColor.a;\x0avec3\x20specularColor=vSpecularColor.rgb;\x0a#else\x0afloat\x20glossiness=0.;\x0a#endif\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0avec4\x20mixColor=texture2D(mixMap1Sampler,vTextureUV);\x0a#include<depthPrePass>\x0amixColor.rgb*=vTextureInfos.y;\x0avec4\x20diffuse1Color=texture2D(diffuse1Sampler,vTextureUV*diffuse1Infos);\x0avec4\x20diffuse2Color=texture2D(diffuse2Sampler,vTextureUV*diffuse2Infos);\x0avec4\x20diffuse3Color=texture2D(diffuse3Sampler,vTextureUV*diffuse3Infos);\x0avec4\x20diffuse4Color=texture2D(diffuse4Sampler,vTextureUV*diffuse4Infos);\x0adiffuse1Color.rgb*=mixColor.r;\x0adiffuse2Color.rgb=mix(diffuse1Color.rgb,diffuse2Color.rgb,mixColor.g);\x0adiffuse3Color.rgb=mix(diffuse2Color.rgb,diffuse3Color.rgb,mixColor.b);\x0afinalMixColor.rgb=mix(diffuse3Color.rgb,diffuse4Color.rgb,1.0-mixColor.a);\x0a#ifdef\x20MIXMAP2\x0amixColor=texture2D(mixMap2Sampler,vTextureUV);\x0amixColor.rgb*=vTextureInfos.y;\x0avec4\x20diffuse5Color=texture2D(diffuse5Sampler,vTextureUV*diffuse5Infos);\x0avec4\x20diffuse6Color=texture2D(diffuse6Sampler,vTextureUV*diffuse6Infos);\x0avec4\x20diffuse7Color=texture2D(diffuse7Sampler,vTextureUV*diffuse7Infos);\x0avec4\x20diffuse8Color=texture2D(diffuse8Sampler,vTextureUV*diffuse8Infos);\x0adiffuse5Color.rgb=mix(finalMixColor.rgb,diffuse5Color.rgb,mixColor.r);\x0adiffuse6Color.rgb=mix(diffuse5Color.rgb,diffuse6Color.rgb,mixColor.g);\x0adiffuse7Color.rgb=mix(diffuse6Color.rgb,diffuse7Color.rgb,mixColor.b);\x0afinalMixColor.rgb=mix(diffuse7Color.rgb,diffuse8Color.rgb,1.0-mixColor.a);\x0a#endif\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0afinalMixColor.rgb*=vColor.rgb;\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0a#endif\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20finalSpecular=specularBase*specularColor;\x0a#else\x0avec3\x20finalSpecular=vec3(0.0);\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor*finalMixColor.rgb,0.0,1.0);\x0avec4\x20color=vec4(finalDiffuse+finalSpecular,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','gpuRenderParticlesVertexShader','vec3\x20finalDiffuse=diffuseBase;\x0afinalDiffuse*=surfaceAlbedo.rgb;\x0afinalDiffuse=max(finalDiffuse,0.0);\x0afinalDiffuse*=vLightingIntensity.x;\x0avec3\x20finalAmbient=vAmbientColor;\x0afinalAmbient*=surfaceAlbedo.rgb;\x0avec3\x20finalEmissive=vEmissiveColor;\x0a#ifdef\x20EMISSIVE\x0avec3\x20emissiveColorTex=texture2D(emissiveSampler,vEmissiveUV+uvOffset).rgb;\x0a#ifdef\x20GAMMAEMISSIVE\x0afinalEmissive*=toLinearSpace(emissiveColorTex.rgb);\x0a#else\x0afinalEmissive*=emissiveColorTex.rgb;\x0a#endif\x0afinalEmissive*=\x20vEmissiveInfos.y;\x0a#endif\x0afinalEmissive*=vLightingIntensity.y;\x0a#ifdef\x20AMBIENT\x0avec3\x20ambientOcclusionForDirectDiffuse=mix(vec3(1.),aoOut.ambientOcclusionColor,vAmbientInfos.w);\x0a#else\x0avec3\x20ambientOcclusionForDirectDiffuse=aoOut.ambientOcclusionColor;\x0a#endif\x0afinalAmbient*=aoOut.ambientOcclusionColor;\x0afinalDiffuse*=ambientOcclusionForDirectDiffuse;\x0a','resetTextureCache','is32Bits','setVector3','varyings','process','sampleType','.fx','#ifdef\x20_DEFINENAME_\x0a#if\x20_DEFINENAME_DIRECTUV==1\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV1\x0a#elif\x20_DEFINENAME_DIRECTUV==2\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV2\x0a#elif\x20_DEFINENAME_DIRECTUV==3\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV3\x0a#elif\x20_DEFINENAME_DIRECTUV==4\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV4\x0a#elif\x20_DEFINENAME_DIRECTUV==5\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV5\x0a#elif\x20_DEFINENAME_DIRECTUV==6\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV6\x0a#else\x0avarying\x20vec2\x20v_VARYINGNAME_UV;\x0a#endif\x0a#endif\x0a','addBundle','backgroundPixelShader','parse','_comparisonFunction','StorageBuffer','glowMapGenerationVertexShader','texture2DArray','insert','_swapRenderTargetWrapper','_height','TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV','clipPlaneFragment','_sphericalPolynomial','setMatrix3x3','setMatrices','clipPlaneFragmentDeclaration','_updatePointerPosition','Size','isDisposed','_currentItemIsBundle',',\x20H:\x20','_areAttributesDirty','_thinInstanceDataStorage','bufferNames','_generateStencilBuffer','search','computePipeline','_externalProperties','setFloatArray3','_tags','renderTargetTexture','_getArraySize','isAsync','physicsImpostor','recordVertexArrayObject','ACTION_OnKeyUpTrigger','ReflectionTextureBaseBlock','TEXTURETYPE_UNSIGNED_INTEGER','precision\x20mediump\x20float','matricesIndices','PositionKind','MipMap','NAME_PARTICLESYSTEM','GetIndividualParser','createSampler','IsExternalTexture','thickness','halfDome','_boundRenderFunction','blurDepthScale','ASTC12x12Unorm','WGSL','setMSAATexture','setFloat4','_thinInstanceInitializeUserStorage','TEXTUREFORMAT_ALPHA\x20format\x20not\x20supported\x20in\x20WebGPU','removePendingData','boundingVectors','preProcessShaderCode','prePassComposition','_cacheRenderPipeline','_currentLayer','LeftClick','Finalize','#endif','reflectionMatrix','Render\x20to\x20half\x20float\x20textures\x20is\x20not\x20supported.\x20Mipmap\x20generation\x20forced\x20to\x20false.','noPrecision','uniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20originalColor;\x0auniform\x20vec4\x20viewport;\x0avarying\x20vec2\x20vUV;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0avec4\x20ssaoColor=texture2D(textureSampler,viewport.xy+vUV*viewport.zw);\x0avec4\x20sceneColor=texture2D(originalColor,vUV);\x0agl_FragColor=sceneColor*ssaoColor;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','unshift','_doNotHandleContextLost','uniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0auniform\x20float\x20shadowLevel;\x0a#ifdef\x20DIFFUSE\x0auniform\x20mat4\x20diffuseMatrix;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20REFLECTION\x0auniform\x20vec2\x20vReflectionInfos;\x0auniform\x20mat4\x20reflectionMatrix;\x0auniform\x20vec3\x20vReflectionMicrosurfaceInfos;\x0auniform\x20float\x20fFovMultiplier;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0a','getMappedRange','_mipmapSampler','_buildIndexBuffer','RG8Sint','viewProjectionR','uvAttributeDeclaration','allowSingleMeshMaxTriangleFaceQuantity','textureFloatLinearFiltering','setDepthWriteEnabled','SNAPSHOTRENDERING_FAST','_physicsEngine','shadowMapFragment','storage','gradientPixelShader','scheduler','buttons','data','uniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vPrimaryColor;\x0a#ifdef\x20USEHIGHLIGHTANDSHADOWCOLORS\x0auniform\x20vec4\x20vPrimaryColorShadow;\x0a#endif\x0auniform\x20float\x20shadowLevel;\x0auniform\x20float\x20alpha;\x0a#ifdef\x20DIFFUSE\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20REFLECTION\x0auniform\x20vec2\x20vReflectionInfos;\x0auniform\x20mat4\x20reflectionMatrix;\x0auniform\x20vec3\x20vReflectionMicrosurfaceInfos;\x0a#endif\x0a#if\x20defined(REFLECTIONFRESNEL)\x20||\x20defined(OPACITYFRESNEL)\x0auniform\x20vec3\x20vBackgroundCenter;\x0a#endif\x0a#ifdef\x20REFLECTIONFRESNEL\x0auniform\x20vec4\x20vReflectionControl;\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_SPHERICAL)\x20||\x20defined(REFLECTIONMAP_PROJECTION)\x20||\x20defined(REFRACTION)\x0auniform\x20mat4\x20view;\x0a#endif\x0a','generateStencil','generateStencilBuffer','RG32Float','mixVertexShader','GL_ALPHA_FUNCTION_ONE_MINUS_SRC_ALPHA','_coroutineSchedulerDispose','getNextFreeUBOBinding','_thinInstanceCreateMatrixBuffer','LINEAR_MIPMAP_LINEAR','layout(set\x20=\x20','updateFloatArray','createGPUTextureForInternalTexture','createCubeTexture','renderWidth','#ifdef\x20SHADOWS\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20TEXTUREFUNC(s,c,l)\x20texture2DLodEXT(s,c,l)\x0a#else\x0a#define\x20TEXTUREFUNC(s,c,b)\x20texture2D(s,c,b)\x0a#endif\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20unpack(vec4\x20color)\x0a{\x0aconst\x20vec4\x20bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);\x0areturn\x20dot(color,bit_shift);\x0a}\x0a#endif\x0afloat\x20computeFallOff(float\x20value,vec2\x20clipSpace,float\x20frustumEdgeFalloff)\x0a{\x0afloat\x20mask=smoothstep(1.0-frustumEdgeFalloff,1.00000012,clamp(dot(clipSpace,clipSpace),0.,1.));\x0areturn\x20mix(value,1.0,mask);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowCube(vec3\x20lightPosition,samplerCube\x20shadowSampler,float\x20darkness,vec2\x20depthValues)\x0a{\x0avec3\x20directionToLight=vPositionW-lightPosition;\x0afloat\x20depth=length(directionToLight);\x0adepth=(depth+depthValues.x)/(depthValues.y);\x0adepth=clamp(depth,0.,1.0);\x0adirectionToLight=normalize(directionToLight);\x0adirectionToLight.y=-directionToLight.y;\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20shadow=unpack(textureCube(shadowSampler,directionToLight));\x0a#else\x0afloat\x20shadow=textureCube(shadowSampler,directionToLight).x;\x0a#endif\x0areturn\x20depth>shadow\x20?\x20darkness\x20:\x201.0;\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPoissonSamplingCube(vec3\x20lightPosition,samplerCube\x20shadowSampler,float\x20mapSize,float\x20darkness,vec2\x20depthValues)\x0a{\x0avec3\x20directionToLight=vPositionW-lightPosition;\x0afloat\x20depth=length(directionToLight);\x0adepth=(depth+depthValues.x)/(depthValues.y);\x0adepth=clamp(depth,0.,1.0);\x0adirectionToLight=normalize(directionToLight);\x0adirectionToLight.y=-directionToLight.y;\x0afloat\x20visibility=1.;\x0avec3\x20poissonDisk[4];\x0apoissonDisk[0]=vec3(-1.0,1.0,-1.0);\x0apoissonDisk[1]=vec3(1.0,-1.0,-1.0);\x0apoissonDisk[2]=vec3(-1.0,-1.0,-1.0);\x0apoissonDisk[3]=vec3(1.0,-1.0,1.0);\x0a#ifndef\x20SHADOWFLOAT\x0aif\x20(unpack(textureCube(shadowSampler,directionToLight+poissonDisk[0]*mapSize))<depth)\x20visibility-=0.25;\x0aif\x20(unpack(textureCube(shadowSampler,directionToLight+poissonDisk[1]*mapSize))<depth)\x20visibility-=0.25;\x0aif\x20(unpack(textureCube(shadowSampler,directionToLight+poissonDisk[2]*mapSize))<depth)\x20visibility-=0.25;\x0aif\x20(unpack(textureCube(shadowSampler,directionToLight+poissonDisk[3]*mapSize))<depth)\x20visibility-=0.25;\x0a#else\x0aif\x20(textureCube(shadowSampler,directionToLight+poissonDisk[0]*mapSize).x<depth)\x20visibility-=0.25;\x0aif\x20(textureCube(shadowSampler,directionToLight+poissonDisk[1]*mapSize).x<depth)\x20visibility-=0.25;\x0aif\x20(textureCube(shadowSampler,directionToLight+poissonDisk[2]*mapSize).x<depth)\x20visibility-=0.25;\x0aif\x20(textureCube(shadowSampler,directionToLight+poissonDisk[3]*mapSize).x<depth)\x20visibility-=0.25;\x0a#endif\x0areturn\x20min(1.0,visibility+darkness);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithESMCube(vec3\x20lightPosition,samplerCube\x20shadowSampler,float\x20darkness,float\x20depthScale,vec2\x20depthValues)\x0a{\x0avec3\x20directionToLight=vPositionW-lightPosition;\x0afloat\x20depth=length(directionToLight);\x0adepth=(depth+depthValues.x)/(depthValues.y);\x0afloat\x20shadowPixelDepth=clamp(depth,0.,1.0);\x0adirectionToLight=normalize(directionToLight);\x0adirectionToLight.y=-directionToLight.y;\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20shadowMapSample=unpack(textureCube(shadowSampler,directionToLight));\x0a#else\x0afloat\x20shadowMapSample=textureCube(shadowSampler,directionToLight).x;\x0a#endif\x0afloat\x20esm=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);\x20\x0areturn\x20esm;\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithCloseESMCube(vec3\x20lightPosition,samplerCube\x20shadowSampler,float\x20darkness,float\x20depthScale,vec2\x20depthValues)\x0a{\x0avec3\x20directionToLight=vPositionW-lightPosition;\x0afloat\x20depth=length(directionToLight);\x0adepth=(depth+depthValues.x)/(depthValues.y);\x0afloat\x20shadowPixelDepth=clamp(depth,0.,1.0);\x0adirectionToLight=normalize(directionToLight);\x0adirectionToLight.y=-directionToLight.y;\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20shadowMapSample=unpack(textureCube(shadowSampler,directionToLight));\x0a#else\x0afloat\x20shadowMapSample=textureCube(shadowSampler,directionToLight).x;\x0a#endif\x0afloat\x20esm=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);\x0areturn\x20esm;\x0a}\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20inline\x0afloat\x20computeShadowCSM(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArray\x20shadowSampler,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec2\x20uv=0.5*clipSpace.xy+vec2(0.5);\x0avec3\x20uvLayer=vec3(uv.x,uv.y,layer);\x0afloat\x20shadowPixelDepth=clamp(depthMetric,0.,1.0);\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20shadow=unpack(texture2D(shadowSampler,uvLayer));\x0a#else\x0afloat\x20shadow=texture2D(shadowSampler,uvLayer).x;\x0a#endif\x0areturn\x20shadowPixelDepth>shadow\x20?\x20computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff)\x20:\x201.;\x0a}\x0a#endif\x0a#define\x20inline\x0afloat\x20computeShadow(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20shadowSampler,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec2\x20uv=0.5*clipSpace.xy+vec2(0.5);\x0aif\x20(uv.x<0.\x20||\x20uv.x>1.0\x20||\x20uv.y<0.\x20||\x20uv.y>1.0)\x0a{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0afloat\x20shadowPixelDepth=clamp(depthMetric,0.,1.0);\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20shadow=unpack(TEXTUREFUNC(shadowSampler,uv,0.));\x0a#else\x0afloat\x20shadow=TEXTUREFUNC(shadowSampler,uv,0.).x;\x0a#endif\x0areturn\x20shadowPixelDepth>shadow\x20?\x20computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff)\x20:\x201.;\x0a}\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPoissonSampling(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20shadowSampler,float\x20mapSize,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec2\x20uv=0.5*clipSpace.xy+vec2(0.5);\x0aif\x20(uv.x<0.\x20||\x20uv.x>1.0\x20||\x20uv.y<0.\x20||\x20uv.y>1.0)\x0a{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0afloat\x20shadowPixelDepth=clamp(depthMetric,0.,1.0);\x0afloat\x20visibility=1.;\x0avec2\x20poissonDisk[4];\x0apoissonDisk[0]=vec2(-0.94201624,-0.39906216);\x0apoissonDisk[1]=vec2(0.94558609,-0.76890725);\x0apoissonDisk[2]=vec2(-0.094184101,-0.92938870);\x0apoissonDisk[3]=vec2(0.34495938,0.29387760);\x0a#ifndef\x20SHADOWFLOAT\x0aif\x20(unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[0]*mapSize,0.))<shadowPixelDepth)\x20visibility-=0.25;\x0aif\x20(unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[1]*mapSize,0.))<shadowPixelDepth)\x20visibility-=0.25;\x0aif\x20(unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[2]*mapSize,0.))<shadowPixelDepth)\x20visibility-=0.25;\x0aif\x20(unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[3]*mapSize,0.))<shadowPixelDepth)\x20visibility-=0.25;\x0a#else\x0aif\x20(TEXTUREFUNC(shadowSampler,uv+poissonDisk[0]*mapSize,0.).x<shadowPixelDepth)\x20visibility-=0.25;\x0aif\x20(TEXTUREFUNC(shadowSampler,uv+poissonDisk[1]*mapSize,0.).x<shadowPixelDepth)\x20visibility-=0.25;\x0aif\x20(TEXTUREFUNC(shadowSampler,uv+poissonDisk[2]*mapSize,0.).x<shadowPixelDepth)\x20visibility-=0.25;\x0aif\x20(TEXTUREFUNC(shadowSampler,uv+poissonDisk[3]*mapSize,0.).x<shadowPixelDepth)\x20visibility-=0.25;\x0a#endif\x0areturn\x20computeFallOff(min(1.0,visibility+darkness),clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithESM(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20shadowSampler,float\x20darkness,float\x20depthScale,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec2\x20uv=0.5*clipSpace.xy+vec2(0.5);\x0aif\x20(uv.x<0.\x20||\x20uv.x>1.0\x20||\x20uv.y<0.\x20||\x20uv.y>1.0)\x0a{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0afloat\x20shadowPixelDepth=clamp(depthMetric,0.,1.0);\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20shadowMapSample=unpack(TEXTUREFUNC(shadowSampler,uv,0.));\x0a#else\x0afloat\x20shadowMapSample=TEXTUREFUNC(shadowSampler,uv,0.).x;\x0a#endif\x0afloat\x20esm=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);\x0areturn\x20computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithCloseESM(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20shadowSampler,float\x20darkness,float\x20depthScale,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec2\x20uv=0.5*clipSpace.xy+vec2(0.5);\x0aif\x20(uv.x<0.\x20||\x20uv.x>1.0\x20||\x20uv.y<0.\x20||\x20uv.y>1.0)\x0a{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0afloat\x20shadowPixelDepth=clamp(depthMetric,0.,1.0);\x20\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20shadowMapSample=unpack(TEXTUREFUNC(shadowSampler,uv,0.));\x0a#else\x0afloat\x20shadowMapSample=TEXTUREFUNC(shadowSampler,uv,0.).x;\x0a#endif\x0afloat\x20esm=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);\x0areturn\x20computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0a#ifdef\x20IS_NDC_HALF_ZRANGE\x0a#define\x20ZINCLIP\x20clipSpace.z\x0a#else\x0a#define\x20ZINCLIP\x20uvDepth.z\x0a#endif\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20GREATEST_LESS_THAN_ONE\x200.99999994\x0a#define\x20inline\x0afloat\x20computeShadowWithCSMPCF1(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArrayShadow\x20shadowSampler,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);\x0avec4\x20uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);\x0afloat\x20shadow=texture2D(shadowSampler,uvDepthLayer);\x0ashadow=mix(darkness,1.,shadow);\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithCSMPCF3(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArrayShadow\x20shadowSampler,vec2\x20shadowMapSizeAndInverse,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);\x0avec2\x20uv=uvDepth.xy*shadowMapSizeAndInverse.x;\x20\x0auv+=0.5;\x20\x0avec2\x20st=fract(uv);\x20\x0avec2\x20base_uv=floor(uv)-0.5;\x20\x0abase_uv*=shadowMapSizeAndInverse.y;\x20\x0avec2\x20uvw0=3.-2.*st;\x0avec2\x20uvw1=1.+2.*st;\x0avec2\x20u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;\x0avec2\x20v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;\x0afloat\x20shadow=0.;\x0ashadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));\x0ashadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));\x0ashadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));\x0ashadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));\x0ashadow=shadow/16.;\x0ashadow=mix(darkness,1.,shadow);\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithCSMPCF5(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArrayShadow\x20shadowSampler,vec2\x20shadowMapSizeAndInverse,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);\x0avec2\x20uv=uvDepth.xy*shadowMapSizeAndInverse.x;\x20\x0auv+=0.5;\x20\x0avec2\x20st=fract(uv);\x20\x0avec2\x20base_uv=floor(uv)-0.5;\x20\x0abase_uv*=shadowMapSizeAndInverse.y;\x20\x0avec2\x20uvw0=4.-3.*st;\x0avec2\x20uvw1=vec2(7.);\x0avec2\x20uvw2=1.+3.*st;\x0avec3\x20u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;\x0avec3\x20v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;\x0afloat\x20shadow=0.;\x0ashadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));\x0ashadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));\x0ashadow+=uvw2.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[0]),layer,uvDepth.z));\x0ashadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));\x0ashadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));\x0ashadow+=uvw2.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[1]),layer,uvDepth.z));\x0ashadow+=uvw0.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[2]),layer,uvDepth.z));\x0ashadow+=uvw1.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[2]),layer,uvDepth.z));\x0ashadow+=uvw2.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[2]),layer,uvDepth.z));\x0ashadow=shadow/144.;\x0ashadow=mix(darkness,1.,shadow);\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPCF1(vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DShadow\x20shadowSampler,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0aif\x20(depthMetric>1.0\x20||\x20depthMetric<0.0)\x20{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=ZINCLIP;\x0afloat\x20shadow=TEXTUREFUNC(shadowSampler,uvDepth,0.);\x0ashadow=mix(darkness,1.,shadow);\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPCF3(vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DShadow\x20shadowSampler,vec2\x20shadowMapSizeAndInverse,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0aif\x20(depthMetric>1.0\x20||\x20depthMetric<0.0)\x20{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=ZINCLIP;\x0avec2\x20uv=uvDepth.xy*shadowMapSizeAndInverse.x;\x20\x0auv+=0.5;\x20\x0avec2\x20st=fract(uv);\x20\x0avec2\x20base_uv=floor(uv)-0.5;\x20\x0abase_uv*=shadowMapSizeAndInverse.y;\x20\x0avec2\x20uvw0=3.-2.*st;\x0avec2\x20uvw1=1.+2.*st;\x0avec2\x20u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;\x0avec2\x20v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;\x0afloat\x20shadow=0.;\x0ashadow+=uvw0.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z),0.);\x0ashadow+=uvw1.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z),0.);\x0ashadow+=uvw0.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z),0.);\x0ashadow+=uvw1.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z),0.);\x0ashadow=shadow/16.;\x0ashadow=mix(darkness,1.,shadow);\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPCF5(vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DShadow\x20shadowSampler,vec2\x20shadowMapSizeAndInverse,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0aif\x20(depthMetric>1.0\x20||\x20depthMetric<0.0)\x20{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=ZINCLIP;\x0avec2\x20uv=uvDepth.xy*shadowMapSizeAndInverse.x;\x20\x0auv+=0.5;\x20\x0avec2\x20st=fract(uv);\x20\x0avec2\x20base_uv=floor(uv)-0.5;\x20\x0abase_uv*=shadowMapSizeAndInverse.y;\x20\x0avec2\x20uvw0=4.-3.*st;\x0avec2\x20uvw1=vec2(7.);\x0avec2\x20uvw2=1.+3.*st;\x0avec3\x20u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;\x0avec3\x20v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;\x0afloat\x20shadow=0.;\x0ashadow+=uvw0.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z),0.);\x0ashadow+=uvw1.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z),0.);\x0ashadow+=uvw2.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[0]),uvDepth.z),0.);\x0ashadow+=uvw0.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z),0.);\x0ashadow+=uvw1.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z),0.);\x0ashadow+=uvw2.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[1]),uvDepth.z),0.);\x0ashadow+=uvw0.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[2]),uvDepth.z),0.);\x0ashadow+=uvw1.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[2]),uvDepth.z),0.);\x0ashadow+=uvw2.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[2]),uvDepth.z),0.);\x0ashadow=shadow/144.;\x0ashadow=mix(darkness,1.,shadow);\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0aconst\x20vec3\x20PoissonSamplers32[64]=vec3[64](\x0avec3(0.06407013,0.05409927,0.),\x0avec3(0.7366577,0.5789394,0.),\x0avec3(-0.6270542,-0.5320278,0.),\x0avec3(-0.4096107,0.8411095,0.),\x0avec3(0.6849564,-0.4990818,0.),\x0avec3(-0.874181,-0.04579735,0.),\x0avec3(0.9989998,0.0009880066,0.),\x0avec3(-0.004920578,-0.9151649,0.),\x0avec3(0.1805763,0.9747483,0.),\x0avec3(-0.2138451,0.2635818,0.),\x0avec3(0.109845,0.3884785,0.),\x0avec3(0.06876755,-0.3581074,0.),\x0avec3(0.374073,-0.7661266,0.),\x0avec3(0.3079132,-0.1216763,0.),\x0avec3(-0.3794335,-0.8271583,0.),\x0avec3(-0.203878,-0.07715034,0.),\x0avec3(0.5912697,0.1469799,0.),\x0avec3(-0.88069,0.3031784,0.),\x0avec3(0.5040108,0.8283722,0.),\x0avec3(-0.5844124,0.5494877,0.),\x0avec3(0.6017799,-0.1726654,0.),\x0avec3(-0.5554981,0.1559997,0.),\x0avec3(-0.3016369,-0.3900928,0.),\x0avec3(-0.5550632,-0.1723762,0.),\x0avec3(0.925029,0.2995041,0.),\x0avec3(-0.2473137,0.5538505,0.),\x0avec3(0.9183037,-0.2862392,0.),\x0avec3(0.2469421,0.6718712,0.),\x0avec3(0.3916397,-0.4328209,0.),\x0avec3(-0.03576927,-0.6220032,0.),\x0avec3(-0.04661255,0.7995201,0.),\x0avec3(0.4402924,0.3640312,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.)\x0a);\x0aconst\x20vec3\x20PoissonSamplers64[64]=vec3[64](\x0avec3(-0.613392,0.617481,0.),\x0avec3(0.170019,-0.040254,0.),\x0avec3(-0.299417,0.791925,0.),\x0avec3(0.645680,0.493210,0.),\x0avec3(-0.651784,0.717887,0.),\x0avec3(0.421003,0.027070,0.),\x0avec3(-0.817194,-0.271096,0.),\x0avec3(-0.705374,-0.668203,0.),\x0avec3(0.977050,-0.108615,0.),\x0avec3(0.063326,0.142369,0.),\x0avec3(0.203528,0.214331,0.),\x0avec3(-0.667531,0.326090,0.),\x0avec3(-0.098422,-0.295755,0.),\x0avec3(-0.885922,0.215369,0.),\x0avec3(0.566637,0.605213,0.),\x0avec3(0.039766,-0.396100,0.),\x0avec3(0.751946,0.453352,0.),\x0avec3(0.078707,-0.715323,0.),\x0avec3(-0.075838,-0.529344,0.),\x0avec3(0.724479,-0.580798,0.),\x0avec3(0.222999,-0.215125,0.),\x0avec3(-0.467574,-0.405438,0.),\x0avec3(-0.248268,-0.814753,0.),\x0avec3(0.354411,-0.887570,0.),\x0avec3(0.175817,0.382366,0.),\x0avec3(0.487472,-0.063082,0.),\x0avec3(-0.084078,0.898312,0.),\x0avec3(0.488876,-0.783441,0.),\x0avec3(0.470016,0.217933,0.),\x0avec3(-0.696890,-0.549791,0.),\x0avec3(-0.149693,0.605762,0.),\x0avec3(0.034211,0.979980,0.),\x0avec3(0.503098,-0.308878,0.),\x0avec3(-0.016205,-0.872921,0.),\x0avec3(0.385784,-0.393902,0.),\x0avec3(-0.146886,-0.859249,0.),\x0avec3(0.643361,0.164098,0.),\x0avec3(0.634388,-0.049471,0.),\x0avec3(-0.688894,0.007843,0.),\x0avec3(0.464034,-0.188818,0.),\x0avec3(-0.440840,0.137486,0.),\x0avec3(0.364483,0.511704,0.),\x0avec3(0.034028,0.325968,0.),\x0avec3(0.099094,-0.308023,0.),\x0avec3(0.693960,-0.366253,0.),\x0avec3(0.678884,-0.204688,0.),\x0avec3(0.001801,0.780328,0.),\x0avec3(0.145177,-0.898984,0.),\x0avec3(0.062655,-0.611866,0.),\x0avec3(0.315226,-0.604297,0.),\x0avec3(-0.780145,0.486251,0.),\x0avec3(-0.371868,0.882138,0.),\x0avec3(0.200476,0.494430,0.),\x0avec3(-0.494552,-0.711051,0.),\x0avec3(0.612476,0.705252,0.),\x0avec3(-0.578845,-0.768792,0.),\x0avec3(-0.772454,-0.090976,0.),\x0avec3(0.504440,0.372295,0.),\x0avec3(0.155736,0.065157,0.),\x0avec3(0.391522,0.849605,0.),\x0avec3(-0.620106,-0.328104,0.),\x0avec3(0.789239,-0.419965,0.),\x0avec3(-0.545396,0.538133,0.),\x0avec3(-0.178564,-0.596057,0.)\x0a);\x0a#define\x20inline\x0afloat\x20computeShadowWithCSMPCSS(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArray\x20depthSampler,highp\x20sampler2DArrayShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff,int\x20searchTapCount,int\x20pcfTapCount,vec3[64]\x20poissonSamplers,vec2\x20lightSizeUVCorrection,float\x20depthCorrection,float\x20penumbraDarkness)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);\x0avec4\x20uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);\x0afloat\x20blockerDepth=0.0;\x0afloat\x20sumBlockerDepth=0.0;\x0afloat\x20numBlocker=0.0;\x0afor\x20(int\x20i=0;\x20i<searchTapCount;\x20i\x20++)\x20{\x0ablockerDepth=texture2D(depthSampler,vec3(uvDepth.xy+(lightSizeUV*lightSizeUVCorrection*shadowMapSizeInverse*PoissonSamplers32[i].xy),layer)).r;\x0aif\x20(blockerDepth<depthMetric)\x20{\x0asumBlockerDepth+=blockerDepth;\x0anumBlocker++;\x0a}\x0a}\x0afloat\x20avgBlockerDepth=sumBlockerDepth/numBlocker;\x0afloat\x20AAOffset=shadowMapSizeInverse*10.;\x0afloat\x20penumbraRatio=((depthMetric-avgBlockerDepth)*depthCorrection+AAOffset);\x0avec4\x20filterRadius=vec4(penumbraRatio*lightSizeUV*lightSizeUVCorrection*shadowMapSizeInverse,0.,0.);\x0afloat\x20random=getRand(vPositionFromLight.xy);\x0afloat\x20rotationAngle=random*3.1415926;\x0avec2\x20rotationVector=vec2(cos(rotationAngle),sin(rotationAngle));\x0afloat\x20shadow=0.;\x0afor\x20(int\x20i=0;\x20i<pcfTapCount;\x20i++)\x20{\x0avec4\x20offset=vec4(poissonSamplers[i],0.);\x0aoffset=vec4(offset.x*rotationVector.x-offset.y*rotationVector.y,offset.y*rotationVector.x+offset.x*rotationVector.y,0.,0.);\x0ashadow+=texture2D(shadowSampler,uvDepthLayer+offset*filterRadius);\x0a}\x0ashadow/=float(pcfTapCount);\x0ashadow=mix(shadow,1.,min((depthMetric-avgBlockerDepth)*depthCorrection*penumbraDarkness,1.));\x0ashadow=mix(darkness,1.,shadow);\x0aif\x20(numBlocker<1.0)\x20{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPCSS(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20depthSampler,highp\x20sampler2DShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff,int\x20searchTapCount,int\x20pcfTapCount,vec3[64]\x20poissonSamplers)\x0a{\x0aif\x20(depthMetric>1.0\x20||\x20depthMetric<0.0)\x20{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=ZINCLIP;\x0afloat\x20blockerDepth=0.0;\x0afloat\x20sumBlockerDepth=0.0;\x0afloat\x20numBlocker=0.0;\x0afor\x20(int\x20i=0;\x20i<searchTapCount;\x20i\x20++)\x20{\x0ablockerDepth=TEXTUREFUNC(depthSampler,uvDepth.xy+(lightSizeUV*shadowMapSizeInverse*PoissonSamplers32[i].xy),0.).r;\x0aif\x20(blockerDepth<depthMetric)\x20{\x0asumBlockerDepth+=blockerDepth;\x0anumBlocker++;\x0a}\x0a}\x0aif\x20(numBlocker<1.0)\x20{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0afloat\x20avgBlockerDepth=sumBlockerDepth/numBlocker;\x0afloat\x20AAOffset=shadowMapSizeInverse*10.;\x0afloat\x20penumbraRatio=((depthMetric-avgBlockerDepth)+AAOffset);\x0afloat\x20filterRadius=penumbraRatio*lightSizeUV*shadowMapSizeInverse;\x0afloat\x20random=getRand(vPositionFromLight.xy);\x0afloat\x20rotationAngle=random*3.1415926;\x0avec2\x20rotationVector=vec2(cos(rotationAngle),sin(rotationAngle));\x0afloat\x20shadow=0.;\x0afor\x20(int\x20i=0;\x20i<pcfTapCount;\x20i++)\x20{\x0avec3\x20offset=poissonSamplers[i];\x0aoffset=vec3(offset.x*rotationVector.x-offset.y*rotationVector.y,offset.y*rotationVector.x+offset.x*rotationVector.y,0.);\x0ashadow+=TEXTUREFUNC(shadowSampler,uvDepth+offset*filterRadius,0.);\x0a}\x0ashadow/=float(pcfTapCount);\x0ashadow=mix(shadow,1.,depthMetric-avgBlockerDepth);\x0ashadow=mix(darkness,1.,shadow);\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPCSS16(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20depthSampler,highp\x20sampler2DShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0areturn\x20computeShadowWithPCSS(vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPCSS32(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20depthSampler,highp\x20sampler2DShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0areturn\x20computeShadowWithPCSS(vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPCSS64(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20depthSampler,highp\x20sampler2DShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0areturn\x20computeShadowWithPCSS(vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithCSMPCSS16(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArray\x20depthSampler,highp\x20sampler2DArrayShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff,vec2\x20lightSizeUVCorrection,float\x20depthCorrection,float\x20penumbraDarkness)\x0a{\x0areturn\x20computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithCSMPCSS32(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArray\x20depthSampler,highp\x20sampler2DArrayShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff,vec2\x20lightSizeUVCorrection,float\x20depthCorrection,float\x20penumbraDarkness)\x0a{\x0areturn\x20computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithCSMPCSS64(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArray\x20depthSampler,highp\x20sampler2DArrayShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff,vec2\x20lightSizeUVCorrection,float\x20depthCorrection,float\x20penumbraDarkness)\x0a{\x0areturn\x20computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64,lightSizeUVCorrection,depthCorrection,penumbraDarkness);\x0a}\x0a#endif\x0a#endif\x0a','layerVertexShader','_blurTextureSizeY','_engine','UNSIGNED_INT_24_8','file:','computeSource','#ifdef\x20FRESNEL\x0afloat\x20computeFresnelTerm(vec3\x20viewDirection,vec3\x20worldNormal,float\x20bias,float\x20power)\x0a{\x0afloat\x20fresnelTerm=pow(bias+abs(dot(viewDirection,worldNormal)),power);\x0areturn\x20clamp(fresnelTerm,0.,1.);\x0a}\x0a#endif\x0a','NEVER','ColorKind','bumpFragmentMainFunctions','onDisposeObservable','Instantiate','_delayedClicks','Depth\x20texture\x20is\x20not\x20supported\x20by\x20your\x20browser\x20or\x20hardware.','setExternalTexture','_ignore','_effect','_projectionMatrix','_reportDrawCall','_depthMask','_connectVREvents','_mode','_hardwareTexture','\x20=\x20computeSkyBoxCoords(','ONE_MINUS_SRC_ALPHA','_bindGroupEntries','_reflectionColorName','tan','R32Float','depthAttachmentViewDescriptor','mat4','EACR11Unorm','setAlphaBlendEnabled','_onBaseAnimationEnd','postProcessManager','Half\x20float\x20texture\x20filtering\x20is\x20not\x20supported.\x20Mipmap\x20generation\x20and\x20sampling\x20mode\x20are\x20forced\x20to\x20false\x20and\x20TEXTURE_NEAREST_SAMPLINGMODE,\x20respectively.','vClipPlane4','reset','ETC2RGB8A1UnormSRGB','DEPTH_COMPONENT32F','handleVertexSide','TEXTURE_2D','\x0a\x20\x20\x20\x20#extension\x20GL_EXT_samplerless_texture_functions\x20:\x20enable\x0a\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x200)\x20uniform\x20texture2D\x20img;\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x201)\x20uniform\x20Params\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20ofstX;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20ofstY;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20width;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20height;\x0a\x20\x20\x20\x20};\x0a\x0a\x20\x20\x20\x20#ifdef\x20INVERTY\x0a\x20\x20\x20\x20\x20\x20\x20\x20layout(location\x20=\x200)\x20in\x20flat\x20ivec2\x20vTextureSize;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20layout(location\x20=\x200)\x20out\x20vec4\x20outColor;\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(gl_FragCoord.x\x20<\x20ofstX\x20||\x20gl_FragCoord.x\x20>=\x20ofstX\x20+\x20width)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20discard;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(gl_FragCoord.y\x20<\x20ofstY\x20||\x20gl_FragCoord.y\x20>=\x20ofstY\x20+\x20height)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20discard;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#ifdef\x20INVERTY\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20color\x20=\x20texelFetch(img,\x20ivec2(gl_FragCoord.x,\x20ofstY\x20+\x20height\x20-\x20(gl_FragCoord.y\x20-\x20ofstY)),\x200);\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20color\x20=\x20texelFetch(img,\x20ivec2(gl_FragCoord.xy),\x200);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20#ifdef\x20PREMULTIPLYALPHA\x0a\x20\x20\x20\x20\x20\x20\x20\x20color.rgb\x20*=\x20color.a;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20outColor\x20=\x20color;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','hdrFilteringPixelShader','struct\x20','options','animationStarted','depthOfFieldPixelShader','opacityFresnel','_sampleBurleyDiffusionProfile','setMatrix2x2','FIXED_EQUIRECTANGULAR_MIRRORED_MODE','updateDynamicIndexBuffer','vertexCompilationError','ACTION_OnPointerOutTrigger','modelIndexOffsetStart','_createRenderBuffer','_currentBundleList','#ifdef\x20FOG\x0afloat\x20fog=CalcFogFactor();\x0a#ifdef\x20PBR\x0afog=toLinearSpace(fog);\x0a#endif\x0acolor.rgb=mix(vFogColor,color.rgb,fog);\x0a#endif\x0a','faceIndex','isRenderTarget','_changeTextureMode','_getProjectedParticleConstant','HasStencilAspect','array','dynamicUniformBlocks','_compiledShaders','mapAsync','parseGLES3','oculusMultiview','depthCullingState','texImage2D','linePixelShader','uniforms','_vrDisplay','PREPASS_NORMAL_TEXTURE_TYPE','2DSampler','setStencilFailOp','_depthStencilTextureArray','log','skipPointerUpPicking','compileGLSL','CLIPPLANE4','MODE_TOPBOTTOM','attribute\x20vec2\x20position;\x0auniform\x20vec2\x20delta;\x0avarying\x20vec2\x20sampleCenter;\x0a#include<kernelBlurVaryingDeclaration>[0..varyingCount]\x0aconst\x20vec2\x20madd=vec2(0.5,0.5);\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0asampleCenter=(position*madd+madd);\x0a#include<kernelBlurVertex>[0..varyingCount]\x0agl_Position=vec4(position,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','_defineProjectionName','_createComputePipelineStageDescriptor','textureMode','furVertexShader','ExclusiveDoubleClickMode','observable','_onKeyDown','matrixBufferSize','destroy','imageProcessingPostProcess','pointerDownPredicate','emitVertex','ETC2RGB8Unorm','TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV','_fixReusablePostProcess','offsetY','IsWrapper','multiplyToRef','TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8','Too\x20many\x20textures\x20or\x20UBOs\x20have\x20been\x20declared\x20and\x20it\x20is\x20not\x20supported\x20in\x20WebGPU.','dataType','#ifdef\x20ORDER_INDEPENDENT_TRANSPARENCY\x0a#extension\x20GL_EXT_draw_buffers\x20:\x20require\x0alayout(location=0)\x20out\x20vec2\x20depth;\x20\x0alayout(location=1)\x20out\x20vec4\x20frontColor;\x0alayout(location=2)\x20out\x20vec4\x20backColor;\x0a#define\x20MAX_DEPTH\x2099999.0\x0ahighp\x20vec4\x20gl_FragColor;\x0auniform\x20sampler2D\x20oitDepthSampler;\x0auniform\x20sampler2D\x20oitFrontColorSampler;\x0a#endif\x0a','_meshPickProceed','lightVxFragmentDeclaration','ASTC8x6Unorm','TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC','queue','KEYDOWN','#if\x20SM_SOFTTRANSPARENTSHADOW==1\x0aif\x20((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM*alpha)\x20discard;\x0a#endif\x0a','handleFragmentSideCodeReflectionCoords','emitComments','clone','bayerDitherFunctions','onVRRequestPresentComplete','_OnGenerateOnlyFragmentCodeChanged','readValue','layerIndex','1628604iaEBvr','MODE_MONOSCOPIC','postProcess','UNSIGNED_INT','updateVector3','pbrBlockReflectivity','ETC2RGBA8UnormSRGB','removeUniforms','glowMapMergePixelShader','onApplyObservable','setVerticesBuffer','NAME_PHYSICSENGINE','TEXTUREFORMAT_RG','triplanarVertexShader','pbrBlockAlbedoOpacity','_unIndexed','hasTags','updateDirectly','subSurfaceConfiguration','TEXTURE_WRAP_S','depthPrePass','#version\x20450\x0d\x0a','funcMask','AddTagsTo','subMeshes','_webGLTexture','name','vectors','noisePixelShader','_videoTextureSupported','ALPHA_EQUATION_ADD','height','viewport','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20screenSize;\x0auniform\x20float\x20kernel[9];\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec2\x20onePixel=vec2(1.0,1.0)/screenSize;\x0avec4\x20colorSum\x20=\x0atexture2D(textureSampler,vUV+onePixel*vec2(-1,-1))*kernel[0]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(0,-1))*kernel[1]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(1,-1))*kernel[2]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(-1,0))*kernel[3]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(0,0))*kernel[4]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(1,0))*kernel[5]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(-1,1))*kernel[6]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(0,1))*kernel[7]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(1,1))*kernel[8];\x0afloat\x20kernelWeight\x20=\x0akernel[0]\x20+\x0akernel[1]\x20+\x0akernel[2]\x20+\x0akernel[3]\x20+\x0akernel[4]\x20+\x0akernel[5]\x20+\x0akernel[6]\x20+\x0akernel[7]\x20+\x0akernel[8];\x0aif\x20(kernelWeight<=0.0)\x20{\x0akernelWeight=1.0;\x0a}\x0agl_FragColor=vec4((colorSum/kernelWeight).rgb,1);\x0a}','CLIPPLANE','Unable\x20to\x20create\x20uniform\x20buffer','#if\x20defined(BUMP)\x20||\x20!defined(NORMAL)\x20||\x20defined(FORCENORMALFORWARD)\x20||\x20defined(SPECULARAA)\x20||\x20defined(CLEARCOAT_BUMP)\x20||\x20defined(ANISOTROPIC)\x0a#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0a#endif\x0a#ifdef\x20LODBASEDMICROSFURACE\x0a#extension\x20GL_EXT_shader_texture_lod\x20:\x20enable\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_BEGIN\x0a#ifdef\x20LOGARITHMICDEPTH\x0a#extension\x20GL_EXT_frag_depth\x20:\x20enable\x0a#endif\x0a#include<prePassDeclaration>[SCENE_MRT_COUNT]\x0aprecision\x20highp\x20float;\x0a#include<oitDeclaration>\x0a#ifndef\x20FROMLINEARSPACE\x0a#define\x20FROMLINEARSPACE\x0a#endif\x0a#include<__decl__pbrFragment>\x0a#include<pbrFragmentExtraDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<pbrFragmentSamplersDeclaration>\x0a#include<imageProcessingDeclaration>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<logDepthDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#include<helperFunctions>\x0a#include<subSurfaceScatteringFunctions>\x0a#include<importanceSampling>\x0a#include<pbrHelperFunctions>\x0a#include<imageProcessingFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<harmonicsFunctions>\x0a#include<pbrDirectLightingSetupFunctions>\x0a#include<pbrDirectLightingFalloffFunctions>\x0a#include<pbrBRDFFunctions>\x0a#include<hdrFilteringFunctions>\x0a#include<pbrDirectLightingFunctions>\x0a#include<pbrIBLFunctions>\x0a#include<bumpFragmentMainFunctions>\x0a#include<bumpFragmentFunctions>\x0a#ifdef\x20REFLECTION\x0a#include<reflectionFunction>\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0a#include<pbrBlockAlbedoOpacity>\x0a#include<pbrBlockReflectivity>\x0a#include<pbrBlockAmbientOcclusion>\x0a#include<pbrBlockAlphaFresnel>\x0a#include<pbrBlockAnisotropic>\x0a#include<pbrBlockReflection>\x0a#include<pbrBlockSheen>\x0a#include<pbrBlockClearcoat>\x0a#include<pbrBlockIridescence>\x0a#include<pbrBlockSubSurface>\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0a#include<pbrBlockNormalGeometric>\x0a#include<bumpFragment>\x0a#include<pbrBlockNormalFinal>\x0aalbedoOpacityOutParams\x20albedoOpacityOut;\x0a#ifdef\x20ALBEDO\x0avec4\x20albedoTexture=texture2D(albedoSampler,vAlbedoUV+uvOffset);\x0a#endif\x0a#ifdef\x20OPACITY\x0avec4\x20opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);\x0a#endif\x0a#ifdef\x20DECAL\x0avec4\x20decalColor=texture2D(decalSampler,vDecalUV+uvOffset);\x0a#endif\x0aalbedoOpacityBlock(\x0avAlbedoColor,\x0a#ifdef\x20ALBEDO\x0aalbedoTexture,\x0avAlbedoInfos,\x0a#endif\x0a#ifdef\x20OPACITY\x0aopacityMap,\x0avOpacityInfos,\x0a#endif\x0a#ifdef\x20DETAIL\x0adetailColor,\x0avDetailInfos,\x0a#endif\x0a#ifdef\x20DECAL\x0adecalColor,\x0avDecalInfos,\x0a#endif\x0aalbedoOpacityOut\x0a);\x0avec3\x20surfaceAlbedo=albedoOpacityOut.surfaceAlbedo;\x0afloat\x20alpha=albedoOpacityOut.alpha;\x0a#define\x20CUSTOM_FRAGMENT_UPDATE_ALPHA\x0a#include<depthPrePass>\x0a#define\x20CUSTOM_FRAGMENT_BEFORE_LIGHTS\x0aambientOcclusionOutParams\x20aoOut;\x0a#ifdef\x20AMBIENT\x0avec3\x20ambientOcclusionColorMap=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb;\x0a#endif\x0aambientOcclusionBlock(\x0a#ifdef\x20AMBIENT\x0aambientOcclusionColorMap,\x0avAmbientInfos,\x0a#endif\x0aaoOut\x0a);\x0a#include<pbrBlockLightmapInit>\x0a#ifdef\x20UNLIT\x0avec3\x20diffuseBase=vec3(1.,1.,1.);\x0a#else\x0avec3\x20baseColor=surfaceAlbedo;\x0areflectivityOutParams\x20reflectivityOut;\x0a#if\x20defined(REFLECTIVITY)\x0avec4\x20surfaceMetallicOrReflectivityColorMap=texture2D(reflectivitySampler,vReflectivityUV+uvOffset);\x0avec4\x20baseReflectivity=surfaceMetallicOrReflectivityColorMap;\x0a#ifndef\x20METALLICWORKFLOW\x0a#ifdef\x20REFLECTIVITY_GAMMA\x0asurfaceMetallicOrReflectivityColorMap=toLinearSpace(surfaceMetallicOrReflectivityColorMap);\x0a#endif\x0asurfaceMetallicOrReflectivityColorMap.rgb*=vReflectivityInfos.y;\x0a#endif\x0a#endif\x0a#if\x20defined(MICROSURFACEMAP)\x0avec4\x20microSurfaceTexel=texture2D(microSurfaceSampler,vMicroSurfaceSamplerUV+uvOffset)*vMicroSurfaceSamplerInfos.y;\x0a#endif\x0a#ifdef\x20METALLICWORKFLOW\x0avec4\x20metallicReflectanceFactors=vMetallicReflectanceFactors;\x0a#ifdef\x20REFLECTANCE\x0avec4\x20reflectanceFactorsMap=texture2D(reflectanceSampler,vReflectanceUV+uvOffset);\x0a#ifdef\x20REFLECTANCE_GAMMA\x0areflectanceFactorsMap=toLinearSpace(reflectanceFactorsMap);\x0a#endif\x0ametallicReflectanceFactors.rgb*=reflectanceFactorsMap.rgb;\x0a#endif\x0a#ifdef\x20METALLIC_REFLECTANCE\x0avec4\x20metallicReflectanceFactorsMap=texture2D(metallicReflectanceSampler,vMetallicReflectanceUV+uvOffset);\x0a#ifdef\x20METALLIC_REFLECTANCE_GAMMA\x0ametallicReflectanceFactorsMap=toLinearSpace(metallicReflectanceFactorsMap);\x0a#endif\x0a#ifndef\x20METALLIC_REFLECTANCE_USE_ALPHA_ONLY\x0ametallicReflectanceFactors.rgb*=metallicReflectanceFactorsMap.rgb;\x0a#endif\x0ametallicReflectanceFactors*=metallicReflectanceFactorsMap.a;\x0a#endif\x0a#endif\x0areflectivityBlock(\x0avReflectivityColor,\x0a#ifdef\x20METALLICWORKFLOW\x0asurfaceAlbedo,\x0ametallicReflectanceFactors,\x0a#endif\x0a#ifdef\x20REFLECTIVITY\x0avReflectivityInfos,\x0asurfaceMetallicOrReflectivityColorMap,\x0a#endif\x0a#if\x20defined(METALLICWORKFLOW)\x20&&\x20defined(REFLECTIVITY)\x20&&\x20defined(AOSTOREINMETALMAPRED)\x0aaoOut.ambientOcclusionColor,\x0a#endif\x0a#ifdef\x20MICROSURFACEMAP\x0amicroSurfaceTexel,\x0a#endif\x0a#ifdef\x20DETAIL\x0adetailColor,\x0avDetailInfos,\x0a#endif\x0areflectivityOut\x0a);\x0afloat\x20microSurface=reflectivityOut.microSurface;\x0afloat\x20roughness=reflectivityOut.roughness;\x0a#ifdef\x20METALLICWORKFLOW\x0asurfaceAlbedo=reflectivityOut.surfaceAlbedo;\x0a#endif\x0a#if\x20defined(METALLICWORKFLOW)\x20&&\x20defined(REFLECTIVITY)\x20&&\x20defined(AOSTOREINMETALMAPRED)\x0aaoOut.ambientOcclusionColor=reflectivityOut.ambientOcclusionColor;\x0a#endif\x0a#ifdef\x20ALPHAFRESNEL\x0a#if\x20defined(ALPHATEST)\x20||\x20defined(ALPHABLEND)\x0aalphaFresnelOutParams\x20alphaFresnelOut;\x0aalphaFresnelBlock(\x0anormalW,\x0aviewDirectionW,\x0aalpha,\x0amicroSurface,\x0aalphaFresnelOut\x0a);\x0aalpha=alphaFresnelOut.alpha;\x0a#endif\x0a#endif\x0a#include<pbrBlockGeometryInfo>\x0a#ifdef\x20ANISOTROPIC\x0aanisotropicOutParams\x20anisotropicOut;\x0a#ifdef\x20ANISOTROPIC_TEXTURE\x0avec3\x20anisotropyMapData=texture2D(anisotropySampler,vAnisotropyUV+uvOffset).rgb*vAnisotropyInfos.y;\x0a#endif\x0aanisotropicBlock(\x0avAnisotropy,\x0a#ifdef\x20ANISOTROPIC_TEXTURE\x0aanisotropyMapData,\x0a#endif\x0aTBN,\x0anormalW,\x0aviewDirectionW,\x0aanisotropicOut\x0a);\x0a#endif\x0a#ifdef\x20REFLECTION\x0areflectionOutParams\x20reflectionOut;\x0a#ifndef\x20USE_CUSTOM_REFLECTION\x0areflectionBlock(\x0avPositionW,\x0anormalW,\x0aalphaG,\x0avReflectionMicrosurfaceInfos,\x0avReflectionInfos,\x0avReflectionColor,\x0a#ifdef\x20ANISOTROPIC\x0aanisotropicOut,\x0a#endif\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0aNdotVUnclamped,\x0a#endif\x0a#ifdef\x20LINEARSPECULARREFLECTION\x0aroughness,\x0a#endif\x0areflectionSampler,\x0a#if\x20defined(NORMAL)\x20&&\x20defined(USESPHERICALINVERTEX)\x0avEnvironmentIrradiance,\x0a#endif\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#if\x20!defined(NORMAL)\x20||\x20!defined(USESPHERICALINVERTEX)\x0areflectionMatrix,\x0a#endif\x0a#endif\x0a#ifdef\x20USEIRRADIANCEMAP\x0airradianceSampler,\x0a#endif\x0a#ifndef\x20LODBASEDMICROSFURACE\x0areflectionSamplerLow,\x0areflectionSamplerHigh,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0avReflectionFilteringInfo,\x0a#endif\x0areflectionOut\x0a);\x0a#else\x0a#define\x20CUSTOM_REFLECTION\x0a#endif\x0a#endif\x0a#include<pbrBlockReflectance0>\x0a#ifdef\x20SHEEN\x0asheenOutParams\x20sheenOut;\x0a#ifdef\x20SHEEN_TEXTURE\x0avec4\x20sheenMapData=texture2D(sheenSampler,vSheenUV+uvOffset);\x0a#endif\x0a#if\x20defined(SHEEN_ROUGHNESS)\x20&&\x20defined(SHEEN_TEXTURE_ROUGHNESS)\x20&&\x20!defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL)\x20&&\x20!defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\x0avec4\x20sheenMapRoughnessData=texture2D(sheenRoughnessSampler,vSheenRoughnessUV+uvOffset)*vSheenInfos.w;\x0a#endif\x0asheenBlock(\x0avSheenColor,\x0a#ifdef\x20SHEEN_ROUGHNESS\x0avSheenRoughness,\x0a#if\x20defined(SHEEN_TEXTURE_ROUGHNESS)\x20&&\x20!defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL)\x20&&\x20!defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\x0asheenMapRoughnessData,\x0a#endif\x0a#endif\x0aroughness,\x0a#ifdef\x20SHEEN_TEXTURE\x0asheenMapData,\x0avSheenInfos.y,\x0a#endif\x0areflectance,\x0a#ifdef\x20SHEEN_LINKWITHALBEDO\x0abaseColor,\x0asurfaceAlbedo,\x0a#endif\x0a#ifdef\x20ENVIRONMENTBRDF\x0aNdotV,\x0aenvironmentBrdf,\x0a#endif\x0a#if\x20defined(REFLECTION)\x20&&\x20defined(ENVIRONMENTBRDF)\x0aAARoughnessFactors,\x0avReflectionMicrosurfaceInfos,\x0avReflectionInfos,\x0avReflectionColor,\x0avLightingIntensity,\x0areflectionSampler,\x0areflectionOut.reflectionCoords,\x0aNdotVUnclamped,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0areflectionSamplerLow,\x0areflectionSamplerHigh,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0avReflectionFilteringInfo,\x0a#endif\x0a#if\x20!defined(REFLECTIONMAP_SKYBOX)\x20&&\x20defined(RADIANCEOCCLUSION)\x0aseo,\x0a#endif\x0a#if\x20!defined(REFLECTIONMAP_SKYBOX)\x20&&\x20defined(HORIZONOCCLUSION)\x20&&\x20defined(BUMP)\x20&&\x20defined(REFLECTIONMAP_3D)\x0aeho,\x0a#endif\x0a#endif\x0asheenOut\x0a);\x0a#ifdef\x20SHEEN_LINKWITHALBEDO\x0asurfaceAlbedo=sheenOut.surfaceAlbedo;\x0a#endif\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0avec2\x20clearCoatMapData=texture2D(clearCoatSampler,vClearCoatUV+uvOffset).rg*vClearCoatInfos.y;\x0a#endif\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0airidescenceOutParams\x20iridescenceOut;\x0a#ifdef\x20IRIDESCENCE_TEXTURE\x0avec2\x20iridescenceMapData=texture2D(iridescenceSampler,vIridescenceUV+uvOffset).rg*vIridescenceInfos.y;\x0a#endif\x0a#ifdef\x20IRIDESCENCE_THICKNESS_TEXTURE\x0avec2\x20iridescenceThicknessMapData=texture2D(iridescenceThicknessSampler,vIridescenceThicknessUV+uvOffset).rg*vIridescenceInfos.w;\x0a#endif\x0airidescenceBlock(\x0avIridescenceParams,\x0aNdotV,\x0aspecularEnvironmentR0,\x0a#ifdef\x20IRIDESCENCE_TEXTURE\x0airidescenceMapData,\x0a#endif\x0a#ifdef\x20IRIDESCENCE_THICKNESS_TEXTURE\x0airidescenceThicknessMapData,\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0aNdotVUnclamped,\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0aclearCoatMapData,\x0a#endif\x0a#endif\x0airidescenceOut\x0a);\x0afloat\x20iridescenceIntensity=iridescenceOut.iridescenceIntensity;\x0aspecularEnvironmentR0=iridescenceOut.specularEnvironmentR0;\x0a#endif\x0aclearcoatOutParams\x20clearcoatOut;\x0a#ifdef\x20CLEARCOAT\x0a#if\x20defined(CLEARCOAT_TEXTURE_ROUGHNESS)\x20&&\x20!defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL)\x20&&\x20!defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\x0avec4\x20clearCoatMapRoughnessData=texture2D(clearCoatRoughnessSampler,vClearCoatRoughnessUV+uvOffset)*vClearCoatInfos.w;\x0a#endif\x0a#if\x20defined(CLEARCOAT_TINT)\x20&&\x20defined(CLEARCOAT_TINT_TEXTURE)\x0avec4\x20clearCoatTintMapData=texture2D(clearCoatTintSampler,vClearCoatTintUV+uvOffset);\x0a#endif\x0a#ifdef\x20CLEARCOAT_BUMP\x0avec4\x20clearCoatBumpMapData=texture2D(clearCoatBumpSampler,vClearCoatBumpUV+uvOffset);\x0a#endif\x0aclearcoatBlock(\x0avPositionW,\x0ageometricNormalW,\x0aviewDirectionW,\x0avClearCoatParams,\x0a#if\x20defined(CLEARCOAT_TEXTURE_ROUGHNESS)\x20&&\x20!defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL)\x20&&\x20!defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\x0aclearCoatMapRoughnessData,\x0a#endif\x0aspecularEnvironmentR0,\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0aclearCoatMapData,\x0a#endif\x0a#ifdef\x20CLEARCOAT_TINT\x0avClearCoatTintParams,\x0aclearCoatColorAtDistance,\x0avClearCoatRefractionParams,\x0a#ifdef\x20CLEARCOAT_TINT_TEXTURE\x0aclearCoatTintMapData,\x0a#endif\x0a#endif\x0a#ifdef\x20CLEARCOAT_BUMP\x0avClearCoatBumpInfos,\x0aclearCoatBumpMapData,\x0avClearCoatBumpUV,\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x0avTBN,\x0a#else\x0avClearCoatTangentSpaceParams,\x0a#endif\x0a#ifdef\x20OBJECTSPACE_NORMALMAP\x0anormalMatrix,\x0a#endif\x0a#endif\x0a#if\x20defined(FORCENORMALFORWARD)\x20&&\x20defined(NORMAL)\x0afaceNormal,\x0a#endif\x0a#ifdef\x20REFLECTION\x0avReflectionMicrosurfaceInfos,\x0avReflectionInfos,\x0avReflectionColor,\x0avLightingIntensity,\x0areflectionSampler,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0areflectionSamplerLow,\x0areflectionSamplerHigh,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0avReflectionFilteringInfo,\x0a#endif\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0a#ifdef\x20RADIANCEOCCLUSION\x0aambientMonochrome,\x0a#endif\x0a#endif\x0a#if\x20defined(CLEARCOAT_BUMP)\x20||\x20defined(TWOSIDEDLIGHTING)\x0a(gl_FrontFacing\x20?\x201.\x20:\x20-1.),\x0a#endif\x0aclearcoatOut\x0a);\x0a#else\x0aclearcoatOut.specularEnvironmentR0=specularEnvironmentR0;\x0a#endif\x0a#include<pbrBlockReflectance>\x0asubSurfaceOutParams\x20subSurfaceOut;\x0a#ifdef\x20SUBSURFACE\x0a#ifdef\x20SS_THICKNESSANDMASK_TEXTURE\x0avec4\x20thicknessMap=texture2D(thicknessSampler,vThicknessUV+uvOffset);\x0a#endif\x0a#ifdef\x20SS_REFRACTIONINTENSITY_TEXTURE\x0avec4\x20refractionIntensityMap=texture2D(refractionIntensitySampler,vRefractionIntensityUV+uvOffset);\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCYINTENSITY_TEXTURE\x0avec4\x20translucencyIntensityMap=texture2D(translucencyIntensitySampler,vTranslucencyIntensityUV+uvOffset);\x0a#endif\x0asubSurfaceBlock(\x0avSubSurfaceIntensity,\x0avThicknessParam,\x0avTintColor,\x0anormalW,\x0aspecularEnvironmentReflectance,\x0a#ifdef\x20SS_THICKNESSANDMASK_TEXTURE\x0athicknessMap,\x0a#endif\x0a#ifdef\x20SS_REFRACTIONINTENSITY_TEXTURE\x0arefractionIntensityMap,\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCYINTENSITY_TEXTURE\x0atranslucencyIntensityMap,\x0a#endif\x0a#ifdef\x20REFLECTION\x0a#ifdef\x20SS_TRANSLUCENCY\x0areflectionMatrix,\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#if\x20!defined(NORMAL)\x20||\x20!defined(USESPHERICALINVERTEX)\x0areflectionOut.irradianceVector,\x0a#endif\x0a#if\x20defined(REALTIME_FILTERING)\x0areflectionSampler,\x0avReflectionFilteringInfo,\x0a#endif\x0a#endif\x0a#ifdef\x20USEIRRADIANCEMAP\x0airradianceSampler,\x0a#endif\x0a#endif\x0a#endif\x0a#if\x20defined(SS_REFRACTION)\x20||\x20defined(SS_TRANSLUCENCY)\x0asurfaceAlbedo,\x0a#endif\x0a#ifdef\x20SS_REFRACTION\x0avPositionW,\x0aviewDirectionW,\x0aview,\x0avRefractionInfos,\x0arefractionMatrix,\x0avRefractionMicrosurfaceInfos,\x0avLightingIntensity,\x0a#ifdef\x20SS_LINKREFRACTIONTOTRANSPARENCY\x0aalpha,\x0a#endif\x0a#ifdef\x20SS_LODINREFRACTIONALPHA\x0aNdotVUnclamped,\x0a#endif\x0a#ifdef\x20SS_LINEARSPECULARREFRACTION\x0aroughness,\x0a#endif\x0aalphaG,\x0arefractionSampler,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0arefractionSamplerLow,\x0arefractionSamplerHigh,\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0aanisotropicOut,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0avRefractionFilteringInfo,\x0a#endif\x0a#ifdef\x20SS_USE_LOCAL_REFRACTIONMAP_CUBIC\x0avRefractionPosition,\x0avRefractionSize,\x0a#endif\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCY\x0avDiffusionDistance,\x0a#endif\x0asubSurfaceOut\x0a);\x0a#ifdef\x20SS_REFRACTION\x0asurfaceAlbedo=subSurfaceOut.surfaceAlbedo;\x0a#ifdef\x20SS_LINKREFRACTIONTOTRANSPARENCY\x0aalpha=subSurfaceOut.alpha;\x0a#endif\x0a#endif\x0a#else\x0asubSurfaceOut.specularEnvironmentReflectance=specularEnvironmentReflectance;\x0a#endif\x0a#include<pbrBlockDirectLighting>\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#include<pbrBlockFinalLitComponents>\x0a#endif\x20\x0a#include<pbrBlockFinalUnlitComponents>\x0a#define\x20CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION\x0a#include<pbrBlockFinalColorComposition>\x0a#include<logDepthFragment>\x0a#include<fogFragment>(color,finalColor)\x0a#include<pbrBlockImageProcessing>\x0a#define\x20CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\x0a#ifdef\x20PREPASS\x0afloat\x20writeGeometryInfo=finalColor.a>0.4\x20?\x201.0\x20:\x200.0;\x0a#ifdef\x20PREPASS_POSITION\x0agl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);\x0a#endif\x0a#ifdef\x20PREPASS_VELOCITY\x0avec2\x20a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;\x0avec2\x20b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;\x0avec2\x20velocity=abs(a-b);\x0avelocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;\x0agl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);\x0a#endif\x0a#ifdef\x20PREPASS_ALBEDO_SQRT\x0avec3\x20sqAlbedo=sqrt(surfaceAlbedo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_IRRADIANCE\x0avec3\x20irradiance=finalDiffuse;\x0a#ifndef\x20UNLIT\x0a#ifdef\x20REFLECTION\x0airradiance+=finalIrradiance;\x0a#endif\x0a#endif\x0a#ifdef\x20SS_SCATTERING\x0agl_FragData[0]=vec4(finalColor.rgb-irradiance,finalColor.a);\x20\x0airradiance/=sqAlbedo;\x0a#else\x0agl_FragData[0]=finalColor;\x20\x0afloat\x20scatteringDiffusionProfile=255.;\x0a#endif\x0agl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(clamp(irradiance,vec3(0.),vec3(1.)),writeGeometryInfo*scatteringDiffusionProfile/255.);\x20\x0a#else\x0agl_FragData[0]=vec4(finalColor.rgb,finalColor.a);\x0a#endif\x0a#ifdef\x20PREPASS_DEPTH\x0agl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_NORMAL\x0agl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_ALBEDO_SQRT\x0agl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(sqAlbedo,writeGeometryInfo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_REFLECTIVITY\x0a#ifndef\x20UNLIT\x0agl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(specularEnvironmentR0,microSurface)*writeGeometryInfo;\x0a#else\x0agl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(\x200.0,0.0,0.0,1.0\x20)*writeGeometryInfo;\x0a#endif\x0a#endif\x0a#endif\x0a#if\x20!defined(PREPASS)\x20||\x20defined(WEBGL2)\x0agl_FragColor=finalColor;\x0a#endif\x0a#include<oitFragment>\x0a#if\x20ORDER_INDEPENDENT_TRANSPARENCY\x0aif\x20(fragDepth==nearestDepth)\x20{\x0afrontColor.rgb+=finalColor.rgb*finalColor.a*alphaMultiplier;\x0afrontColor.a=1.0-alphaMultiplier*(1.0-finalColor.a);\x0a}\x20else\x20{\x0abackColor+=finalColor;\x0a}\x0a#endif\x0a#include<pbrDebug>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','_partialLoadFile','getUniform','_GetBlockInformationFromFormat','test','toGlobal','UNPACK_ALIGNMENT','display','_onKeyUp','getEmittedParticleSystems','BILINEAR_SAMPLINGMODE','_pixelPerfect','#ifndef','concat','TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4\x20format\x20not\x20supported\x20in\x20WebGPU','logDepthDeclaration','boundingBoxPosition','disableVR','_IsComparisonSamplerByWebGPUSamplerType','maxMSAASamples','TEXTUREFORMAT_RGB_INTEGER\x20format\x20not\x20supported\x20in\x20WebGPU','No\x20\x22main\x22\x20function\x20found\x20in\x20shader\x20code!\x20Processing\x20aborted.','ASTC6x5Unorm','samplingModes','hasMoreFallbacks','_bindGroups','gl_Position.z\x20=\x20(gl_Position.z\x20+\x20gl_Position.w)\x20/\x202.0;\x0a','Timestamp','_processSamplers','GL_ALPHA_EQUATION_SUBTRACT','hdrFilteringVertexShader','attribute\x20vec3\x20position;\x0aattribute\x20vec2\x20offset;\x0aattribute\x20vec4\x20color;\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0auniform\x20vec2\x20size;\x0avarying\x20vec2\x20uv;\x0avarying\x20vec3\x20diffuseColor;\x0avoid\x20main(void)\x20{\x0avec3\x20cornerPos;\x0acornerPos.xy=vec2(offset.x-0.5,offset.y-0.5)*size;\x0acornerPos.z=0.0;\x0avec3\x20viewPos=(view*vec4(position,1.0)).xyz+cornerPos;\x0agl_Position=projection*vec4(viewPos,1.0);\x0auv=offset;\x0adiffuseColor=color.rgb;\x0a}\x0a','_isRenderingStateCompiled','_preCreateBindGroupEntries','CylinderDirectedParticleEmitter','disableEffectInPipeline','#ifdef\x20FOG\x0avFogDistance=(view*worldPos).xyz;\x0a#endif\x0a','__framebuffer','PointParticleEmitter','clearQuad','_addCameraPointerObserver','bumpFragment','attribute\x20vec3\x20position;\x0aattribute\x20vec2\x20offset;\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0auniform\x20vec2\x20size;\x0avarying\x20vec2\x20uv;\x0avoid\x20main(void)\x20{\x0avec3\x20cornerPos;\x0acornerPos.xy=vec2(offset.x-0.5,offset.y-0.5)*size;\x0acornerPos.z=0.0;\x0avec3\x20viewPos=(view*vec4(position,1.0)).xyz+cornerPos;\x0agl_Position=projection*vec4(viewPos,1.0);\x0auv=offset;\x0a}\x0a','BC7RGBAUnormSRGB','//Entry\x20point\x0d\x0a','TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5','enableEffect','processCodeAfterIncludes','_prePassRenderTarget','createRawTexture3D','_getCurrentRenderPassIndex','float\x20computeDistanceLightFalloff_Standard(vec3\x20lightOffset,float\x20range)\x0a{\x0areturn\x20max(0.,1.0-length(lightOffset)/range);\x0a}\x0afloat\x20computeDistanceLightFalloff_Physical(float\x20lightDistanceSquared)\x0a{\x0areturn\x201.0/maxEps(lightDistanceSquared);\x0a}\x0afloat\x20computeDistanceLightFalloff_GLTF(float\x20lightDistanceSquared,float\x20inverseSquaredRange)\x0a{\x0afloat\x20lightDistanceFalloff=1.0/maxEps(lightDistanceSquared);\x0afloat\x20factor=lightDistanceSquared*inverseSquaredRange;\x0afloat\x20attenuation=saturate(1.0-factor*factor);\x0aattenuation*=attenuation;\x0alightDistanceFalloff*=attenuation;\x0areturn\x20lightDistanceFalloff;\x0a}\x0afloat\x20computeDistanceLightFalloff(vec3\x20lightOffset,float\x20lightDistanceSquared,float\x20range,float\x20inverseSquaredRange)\x0a{\x0a#ifdef\x20USEPHYSICALLIGHTFALLOFF\x0areturn\x20computeDistanceLightFalloff_Physical(lightDistanceSquared);\x0a#elif\x20defined(USEGLTFLIGHTFALLOFF)\x0areturn\x20computeDistanceLightFalloff_GLTF(lightDistanceSquared,inverseSquaredRange);\x0a#else\x0areturn\x20computeDistanceLightFalloff_Standard(lightOffset,range);\x0a#endif\x0a}\x0afloat\x20computeDirectionalLightFalloff_Standard(vec3\x20lightDirection,vec3\x20directionToLightCenterW,float\x20cosHalfAngle,float\x20exponent)\x0a{\x0afloat\x20falloff=0.0;\x0afloat\x20cosAngle=maxEps(dot(-lightDirection,directionToLightCenterW));\x0aif\x20(cosAngle>=cosHalfAngle)\x0a{\x0afalloff=max(0.,pow(cosAngle,exponent));\x0a}\x0areturn\x20falloff;\x0a}\x0afloat\x20computeDirectionalLightFalloff_Physical(vec3\x20lightDirection,vec3\x20directionToLightCenterW,float\x20cosHalfAngle)\x0a{\x0aconst\x20float\x20kMinusLog2ConeAngleIntensityRatio=6.64385618977;\x20\x0afloat\x20concentrationKappa=kMinusLog2ConeAngleIntensityRatio/(1.0-cosHalfAngle);\x0avec4\x20lightDirectionSpreadSG=vec4(-lightDirection*concentrationKappa,-concentrationKappa);\x0afloat\x20falloff=exp2(dot(vec4(directionToLightCenterW,1.0),lightDirectionSpreadSG));\x0areturn\x20falloff;\x0a}\x0afloat\x20computeDirectionalLightFalloff_GLTF(vec3\x20lightDirection,vec3\x20directionToLightCenterW,float\x20lightAngleScale,float\x20lightAngleOffset)\x0a{\x0afloat\x20cd=dot(-lightDirection,directionToLightCenterW);\x0afloat\x20falloff=saturate(cd*lightAngleScale+lightAngleOffset);\x0afalloff*=falloff;\x0areturn\x20falloff;\x0a}\x0afloat\x20computeDirectionalLightFalloff(vec3\x20lightDirection,vec3\x20directionToLightCenterW,float\x20cosHalfAngle,float\x20exponent,float\x20lightAngleScale,float\x20lightAngleOffset)\x0a{\x0a#ifdef\x20USEPHYSICALLIGHTFALLOFF\x0areturn\x20computeDirectionalLightFalloff_Physical(lightDirection,directionToLightCenterW,cosHalfAngle);\x0a#elif\x20defined(USEGLTFLIGHTFALLOFF)\x0areturn\x20computeDirectionalLightFalloff_GLTF(lightDirection,directionToLightCenterW,lightAngleScale,lightAngleOffset);\x0a#else\x0areturn\x20computeDirectionalLightFalloff_Standard(lightDirection,directionToLightCenterW,cosHalfAngle,exponent);\x0a#endif\x0a}','Generate\x20only\x20fragment\x20code','_detachCameras','TransformNormalFromFloatsToRef','world','createMultiviewRenderTargetTexture','refreshBoundingInfo','document','LongPressDelay','setArray2','_arePrePassDirty','substring','isFloatTexture','updateRawTexture2DArray','keys','uniform\x20sampler2D\x20textureSampler;\x20\x0auniform\x20float\x20chromatic_aberration;\x0auniform\x20float\x20radialIntensity;\x0auniform\x20vec2\x20direction;\x0auniform\x20vec2\x20centerPosition;\x0auniform\x20float\x20screen_width;\x0auniform\x20float\x20screen_height;\x0avarying\x20vec2\x20vUV;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec2\x20centered_screen_pos=vec2(vUV.x-centerPosition.x,vUV.y-centerPosition.y);\x0avec2\x20directionOfEffect=direction;\x0aif(directionOfEffect.x==0.\x20&&\x20directionOfEffect.y==0.){\x0adirectionOfEffect=normalize(centered_screen_pos);\x0a}\x0afloat\x20radius2=centered_screen_pos.x*centered_screen_pos.x\x0a+\x20centered_screen_pos.y*centered_screen_pos.y;\x0afloat\x20radius=sqrt(radius2);\x0avec4\x20original=texture2D(textureSampler,vUV);\x0avec3\x20ref_indices=vec3(-0.3,0.0,0.3);\x0afloat\x20ref_shiftX=chromatic_aberration*pow(radius,radialIntensity)*directionOfEffect.x/screen_width;\x0afloat\x20ref_shiftY=chromatic_aberration*pow(radius,radialIntensity)*directionOfEffect.y/screen_height;\x0avec2\x20ref_coords_r=vec2(vUV.x+ref_indices.r*ref_shiftX,vUV.y+ref_indices.r*ref_shiftY*0.5);\x0avec2\x20ref_coords_g=vec2(vUV.x+ref_indices.g*ref_shiftX,vUV.y+ref_indices.g*ref_shiftY*0.5);\x0avec2\x20ref_coords_b=vec2(vUV.x+ref_indices.b*ref_shiftX,vUV.y+ref_indices.b*ref_shiftY*0.5);\x0aoriginal.r=texture2D(textureSampler,ref_coords_r).r;\x0aoriginal.g=texture2D(textureSampler,ref_coords_g).g;\x0aoriginal.b=texture2D(textureSampler,ref_coords_b).b;\x0aoriginal.a=clamp(texture2D(textureSampler,ref_coords_r).a+texture2D(textureSampler,ref_coords_g).a+texture2D(textureSampler,ref_coords_b).a,0.,1.);\x0agl_FragColor=original;\x0a}','oitFragment','_getBuffer','attribute\x20vec3\x20position;\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<clipPlaneVertexDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20MULTIVIEW\x0auniform\x20mat4\x20viewProjectionR;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0a#ifdef\x20MULTIVIEW\x0aif\x20(gl_ViewID_OVR==0u)\x20{\x0agl_Position=viewProjection*worldPos;\x0a}\x20else\x20{\x0agl_Position=viewProjectionR*worldPos;\x0a}\x0a#else\x0agl_Position=viewProjection*worldPos;\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<vertexColorMixing>\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20','_EvaluatePreProcessors','uniform\x20sampler2D\x20textureSampler;\x20\x0auniform\x20float\x20gain;\x0auniform\x20float\x20threshold;\x0auniform\x20float\x20screen_width;\x0auniform\x20float\x20screen_height;\x0avarying\x20vec2\x20vUV;\x0avec4\x20highlightColor(vec4\x20color)\x20{\x0avec4\x20highlight=color;\x0afloat\x20luminance=dot(highlight.rgb,vec3(0.2125,0.7154,0.0721));\x0afloat\x20lum_threshold;\x0aif\x20(threshold>1.0)\x20{\x20lum_threshold=0.94+0.01*threshold;\x20}\x0aelse\x20{\x20lum_threshold=0.5+0.44*threshold;\x20}\x0aluminance=clamp((luminance-lum_threshold)*(1.0/(1.0-lum_threshold)),0.0,1.0);\x0ahighlight*=luminance*gain;\x0ahighlight.a=1.0;\x0areturn\x20highlight;\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec4\x20original=texture2D(textureSampler,vUV);\x0aif\x20(gain==-1.0)\x20{\x0agl_FragColor=vec4(0.0,0.0,0.0,1.0);\x0areturn;\x0a}\x0afloat\x20w=2.0/screen_width;\x0afloat\x20h=2.0/screen_height;\x0afloat\x20weight=1.0;\x0avec4\x20blurred=vec4(0.0,0.0,0.0,0.0);\x0a#ifdef\x20PENTAGON\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.84*w,0.43*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.48*w,-1.29*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.61*w,1.51*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.55*w,-0.74*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.71*w,-0.52*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.94*w,1.59*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.40*w,-1.87*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.62*w,1.16*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.09*w,0.25*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.46*w,-1.71*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.08*w,2.42*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.85*w,-1.89*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.89*w,0.16*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.29*w,1.88*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.40*w,-2.81*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.54*w,2.26*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.60*w,-0.61*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.31*w,-1.30*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.83*w,2.53*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.12*w,-2.48*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.60*w,1.11*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.99*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.50*w,-2.81*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.85*w,3.33*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.94*w,-1.92*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.27*w,-0.53*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.95*w,2.48*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.23*w,-3.04*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.17*w,2.05*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.97*w,-0.04*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.25*w,-2.00*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.31*w,3.08*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.94*w,-2.59*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.37*w,0.64*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.13*w,1.93*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.03*w,-3.65*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.60*w,3.17*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.14*w,-1.19*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.00*w,-1.19*h)));\x0a#else\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.85*w,0.36*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.52*w,-1.14*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.46*w,1.42*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.46*w,-0.83*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.79*w,-0.42*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.11*w,1.62*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.29*w,-2.07*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.69*w,1.39*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.28*w,0.12*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.65*w,-1.69*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.08*w,2.44*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.63*w,-1.90*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.55*w,0.31*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.13*w,1.52*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.56*w,-2.61*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.38*w,2.34*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.64*w,-0.81*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.53*w,-1.21*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.06*w,2.63*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.00*w,-2.69*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.59*w,1.32*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.78*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.57*w,-2.50*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.54*w,2.93*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.39*w,-1.81*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,-0.28*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.04*w,2.25*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.02*w,-3.05*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.09*w,2.25*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.07*w,-0.25*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.44*w,-1.90*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.52*w,3.05*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.68*w,-2.61*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,0.79*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.76*w,1.46*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.05*w,-2.94*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.21*w,2.88*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.84*w,-1.30*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.98*w,-0.96*h)));\x0a#endif\x0ablurred/=39.0;\x0agl_FragColor=blurred;\x0a}','_numExternalTextures','#if\x20defined(BUMP)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump)\x0a#endif\x0a#if\x20defined(DETAIL)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_SAMPLERNAME_,detail)\x0a#endif\x0a#if\x20defined(BUMP)\x20&&\x20defined(PARALLAX)\x0aconst\x20float\x20minSamples=4.;\x0aconst\x20float\x20maxSamples=15.;\x0aconst\x20int\x20iMaxSamples=15;\x0avec2\x20parallaxOcclusion(vec3\x20vViewDirCoT,vec3\x20vNormalCoT,vec2\x20texCoord,float\x20parallaxScale)\x20{\x0afloat\x20parallaxLimit=length(vViewDirCoT.xy)/vViewDirCoT.z;\x0aparallaxLimit*=parallaxScale;\x0avec2\x20vOffsetDir=normalize(vViewDirCoT.xy);\x0avec2\x20vMaxOffset=vOffsetDir*parallaxLimit;\x0afloat\x20numSamples=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));\x0afloat\x20stepSize=1.0/numSamples;\x0afloat\x20currRayHeight=1.0;\x0avec2\x20vCurrOffset=vec2(0,0);\x0avec2\x20vLastOffset=vec2(0,0);\x0afloat\x20lastSampledHeight=1.0;\x0afloat\x20currSampledHeight=1.0;\x0abool\x20keepWorking=true;\x0afor\x20(int\x20i=0;\x20i<iMaxSamples;\x20i++)\x0a{\x0acurrSampledHeight=texture2D(bumpSampler,texCoord+vCurrOffset).w;\x0aif\x20(!keepWorking)\x0a{\x0a}\x0aelse\x20if\x20(currSampledHeight>currRayHeight)\x0a{\x0afloat\x20delta1=currSampledHeight-currRayHeight;\x0afloat\x20delta2=(currRayHeight+stepSize)-lastSampledHeight;\x0afloat\x20ratio=delta1/(delta1+delta2);\x0avCurrOffset=(ratio)*\x20vLastOffset+(1.0-ratio)*vCurrOffset;\x0akeepWorking=false;\x0a}\x0aelse\x0a{\x0acurrRayHeight-=stepSize;\x0avLastOffset=vCurrOffset;\x0avCurrOffset+=stepSize*vMaxOffset;\x0alastSampledHeight=currSampledHeight;\x0a}\x0a}\x0areturn\x20vCurrOffset;\x0a}\x0avec2\x20parallaxOffset(vec3\x20viewDir,float\x20heightScale)\x0a{\x0afloat\x20height=texture2D(bumpSampler,vBumpUV).w;\x0avec2\x20texCoordOffset=heightScale*viewDir.xy*height;\x0areturn\x20-texCoordOffset;\x0a}\x0a#endif\x0a','MultiRenderTarget','capacity','reflectionCoords','];\x0a','onPointerUp','#ifdef\x20CLIPPLANE\x0ain\x20float\x20fClipDistance;\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0ain\x20float\x20fClipDistance2;\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0ain\x20float\x20fClipDistance3;\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0ain\x20float\x20fClipDistance4;\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0ain\x20float\x20fClipDistance5;\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0ain\x20float\x20fClipDistance6;\x0a#endif\x0a','endRenderTargetPass','defineProperty','action','vertexShader','bonesDeclaration','submitFrame','indexOfRefraction','_frameHandler','_needUVs','WriteOnly','toArray','computeDispatch','REFLECTIONMAP_EQUIRECTANGULAR','fov','_multiviewTexture','size','ALWAYS','createDepthStencilTexture','_directionWName','_setRayOnPointerInfo','precision\x20highp\x20float;\x0a#include<__decl__pbrVertex>\x0a#define\x20CUSTOM_VERTEX_BEGIN\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20TANGENT\x0aattribute\x20vec4\x20tangent;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#include<uvAttributeDeclaration>[2..7]\x0a#include<mainUVVaryingDeclaration>[1..7]\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<helperFunctions>\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0a#include<prePassVertexDeclaration>\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)\x0a#ifdef\x20CLEARCOAT\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint)\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness)\x0a#endif\x0a#ifdef\x20SHEEN\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness)\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy)\x0a#endif\x0a#ifdef\x20SUBSURFACE\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity)\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#if\x20DEBUGMODE>0\x0avarying\x20vec4\x20vClipSpacePosition;\x0a#endif\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#if\x20defined(USESPHERICALFROMREFLECTIONMAP)\x20&&\x20defined(USESPHERICALINVERTEX)\x0avarying\x20vec3\x20vEnvironmentIrradiance;\x0a#include<harmonicsFunctions>\x0a#endif\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<bumpVertexDeclaration>\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightVxFragment>[0..maxSimultaneousLights]\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avarying\x20vec3\x20vPositionUVW;\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avarying\x20vec3\x20vDirectionW;\x0a#endif\x0a#include<logDepthDeclaration>\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avec3\x20positionUpdated=position;\x0a#ifdef\x20NORMAL\x0avec3\x20normalUpdated=normal;\x0a#endif\x0a#ifdef\x20TANGENT\x0avec4\x20tangentUpdated=tangent;\x0a#endif\x0a#ifdef\x20UV1\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avPositionUVW=positionUpdated;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_UPDATE_POSITION\x0a#define\x20CUSTOM_VERTEX_UPDATE_NORMAL\x0a#include<instancesVertex>\x0a#if\x20defined(PREPASS)\x20&&\x20defined(PREPASS_VELOCITY)\x20&&\x20!defined(BONES_VELOCITY_ENABLED)\x0avCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\x0avPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\x0a#endif\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(positionUpdated,1.0);\x0avPositionW=vec3(worldPos);\x0a#include<prePassVertex>\x0a#ifdef\x20NORMAL\x0amat3\x20normalWorld=mat3(finalWorld);\x0a#if\x20defined(INSTANCES)\x20&&\x20defined(THIN_INSTANCES)\x0avNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));\x0avNormalW=normalize(normalWorld*vNormalW);\x0a#else\x0a#ifdef\x20NONUNIFORMSCALING\x0anormalWorld=transposeMat3(inverseMat3(normalWorld));\x0a#endif\x0avNormalW=normalize(normalWorld*normalUpdated);\x0a#endif\x0a#if\x20defined(USESPHERICALFROMREFLECTIONMAP)\x20&&\x20defined(USESPHERICALINVERTEX)\x0avec3\x20reflectionVector=vec3(reflectionMatrix*vec4(vNormalW,0)).xyz;\x0a#ifdef\x20REFLECTIONMAP_OPPOSITEZ\x0areflectionVector.z*=-1.0;\x0a#endif\x0avEnvironmentIrradiance=computeEnvironmentIrradiance(reflectionVector);\x0a#endif\x0a#endif\x0a#define\x20CUSTOM_VERTEX_UPDATE_WORLDPOS\x0a#ifdef\x20MULTIVIEW\x0aif\x20(gl_ViewID_OVR==0u)\x20{\x0agl_Position=viewProjection*worldPos;\x0a}\x20else\x20{\x0agl_Position=viewProjectionR*worldPos;\x0a}\x0a#else\x0agl_Position=viewProjection*worldPos;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0avClipSpacePosition=gl_Position;\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uvUpdated=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20MAINUV1\x0avMainUV1=uvUpdated;\x0a#endif\x0a#include<uvVariableDeclaration>[2..7]\x0a#include<samplerVertexImplementation>(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo,_MATRIXNAME_,albedo,_INFONAME_,AlbedoInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_MATRIXNAME_,ambient,_INFONAME_,AmbientInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_MATRIXNAME_,opacity,_INFONAME_,OpacityInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_MATRIXNAME_,emissive,_INFONAME_,EmissiveInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_MATRIXNAME_,lightmap,_INFONAME_,LightmapInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity,_MATRIXNAME_,reflectivity,_INFONAME_,ReflectivityInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler,_MATRIXNAME_,microSurfaceSampler,_INFONAME_,MicroSurfaceSamplerInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance,_MATRIXNAME_,metallicReflectance,_INFONAME_,MetallicReflectanceInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance,_MATRIXNAME_,reflectance,_INFONAME_,ReflectanceInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_MATRIXNAME_,bump,_INFONAME_,BumpInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)\x0a#ifdef\x20CLEARCOAT\x0a#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat,_MATRIXNAME_,clearCoat,_INFONAME_,ClearCoatInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness,_MATRIXNAME_,clearCoatRoughness,_INFONAME_,ClearCoatInfos.z)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump,_MATRIXNAME_,clearCoatBump,_INFONAME_,ClearCoatBumpInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint,_MATRIXNAME_,clearCoatTint,_INFONAME_,ClearCoatTintInfos.x)\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0a#include<samplerVertexImplementation>(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence,_MATRIXNAME_,iridescence,_INFONAME_,IridescenceInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness,_MATRIXNAME_,iridescenceThickness,_INFONAME_,IridescenceInfos.z)\x0a#endif\x0a#ifdef\x20SHEEN\x0a#include<samplerVertexImplementation>(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen,_MATRIXNAME_,sheen,_INFONAME_,SheenInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness,_MATRIXNAME_,sheen,_INFONAME_,SheenInfos.z)\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0a#include<samplerVertexImplementation>(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy,_MATRIXNAME_,anisotropy,_INFONAME_,AnisotropyInfos.x)\x0a#endif\x0a#ifdef\x20SUBSURFACE\x0a#include<samplerVertexImplementation>(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness,_MATRIXNAME_,thickness,_INFONAME_,ThicknessInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity,_MATRIXNAME_,refractionIntensity,_INFONAME_,RefractionIntensityInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity,_MATRIXNAME_,translucencyIntensity,_INFONAME_,TranslucencyIntensityInfos.x)\x0a#endif\x0a#include<bumpVertex>\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#include<logDepthVertex>\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','setUsage','_skipPointerTap',']\x0d\x0a','setIntArray','TEXTURE_INVCUBIC_MODE','ASTC8x8UnormSRGB','isReusable','vertexBuffers','_pickedUpMesh','_deviceSourceManager','TEXTUREFORMAT_DEPTH32_FLOAT','R8Uint','beginOcclusionQuery','uniform\x20mat4\x20projection;\x0avarying\x20vec2\x20uv;\x0avarying\x20vec3\x20viewPos;\x0avarying\x20float\x20sphereRadius;\x0a#ifdef\x20FLUIDRENDERING_VELOCITY\x0avarying\x20float\x20velocityNorm;\x0a#endif\x0avoid\x20main(void)\x20{\x0avec3\x20normal;\x0anormal.xy=uv*2.0-1.0;\x0afloat\x20r2=dot(normal.xy,normal.xy);\x0aif\x20(r2>1.0)\x20discard;\x0anormal.z=sqrt(1.0-r2);\x0a#ifndef\x20FLUIDRENDERING_RHS\x0anormal.z=-normal.z;\x0a#endif\x0avec4\x20realViewPos=vec4(viewPos+normal*sphereRadius,1.0);\x0avec4\x20clipSpacePos=projection*realViewPos;\x0a#ifdef\x20WEBGPU\x0agl_FragDepth=clipSpacePos.z/clipSpacePos.w;\x0a#else\x0agl_FragDepth=(clipSpacePos.z/clipSpacePos.w)*0.5+0.5;\x0a#endif\x0a#ifdef\x20FLUIDRENDERING_RHS\x0arealViewPos.z=-realViewPos.z;\x0a#endif\x0a#ifdef\x20FLUIDRENDERING_VELOCITY\x0aglFragColor=vec4(realViewPos.z,velocityNorm,0.,1.);\x0a#else\x0aglFragColor=vec4(realViewPos.z,0.,0.,1.);\x0a#endif\x0a}\x0a','#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20TEXTUREFUNC(s,c,l)\x20texture2DLodEXT(s,c,l)\x0a#else\x0a#define\x20TEXTUREFUNC(s,c,b)\x20texture2D(s,c,b)\x0a#endif\x0aprecision\x20highp\x20float;\x0avarying\x20vec3\x20vPosition;\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec2\x20tUV;\x0auniform\x20float\x20time;\x0auniform\x20float\x20spriteCount;\x0auniform\x20sampler2D\x20spriteSheet;\x0auniform\x20vec2\x20spriteMapSize;\x0auniform\x20vec2\x20outputSize;\x0auniform\x20vec2\x20stageSize;\x0auniform\x20sampler2D\x20frameMap;\x0auniform\x20sampler2D\x20tileMaps[LAYERS];\x0auniform\x20sampler2D\x20animationMap;\x0auniform\x20vec3\x20colorMul;\x0afloat\x20mt;\x0aconst\x20float\x20fdStep=1./4.;\x0aconst\x20float\x20aFrameSteps=1./MAX_ANIMATION_FRAMES;\x0amat4\x20getFrameData(float\x20frameID){\x0afloat\x20fX=frameID/spriteCount;\x0areturn\x20mat4(\x0atexture2D(frameMap,vec2(fX,0.),0.),\x0atexture2D(frameMap,vec2(fX,fdStep*1.),0.),\x0atexture2D(frameMap,vec2(fX,fdStep*2.),0.),\x0avec4(0.)\x0a);\x0a}\x0avoid\x20main(){\x0avec4\x20color=vec4(0.);\x0avec2\x20tileUV=fract(tUV);\x0a#ifdef\x20FLIPU\x0atileUV.y=1.0-tileUV.y;\x0a#endif\x0avec2\x20tileID=floor(tUV);\x0avec2\x20sheetUnits=1./spriteMapSize;\x0afloat\x20spriteUnits=1./spriteCount;\x0avec2\x20stageUnits=1./stageSize;\x0afor(int\x20i=0;\x20i<LAYERS;\x20i++)\x20{\x0afloat\x20frameID;\x0a#define\x20LAYER_ID_SWITCH\x0avec4\x20animationData=TEXTUREFUNC(animationMap,vec2((frameID+0.5)/spriteCount,0.),0.);\x0aif(animationData.y>0.)\x20{\x0amt=mod(time*animationData.z,1.0);\x0afor(float\x20f=0.;\x20f<MAX_ANIMATION_FRAMES;\x20f++){\x0aif(animationData.y>mt){\x0aframeID=animationData.x;\x0abreak;\x0a}\x0aanimationData=TEXTUREFUNC(animationMap,vec2((frameID+0.5)/spriteCount,aFrameSteps*f),0.);\x0a}\x0a}\x0amat4\x20frameData=getFrameData(frameID+0.5);\x0avec2\x20frameSize=(frameData[0].zw)/spriteMapSize;\x0avec2\x20offset=frameData[0].xy*sheetUnits;\x0avec2\x20ratio=frameData[2].xy/frameData[0].zw;\x0aif\x20(frameData[2].z==1.){\x0atileUV.xy=tileUV.yx;\x0a}\x0avec4\x20nc=texture2D(spriteSheet,tileUV*frameSize+offset);\x0aif\x20(i==0){\x0acolor=nc;\x0a}\x20else\x20{\x0afloat\x20alpha=min(color.a+nc.a,1.0);\x0avec3\x20mixed=mix(color.xyz,nc.xyz,nc.a);\x0acolor=vec4(mixed,alpha);\x0a}\x0a}\x0acolor.xyz*=colorMul;\x0agl_FragColor=color;\x0a}','IdentityReadOnly','attributeLocationsFromEffect','RGBA8Uint','_updateParameters','connectTo','depthTest','GL_ALPHA_EQUATION_MIN','//Varyings\x0d\x0a','onKeyboardObservable','ONE_MINUS_CONSTANT_ALPHA','mipLevelCount','stencilMask','pickedMesh','wrapV','setTextureFormatToUse','_bindTextureRenderTarget','leftOver-','morphTargetsVertexDeclaration','executeBundles','Failed\x20to\x20load\x20','coneAngle','_bufferViewArray',')\x0d\x0a','copyBufferToBuffer',',\x20binding\x20=\x20','forcedExtension','MAINUV5','_key','stop','_resetIndexBufferBinding','vEyePosition','_defineSkyboxName','canLoad','distanceOrScreenCoverage','getPhysicsBody','Color3','main','useSRGBBuffers','#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0a#define\x20SQRT2\x201.41421356\x0a#define\x20PI\x203.14159\x0aprecision\x20highp\x20float;\x0auniform\x20float\x20visibility;\x0auniform\x20vec3\x20mainColor;\x0auniform\x20vec3\x20lineColor;\x0auniform\x20vec4\x20gridControl;\x0auniform\x20vec3\x20gridOffset;\x0avarying\x20vec3\x20vPosition;\x0avarying\x20vec3\x20vNormal;\x0a#include<fogFragmentDeclaration>\x0a#ifdef\x20OPACITY\x0avarying\x20vec2\x20vOpacityUV;\x0auniform\x20sampler2D\x20opacitySampler;\x0auniform\x20vec2\x20vOpacityInfos;\x0a#endif\x0afloat\x20getDynamicVisibility(float\x20position)\x20{\x0afloat\x20majorGridFrequency=gridControl.y;\x0aif\x20(floor(position+0.5)==floor(position/majorGridFrequency+0.5)*majorGridFrequency)\x0a{\x0areturn\x201.0;\x0a}\x20\x0areturn\x20gridControl.z;\x0a}\x0afloat\x20getAnisotropicAttenuation(float\x20differentialLength)\x20{\x0aconst\x20float\x20maxNumberOfLines=10.0;\x0areturn\x20clamp(1.0/(differentialLength+1.0)-1.0/maxNumberOfLines,0.0,1.0);\x0a}\x0afloat\x20isPointOnLine(float\x20position,float\x20differentialLength)\x20{\x0afloat\x20fractionPartOfPosition=position-floor(position+0.5);\x20\x0afractionPartOfPosition/=differentialLength;\x20\x0afractionPartOfPosition=clamp(fractionPartOfPosition,-1.,1.);\x0afloat\x20result=0.5+0.5*cos(fractionPartOfPosition*PI);\x20\x0areturn\x20result;\x20\x0a}\x0afloat\x20contributionOnAxis(float\x20position)\x20{\x0afloat\x20differentialLength=length(vec2(dFdx(position),dFdy(position)));\x0adifferentialLength*=SQRT2;\x20\x0afloat\x20result=isPointOnLine(position,differentialLength);\x0afloat\x20dynamicVisibility=getDynamicVisibility(position);\x0aresult*=dynamicVisibility;\x0afloat\x20anisotropicAttenuation=getAnisotropicAttenuation(differentialLength);\x0aresult*=anisotropicAttenuation;\x0areturn\x20result;\x0a}\x0afloat\x20normalImpactOnAxis(float\x20x)\x20{\x0afloat\x20normalImpact=clamp(1.0-3.0*abs(x*x*x),0.0,1.0);\x0areturn\x20normalImpact;\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0afloat\x20gridRatio=gridControl.x;\x0avec3\x20gridPos=(vPosition+gridOffset.xyz)/gridRatio;\x0afloat\x20x=contributionOnAxis(gridPos.x);\x0afloat\x20y=contributionOnAxis(gridPos.y);\x0afloat\x20z=contributionOnAxis(gridPos.z);\x0avec3\x20normal=normalize(vNormal);\x0ax*=normalImpactOnAxis(normal.x);\x0ay*=normalImpactOnAxis(normal.y);\x0az*=normalImpactOnAxis(normal.z);\x0a#ifdef\x20MAX_LINE\x20\x0afloat\x20grid=clamp(max(max(x,y),z),0.,1.);\x0a#else\x0afloat\x20grid=clamp(x+y+z,0.,1.);\x0a#endif\x0avec3\x20color=mix(mainColor,lineColor,grid);\x0a#ifdef\x20FOG\x0a#include<fogFragment>\x0a#endif\x0afloat\x20opacity=1.0;\x0a#ifdef\x20TRANSPARENT\x0aopacity=clamp(grid,0.08,gridControl.w*grid);\x0a#endif\x20\x0a#ifdef\x20OPACITY\x0aopacity*=texture2D(opacitySampler,vOpacityUV).a;\x0a#endif\x20\x0agl_FragColor=vec4(color.rgb,opacity*visibility);\x0a#ifdef\x20TRANSPARENT\x0a#ifdef\x20PREMULTIPLYALPHA\x0agl_FragColor.rgb*=opacity;\x0a#endif\x0a#else\x20\x0a#endif\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','_defineEquirectangularName','#define','#if\x20SM_FLOAT==0\x0a#include<packingFunctions>\x0a#endif\x0a#if\x20SM_SOFTTRANSPARENTSHADOW==1\x0a#include<bayerDitherFunctions>\x0auniform\x20float\x20softTransparentShadowSM;\x0a#endif\x0avarying\x20float\x20vDepthMetricSM;\x0a#if\x20SM_USEDISTANCE==1\x0auniform\x20vec3\x20lightDataSM;\x0avarying\x20vec3\x20vPositionWSM;\x0a#endif\x0auniform\x20vec3\x20biasAndScaleSM;\x0auniform\x20vec2\x20depthValuesSM;\x0a#if\x20defined(SM_DEPTHCLAMP)\x20&&\x20SM_DEPTHCLAMP==1\x0avarying\x20float\x20zSM;\x0a#endif\x0a','_oldSize','play','Iridescence\x20thickness','RegisteredExternalClasses','LeftOvertUBOName','pow','drawContext','_previousStartingPointerPosition','womips','fluidRenderingBilateralBlurPixelShader','getInputElement','_alphaMode','subtract','_alreadyAttachedTo','No\x20fixed\x20size\x20for\x20Depth24PlusStencil8\x20format!','Unable\x20to\x20create\x20dummy\x20framebuffer','boundingBoxRendererFragmentDeclaration','deleteFramebuffer','POINTERDOUBLETAP','//Samplers\x0d\x0a','_videoCompiledShaders','shadowMapVertexDeclaration','shadowMapUboDeclaration','false','_data','_copyInvertYBindGroup','updateUIntArray','getAlphaEquation','RGBA16Uint','_opStencilFail','precision\x20highp\x20float;\x0a#ifdef\x20LOGARITHMICDEPTH\x0a#extension\x20GL_EXT_frag_depth\x20:\x20enable\x0a#endif\x0auniform\x20sampler2D\x20diffuseSampler;\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec4\x20vColor;\x0a#include<clipPlaneFragmentDeclaration2>\x20\x0a#include<imageProcessingDeclaration>\x0a#include<logDepthDeclaration>\x0a#include<helperFunctions>\x0a#include<imageProcessingFunctions>\x0avoid\x20main()\x20{\x0a#include<clipPlaneFragment>\x20\x0avec4\x20textureColor=texture2D(diffuseSampler,vUV);\x0agl_FragColor=textureColor*vColor;\x0a#ifdef\x20BLENDMULTIPLYMODE\x0afloat\x20alpha=vColor.a*textureColor.a;\x0agl_FragColor.rgb=gl_FragColor.rgb*alpha+vec3(1.0)*(1.0-alpha);\x0a#endif\x20\x0a#include<logDepthFragment>\x0a#ifdef\x20IMAGEPROCESSINGPOSTPROCESS\x0agl_FragColor.rgb=toLinearSpace(gl_FragColor.rgb);\x0a#else\x0a#ifdef\x20IMAGEPROCESSING\x0agl_FragColor.rgb=toLinearSpace(gl_FragColor.rgb);\x0agl_FragColor=applyImageProcessing(gl_FragColor);\x0a#endif\x0a#endif\x0a}\x0a','enableGPUDebugMarkers','_view','_updateBoundingInfo','morphTargetsVertex','indexStart','\x20\x20@builtin(frag_depth)\x20fragDepth:\x20f32,\x0a','_stridedUniformArrays','_isFrontFaceDirty','TEXTUREFORMAT_DEPTH24_STENCIL8','#include<__decl__defaultFragment>\x0a#if\x20defined(BUMP)\x20||\x20!defined(NORMAL)\x0a#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0a#endif\x0a#include<prePassDeclaration>[SCENE_MRT_COUNT]\x0a#include<oitDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_BEGIN\x0a#ifdef\x20LOGARITHMICDEPTH\x0a#extension\x20GL_EXT_frag_depth\x20:\x20enable\x0a#endif\x0a#define\x20RECIPROCAL_PI2\x200.15915494\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<mainUVVaryingDeclaration>[1..7]\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse,_SAMPLERNAME_,diffuse)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_SAMPLERNAME_,ambient)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_SAMPLERNAME_,opacity)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_SAMPLERNAME_,emissive)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_SAMPLERNAME_,lightmap)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_SAMPLERNAME_,decal)\x0a#ifdef\x20REFRACTION\x0a#ifdef\x20REFRACTIONMAP_3D\x0auniform\x20samplerCube\x20refractionCubeSampler;\x0a#else\x0auniform\x20sampler2D\x20refraction2DSampler;\x0a#endif\x0a#endif\x0a#if\x20defined(SPECULARTERM)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular,_SAMPLERNAME_,specular)\x0a#endif\x0a#include<fresnelFunction>\x0a#ifdef\x20REFLECTION\x0a#ifdef\x20REFLECTIONMAP_3D\x0auniform\x20samplerCube\x20reflectionCubeSampler;\x0a#else\x0auniform\x20sampler2D\x20reflection2DSampler;\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avarying\x20vec3\x20vPositionUVW;\x0a#else\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avarying\x20vec3\x20vDirectionW;\x0a#endif\x0a#endif\x0a#include<reflectionFunction>\x0a#endif\x0a#include<imageProcessingDeclaration>\x0a#include<imageProcessingFunctions>\x0a#include<bumpFragmentMainFunctions>\x0a#include<bumpFragmentFunctions>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<logDepthDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20baseColor=vec4(1.,1.,1.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=normalize(-cross(dFdx(vPositionW),dFdy(vPositionW)));\x0a#endif\x0a#include<bumpFragment>\x0a#ifdef\x20TWOSIDEDLIGHTING\x0anormalW=gl_FrontFacing\x20?\x20normalW\x20:\x20-normalW;\x0a#endif\x0a#ifdef\x20DIFFUSE\x0abaseColor=texture2D(diffuseSampler,vDiffuseUV+uvOffset);\x0a#if\x20defined(ALPHATEST)\x20&&\x20!defined(ALPHATEST_AFTERALLALPHACOMPUTATIONS)\x0aif\x20(baseColor.a<alphaCutOff)\x0adiscard;\x0a#endif\x0a#ifdef\x20ALPHAFROMDIFFUSE\x0aalpha*=baseColor.a;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_UPDATE_ALPHA\x0abaseColor.rgb*=vDiffuseInfos.y;\x0a#endif\x0a#ifdef\x20DECAL\x0avec4\x20decalColor=texture2D(decalSampler,vDecalUV+uvOffset);\x0a#include<decalFragment>(surfaceAlbedo,baseColor,GAMMADECAL,_GAMMADECAL_NOTUSED_)\x0a#endif\x0a#include<depthPrePass>\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0a#ifdef\x20DETAIL\x0abaseColor.rgb=baseColor.rgb*2.0*mix(0.5,detailColor.r,vDetailInfos.y);\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_UPDATE_DIFFUSE\x0avec3\x20baseAmbientColor=vec3(1.,1.,1.);\x0a#ifdef\x20AMBIENT\x0abaseAmbientColor=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb*vAmbientInfos.y;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_BEFORE_LIGHTS\x0a#ifdef\x20SPECULARTERM\x0afloat\x20glossiness=vSpecularColor.a;\x0avec3\x20specularColor=vSpecularColor.rgb;\x0a#ifdef\x20SPECULAR\x0avec4\x20specularMapColor=texture2D(specularSampler,vSpecularUV+uvOffset);\x0aspecularColor=specularMapColor.rgb;\x0a#ifdef\x20GLOSSINESS\x0aglossiness=glossiness*specularMapColor.a;\x0a#endif\x0a#endif\x0a#else\x0afloat\x20glossiness=0.;\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0a#endif\x0afloat\x20shadow=1.;\x0a#ifdef\x20LIGHTMAP\x0avec4\x20lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset);\x0a#ifdef\x20RGBDLIGHTMAP\x0alightmapColor.rgb=fromRGBD(lightmapColor);\x0a#endif\x0alightmapColor.rgb*=vLightmapInfos.y;\x0a#endif\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0avec4\x20refractionColor=vec4(0.,0.,0.,1.);\x0a#ifdef\x20REFRACTION\x0avec3\x20refractionVector=normalize(refract(-viewDirectionW,normalW,vRefractionInfos.y));\x0a#ifdef\x20REFRACTIONMAP_3D\x0a#ifdef\x20USE_LOCAL_REFRACTIONMAP_CUBIC\x0arefractionVector=parallaxCorrectNormal(vPositionW,refractionVector,vRefractionSize,vRefractionPosition);\x0a#endif\x0arefractionVector.y=refractionVector.y*vRefractionInfos.w;\x0avec4\x20refractionLookup=textureCube(refractionCubeSampler,refractionVector);\x0aif\x20(dot(refractionVector,viewDirectionW)<1.0)\x20{\x0arefractionColor=refractionLookup;\x0a}\x0a#else\x0avec3\x20vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0)));\x0avec2\x20refractionCoords=vRefractionUVW.xy/vRefractionUVW.z;\x0arefractionCoords.y=1.0-refractionCoords.y;\x0arefractionColor=texture2D(refraction2DSampler,refractionCoords);\x0a#endif\x0a#ifdef\x20RGBDREFRACTION\x0arefractionColor.rgb=fromRGBD(refractionColor);\x0a#endif\x0a#ifdef\x20IS_REFRACTION_LINEAR\x0arefractionColor.rgb=toGammaSpace(refractionColor.rgb);\x0a#endif\x0arefractionColor.rgb*=vRefractionInfos.x;\x0a#endif\x0avec4\x20reflectionColor=vec4(0.,0.,0.,1.);\x0a#ifdef\x20REFLECTION\x0avec3\x20vReflectionUVW=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\x0a#ifdef\x20REFLECTIONMAP_OPPOSITEZ\x0avReflectionUVW.z*=-1.0;\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0a#ifdef\x20ROUGHNESS\x0afloat\x20bias=vReflectionInfos.y;\x0a#ifdef\x20SPECULARTERM\x0a#ifdef\x20SPECULAR\x0a#ifdef\x20GLOSSINESS\x0abias*=(1.0-specularMapColor.a);\x0a#endif\x0a#endif\x0a#endif\x0areflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW,bias);\x0a#else\x0areflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW);\x0a#endif\x0a#else\x0avec2\x20coords=vReflectionUVW.xy;\x0a#ifdef\x20REFLECTIONMAP_PROJECTION\x0acoords/=vReflectionUVW.z;\x0a#endif\x0acoords.y=1.0-coords.y;\x0areflectionColor=texture2D(reflection2DSampler,coords);\x0a#endif\x0a#ifdef\x20RGBDREFLECTION\x0areflectionColor.rgb=fromRGBD(reflectionColor);\x0a#endif\x0a#ifdef\x20IS_REFLECTION_LINEAR\x0areflectionColor.rgb=toGammaSpace(reflectionColor.rgb);\x0a#endif\x0areflectionColor.rgb*=vReflectionInfos.x;\x0a#ifdef\x20REFLECTIONFRESNEL\x0afloat\x20reflectionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,reflectionRightColor.a,reflectionLeftColor.a);\x0a#ifdef\x20REFLECTIONFRESNELFROMSPECULAR\x0a#ifdef\x20SPECULARTERM\x0areflectionColor.rgb*=specularColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\x0a#else\x0areflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\x0a#endif\x0a#else\x0areflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\x0a#endif\x0a#endif\x0a#endif\x0a#ifdef\x20REFRACTIONFRESNEL\x0afloat\x20refractionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,refractionRightColor.a,refractionLeftColor.a);\x0arefractionColor.rgb*=refractionLeftColor.rgb*(1.0-refractionFresnelTerm)+refractionFresnelTerm*refractionRightColor.rgb;\x0a#endif\x0a#ifdef\x20OPACITY\x0avec4\x20opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);\x0a#ifdef\x20OPACITYRGB\x0aopacityMap.rgb=opacityMap.rgb*vec3(0.3,0.59,0.11);\x0aalpha*=(opacityMap.x+opacityMap.y+opacityMap.z)*\x20vOpacityInfos.y;\x0a#else\x0aalpha*=opacityMap.a*vOpacityInfos.y;\x0a#endif\x0a#endif\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#ifdef\x20OPACITYFRESNEL\x0afloat\x20opacityFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,opacityParts.z,opacityParts.w);\x0aalpha+=opacityParts.x*(1.0-opacityFresnelTerm)+opacityFresnelTerm*opacityParts.y;\x0a#endif\x0a#ifdef\x20ALPHATEST\x0a#ifdef\x20ALPHATEST_AFTERALLALPHACOMPUTATIONS\x0aif\x20(alpha<alphaCutOff)\x0adiscard;\x0a#endif\x0a#ifndef\x20ALPHABLEND\x0aalpha=1.0;\x0a#endif\x0a#endif\x0avec3\x20emissiveColor=vEmissiveColor;\x0a#ifdef\x20EMISSIVE\x0aemissiveColor+=texture2D(emissiveSampler,vEmissiveUV+uvOffset).rgb*vEmissiveInfos.y;\x0a#endif\x0a#ifdef\x20EMISSIVEFRESNEL\x0afloat\x20emissiveFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,emissiveRightColor.a,emissiveLeftColor.a);\x0aemissiveColor*=emissiveLeftColor.rgb*(1.0-emissiveFresnelTerm)+emissiveFresnelTerm*emissiveRightColor.rgb;\x0a#endif\x0a#ifdef\x20DIFFUSEFRESNEL\x0afloat\x20diffuseFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,diffuseRightColor.a,diffuseLeftColor.a);\x0adiffuseBase*=diffuseLeftColor.rgb*(1.0-diffuseFresnelTerm)+diffuseFresnelTerm*diffuseRightColor.rgb;\x0a#endif\x0a#ifdef\x20EMISSIVEASILLUMINATION\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\x0a#else\x0a#ifdef\x20LINKEMISSIVEWITHDIFFUSE\x0avec3\x20finalDiffuse=clamp((diffuseBase+emissiveColor)*diffuseColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\x0a#else\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor+emissiveColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\x0a#endif\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20finalSpecular=specularBase*specularColor;\x0a#ifdef\x20SPECULAROVERALPHA\x0aalpha=clamp(alpha+dot(finalSpecular,vec3(0.3,0.59,0.11)),0.,1.);\x0a#endif\x0a#else\x0avec3\x20finalSpecular=vec3(0.0);\x0a#endif\x0a#ifdef\x20REFLECTIONOVERALPHA\x0aalpha=clamp(alpha+dot(reflectionColor.rgb,vec3(0.3,0.59,0.11)),0.,1.);\x0a#endif\x0a#ifdef\x20EMISSIVEASILLUMINATION\x0avec4\x20color=vec4(clamp(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor.rgb+emissiveColor+refractionColor.rgb,0.0,1.0),alpha);\x0a#else\x0avec4\x20color=vec4(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor.rgb+refractionColor.rgb,alpha);\x0a#endif\x0a#ifdef\x20LIGHTMAP\x0a#ifndef\x20LIGHTMAPEXCLUDED\x0a#ifdef\x20USELIGHTMAPASSHADOWMAP\x0acolor.rgb*=lightmapColor.rgb;\x0a#else\x0acolor.rgb+=lightmapColor.rgb;\x0a#endif\x0a#endif\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_BEFORE_FOG\x0acolor.rgb=max(color.rgb,0.);\x0a#include<logDepthFragment>\x0a#include<fogFragment>\x0a#ifdef\x20IMAGEPROCESSINGPOSTPROCESS\x0acolor.rgb=toLinearSpace(color.rgb);\x0a#else\x0a#ifdef\x20IMAGEPROCESSING\x0acolor.rgb=toLinearSpace(color.rgb);\x0acolor=applyImageProcessing(color);\x0a#endif\x0a#endif\x0acolor.a*=visibility;\x0a#ifdef\x20PREMULTIPLYALPHA\x0acolor.rgb*=color.a;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\x0a#ifdef\x20PREPASS\x0afloat\x20writeGeometryInfo=color.a>0.4\x20?\x201.0\x20:\x200.0;\x0agl_FragData[0]=color;\x20\x0a#ifdef\x20PREPASS_POSITION\x0agl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);\x0a#endif\x0a#ifdef\x20PREPASS_VELOCITY\x0avec2\x20a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;\x0avec2\x20b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;\x0avec2\x20velocity=abs(a-b);\x0avelocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;\x0agl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);\x0a#endif\x0a#ifdef\x20PREPASS_IRRADIANCE\x0agl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(0.0,0.0,0.0,writeGeometryInfo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_DEPTH\x0agl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_NORMAL\x0agl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_ALBEDO_SQRT\x0agl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(0.0,0.0,0.0,writeGeometryInfo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_REFLECTIVITY\x0a#if\x20defined(SPECULARTERM)\x0a#if\x20defined(SPECULAR)\x0agl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(toLinearSpace(specularMapColor))*writeGeometryInfo;\x20\x0a#else\x0agl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(toLinearSpace(specularColor),1.0)*writeGeometryInfo;\x0a#endif\x0a#else\x0agl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(0.0,0.0,0.0,1.0)*writeGeometryInfo;\x0a#endif\x0a#endif\x0a#endif\x0a#if\x20!defined(PREPASS)\x20||\x20defined(WEBGL2)\x0agl_FragColor=color;\x0a#endif\x0a#include<oitFragment>\x0a#if\x20ORDER_INDEPENDENT_TRANSPARENCY\x0aif\x20(fragDepth==nearestDepth)\x20{\x0afrontColor.rgb+=color.rgb*color.a*alphaMultiplier;\x0afrontColor.a=1.0-alphaMultiplier*(1.0-color.a);\x0a}\x20else\x20{\x0abackColor+=color;\x0a}\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','_getSamplingParameters','lastIndex','hoverCursor','vec3\x20diffuseBase=vec3(0.,0.,0.);\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0avec3\x20clearCoatBase=vec3(0.,0.,0.);\x0a#endif\x0a#ifdef\x20SHEEN\x0avec3\x20sheenBase=vec3(0.,0.,0.);\x0a#endif\x0apreLightingInfo\x20preInfo;\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x20\x0a#if\x20defined(CLEARCOAT)\x20&&\x20defined(CLEARCOAT_TINT)\x0avec3\x20absorption=vec3(0.);\x0a#endif\x0a','_delayedSimpleClick','_areMiscDirty','_isStencilTestDirty','meshes','pbrBRDFFunctions','endOfUniformBufferProcessor','needShaderCodeInlining','attribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#ifdef\x20INSTANCES\x0aattribute\x20vec4\x20world0;\x0aattribute\x20vec4\x20world1;\x0aattribute\x20vec4\x20world2;\x0aattribute\x20vec4\x20world3;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__shadowMapVertex>\x0a#ifdef\x20ALPHATEXTURE\x0avarying\x20vec2\x20vUV;\x0auniform\x20mat4\x20diffuseMatrix;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#endif\x0a#include<shadowMapVertexExtraDeclaration>\x0a#include<clipPlaneVertexDeclaration>\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec3\x20positionUpdated=position;\x0a#ifdef\x20UV1\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20normalUpdated=normal;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(positionUpdated,1.0);\x0a#ifdef\x20NORMAL\x0amat3\x20normWorldSM=mat3(finalWorld);\x0a#if\x20defined(INSTANCES)\x20&&\x20defined(THIN_INSTANCES)\x0avec3\x20vNormalW=normalUpdated/vec3(dot(normWorldSM[0],normWorldSM[0]),dot(normWorldSM[1],normWorldSM[1]),dot(normWorldSM[2],normWorldSM[2]));\x0avNormalW=normalize(normWorldSM*vNormalW);\x0a#else\x0a#ifdef\x20NONUNIFORMSCALING\x0anormWorldSM=transposeMat3(inverseMat3(normWorldSM));\x0a#endif\x0avec3\x20vNormalW=normalize(normWorldSM*normalUpdated);\x0a#endif\x0a#endif\x0a#include<shadowMapVertexNormalBias>\x0agl_Position=viewProjection*worldPos;\x0a#include<shadowMapVertexMetric>\x0a#ifdef\x20ALPHATEXTURE\x0a#ifdef\x20UV1\x0avUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20UV2\x0avUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a#include<clipPlaneVertex>\x0a}','occlusionQuerySet','createFramebuffer','bundles','IgnoreTexturesAtLoadTime','_perfCollector','preventDefault','precision\x20highp\x20float;\x0auniform\x20sampler2D\x20uBackColor;\x0avoid\x20main()\x20{\x0aglFragColor=texelFetch(uBackColor,ivec2(gl_FragCoord.xy),0);\x0aif\x20(glFragColor.a==0.0)\x20{\x20\x0adiscard;\x0a}\x0a}','setVector4','struct\x20VertexInputs\x20{\x0a\x20\x20@builtin(vertex_index)\x20vertexIndex\x20:\x20u32,\x0a\x20\x20@builtin(instance_index)\x20instanceIndex\x20:\x20u32,\x0a','#include<helperFunctions>\x0a#include<importanceSampling>\x0a#include<pbrBRDFFunctions>\x0a#include<hdrFilteringFunctions>\x0auniform\x20float\x20alphaG;\x0auniform\x20samplerCube\x20inputTexture;\x0auniform\x20vec2\x20vFilteringInfo;\x0auniform\x20float\x20hdrScale;\x0avarying\x20vec3\x20direction;\x0avoid\x20main()\x20{\x0avec3\x20color=radiance(alphaG,inputTexture,direction,vFilteringInfo);\x0agl_FragColor=vec4(color*hdrScale,1.0);\x0a}','setFileName','_appendSpriteVertex','_physicsTimeAccumulator','generateDepthBuffer','POINTERPICK','varyingVertexKeywordName','updateMatrix3x3','CLIPPLANE5','Process','Clear','program','hasSpecificTrigger','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20float\x20motionStrength;\x0auniform\x20float\x20motionScale;\x0auniform\x20vec2\x20screenSize;\x0a#ifdef\x20OBJECT_BASED\x0auniform\x20sampler2D\x20velocitySampler;\x0a#else\x0auniform\x20sampler2D\x20depthSampler;\x0auniform\x20mat4\x20inverseViewProjection;\x0auniform\x20mat4\x20prevViewProjection;\x0auniform\x20mat4\x20projection;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0a#ifdef\x20GEOMETRY_SUPPORTED\x0a#ifdef\x20OBJECT_BASED\x0avec2\x20texelSize=1.0/screenSize;\x0avec4\x20velocityColor=texture2D(velocitySampler,vUV);\x0avelocityColor.rg=velocityColor.rg*2.0-vec2(1.0);\x0avec2\x20velocity=vec2(pow(velocityColor.r,3.0),pow(velocityColor.g,3.0))*velocityColor.a;\x0avelocity*=motionScale*motionStrength;\x0afloat\x20speed=length(velocity/texelSize);\x0aint\x20samplesCount=int(clamp(speed,1.0,SAMPLES));\x0avelocity=normalize(velocity)*texelSize;\x0afloat\x20hlim=float(-samplesCount)*0.5+0.5;\x0avec4\x20result=texture2D(textureSampler,vUV);\x0afor\x20(int\x20i=1;\x20i<int(SAMPLES);\x20++i)\x0a{\x0aif\x20(i>=samplesCount)\x0abreak;\x0avec2\x20offset=vUV+velocity*(hlim+float(i));\x0a#if\x20defined(WEBGPU)\x0aresult+=texture2DLodEXT(textureSampler,offset,0.0);\x0a#else\x0aresult+=texture2D(textureSampler,offset);\x0a#endif\x0a}\x0agl_FragColor=result/float(samplesCount);\x0agl_FragColor.a=1.0;\x0a#else\x0avec2\x20texelSize=1.0/screenSize;\x0afloat\x20depth=texture2D(depthSampler,vUV).r;\x0adepth=projection[2].z+projection[3].z/depth;\x20\x0avec4\x20cpos=vec4(vUV*2.0-1.0,depth,1.0);\x0acpos=inverseViewProjection*cpos;\x0acpos/=cpos.w;\x0avec4\x20ppos=prevViewProjection*cpos;\x0appos/=ppos.w;\x0appos.xy=ppos.xy*0.5+0.5;\x0avec2\x20velocity=(ppos.xy-vUV)*motionScale*motionStrength;\x0afloat\x20speed=length(velocity/texelSize);\x0aint\x20nSamples=int(clamp(speed,1.0,SAMPLES));\x0avec4\x20result=texture2D(textureSampler,vUV);\x0afor\x20(int\x20i=1;\x20i<int(SAMPLES);\x20++i)\x20{\x0aif\x20(i>=nSamples)\x0abreak;\x0avec2\x20offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5);\x0a#if\x20defined(WEBGPU)\x0aresult+=texture2DLodEXT(textureSampler,offset1,0.0);\x0a#else\x0aresult+=texture2D(textureSampler,offset1);\x0a#endif\x0a}\x0agl_FragColor=result/float(nSamples);\x0a#endif\x0a#else\x0agl_FragColor=texture2D(textureSampler,vUV);\x0a#endif\x0a}\x0a','view','//#define\x20','reflectionUVW','_lastUpdateFrameId','_cache','alphaBlend','faceId','ceil','define','projectToRef','_positionUVWName','shadowMapFragmentSoftTransparentShadow','circleOfConfusionPixelShader','addEventListener','GL_ALPHA_EQUATION_MAX','ReciprocalPI','_shareDepth','_readTexturePixelsSync','REFLECTIONMAP_SPHERICAL','_MoveCursor','enable','varying\x20vec3\x20vPositionW;\x0a#if\x20DEBUGMODE>0\x0avarying\x20vec4\x20vClipSpacePosition;\x0a#endif\x0a#include<mainUVVaryingDeclaration>[1..7]\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#if\x20defined(USESPHERICALFROMREFLECTIONMAP)\x20&&\x20defined(USESPHERICALINVERTEX)\x0avarying\x20vec3\x20vEnvironmentIrradiance;\x0a#endif\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a','getDeterministicFrameTime','_pointerOverMesh','premultipliedAlpha','_xOffset','_onPointerMove','TEXTURETYPE_BYTE','pointerMovePredicate','infixToPostfix','fogDensity','vScale','setUInt4','#ifdef\x20LOGARITHMICDEPTH\x0agl_FragDepthEXT=log2(vFragmentDepth)*logarithmicDepthConstant*0.5;\x0a#endif\x0a','restoreSingleAttachment','#version\x20300\x20es\x0avoid\x20main()\x20{\x0adiscard;\x0a}\x0a','getInput','setUInt3','uniform\x20sampler2D\x20textureSampler;\x0auniform\x20int\x20filterSize;\x0auniform\x20vec2\x20blurDir;\x0avarying\x20vec2\x20vUV;\x0avoid\x20main(void)\x20{\x0avec4\x20s=textureLod(textureSampler,vUV,0.);\x0aif\x20(s.r==0.)\x20{\x0aglFragColor=vec4(0.,0.,0.,1.);\x0areturn;\x0a}\x0afloat\x20sigma=float(filterSize)/3.0;\x0afloat\x20twoSigma2=2.0*sigma*sigma;\x0avec4\x20sum=vec4(0.);\x0afloat\x20wsum=0.;\x0afor\x20(int\x20x=-filterSize;\x20x<=filterSize;\x20++x)\x20{\x0avec2\x20coords=vec2(x);\x0avec4\x20sampl=textureLod(textureSampler,vUV+coords*blurDir,0.);\x0afloat\x20w=exp(-coords.x*coords.x/twoSigma2);\x0asum+=sampl*w;\x0awsum+=w;\x0a}\x0asum/=wsum;\x0aglFragColor=vec4(sum.rgb,1.);\x0a}\x0a','No\x20fixed\x20size\x20for\x20Depth24Plus\x20format!','_SimplifiedKnownBindings','#include<shadowMapFragmentExtraDeclaration>\x0a#ifdef\x20ALPHATEXTURE\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0a#include<clipPlaneFragment>\x0a#ifdef\x20ALPHATEXTURE\x0afloat\x20alphaFromAlphaTexture=texture2D(diffuseSampler,vUV).a;\x0a#ifdef\x20ALPHATESTVALUE\x0aif\x20(alphaFromAlphaTexture<ALPHATESTVALUE)\x0adiscard;\x0a#endif\x0a#endif\x0a#if\x20SM_SOFTTRANSPARENTSHADOW==1\x0a#ifdef\x20ALPHATEXTURE\x0aif\x20((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM*alphaFromAlphaTexture)\x20discard;\x0a#else\x0aif\x20((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM)\x20discard;\x0a#endif\x0a#endif\x0a#include<shadowMapFragment>\x0a}','draw','createRenderTargetCubeTexture','BC3RGBAUnorm','QueueNewFrame','#define\x20CLEARCOATREFLECTANCE90\x201.0\x0astruct\x20lightingInfo\x0a{\x0avec3\x20diffuse;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specular;\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0avec4\x20clearCoat;\x0a#endif\x0a#ifdef\x20SHEEN\x0avec3\x20sheen;\x0a#endif\x0a};\x0afloat\x20adjustRoughnessFromLightProperties(float\x20roughness,float\x20lightRadius,float\x20lightDistance)\x20{\x0a#if\x20defined(USEPHYSICALLIGHTFALLOFF)\x20||\x20defined(USEGLTFLIGHTFALLOFF)\x0afloat\x20lightRoughness=lightRadius/lightDistance;\x0afloat\x20totalRoughness=saturate(lightRoughness+roughness);\x0areturn\x20totalRoughness;\x0a#else\x0areturn\x20roughness;\x0a#endif\x0a}\x0avec3\x20computeHemisphericDiffuseLighting(preLightingInfo\x20info,vec3\x20lightColor,vec3\x20groundColor)\x20{\x0areturn\x20mix(groundColor,lightColor,info.NdotL);\x0a}\x0avec3\x20computeDiffuseLighting(preLightingInfo\x20info,vec3\x20lightColor)\x20{\x0afloat\x20diffuseTerm=diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.roughness);\x0areturn\x20diffuseTerm*info.attenuation*info.NdotL*lightColor;\x0a}\x0a#define\x20inline\x0avec3\x20computeProjectionTextureDiffuseLighting(sampler2D\x20projectionLightSampler,mat4\x20textureProjectionMatrix){\x0avec4\x20strq=textureProjectionMatrix*vec4(vPositionW,1.0);\x0astrq/=strq.w;\x0avec3\x20textureColor=texture2D(projectionLightSampler,strq.xy).rgb;\x0areturn\x20toLinearSpace(textureColor);\x0a}\x0a#ifdef\x20SS_TRANSLUCENCY\x0avec3\x20computeDiffuseAndTransmittedLighting(preLightingInfo\x20info,vec3\x20lightColor,vec3\x20transmittance)\x20{\x0afloat\x20NdotL=absEps(info.NdotLUnclamped);\x0afloat\x20wrapNdotL=computeWrappedDiffuseNdotL(NdotL,0.02);\x0afloat\x20trAdapt=step(0.,info.NdotLUnclamped);\x0avec3\x20transmittanceNdotL=mix(transmittance*wrapNdotL,vec3(wrapNdotL),trAdapt);\x0afloat\x20diffuseTerm=diffuseBRDF_Burley(NdotL,info.NdotV,info.VdotH,info.roughness);\x0areturn\x20diffuseTerm*transmittanceNdotL*info.attenuation*lightColor;\x0a}\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20computeSpecularLighting(preLightingInfo\x20info,vec3\x20N,vec3\x20reflectance0,vec3\x20reflectance90,float\x20geometricRoughnessFactor,vec3\x20lightColor)\x20{\x0afloat\x20NdotH=saturateEps(dot(N,info.H));\x0afloat\x20roughness=max(info.roughness,geometricRoughnessFactor);\x0afloat\x20alphaG=convertRoughnessToAverageSlope(roughness);\x0avec3\x20fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\x0a#ifdef\x20IRIDESCENCE\x0afresnel=mix(fresnel,reflectance0,info.iridescenceIntensity);\x0a#endif\x0afloat\x20distribution=normalDistributionFunction_TrowbridgeReitzGGX(NdotH,alphaG);\x0a#ifdef\x20BRDF_V_HEIGHT_CORRELATED\x0afloat\x20smithVisibility=smithVisibility_GGXCorrelated(info.NdotL,info.NdotV,alphaG);\x0a#else\x0afloat\x20smithVisibility=smithVisibility_TrowbridgeReitzGGXFast(info.NdotL,info.NdotV,alphaG);\x0a#endif\x0avec3\x20specTerm=fresnel*distribution*smithVisibility;\x0areturn\x20specTerm*info.attenuation*info.NdotL*lightColor;\x0a}\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0avec3\x20computeAnisotropicSpecularLighting(preLightingInfo\x20info,vec3\x20V,vec3\x20N,vec3\x20T,vec3\x20B,float\x20anisotropy,vec3\x20reflectance0,vec3\x20reflectance90,float\x20geometricRoughnessFactor,vec3\x20lightColor)\x20{\x0afloat\x20NdotH=saturateEps(dot(N,info.H));\x0afloat\x20TdotH=dot(T,info.H);\x0afloat\x20BdotH=dot(B,info.H);\x0afloat\x20TdotV=dot(T,V);\x0afloat\x20BdotV=dot(B,V);\x0afloat\x20TdotL=dot(T,info.L);\x0afloat\x20BdotL=dot(B,info.L);\x0afloat\x20alphaG=convertRoughnessToAverageSlope(info.roughness);\x0avec2\x20alphaTB=getAnisotropicRoughness(alphaG,anisotropy);\x0aalphaTB=max(alphaTB,square(geometricRoughnessFactor));\x0avec3\x20fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\x0a#ifdef\x20IRIDESCENCE\x0afresnel=mix(fresnel,reflectance0,info.iridescenceIntensity);\x0a#endif\x0afloat\x20distribution=normalDistributionFunction_BurleyGGX_Anisotropic(NdotH,TdotH,BdotH,alphaTB);\x0afloat\x20smithVisibility=smithVisibility_GGXCorrelated_Anisotropic(info.NdotL,info.NdotV,TdotV,BdotV,TdotL,BdotL,alphaTB);\x0avec3\x20specTerm=fresnel*distribution*smithVisibility;\x0areturn\x20specTerm*info.attenuation*info.NdotL*lightColor;\x0a}\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0avec4\x20computeClearCoatLighting(preLightingInfo\x20info,vec3\x20Ncc,float\x20geometricRoughnessFactor,float\x20clearCoatIntensity,vec3\x20lightColor)\x20{\x0afloat\x20NccdotL=saturateEps(dot(Ncc,info.L));\x0afloat\x20NccdotH=saturateEps(dot(Ncc,info.H));\x0afloat\x20clearCoatRoughness=max(info.roughness,geometricRoughnessFactor);\x0afloat\x20alphaG=convertRoughnessToAverageSlope(clearCoatRoughness);\x0afloat\x20fresnel=fresnelSchlickGGX(info.VdotH,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);\x0afresnel*=clearCoatIntensity;\x0afloat\x20distribution=normalDistributionFunction_TrowbridgeReitzGGX(NccdotH,alphaG);\x0afloat\x20kelemenVisibility=visibility_Kelemen(info.VdotH);\x0afloat\x20clearCoatTerm=fresnel*distribution*kelemenVisibility;\x0areturn\x20vec4(\x0aclearCoatTerm*info.attenuation*NccdotL*lightColor,\x0a1.0-fresnel\x0a);\x0a}\x0avec3\x20computeClearCoatLightingAbsorption(float\x20NdotVRefract,vec3\x20L,vec3\x20Ncc,vec3\x20clearCoatColor,float\x20clearCoatThickness,float\x20clearCoatIntensity)\x20{\x0avec3\x20LRefract=-refract(L,Ncc,vClearCoatRefractionParams.y);\x0afloat\x20NdotLRefract=saturateEps(dot(Ncc,LRefract));\x0avec3\x20absorption=computeClearCoatAbsorption(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness,clearCoatIntensity);\x0areturn\x20absorption;\x0a}\x0a#endif\x0a#ifdef\x20SHEEN\x0avec3\x20computeSheenLighting(preLightingInfo\x20info,vec3\x20N,vec3\x20reflectance0,vec3\x20reflectance90,float\x20geometricRoughnessFactor,vec3\x20lightColor)\x20{\x0afloat\x20NdotH=saturateEps(dot(N,info.H));\x0afloat\x20roughness=max(info.roughness,geometricRoughnessFactor);\x0afloat\x20alphaG=convertRoughnessToAverageSlope(roughness);\x0afloat\x20fresnel=1.;\x0afloat\x20distribution=normalDistributionFunction_CharlieSheen(NdotH,alphaG);\x0a/*#ifdef\x20SHEEN_SOFTER\x0afloat\x20visibility=visibility_CharlieSheen(info.NdotL,info.NdotV,alphaG);\x0a#else\x20*/\x0afloat\x20visibility=visibility_Ashikhmin(info.NdotL,info.NdotV);\x0a/*\x20#endif\x20*/\x0afloat\x20sheenTerm=fresnel*distribution*visibility;\x0areturn\x20sheenTerm*info.attenuation*info.NdotL*lightColor;\x0a}\x0a#endif\x0a','instancesCount','number','_requestVRFrame','waterPixelShader','_Counter','filterSize','_finishBundle','RG8Uint','BilateralBlurX','textE','SetData','defaultVertexDeclaration','convolutionPixelShader','evt','uniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20delta;\x0avarying\x20vec2\x20sampleCenter;\x0a#ifdef\x20DOF\x0auniform\x20sampler2D\x20circleOfConfusionSampler;\x0afloat\x20sampleCoC(in\x20vec2\x20offset)\x20{\x0afloat\x20coc=texture2D(circleOfConfusionSampler,offset).r;\x0areturn\x20coc;\x20\x0a}\x0a#endif\x0a#include<kernelBlurVaryingDeclaration>[0..varyingCount]\x0a#ifdef\x20PACKEDFLOAT\x0a#include<packingFunctions>\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0afloat\x20computedWeight=0.0;\x0a#ifdef\x20PACKEDFLOAT\x0afloat\x20blend=0.;\x0a#else\x0avec4\x20blend=vec4(0.);\x0a#endif\x0a#ifdef\x20DOF\x0afloat\x20sumOfWeights=CENTER_WEIGHT;\x20\x0afloat\x20factor=0.0;\x0a#ifdef\x20PACKEDFLOAT\x0ablend+=unpack(texture2D(textureSampler,sampleCenter))*CENTER_WEIGHT;\x0a#else\x0ablend+=texture2D(textureSampler,sampleCenter)*CENTER_WEIGHT;\x0a#endif\x0a#endif\x0a#include<kernelBlurFragment>[0..varyingCount]\x0a#include<kernelBlurFragment2>[0..depCount]\x0a#ifdef\x20PACKEDFLOAT\x0agl_FragColor=pack(blend);\x0a#else\x0agl_FragColor=blend;\x0a#endif\x0a#ifdef\x20DOF\x0agl_FragColor/=sumOfWeights;\x0a#endif\x0a}','onPreKeyboardObservable','apply','setUIntArray','skipPointerDownPicking','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20passSampler;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0agl_FragColor=texture2D(passSampler,vUV);\x0a}','_transformMatrixR','visibility','_pointerY','_bundleListRenderTarget','create\x20mipmaps\x20for\x20face\x20#','backgroundVertexShader','rttBlurred','BC2RGBAUnorm','ETC2RGBA8Unorm','kernelBlurVertexShader','operand','byteLength','#ifdef\x20LIGHTMAP\x0avec4\x20lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset);\x0a#ifdef\x20RGBDLIGHTMAP\x0alightmapColor.rgb=fromRGBD(lightmapColor);\x0a#endif\x0a#ifdef\x20GAMMALIGHTMAP\x0alightmapColor.rgb=toLinearSpace(lightmapColor.rgb);\x0a#endif\x0alightmapColor.rgb*=vLightmapInfos.y;\x0a#endif\x0a','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0avarying\x20vec3\x20vPosition;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0agl_Position=viewProjection*worldPos;\x0avPositionW=vec3(worldPos);\x0avPosition=position;\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','reflectionTexture','_rt','sampleCoord{X}=sampleCenter+delta*KERNEL_OFFSET{X};','#include<instancesDeclaration>\x0a#include<clipPlaneVertexDeclaration>\x0aattribute\x20vec3\x20position;\x0aattribute\x20vec4\x20normal;\x0auniform\x20mat4\x20viewProjection;\x0auniform\x20float\x20width;\x0auniform\x20float\x20aspectRatio;\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0amat4\x20worldViewProjection=viewProjection*finalWorld;\x0avec4\x20viewPosition=worldViewProjection*vec4(position,1.0);\x0avec4\x20viewPositionNext=worldViewProjection*vec4(normal.xyz,1.0);\x0avec2\x20currentScreen=viewPosition.xy/viewPosition.w;\x0avec2\x20nextScreen=viewPositionNext.xy/viewPositionNext.w;\x0acurrentScreen.x*=aspectRatio;\x0anextScreen.x*=aspectRatio;\x0avec2\x20dir=normalize(nextScreen-currentScreen);\x0avec2\x20normalDir=vec2(-dir.y,dir.x);\x0anormalDir*=width/2.0;\x0anormalDir.x/=aspectRatio;\x0avec4\x20offset=vec4(normalDir*normal.w,0.0,0.0);\x0agl_Position=viewPosition+offset;\x0a#if\x20defined(CLIPPLANE)\x20||\x20defined(CLIPPLANE2)\x20||\x20defined(CLIPPLANE3)\x20||\x20defined(CLIPPLANE4)\x20||\x20defined(CLIPPLANE5)\x20||\x20defined(CLIPPLANE6)\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0a#include<clipPlaneVertex>\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','_blurNumIterations','layout(std140,column_major)\x20uniform;\x0auniform\x20Scene\x20{\x0amat4\x20viewProjection;\x0a#ifdef\x20MULTIVIEW\x0amat4\x20viewProjectionR;\x0a#endif\x20\x0amat4\x20view;\x0amat4\x20projection;\x0avec4\x20vEyePosition;\x0a};\x0a','BC5RGUnorm','ssDiffusionD','Depth\x20texture\x20format\x20is\x20not\x20supported.','updateStorageBuffer','#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20TEXTUREFUNC(s,c,l)\x20texture2DLodEXT(s,c,l)\x0a#else\x0a#define\x20TEXTUREFUNC(s,c,b)\x20texture2D(s,c,b)\x0a#endif\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20texelSize;\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec2\x20sampleCoordS;\x0avarying\x20vec2\x20sampleCoordE;\x0avarying\x20vec2\x20sampleCoordN;\x0avarying\x20vec2\x20sampleCoordW;\x0avarying\x20vec2\x20sampleCoordNW;\x0avarying\x20vec2\x20sampleCoordSE;\x0avarying\x20vec2\x20sampleCoordNE;\x0avarying\x20vec2\x20sampleCoordSW;\x0aconst\x20float\x20fxaaQualitySubpix=1.0;\x0aconst\x20float\x20fxaaQualityEdgeThreshold=0.166;\x0aconst\x20float\x20fxaaQualityEdgeThresholdMin=0.0833;\x0aconst\x20vec3\x20kLumaCoefficients=vec3(0.2126,0.7152,0.0722);\x0a#define\x20FxaaLuma(rgba)\x20dot(rgba.rgb,kLumaCoefficients)\x0avoid\x20main(){\x0avec2\x20posM;\x0aposM.x=vUV.x;\x0aposM.y=vUV.y;\x0avec4\x20rgbyM=TEXTUREFUNC(textureSampler,vUV,0.0);\x0afloat\x20lumaM=FxaaLuma(rgbyM);\x0afloat\x20lumaS=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordS,0.0));\x0afloat\x20lumaE=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordE,0.0));\x0afloat\x20lumaN=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordN,0.0));\x0afloat\x20lumaW=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordW,0.0));\x0afloat\x20maxSM=max(lumaS,lumaM);\x0afloat\x20minSM=min(lumaS,lumaM);\x0afloat\x20maxESM=max(lumaE,maxSM);\x0afloat\x20minESM=min(lumaE,minSM);\x0afloat\x20maxWN=max(lumaN,lumaW);\x0afloat\x20minWN=min(lumaN,lumaW);\x0afloat\x20rangeMax=max(maxWN,maxESM);\x0afloat\x20rangeMin=min(minWN,minESM);\x0afloat\x20rangeMaxScaled=rangeMax*fxaaQualityEdgeThreshold;\x0afloat\x20range=rangeMax-rangeMin;\x0afloat\x20rangeMaxClamped=max(fxaaQualityEdgeThresholdMin,rangeMaxScaled);\x0a#ifndef\x20MALI\x0aif(range<rangeMaxClamped)\x20\x0a{\x0agl_FragColor=rgbyM;\x0areturn;\x0a}\x0a#endif\x0afloat\x20lumaNW=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordNW,0.0));\x0afloat\x20lumaSE=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordSE,0.0));\x0afloat\x20lumaNE=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordNE,0.0));\x0afloat\x20lumaSW=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordSW,0.0));\x0afloat\x20lumaNS=lumaN+lumaS;\x0afloat\x20lumaWE=lumaW+lumaE;\x0afloat\x20subpixRcpRange=1.0/range;\x0afloat\x20subpixNSWE=lumaNS+lumaWE;\x0afloat\x20edgeHorz1=(-2.0*lumaM)+lumaNS;\x0afloat\x20edgeVert1=(-2.0*lumaM)+lumaWE;\x0afloat\x20lumaNESE=lumaNE+lumaSE;\x0afloat\x20lumaNWNE=lumaNW+lumaNE;\x0afloat\x20edgeHorz2=(-2.0*lumaE)+lumaNESE;\x0afloat\x20edgeVert2=(-2.0*lumaN)+lumaNWNE;\x0afloat\x20lumaNWSW=lumaNW+lumaSW;\x0afloat\x20lumaSWSE=lumaSW+lumaSE;\x0afloat\x20edgeHorz4=(abs(edgeHorz1)*2.0)+abs(edgeHorz2);\x0afloat\x20edgeVert4=(abs(edgeVert1)*2.0)+abs(edgeVert2);\x0afloat\x20edgeHorz3=(-2.0*lumaW)+lumaNWSW;\x0afloat\x20edgeVert3=(-2.0*lumaS)+lumaSWSE;\x0afloat\x20edgeHorz=abs(edgeHorz3)+edgeHorz4;\x0afloat\x20edgeVert=abs(edgeVert3)+edgeVert4;\x0afloat\x20subpixNWSWNESE=lumaNWSW+lumaNESE;\x0afloat\x20lengthSign=texelSize.x;\x0abool\x20horzSpan=edgeHorz>=edgeVert;\x0afloat\x20subpixA=subpixNSWE*2.0+subpixNWSWNESE;\x0aif\x20(!horzSpan)\x0a{\x0alumaN=lumaW;\x0a}\x0aif\x20(!horzSpan)\x20\x0a{\x0alumaS=lumaE;\x0a}\x0aif\x20(horzSpan)\x20\x0a{\x0alengthSign=texelSize.y;\x0a}\x0afloat\x20subpixB=(subpixA*(1.0/12.0))-lumaM;\x0afloat\x20gradientN=lumaN-lumaM;\x0afloat\x20gradientS=lumaS-lumaM;\x0afloat\x20lumaNN=lumaN+lumaM;\x0afloat\x20lumaSS=lumaS+lumaM;\x0abool\x20pairN=abs(gradientN)>=abs(gradientS);\x0afloat\x20gradient=max(abs(gradientN),abs(gradientS));\x0aif\x20(pairN)\x0a{\x0alengthSign=-lengthSign;\x0a}\x0afloat\x20subpixC=clamp(abs(subpixB)*subpixRcpRange,0.0,1.0);\x0avec2\x20posB;\x0aposB.x=posM.x;\x0aposB.y=posM.y;\x0avec2\x20offNP;\x0aoffNP.x=(!horzSpan)\x20?\x200.0\x20:\x20texelSize.x;\x0aoffNP.y=(horzSpan)\x20?\x200.0\x20:\x20texelSize.y;\x0aif\x20(!horzSpan)\x20\x0a{\x0aposB.x+=lengthSign*0.5;\x0a}\x0aif\x20(horzSpan)\x0a{\x0aposB.y+=lengthSign*0.5;\x0a}\x0avec2\x20posN;\x0aposN.x=posB.x-offNP.x*1.5;\x0aposN.y=posB.y-offNP.y*1.5;\x0avec2\x20posP;\x0aposP.x=posB.x+offNP.x*1.5;\x0aposP.y=posB.y+offNP.y*1.5;\x0afloat\x20subpixD=((-2.0)*subpixC)+3.0;\x0afloat\x20lumaEndN=FxaaLuma(TEXTUREFUNC(textureSampler,posN,0.0));\x0afloat\x20subpixE=subpixC*subpixC;\x0afloat\x20lumaEndP=FxaaLuma(TEXTUREFUNC(textureSampler,posP,0.0));\x0aif\x20(!pairN)\x20\x0a{\x0alumaNN=lumaSS;\x0a}\x0afloat\x20gradientScaled=gradient*1.0/4.0;\x0afloat\x20lumaMM=lumaM-lumaNN*0.5;\x0afloat\x20subpixF=subpixD*subpixE;\x0abool\x20lumaMLTZero=lumaMM<0.0;\x0alumaEndN-=lumaNN*0.5;\x0alumaEndP-=lumaNN*0.5;\x0abool\x20doneN=abs(lumaEndN)>=gradientScaled;\x0abool\x20doneP=abs(lumaEndP)>=gradientScaled;\x0aif\x20(!doneN)\x20\x0a{\x0aposN.x-=offNP.x*3.0;\x0a}\x0aif\x20(!doneN)\x20\x0a{\x0aposN.y-=offNP.y*3.0;\x0a}\x0abool\x20doneNP=(!doneN)\x20||\x20(!doneP);\x0aif\x20(!doneP)\x20\x0a{\x0aposP.x+=offNP.x*3.0;\x0a}\x0aif\x20(!doneP)\x0a{\x0aposP.y+=offNP.y*3.0;\x0a}\x0aif\x20(doneNP)\x0a{\x0aif\x20(!doneN)\x20lumaEndN=FxaaLuma(TEXTUREFUNC(textureSampler,posN.xy,0.0));\x0aif\x20(!doneP)\x20lumaEndP=FxaaLuma(TEXTUREFUNC(textureSampler,posP.xy,0.0));\x0aif\x20(!doneN)\x20lumaEndN=lumaEndN-lumaNN*0.5;\x0aif\x20(!doneP)\x20lumaEndP=lumaEndP-lumaNN*0.5;\x0adoneN=abs(lumaEndN)>=gradientScaled;\x0adoneP=abs(lumaEndP)>=gradientScaled;\x0aif\x20(!doneN)\x20posN.x-=offNP.x*12.0;\x0aif\x20(!doneN)\x20posN.y-=offNP.y*12.0;\x0adoneNP=(!doneN)\x20||\x20(!doneP);\x0aif\x20(!doneP)\x20posP.x+=offNP.x*12.0;\x0aif\x20(!doneP)\x20posP.y+=offNP.y*12.0;\x0a}\x0afloat\x20dstN=posM.x-posN.x;\x0afloat\x20dstP=posP.x-posM.x;\x0aif\x20(!horzSpan)\x0a{\x0adstN=posM.y-posN.y;\x0a}\x0aif\x20(!horzSpan)\x20\x0a{\x0adstP=posP.y-posM.y;\x0a}\x0abool\x20goodSpanN=(lumaEndN<0.0)\x20!=\x20lumaMLTZero;\x0afloat\x20spanLength=(dstP+dstN);\x0abool\x20goodSpanP=(lumaEndP<0.0)\x20!=\x20lumaMLTZero;\x0afloat\x20spanLengthRcp=1.0/spanLength;\x0abool\x20directionN=dstN<dstP;\x0afloat\x20dst=min(dstN,dstP);\x0abool\x20goodSpan=directionN\x20?\x20goodSpanN\x20:\x20goodSpanP;\x0afloat\x20subpixG=subpixF*subpixF;\x0afloat\x20pixelOffset=(dst*(-spanLengthRcp))+0.5;\x0afloat\x20subpixH=subpixG*fxaaQualitySubpix;\x0afloat\x20pixelOffsetGood=goodSpan\x20?\x20pixelOffset\x20:\x200.0;\x0afloat\x20pixelOffsetSubpix=max(pixelOffsetGood,subpixH);\x0aif\x20(!horzSpan)\x0a{\x0aposM.x+=pixelOffsetSubpix*lengthSign;\x0a}\x0aif\x20(horzSpan)\x0a{\x0aposM.y+=pixelOffsetSubpix*lengthSign;\x0a}\x0a#ifdef\x20MALI\x0aif(range<rangeMaxClamped)\x20\x0a{\x0agl_FragColor=rgbyM;\x0a}\x0aelse\x0a{\x0agl_FragColor=TEXTUREFUNC(textureSampler,posM,0.0);\x0a}\x0a#else\x0agl_FragColor=TEXTUREFUNC(textureSampler,posM,0.0);\x0a#endif\x0a}','projectedParticleConstant','_querySet','setInt2','blurFilterSize','_unpackFlipY','autoResetAlpha','vec3\x20hemisphereCosSample(vec2\x20u)\x20{\x0afloat\x20phi=2.*PI*u.x;\x0afloat\x20cosTheta2=1.-u.y;\x0afloat\x20cosTheta=sqrt(cosTheta2);\x0afloat\x20sinTheta=sqrt(1.-cosTheta2);\x0areturn\x20vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);\x0a}\x0avec3\x20hemisphereImportanceSampleDggx(vec2\x20u,float\x20a)\x20{\x0afloat\x20phi=2.*PI*u.x;\x0afloat\x20cosTheta2=(1.-u.y)/(1.+(a+1.)*((a-1.)*u.y));\x0afloat\x20cosTheta=sqrt(cosTheta2);\x0afloat\x20sinTheta=sqrt(1.-cosTheta2);\x0areturn\x20vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);\x0a}\x0avec3\x20hemisphereImportanceSampleDCharlie(vec2\x20u,float\x20a)\x20{\x20\x0afloat\x20phi=2.*PI*u.x;\x0afloat\x20sinTheta=pow(u.y,a/(2.*a+1.));\x0afloat\x20cosTheta=sqrt(1.-sinTheta*sinTheta);\x0areturn\x20vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);\x0a}','isMultiview','\x20=\x20computePlanarCoords(','loop','POLYGON_OFFSET_FILL','SubSurfaceScatteringPostProcess','\x0a//','_resizeOrCreateMultiviewTexture','setExternalTexture:\x20This\x20engine\x20does\x20not\x20support\x20external\x20textures!',')\x20uniform\x20','getFileName','\x20:\x20array<','#ifdef\x20MAINUV{X}\x0avarying\x20vec2\x20vMainUV{X};\x0a#endif\x0a','_opStencilDepthPass','bakedVertexAnimationDeclaration','resolution','MATERIAL_LineListDrawMode','split','unBindMesh','MapRead','isSupported','ASTC4x4Unorm','setBool','_internalAbstractMeshDataInfo','releaseBuffer','NAME_SUBSURFACE','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0agl_FragColor=texture2D(textureSampler,vUV);\x0a}','depthRTWrapper','instancedArrays','lensHighlightsPixelShader','charAt','textureLod(','updateMatrix','##INJECTCODE##\x0a','copyExternalImageToTexture','BABYLON.IridescenceBlock','setDirectColor4','systemValue','BC4RSnorm','RGBA8Snorm','textureCubeArray','instancesVertex','_cloneRenderTargetWrapper','texture3D','setArray','splice','thinInstanceAddSelf','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20refractionSampler;\x0auniform\x20vec3\x20baseColor;\x0auniform\x20float\x20depth;\x0auniform\x20float\x20colorLevel;\x0avoid\x20main()\x20{\x0afloat\x20ref=1.0-texture2D(refractionSampler,vUV).r;\x0avec2\x20uv=vUV-vec2(0.5);\x0avec2\x20offset=uv*depth*ref;\x0avec3\x20sourceColor=texture2D(textureSampler,vUV-offset).rgb;\x0agl_FragColor=vec4(sourceColor+sourceColor*ref*colorLevel,1.0);\x0a}','RG16Sint','extensions','getMaterial','setAll','uv6','texImage3D','componentCount','isValid','_direction','updateFloat','isExternalTexture','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#else\x0d\x0a','_fragmentSourceCode','angle','setUInt2','getRenderWidth','setStencilWriteMask','ASTC8x6UnormSRGB','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','bindFramebuffer','_totalPointersPressed','_dummyFramebuffer','popDebugGroup','vClipPlane3','textureSampler','getHardwareScalingLevel','_context','ssFilterRadii','shouldUseHighPrecisionShader','then','set','_getPipeline','irradianceSampler','_viewMatrix','getAspectRatio','TEXTURE_CUBE_MAP_POSITIVE_Y','onPointerDown','POINTERWHEEL','normalPixelShader','vertex','_pipelines','ASTC10x6Unorm','wmips','diffusionD','hasFloatTextures','updateCount','_isCullDirty','layers','dataOffsetStart','children','_setDepthTextureFormat','maxCubemapTextureSize','_renderEncoder','ASTC5x5Unorm','pbrFragmentDeclaration','notConnectedNonOptionalInputs','_deleteComputePipelineContext','Depth16Unorm','Warn','invertV','cancelAllCoroutines','TEXTURETYPE_SHORT','layerIndices','unbindInstanceAttributes','ref','subSurfaceScattering','_unTranslatedPointerY','Stencil8','_depthTest','#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#ifdef\x20SPHERICAL_HARMONICS\x0avec3\x20computeEnvironmentIrradiance(vec3\x20normal)\x20{\x0areturn\x20vSphericalL00\x0a+\x20vSphericalL1_1*(normal.y)\x0a+\x20vSphericalL10*(normal.z)\x0a+\x20vSphericalL11*(normal.x)\x0a+\x20vSphericalL2_2*(normal.y*normal.x)\x0a+\x20vSphericalL2_1*(normal.y*normal.z)\x0a+\x20vSphericalL20*((3.0*normal.z*normal.z)-1.0)\x0a+\x20vSphericalL21*(normal.z*normal.x)\x0a+\x20vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));\x0a}\x0a#else\x0avec3\x20computeEnvironmentIrradiance(vec3\x20normal)\x20{\x0afloat\x20Nx=normal.x;\x0afloat\x20Ny=normal.y;\x0afloat\x20Nz=normal.z;\x0avec3\x20C1=vSphericalZZ.rgb;\x0avec3\x20Cx=vSphericalX.rgb;\x0avec3\x20Cy=vSphericalY.rgb;\x0avec3\x20Cz=vSphericalZ.rgb;\x0avec3\x20Cxx_zz=vSphericalXX_ZZ.rgb;\x0avec3\x20Cyy_zz=vSphericalYY_ZZ.rgb;\x0avec3\x20Cxy=vSphericalXY.rgb;\x0avec3\x20Cyz=vSphericalYZ.rgb;\x0avec3\x20Czx=vSphericalZX.rgb;\x0avec3\x20a1=Cyy_zz*Ny+Cy;\x0avec3\x20a2=Cyz*Nz+a1;\x0avec3\x20b1=Czx*Nz+Cx;\x0avec3\x20b2=Cxy*Ny+b1;\x0avec3\x20b3=Cxx_zz*Nx+b2;\x0avec3\x20t1=Cz\x20*Nz+C1;\x0avec3\x20t2=a2\x20*Ny+t1;\x0avec3\x20t3=b3\x20*Nx+t2;\x0areturn\x20t3;\x0a}\x0a#endif\x0a#endif\x0a','#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a','renderbufferStorageMultisample','iridescence','currentOffsetStartTemp','_depthRTWrapper','NEGATIVE_INFINITY','_blurTextureFormat','getError','ALPHA_REVERSEONEMINUS','defaultFragmentDeclaration','focus','vrdisplaypointerunrestricted','TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4','generateMipmap','previousViewProjection','#ifdef\x20MORPHTARGETS\x0a#ifndef\x20MORPHTARGETS_TEXTURE\x0aattribute\x20vec3\x20position{X};\x0a#ifdef\x20MORPHTARGETS_NORMAL\x0aattribute\x20vec3\x20normal{X};\x0a#endif\x0a#ifdef\x20MORPHTARGETS_TANGENT\x0aattribute\x20vec3\x20tangent{X};\x0a#endif\x0a#ifdef\x20MORPHTARGETS_UV\x0aattribute\x20vec2\x20uv_{X};\x0a#endif\x0a#endif\x0a#endif\x0a','setAlphaEquationParameters','catch','_texture','pointerY','_xrSessionManager','vrdisplaydisconnect','useMultiview','prePassVertex','_currentFramebuffer','precision\x20highp\x20float;\x0avarying\x20vec2\x20vDecalTC;\x0auniform\x20sampler2D\x20textureSampler;\x0avoid\x20main(void)\x20{\x0aif\x20(vDecalTC.x<0.\x20||\x20vDecalTC.x>1.\x20||\x20vDecalTC.y<0.\x20||\x20vDecalTC.y>1.)\x20{\x0adiscard;\x0a}\x0agl_FragColor=texture2D(textureSampler,vDecalTC);\x0a}\x0a','initWebVRAsync','_emitCodeFromInclude','releaseMSAATexture','_isPointerSwiping','attachCamerasToRenderPipeline','alphaTest','#ifdef\x20LIGHT{X}\x0auniform\x20Light{X}\x0a{\x0avec4\x20vLightData;\x0avec4\x20vLightDiffuse;\x0avec4\x20vLightSpecular;\x0a#ifdef\x20SPOTLIGHT{X}\x0avec4\x20vLightDirection;\x0avec4\x20vLightFalloff;\x0a#elif\x20defined(POINTLIGHT{X})\x0avec4\x20vLightFalloff;\x0a#elif\x20defined(HEMILIGHT{X})\x0avec3\x20vLightGround;\x0a#endif\x0avec4\x20shadowsInfo;\x0avec2\x20depthValues;\x0a}\x20light{X};\x0a#ifdef\x20SHADOW{X}\x0a#ifdef\x20SHADOWCSM{X}\x0auniform\x20mat4\x20lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20vec4\x20vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20float\x20vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20vec4\x20vPositionFromCamera{X};\x0a#elif\x20defined(SHADOWCUBE{X})\x0a#else\x0avarying\x20vec4\x20vPositionFromLight{X};\x0avarying\x20float\x20vDepthMetric{X};\x0auniform\x20mat4\x20lightMatrix{X};\x0a#endif\x0a#endif\x0a#endif\x0a','assign','updateUInt4','shadowOnlyPixelShader','_internalTextureDirty','ACTION_OnPointerOverTrigger','uniform\x20float\x20particleAlpha;\x0avarying\x20vec2\x20uv;\x0avoid\x20main(void)\x20{\x0avec3\x20normal;\x0anormal.xy=uv*2.0-1.0;\x0afloat\x20r2=dot(normal.xy,normal.xy);\x0aif\x20(r2>1.0)\x20discard;\x0afloat\x20thickness=sqrt(1.0-r2);\x0aglFragColor=vec4(vec3(particleAlpha*thickness),1.0);\x0a}\x0a','shadowMapPixelShader','depth','index','availableTextures','_samples','World','uniform\x20sampler2D\x20depthSampler;\x0avarying\x20vec2\x20vUV;\x0auniform\x20vec2\x20cameraMinMaxZ;\x0auniform\x20float\x20focusDistance;\x0auniform\x20float\x20cocPrecalculation;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0afloat\x20depth=texture2D(depthSampler,vUV).r;\x0a#define\x20CUSTOM_COC_DEPTH\x0afloat\x20pixelDistance=(cameraMinMaxZ.x+cameraMinMaxZ.y*depth)*1000.0;\x20\x0a#define\x20CUSTOM_COC_PIXELDISTANCE\x0afloat\x20coc=abs(cocPrecalculation*((focusDistance-pixelDistance)/pixelDistance));\x0acoc=clamp(coc,0.0,1.0);\x0agl_FragColor=vec4(coc,coc,coc,1.0);\x0a}\x0a','_handlesSpectorRebuildCallback','is3D','layout(location\x20=\x20','layout(location\x20=\x200)\x20','UNSIGNED_SHORT','depthThreshold','coordinatesMode','#extension\x20GL_EXT_draw_buffers\x20:\x20require\x0a#if\x20defined(BUMP)\x20||\x20!defined(NORMAL)\x0a#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0a#endif\x0aprecision\x20highp\x20float;\x0a#ifdef\x20BUMP\x0avarying\x20mat4\x20vWorldView;\x0avarying\x20vec3\x20vNormalW;\x0a#else\x0avarying\x20vec3\x20vNormalV;\x0a#endif\x0avarying\x20vec4\x20vViewPos;\x0a#if\x20defined(POSITION)\x20||\x20defined(BUMP)\x0avarying\x20vec3\x20vPositionW;\x0a#endif\x0a#ifdef\x20VELOCITY\x0avarying\x20vec4\x20vCurrentPosition;\x0avarying\x20vec4\x20vPreviousPosition;\x0a#endif\x0a#ifdef\x20NEED_UV\x0avarying\x20vec2\x20vUV;\x0a#endif\x0a#ifdef\x20BUMP\x0auniform\x20vec3\x20vBumpInfos;\x0auniform\x20vec2\x20vTangentSpaceParams;\x0a#endif\x0a#if\x20defined(REFLECTIVITY)\x0a#if\x20defined(ORMTEXTURE)\x20||\x20defined(SPECULARGLOSSINESSTEXTURE)\x20||\x20defined(REFLECTIVITYTEXTURE)\x0auniform\x20sampler2D\x20reflectivitySampler;\x0avarying\x20vec2\x20vReflectivityUV;\x0a#endif\x0a#ifdef\x20ALBEDOTEXTURE\x0avarying\x20vec2\x20vAlbedoUV;\x0auniform\x20sampler2D\x20albedoSampler;\x0a#endif\x0a#ifdef\x20REFLECTIVITYCOLOR\x0auniform\x20vec3\x20reflectivityColor;\x0a#endif\x0a#ifdef\x20ALBEDOCOLOR\x0auniform\x20vec3\x20albedoColor;\x0a#endif\x0a#ifdef\x20METALLIC\x0auniform\x20float\x20metallic;\x0a#endif\x0a#if\x20defined(ROUGHNESS)\x20||\x20defined(GLOSSINESS)\x0auniform\x20float\x20glossiness;\x0a#endif\x0a#endif\x0a#if\x20defined(ALPHATEST)\x20&&\x20defined(NEED_UV)\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<mrtFragmentDeclaration>[RENDER_TARGET_COUNT]\x0a#include<bumpFragmentMainFunctions>\x0a#include<bumpFragmentFunctions>\x0a#include<helperFunctions>\x0avoid\x20main()\x20{\x0a#include<clipPlaneFragment>\x0a#ifdef\x20ALPHATEST\x0aif\x20(texture2D(diffuseSampler,vUV).a<0.4)\x0adiscard;\x0a#endif\x0avec3\x20normalOutput;\x0a#ifdef\x20BUMP\x0avec3\x20normalW=normalize(vNormalW);\x0a#include<bumpFragment>\x0anormalOutput=normalize(vec3(vWorldView*vec4(normalW,0.0)));\x0a#else\x0anormalOutput=normalize(vNormalV);\x0a#endif\x0a#ifdef\x20PREPASS\x0a#ifdef\x20PREPASS_DEPTH\x0agl_FragData[DEPTH_INDEX]=vec4(vViewPos.z/vViewPos.w,0.0,0.0,1.0);\x0a#endif\x0a#ifdef\x20PREPASS_NORMAL\x0agl_FragData[NORMAL_INDEX]=vec4(normalOutput,1.0);\x0a#endif\x0a#else\x0agl_FragData[0]=vec4(vViewPos.z/vViewPos.w,0.0,0.0,1.0);\x0agl_FragData[1]=vec4(normalOutput,1.0);\x0a#endif\x0a#ifdef\x20POSITION\x0agl_FragData[POSITION_INDEX]=vec4(vPositionW,1.0);\x0a#endif\x0a#ifdef\x20VELOCITY\x0avec2\x20a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;\x0avec2\x20b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;\x0avec2\x20velocity=abs(a-b);\x0avelocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;\x0agl_FragData[VELOCITY_INDEX]=vec4(velocity,0.0,1.0);\x0a#endif\x0a#ifdef\x20REFLECTIVITY\x0avec4\x20reflectivity=vec4(0.0,0.0,0.0,1.0);\x0a#ifdef\x20METALLICWORKFLOW\x0afloat\x20metal=1.0;\x0afloat\x20roughness=1.0;\x0a#ifdef\x20ORMTEXTURE\x0ametal*=texture2D(reflectivitySampler,vReflectivityUV).b;\x0aroughness*=texture2D(reflectivitySampler,vReflectivityUV).g;\x0a#endif\x0a#ifdef\x20METALLIC\x0ametal*=metallic;\x0a#endif\x0a#ifdef\x20ROUGHNESS\x0aroughness*=(1.0-glossiness);\x20\x0a#endif\x0areflectivity.a-=roughness;\x0avec3\x20color=vec3(1.0);\x0a#ifdef\x20ALBEDOTEXTURE\x0acolor=texture2D(albedoSampler,vAlbedoUV).rgb;\x0a#ifdef\x20GAMMAALBEDO\x0acolor=toLinearSpace(color);\x0a#endif\x0a#endif\x0a#ifdef\x20ALBEDOCOLOR\x0acolor*=albedoColor.xyz;\x0a#endif\x0areflectivity.rgb=mix(vec3(0.04),color,metal);\x0a#else\x0a#if\x20defined(SPECULARGLOSSINESSTEXTURE)\x20||\x20defined(REFLECTIVITYTEXTURE)\x0areflectivity=texture2D(reflectivitySampler,vReflectivityUV);\x0a#ifdef\x20GAMMAREFLECTIVITYTEXTURE\x0areflectivity.rgb=toLinearSpace(reflectivity.rgb);\x0a#endif\x0a#else\x20\x0a#ifdef\x20REFLECTIVITYCOLOR\x0areflectivity.rgb=toLinearSpace(reflectivityColor.xyz);\x0areflectivity.a=1.0;\x0a#endif\x0a#endif\x0a#ifdef\x20GLOSSINESSS\x0areflectivity.a*=glossiness;\x20\x0a#endif\x0a#endif\x0agl_FragData[REFLECTIVITY_INDEX]=reflectivity;\x0a#endif\x0a}\x0a','uniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0a#ifdef\x20SPECULARTERM\x0auniform\x20vec4\x20vSpecularColor;\x0a#endif\x0auniform\x20vec3\x20vEmissiveColor;\x0auniform\x20vec3\x20vAmbientColor;\x0auniform\x20float\x20visibility;\x0a#ifdef\x20DIFFUSE\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20AMBIENT\x0auniform\x20vec2\x20vAmbientInfos;\x0a#endif\x0a#ifdef\x20OPACITY\x20\x0auniform\x20vec2\x20vOpacityInfos;\x0a#endif\x0a#ifdef\x20EMISSIVE\x0auniform\x20vec2\x20vEmissiveInfos;\x0a#endif\x0a#ifdef\x20LIGHTMAP\x0auniform\x20vec2\x20vLightmapInfos;\x0a#endif\x0a#ifdef\x20BUMP\x0auniform\x20vec3\x20vBumpInfos;\x0auniform\x20vec2\x20vTangentSpaceParams;\x0a#endif\x0a#ifdef\x20ALPHATEST\x0auniform\x20float\x20alphaCutOff;\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_SPHERICAL)\x20||\x20defined(REFLECTIONMAP_PROJECTION)\x20||\x20defined(REFRACTION)\x20||\x20defined(PREPASS)\x0auniform\x20mat4\x20view;\x0a#endif\x0a#ifdef\x20REFRACTION\x0auniform\x20vec4\x20vRefractionInfos;\x0a#ifndef\x20REFRACTIONMAP_3D\x0auniform\x20mat4\x20refractionMatrix;\x0a#endif\x0a#ifdef\x20REFRACTIONFRESNEL\x0auniform\x20vec4\x20refractionLeftColor;\x0auniform\x20vec4\x20refractionRightColor;\x0a#endif\x0a#if\x20defined(USE_LOCAL_REFRACTIONMAP_CUBIC)\x20&&\x20defined(REFRACTIONMAP_3D)\x0auniform\x20vec3\x20vRefractionPosition;\x0auniform\x20vec3\x20vRefractionSize;\x20\x0a#endif\x0a#endif\x0a#if\x20defined(SPECULAR)\x20&&\x20defined(SPECULARTERM)\x0auniform\x20vec2\x20vSpecularInfos;\x0a#endif\x0a#ifdef\x20DIFFUSEFRESNEL\x0auniform\x20vec4\x20diffuseLeftColor;\x0auniform\x20vec4\x20diffuseRightColor;\x0a#endif\x0a#ifdef\x20OPACITYFRESNEL\x0auniform\x20vec4\x20opacityParts;\x0a#endif\x0a#ifdef\x20EMISSIVEFRESNEL\x0auniform\x20vec4\x20emissiveLeftColor;\x0auniform\x20vec4\x20emissiveRightColor;\x0a#endif\x0a#ifdef\x20REFLECTION\x0auniform\x20vec2\x20vReflectionInfos;\x0a#if\x20defined(REFLECTIONMAP_PLANAR)\x20||\x20defined(REFLECTIONMAP_CUBIC)\x20||\x20defined(REFLECTIONMAP_PROJECTION)\x20||\x20defined(REFLECTIONMAP_EQUIRECTANGULAR)\x20||\x20defined(REFLECTIONMAP_SPHERICAL)\x20||\x20defined(REFLECTIONMAP_SKYBOX)\x0auniform\x20mat4\x20reflectionMatrix;\x0a#endif\x0a#ifndef\x20REFLECTIONMAP_SKYBOX\x0a#if\x20defined(USE_LOCAL_REFLECTIONMAP_CUBIC)\x20&&\x20defined(REFLECTIONMAP_CUBIC)\x0auniform\x20vec3\x20vReflectionPosition;\x0auniform\x20vec3\x20vReflectionSize;\x20\x0a#endif\x0a#endif\x0a#ifdef\x20REFLECTIONFRESNEL\x0auniform\x20vec4\x20reflectionLeftColor;\x0auniform\x20vec4\x20reflectionRightColor;\x0a#endif\x0a#endif\x0a#ifdef\x20DETAIL\x0auniform\x20vec4\x20vDetailInfos;\x0a#endif\x0a#include<decalFragmentDeclaration>\x0a#define\x20ADDITIONAL_FRAGMENT_DECLARATION\x0a','const\x20vec3\x20TWO=vec3(2.0,2.0,2.0);\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20camASampler;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20stepSize;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0abool\x20useCamA;\x0abool\x20useCamB;\x0avec2\x20texCoord1;\x0avec2\x20texCoord2;\x0avec3\x20frag1;\x0avec3\x20frag2;\x0a#ifdef\x20IS_STEREOSCOPIC_HORIZ\x0auseCamB=vUV.x>0.5;\x0auseCamA=!useCamB;\x0atexCoord1=vec2(useCamB\x20?\x20(vUV.x-0.5)*2.0\x20:\x20vUV.x*2.0,vUV.y);\x0atexCoord2=vec2(texCoord1.x+stepSize.x,vUV.y);\x0a#else\x0a#ifdef\x20IS_STEREOSCOPIC_INTERLACED\x0afloat\x20rowNum=floor(vUV.y/stepSize.y);\x0auseCamA=mod(rowNum,2.0)==1.0;\x0auseCamB=mod(rowNum,2.0)==0.0;\x0atexCoord1=vec2(vUV.x,vUV.y);\x0atexCoord2=vec2(vUV.x,vUV.y);\x0a#else\x0auseCamB=vUV.y>0.5;\x0auseCamA=!useCamB;\x0atexCoord1=vec2(vUV.x,useCamB\x20?\x20(vUV.y-0.5)*2.0\x20:\x20vUV.y*2.0);\x0atexCoord2=vec2(vUV.x,texCoord1.y+stepSize.y);\x0a#endif\x0a#endif\x0aif\x20(useCamB){\x0afrag1=texture2D(textureSampler,texCoord1).rgb;\x0afrag2=texture2D(textureSampler,texCoord2).rgb;\x0a}else\x20if\x20(useCamA){\x0afrag1=texture2D(camASampler\x20,texCoord1).rgb;\x0afrag2=texture2D(camASampler\x20,texCoord2).rgb;\x0a}else\x20{\x0adiscard;\x0a}\x0agl_FragColor=vec4((frag1+frag2)/TWO,1.0);\x0a}\x0a','_webVRInitPromise','texture(','encode','copyTextureToBuffer','push','Filtering','importExternalTexture','DEPTH_COMPONENT16','clipPlane5','_vrSupported','READ_FRAMEBUFFER','TEXTUREFORMAT_STENCIL8','CLAMP_TO_EDGE','kernelBlurVaryingDeclaration','GL_ALPHA_EQUATION_REVERSE_SUBTRACT','REFLECTIONMAP_OPPOSITEZ','FluidRenderingRTTBlur-','slice','setSampler','\x20premultiplyAlpha=','captureGPUFrameTime','LINEAR','7xBmlSi','unmap','BC6HRGBUFloat','ALPHA_PREMULTIPLIED_PORTERDUFF','_renderMultiviewToSingleView','Uint','pointCloudVertex','keyup','Dynamic','isNDCHalfZRange','#define\x20NUM_BONE_INFLUENCERS\x20','_isCullFaceDirty','\x20\x20fragmentInputs\x20=\x20input;\x0a\x20\x20','_lines','_xSize','addFallback','externalTextureSamplerBinding','setColorFormat','updateInt2','engine','_pickingAvailable','particleSize',');\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20','___###','vrdisplaypointerrestricted','RGBA8Sint','_addTextureBindingDescription','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSEX\x0avarying\x20vec2\x20vTextureUVX;\x0a#endif\x0a#ifdef\x20DIFFUSEY\x0avarying\x20vec2\x20vTextureUVY;\x0a#endif\x0a#ifdef\x20DIFFUSEZ\x0avarying\x20vec2\x20vTextureUVZ;\x0a#endif\x0auniform\x20float\x20tileSize;\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20mat3\x20tangentSpace;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0agl_Position=viewProjection*worldPos;\x0avPositionW=vec3(worldPos);\x0a#ifdef\x20DIFFUSEX\x0avTextureUVX=worldPos.zy/tileSize;\x0a#endif\x0a#ifdef\x20DIFFUSEY\x0avTextureUVY=worldPos.xz/tileSize;\x0a#endif\x0a#ifdef\x20DIFFUSEZ\x0avTextureUVZ=worldPos.xy/tileSize;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20xtan=vec3(0,0,1);\x0avec3\x20xbin=vec3(0,1,0);\x0avec3\x20ytan=vec3(1,0,0);\x0avec3\x20ybin=vec3(0,0,1);\x0avec3\x20ztan=vec3(1,0,0);\x0avec3\x20zbin=vec3(0,1,0);\x0avec3\x20normalizedNormal=normalize(normal);\x0anormalizedNormal*=normalizedNormal;\x0avec3\x20worldBinormal=normalize(xbin*normalizedNormal.x+ybin*normalizedNormal.y+zbin*normalizedNormal.z);\x0avec3\x20worldTangent=normalize(xtan*normalizedNormal.x+ytan*normalizedNormal.y+ztan*normalizedNormal.z);\x0aworldTangent=(world*vec4(worldTangent,0.0)).xyz;\x0aworldBinormal=(world*vec4(worldBinormal,0.0)).xyz;\x0avec3\x20worldNormal=(world*vec4(normalize(normal),0.0)).xyz;\x0atangentSpace[0]=worldTangent;\x0atangentSpace[1]=worldBinormal;\x0atangentSpace[2]=worldNormal;\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','GL_ALPHA_EQUATION_ADD','#ifdef\x20NUM_SAMPLES\x0a#if\x20NUM_SAMPLES>0\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0afloat\x20radicalInverse_VdC(uint\x20bits)\x20\x0a{\x0abits=(bits<<16u)\x20|\x20(bits>>16u);\x0abits=((bits\x20&\x200x55555555u)<<1u)\x20|\x20((bits\x20&\x200xAAAAAAAAu)>>1u);\x0abits=((bits\x20&\x200x33333333u)<<2u)\x20|\x20((bits\x20&\x200xCCCCCCCCu)>>2u);\x0abits=((bits\x20&\x200x0F0F0F0Fu)<<4u)\x20|\x20((bits\x20&\x200xF0F0F0F0u)>>4u);\x0abits=((bits\x20&\x200x00FF00FFu)<<8u)\x20|\x20((bits\x20&\x200xFF00FF00u)>>8u);\x0areturn\x20float(bits)*2.3283064365386963e-10;\x20\x0a}\x0avec2\x20hammersley(uint\x20i,uint\x20N)\x0a{\x0areturn\x20vec2(float(i)/float(N),radicalInverse_VdC(i));\x0a}\x0a#else\x0afloat\x20vanDerCorpus(int\x20n,int\x20base)\x0a{\x0afloat\x20invBase=1.0/float(base);\x0afloat\x20denom\x20=1.0;\x0afloat\x20result\x20=0.0;\x0afor(int\x20i=0;\x20i<32;\x20++i)\x0a{\x0aif(n>0)\x0a{\x0adenom\x20=mod(float(n),2.0);\x0aresult+=denom*invBase;\x0ainvBase=invBase/2.0;\x0an\x20=int(float(n)/2.0);\x0a}\x0a}\x0areturn\x20result;\x0a}\x0avec2\x20hammersley(int\x20i,int\x20N)\x0a{\x0areturn\x20vec2(float(i)/float(N),vanDerCorpus(i,2));\x0a}\x0a#endif\x0afloat\x20log4(float\x20x)\x20{\x0areturn\x20log2(x)/2.;\x0a}\x0aconst\x20float\x20NUM_SAMPLES_FLOAT=float(NUM_SAMPLES);\x0aconst\x20float\x20NUM_SAMPLES_FLOAT_INVERSED=1./NUM_SAMPLES_FLOAT;\x0aconst\x20float\x20K=4.;\x0a#define\x20inline\x0avec3\x20irradiance(samplerCube\x20inputTexture,vec3\x20inputN,vec2\x20filteringInfo)\x0a{\x0avec3\x20n=normalize(inputN);\x0avec3\x20result=vec3(0.0);\x0avec3\x20tangent=abs(n.z)<0.999\x20?\x20vec3(0.,0.,1.)\x20:\x20vec3(1.,0.,0.);\x0atangent=normalize(cross(tangent,n));\x0avec3\x20bitangent=cross(n,tangent);\x0amat3\x20tbn=mat3(tangent,bitangent,n);\x0afloat\x20maxLevel=filteringInfo.y;\x0afloat\x20dim0=filteringInfo.x;\x0afloat\x20omegaP=(4.*PI)/(6.*dim0*dim0);\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0afor(uint\x20i=0u;\x20i<NUM_SAMPLES;\x20++i)\x0a#else\x0afor(int\x20i=0;\x20i<NUM_SAMPLES;\x20++i)\x0a#endif\x0a{\x0avec2\x20Xi=hammersley(i,NUM_SAMPLES);\x0avec3\x20Ls=hemisphereCosSample(Xi);\x0aLs=normalize(Ls);\x0avec3\x20Ns=vec3(0.,0.,1.);\x0afloat\x20NoL=dot(Ns,Ls);\x0aif\x20(NoL>0.)\x20{\x0afloat\x20pdf_inversed=PI/NoL;\x0afloat\x20omegaS=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed;\x0afloat\x20l=log4(omegaS)-log4(omegaP)+log4(K);\x0afloat\x20mipLevel=clamp(l,0.0,maxLevel);\x0avec3\x20c=textureCubeLodEXT(inputTexture,tbn*Ls,mipLevel).rgb;\x0a#ifdef\x20GAMMA_INPUT\x0ac=toLinearSpace(c);\x0a#endif\x0aresult+=c;\x0a}\x0a}\x0aresult=result*NUM_SAMPLES_FLOAT_INVERSED;\x0areturn\x20result;\x0a}\x0a#define\x20inline\x0avec3\x20radiance(float\x20alphaG,samplerCube\x20inputTexture,vec3\x20inputN,vec2\x20filteringInfo)\x0a{\x0avec3\x20n=normalize(inputN);\x0aif\x20(alphaG==0.)\x20{\x0avec3\x20c=textureCube(inputTexture,n).rgb;\x0a#ifdef\x20GAMMA_INPUT\x0ac=toLinearSpace(c);\x0a#endif\x0areturn\x20c;\x0a}\x20else\x20{\x0avec3\x20result=vec3(0.);\x0avec3\x20tangent=abs(n.z)<0.999\x20?\x20vec3(0.,0.,1.)\x20:\x20vec3(1.,0.,0.);\x0atangent=normalize(cross(tangent,n));\x0avec3\x20bitangent=cross(n,tangent);\x0amat3\x20tbn=mat3(tangent,bitangent,n);\x0afloat\x20maxLevel=filteringInfo.y;\x0afloat\x20dim0=filteringInfo.x;\x0afloat\x20omegaP=(4.*PI)/(6.*dim0*dim0);\x0afloat\x20weight=0.;\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0afor(uint\x20i=0u;\x20i<NUM_SAMPLES;\x20++i)\x0a#else\x0afor(int\x20i=0;\x20i<NUM_SAMPLES;\x20++i)\x0a#endif\x0a{\x0avec2\x20Xi=hammersley(i,NUM_SAMPLES);\x0avec3\x20H=hemisphereImportanceSampleDggx(Xi,alphaG);\x0afloat\x20NoV=1.;\x0afloat\x20NoH=H.z;\x0afloat\x20NoH2=H.z*H.z;\x0afloat\x20NoL=2.*NoH2-1.;\x0avec3\x20L=vec3(2.*NoH*H.x,2.*NoH*H.y,NoL);\x0aL=normalize(L);\x0aif\x20(NoL>0.)\x20{\x0afloat\x20pdf_inversed=4./normalDistributionFunction_TrowbridgeReitzGGX(NoH,alphaG);\x0afloat\x20omegaS=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed;\x0afloat\x20l=log4(omegaS)-log4(omegaP)+log4(K);\x0afloat\x20mipLevel=clamp(float(l),0.0,maxLevel);\x0aweight+=NoL;\x0avec3\x20c=textureCubeLodEXT(inputTexture,tbn*L,mipLevel).rgb;\x0a#ifdef\x20GAMMA_INPUT\x0ac=toLinearSpace(c);\x0a#endif\x0aresult+=c*NoL;\x0a}\x0a}\x0aresult=result/weight;\x0areturn\x20result;\x0a}\x0a}\x0a#endif\x0a#endif\x0a','_initClickEvent','createPostProcess','#if\x20defined(_DEFINENAME_)\x20&&\x20_DEFINENAME_DIRECTUV==0\x0avarying\x20vec2\x20v_VARYINGNAME_UV;\x0a#endif\x0a','createShaderModule','rgbdEncodePixelShader','precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0a#ifdef\x20SPECULARTERM\x0auniform\x20vec4\x20vSpecularColor;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#ifdef\x20DIFFUSEX\x0avarying\x20vec2\x20vTextureUVX;\x0auniform\x20sampler2D\x20diffuseSamplerX;\x0a#ifdef\x20BUMPX\x0auniform\x20sampler2D\x20normalSamplerX;\x0a#endif\x0a#endif\x0a#ifdef\x20DIFFUSEY\x0avarying\x20vec2\x20vTextureUVY;\x0auniform\x20sampler2D\x20diffuseSamplerY;\x0a#ifdef\x20BUMPY\x0auniform\x20sampler2D\x20normalSamplerY;\x0a#endif\x0a#endif\x0a#ifdef\x20DIFFUSEZ\x0avarying\x20vec2\x20vTextureUVZ;\x0auniform\x20sampler2D\x20diffuseSamplerZ;\x0a#ifdef\x20BUMPZ\x0auniform\x20sampler2D\x20normalSamplerZ;\x0a#endif\x0a#endif\x0a#ifdef\x20NORMAL\x0avarying\x20mat3\x20tangentSpace;\x0a#endif\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20baseColor=vec4(0.,0.,0.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=tangentSpace[2];\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0avec4\x20baseNormal=vec4(0.0,0.0,0.0,1.0);\x0anormalW*=normalW;\x0a#ifdef\x20DIFFUSEX\x0abaseColor+=texture2D(diffuseSamplerX,vTextureUVX)*normalW.x;\x0a#ifdef\x20BUMPX\x0abaseNormal+=texture2D(normalSamplerX,vTextureUVX)*normalW.x;\x0a#endif\x0a#endif\x0a#ifdef\x20DIFFUSEY\x0abaseColor+=texture2D(diffuseSamplerY,vTextureUVY)*normalW.y;\x0a#ifdef\x20BUMPY\x0abaseNormal+=texture2D(normalSamplerY,vTextureUVY)*normalW.y;\x0a#endif\x0a#endif\x0a#ifdef\x20DIFFUSEZ\x0abaseColor+=texture2D(diffuseSamplerZ,vTextureUVZ)*normalW.z;\x0a#ifdef\x20BUMPZ\x0abaseNormal+=texture2D(normalSamplerZ,vTextureUVZ)*normalW.z;\x0a#endif\x0a#endif\x0a#ifdef\x20NORMAL\x0anormalW=normalize((2.0*baseNormal.xyz-1.0)*tangentSpace);\x0a#endif\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0a#ifdef\x20SPECULARTERM\x0afloat\x20glossiness=vSpecularColor.a;\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0avec3\x20specularColor=vSpecularColor.rgb;\x0a#else\x0afloat\x20glossiness=0.;\x0a#endif\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20finalSpecular=specularBase*specularColor;\x0a#else\x0avec3\x20finalSpecular=vec3(0.0);\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\x0avec4\x20color=vec4(finalDiffuse+finalSpecular,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','HasTags','clearAllDiffusionProfiles','ShadersStoreWGSL','ColorInstanceKind','#ifdef\x20SHEEN\x0astruct\x20sheenOutParams\x0a{\x0afloat\x20sheenIntensity;\x0avec3\x20sheenColor;\x0afloat\x20sheenRoughness;\x0a#ifdef\x20SHEEN_LINKWITHALBEDO\x0avec3\x20surfaceAlbedo;\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(SHEEN_ALBEDOSCALING)\x0afloat\x20sheenAlbedoScaling;\x0a#endif\x0a#if\x20defined(REFLECTION)\x20&&\x20defined(ENVIRONMENTBRDF)\x0avec3\x20finalSheenRadianceScaled;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0avec4\x20sheenMapData;\x0avec3\x20sheenEnvironmentReflectance;\x0a#endif\x0a};\x0a#define\x20pbr_inline\x0a#define\x20inline\x0avoid\x20sheenBlock(\x0ain\x20vec4\x20vSheenColor,\x0a#ifdef\x20SHEEN_ROUGHNESS\x0ain\x20float\x20vSheenRoughness,\x0a#if\x20defined(SHEEN_TEXTURE_ROUGHNESS)\x20&&\x20!defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL)\x20&&\x20!defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\x0ain\x20vec4\x20sheenMapRoughnessData,\x0a#endif\x0a#endif\x0ain\x20float\x20roughness,\x0a#ifdef\x20SHEEN_TEXTURE\x0ain\x20vec4\x20sheenMapData,\x0ain\x20float\x20sheenMapLevel,\x0a#endif\x0ain\x20float\x20reflectance,\x0a#ifdef\x20SHEEN_LINKWITHALBEDO\x0ain\x20vec3\x20baseColor,\x0ain\x20vec3\x20surfaceAlbedo,\x0a#endif\x0a#ifdef\x20ENVIRONMENTBRDF\x0ain\x20float\x20NdotV,\x0ain\x20vec3\x20environmentBrdf,\x0a#endif\x0a#if\x20defined(REFLECTION)\x20&&\x20defined(ENVIRONMENTBRDF)\x0ain\x20vec2\x20AARoughnessFactors,\x0ain\x20vec3\x20vReflectionMicrosurfaceInfos,\x0ain\x20vec2\x20vReflectionInfos,\x0ain\x20vec3\x20vReflectionColor,\x0ain\x20vec4\x20vLightingIntensity,\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSampler,\x0ain\x20vec3\x20reflectionCoords,\x0a#else\x0ain\x20sampler2D\x20reflectionSampler,\x0ain\x20vec2\x20reflectionCoords,\x0a#endif\x0ain\x20float\x20NdotVUnclamped,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSamplerLow,\x0ain\x20samplerCube\x20reflectionSamplerHigh,\x0a#else\x0ain\x20sampler2D\x20reflectionSamplerLow,\x0ain\x20sampler2D\x20reflectionSamplerHigh,\x0a#endif\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0ain\x20vec2\x20vReflectionFilteringInfo,\x0a#endif\x0a#if\x20!defined(REFLECTIONMAP_SKYBOX)\x20&&\x20defined(RADIANCEOCCLUSION)\x0ain\x20float\x20seo,\x0a#endif\x0a#if\x20!defined(REFLECTIONMAP_SKYBOX)\x20&&\x20defined(HORIZONOCCLUSION)\x20&&\x20defined(BUMP)\x20&&\x20defined(REFLECTIONMAP_3D)\x0ain\x20float\x20eho,\x0a#endif\x0a#endif\x0aout\x20sheenOutParams\x20outParams\x0a)\x0a{\x0afloat\x20sheenIntensity=vSheenColor.a;\x0a#ifdef\x20SHEEN_TEXTURE\x0a#if\x20DEBUGMODE>0\x0aoutParams.sheenMapData=sheenMapData;\x0a#endif\x0a#endif\x0a#ifdef\x20SHEEN_LINKWITHALBEDO\x0afloat\x20sheenFactor=pow5(1.0-sheenIntensity);\x0avec3\x20sheenColor=baseColor.rgb*(1.0-sheenFactor);\x0afloat\x20sheenRoughness=sheenIntensity;\x0aoutParams.surfaceAlbedo=surfaceAlbedo*sheenFactor;\x0a#ifdef\x20SHEEN_TEXTURE\x0asheenIntensity*=sheenMapData.a;\x0a#endif\x0a#else\x0avec3\x20sheenColor=vSheenColor.rgb;\x0a#ifdef\x20SHEEN_TEXTURE\x0a#ifdef\x20SHEEN_GAMMATEXTURE\x0asheenColor.rgb*=toLinearSpace(sheenMapData.rgb);\x0a#else\x0asheenColor.rgb*=sheenMapData.rgb;\x0a#endif\x0asheenColor.rgb*=sheenMapLevel;\x0a#endif\x0a#ifdef\x20SHEEN_ROUGHNESS\x0afloat\x20sheenRoughness=vSheenRoughness;\x0a#ifdef\x20SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE\x0a#if\x20defined(SHEEN_TEXTURE)\x0asheenRoughness*=sheenMapData.a;\x0a#endif\x0a#elif\x20defined(SHEEN_TEXTURE_ROUGHNESS)\x0a#ifdef\x20SHEEN_TEXTURE_ROUGHNESS_IDENTICAL\x0asheenRoughness*=sheenMapData.a;\x0a#else\x0asheenRoughness*=sheenMapRoughnessData.a;\x0a#endif\x0a#endif\x0a#else\x0afloat\x20sheenRoughness=roughness;\x0a#ifdef\x20SHEEN_TEXTURE\x0asheenIntensity*=sheenMapData.a;\x0a#endif\x0a#endif\x0a#if\x20!defined(SHEEN_ALBEDOSCALING)\x0asheenIntensity*=(1.-reflectance);\x0a#endif\x0asheenColor*=sheenIntensity;\x0a#endif\x0a#ifdef\x20ENVIRONMENTBRDF\x0a/*#ifdef\x20SHEEN_SOFTER\x0avec3\x20environmentSheenBrdf=vec3(0.,0.,getBRDFLookupCharlieSheen(NdotV,sheenRoughness));\x0a#else*/\x0a#ifdef\x20SHEEN_ROUGHNESS\x0avec3\x20environmentSheenBrdf=getBRDFLookup(NdotV,sheenRoughness);\x0a#else\x0avec3\x20environmentSheenBrdf=environmentBrdf;\x0a#endif\x0a/*#endif*/\x0a#endif\x0a#if\x20defined(REFLECTION)\x20&&\x20defined(ENVIRONMENTBRDF)\x0afloat\x20sheenAlphaG=convertRoughnessToAverageSlope(sheenRoughness);\x0a#ifdef\x20SPECULARAA\x0asheenAlphaG+=AARoughnessFactors.y;\x0a#endif\x0avec4\x20environmentSheenRadiance=vec4(0.,0.,0.,0.);\x0asampleReflectionTexture(\x0asheenAlphaG,\x0avReflectionMicrosurfaceInfos,\x0avReflectionInfos,\x0avReflectionColor,\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0aNdotVUnclamped,\x0a#endif\x0a#ifdef\x20LINEARSPECULARREFLECTION\x0asheenRoughness,\x0a#endif\x0areflectionSampler,\x0areflectionCoords,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0areflectionSamplerLow,\x0areflectionSamplerHigh,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0avReflectionFilteringInfo,\x0a#endif\x0aenvironmentSheenRadiance\x0a);\x0avec3\x20sheenEnvironmentReflectance=getSheenReflectanceFromBRDFLookup(sheenColor,environmentSheenBrdf);\x0a#if\x20!defined(REFLECTIONMAP_SKYBOX)\x20&&\x20defined(RADIANCEOCCLUSION)\x0asheenEnvironmentReflectance*=seo;\x0a#endif\x0a#if\x20!defined(REFLECTIONMAP_SKYBOX)\x20&&\x20defined(HORIZONOCCLUSION)\x20&&\x20defined(BUMP)\x20&&\x20defined(REFLECTIONMAP_3D)\x0asheenEnvironmentReflectance*=eho;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0aoutParams.sheenEnvironmentReflectance=sheenEnvironmentReflectance;\x0a#endif\x0aoutParams.finalSheenRadianceScaled=\x0aenvironmentSheenRadiance.rgb\x20*\x0asheenEnvironmentReflectance\x20*\x0avLightingIntensity.z;\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(SHEEN_ALBEDOSCALING)\x0aoutParams.sheenAlbedoScaling=1.0-sheenIntensity*max(max(sheenColor.r,sheenColor.g),sheenColor.b)*environmentSheenBrdf.b;\x0a#endif\x0aoutParams.sheenIntensity=sheenIntensity;\x0aoutParams.sheenColor=sheenColor;\x0aoutParams.sheenRoughness=sheenRoughness;\x0a}\x0a#endif\x0a','setFloat','Move','_bundleLists','baseDepth','_userThinInstanceBuffersStorage','mode','samplers','colorAttachment','isQueryResultAvailable','shadowsVertex','scene_multiview','requestPointerLock','disable','updateMultipleRenderTargetTextureSampleCount','allowEmptyVertexProgram','11014704FDCfqH','textureProcessor','ignore','_finalizeFrame','#if\x20SM_NORMALBIAS==1\x0auniform\x20vec3\x20lightDataSM;\x0a#endif\x0auniform\x20vec3\x20biasAndScaleSM;\x0auniform\x20vec2\x20depthValuesSM;\x0avarying\x20float\x20vDepthMetricSM;\x0a#if\x20SM_USEDISTANCE==1\x0avarying\x20vec3\x20vPositionWSM;\x0a#endif\x0a#if\x20defined(SM_DEPTHCLAMP)\x20&&\x20SM_DEPTHCLAMP==1\x0avarying\x20float\x20zSM;\x0a#endif\x0a','layerPixelShader','reConstruct','directionW','texParameteri','opStencilDepthPass','pointerX','_checkSize','end','/*\x20disable_uniformity_analysis\x20*/\x0a#define\x20IOR\x201.333\x0a#define\x20ETA\x201.0/IOR\x0a#define\x20F0\x200.02\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20depthSampler;\x0a#ifdef\x20FLUIDRENDERING_DIFFUSETEXTURE\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#else\x0auniform\x20vec3\x20diffuseColor;\x0a#endif\x0a#ifdef\x20FLUIDRENDERING_FIXED_THICKNESS\x0auniform\x20float\x20thickness;\x0auniform\x20sampler2D\x20bgDepthSampler;\x0a#else\x0auniform\x20float\x20minimumThickness;\x0auniform\x20sampler2D\x20thicknessSampler;\x0a#endif\x0a#ifdef\x20FLUIDRENDERING_ENVIRONMENT\x0auniform\x20samplerCube\x20reflectionSampler;\x0a#endif\x0a#if\x20defined(FLUIDRENDERING_DEBUG)\x20&&\x20defined(FLUIDRENDERING_DEBUG_TEXTURE)\x0auniform\x20sampler2D\x20debugSampler;\x0a#endif\x0auniform\x20mat4\x20viewMatrix;\x0auniform\x20mat4\x20projectionMatrix;\x0auniform\x20mat4\x20invProjectionMatrix;\x0auniform\x20vec2\x20texelSize;\x0auniform\x20vec3\x20dirLight;\x0auniform\x20float\x20cameraFar;\x0auniform\x20float\x20density;\x0auniform\x20float\x20refractionStrength;\x0auniform\x20float\x20fresnelClamp;\x0auniform\x20float\x20specularPower;\x0avarying\x20vec2\x20vUV;\x0avec3\x20computeViewPosFromUVDepth(vec2\x20texCoord,float\x20depth)\x20{\x0avec4\x20ndc;\x0andc.xy=texCoord*2.0-1.0;\x0a#ifdef\x20FLUIDRENDERING_RHS\x0andc.z=-projectionMatrix[2].z+projectionMatrix[3].z/depth;\x0a#else\x0andc.z=projectionMatrix[2].z+projectionMatrix[3].z/depth;\x0a#endif\x0andc.w=1.0;\x0avec4\x20eyePos=invProjectionMatrix*ndc;\x0aeyePos.xyz/=eyePos.w;\x0areturn\x20eyePos.xyz;\x0a}\x0avec3\x20getViewPosFromTexCoord(vec2\x20texCoord)\x20{\x0afloat\x20depth=textureLod(depthSampler,texCoord,0.).x;\x0areturn\x20computeViewPosFromUVDepth(texCoord,depth);\x0a}\x0avoid\x20main(void)\x20{\x0avec2\x20texCoord=vUV;\x0a#if\x20defined(FLUIDRENDERING_DEBUG)\x20&&\x20defined(FLUIDRENDERING_DEBUG_TEXTURE)\x0avec4\x20color=texture2D(debugSampler,texCoord);\x0a#ifdef\x20FLUIDRENDERING_DEBUG_DEPTH\x0aglFragColor=vec4(color.rgb/vec3(2.0),1.);\x0aif\x20(color.r>0.999\x20&&\x20color.g>0.999)\x20{\x0aglFragColor=texture2D(textureSampler,texCoord);\x0a}\x0a#else\x0aglFragColor=vec4(color.rgb,1.);\x0aif\x20(color.r<0.001\x20&&\x20color.g<0.001\x20&&\x20color.b<0.001)\x20{\x0aglFragColor=texture2D(textureSampler,texCoord);\x0a}\x0a#endif\x0areturn;\x0a#endif\x0avec2\x20depthVel=textureLod(depthSampler,texCoord,0.).rg;\x0afloat\x20depth=depthVel.r;\x0a#ifndef\x20FLUIDRENDERING_FIXED_THICKNESS\x0afloat\x20thickness=texture2D(thicknessSampler,texCoord).x;\x0a#else\x0afloat\x20bgDepth=texture2D(bgDepthSampler,texCoord).x;\x0afloat\x20depthNonLinear=projectionMatrix[2].z+projectionMatrix[3].z/depth;\x0adepthNonLinear=depthNonLinear*0.5+0.5;\x0a#endif\x0avec4\x20backColor=texture2D(textureSampler,texCoord);\x0a#ifndef\x20FLUIDRENDERING_FIXED_THICKNESS\x0aif\x20(depth>=cameraFar\x20||\x20depth<=0.\x20||\x20thickness<=minimumThickness)\x20{\x0a#else\x0aif\x20(depth>=cameraFar\x20||\x20depth<=0.\x20||\x20bgDepth<=depthNonLinear)\x20{\x0a#endif\x0aglFragColor=backColor;\x0areturn;\x0a}\x0avec3\x20viewPos=computeViewPosFromUVDepth(texCoord,depth);\x0avec3\x20ddx=getViewPosFromTexCoord(texCoord+vec2(texelSize.x,0.))-viewPos;\x0avec3\x20ddy=getViewPosFromTexCoord(texCoord+vec2(0.,texelSize.y))-viewPos;\x0avec3\x20ddx2=viewPos-getViewPosFromTexCoord(texCoord+vec2(-texelSize.x,0.));\x0aif\x20(abs(ddx.z)>abs(ddx2.z))\x20{\x0addx=ddx2;\x0a}\x0avec3\x20ddy2=viewPos-getViewPosFromTexCoord(texCoord+vec2(0.,-texelSize.y));\x0aif\x20(abs(ddy.z)>abs(ddy2.z))\x20{\x0addy=ddy2;\x0a}\x0avec3\x20normal=normalize(cross(ddy,ddx));\x0a#ifdef\x20FLUIDRENDERING_RHS\x0anormal=-normal;\x0a#endif\x0a#ifndef\x20WEBGPU\x0aif(isnan(normal.x)\x20||\x20isnan(normal.y)\x20||\x20isnan(normal.z)\x20||\x20isinf(normal.x)\x20||\x20isinf(normal.y)\x20||\x20isinf(normal.z))\x20{\x0anormal=vec3(0.,0.,-1.);\x0a}\x0a#endif\x0a#if\x20defined(FLUIDRENDERING_DEBUG)\x20&&\x20defined(FLUIDRENDERING_DEBUG_SHOWNORMAL)\x0aglFragColor=vec4(normal*0.5+0.5,1.0);\x0areturn;\x0a#endif\x0avec3\x20rayDir=normalize(viewPos);\x20\x0a#ifdef\x20FLUIDRENDERING_DIFFUSETEXTURE\x0avec3\x20diffuseColor=textureLod(diffuseSampler,texCoord,0.0).rgb;\x0a#endif\x0avec3\x20lightDir=normalize(vec3(viewMatrix*vec4(-dirLight,0.)));\x0avec3\x20H\x20=normalize(lightDir-rayDir);\x0afloat\x20specular=pow(max(0.0,dot(H,normal)),specularPower);\x0a#ifdef\x20FLUIDRENDERING_DEBUG_DIFFUSERENDERING\x0afloat\x20diffuse\x20=max(0.0,dot(lightDir,normal))*1.0;\x0aglFragColor=vec4(vec3(0.1)\x20/*ambient*/+vec3(0.42,0.50,1.00)*diffuse+vec3(0,0,0.2)+specular,1.);\x0areturn;\x0a#endif\x0avec3\x20refractionDir=refract(rayDir,normal,ETA);\x0avec4\x20transmitted=textureLod(textureSampler,vec2(texCoord+refractionDir.xy*thickness*refractionStrength),0.0);\x0avec3\x20transmittance=exp(-density*thickness*(1.0-diffuseColor));\x20\x0avec3\x20refractionColor=transmitted.rgb*transmittance;\x0a#ifdef\x20FLUIDRENDERING_ENVIRONMENT\x0avec3\x20reflectionDir=reflect(rayDir,normal);\x0avec3\x20reflectionColor=(textureCube(reflectionSampler,reflectionDir).rgb);\x0afloat\x20fresnel=clamp(F0+(1.0-F0)*pow(1.0-dot(normal,-rayDir),5.0),0.,fresnelClamp);\x0avec3\x20finalColor=mix(refractionColor,reflectionColor,fresnel)+specular;\x0a#else\x0avec3\x20finalColor=refractionColor+specular;\x0a#endif\x0a#ifdef\x20FLUIDRENDERING_VELOCITY\x0afloat\x20velocity=depthVel.g;\x0afinalColor=mix(finalColor,vec3(1.0),smoothstep(0.3,1.0,velocity/6.0));\x0a#endif\x0aglFragColor=vec4(finalColor,transmitted.a);\x0a}\x0a','bindUniformBufferBase','getBoundingInfo','AutoSamplerSuffix','onEndFrameObservable','\x20{\x0afloat\x20yFactor_;\x0afloat\x20textureOutputHeight_;\x0a};\x0a','\x5cs*\x5c[(.*)\x5c]','_frameLastBuffer','arrayBufferBlockMaxByteLength','function','ZERO','updateMatrix2x2','emitErrors','_scene','Depth32Float','worldPos','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(internals.yFactor_\x20==\x201.)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fragmentInputs.position.y\x20=\x20internals.textureOutputHeight_\x20-\x20fragmentInputs.position.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20','delay','prototype','TEXTURETYPE_UNSIGNED_INT_24_8','CreateNew','_depthFunc','prePassVertexDeclaration','tangent','ALPHA_DISABLE','_getTexture','attribute\x20vec3\x20position;\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#include<clipPlaneVertexDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20viewProjection;\x0auniform\x20vec2\x20depthValues;\x0a#if\x20defined(ALPHATEST)\x20||\x20defined(NEED_UV)\x0avarying\x20vec2\x20vUV;\x0auniform\x20mat4\x20diffuseMatrix;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#endif\x0a#ifdef\x20STORE_CAMERASPACE_Z\x0auniform\x20mat4\x20view;\x0avarying\x20vec4\x20vViewPos;\x0a#endif\x0avarying\x20float\x20vDepthMetric;\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec3\x20positionUpdated=position;\x0a#ifdef\x20UV1\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(positionUpdated,1.0);\x0a#include<clipPlaneVertex>\x0agl_Position=viewProjection*worldPos;\x0a#ifdef\x20STORE_CAMERASPACE_Z\x0avViewPos=view*worldPos;\x0a#else\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0avDepthMetric=((-gl_Position.z+depthValues.x)/(depthValues.y));\x0a#else\x0avDepthMetric=((gl_Position.z+depthValues.x)/(depthValues.y));\x0a#endif\x0a#endif\x0a#if\x20defined(ALPHATEST)\x20||\x20defined(BASIC_RENDER)\x0a#ifdef\x20UV1\x0avUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20UV2\x0avUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a}\x0a','fluidRenderingBilateralBlur','diffusionProfile','_features','beginRenderPass','createBindGroup','float\x20depthSM=vDepthMetricSM;\x0a#if\x20defined(SM_DEPTHCLAMP)\x20&&\x20SM_DEPTHCLAMP==1\x0a#if\x20SM_USEDISTANCE==1\x0adepthSM=(length(vPositionWSM-lightDataSM)+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\x0a#else\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0adepthSM=(-zSM+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\x0a#else\x0adepthSM=(zSM+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\x0a#endif\x0a#endif\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0agl_FragDepth=clamp(1.0-depthSM,0.0,1.0);\x0a#else\x0agl_FragDepth=clamp(depthSM,0.0,1.0);\x20\x0a#endif\x0a#elif\x20SM_USEDISTANCE==1\x0adepthSM=(length(vPositionWSM-lightDataSM)+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\x0a#endif\x0a#if\x20SM_ESM==1\x0adepthSM=clamp(exp(-min(87.,biasAndScaleSM.z*depthSM)),0.,1.);\x0a#endif\x0a#if\x20SM_FLOAT==1\x0agl_FragColor=vec4(depthSM,1.0,1.0,1.0);\x0a#else\x0agl_FragColor=pack(depthSM);\x0a#endif\x0areturn;','hasEndpoints','setUIntArray2','_alphaBlend','inputIndex','#if\x20defined(CLIPPLANE)\x20||\x20defined(CLIPPLANE2)\x20||\x20defined(CLIPPLANE3)\x20||\x20defined(CLIPPLANE4)\x20||\x20defined(CLIPPLANE5)\x20||\x20defined(CLIPPLANE6)\x0aif\x20(false)\x20{}\x0a#endif\x0a#ifdef\x20CLIPPLANE\x0aelse\x20if\x20(fragmentInputs.fClipDistance>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0aelse\x20if\x20(fragmentInputs.fClipDistance2>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0aelse\x20if\x20(fragmentInputs.fClipDistance3>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0aelse\x20if\x20(fragmentInputs.fClipDistance4>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0aelse\x20if\x20(fragmentInputs.fClipDistance5>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0aelse\x20if\x20(fragmentInputs.fClipDistance6>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a','_uniformBufferLayoutBuilt','setDepthBias','DontInvertY','REFLECTIONMAP_CUBIC','\x0a\x20\x20\x20\x20const\x20vec2\x20pos[4]\x20=\x20vec2[4](vec2(-1.0f,\x201.0f),\x20vec2(1.0f,\x201.0f),\x20vec2(-1.0f,\x20-1.0f),\x20vec2(1.0f,\x20-1.0f));\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20vec4(pos[gl_VertexIndex],\x200.0,\x201.0);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','clearQuadPixelShader','EACR11Snorm','getWidth','_animationStarted','textureAdditionalUsages','computeDispatch:\x20The\x20texture\x20(name=','render','pbrBlockNormalGeometric','INTENSITYMODE_AUTOMATIC','invertY','_func','decalVertexDeclaration','onLoadErrorObservable','_alreadyAttached','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20float\x20degree;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0avec3\x20color=texture2D(textureSampler,vUV).rgb;\x0afloat\x20luminance=dot(color,vec3(0.3,0.59,0.11));\x20\x0avec3\x20blackAndWhite=vec3(luminance,luminance,luminance);\x0agl_FragColor=vec4(color-((color-blackAndWhite)*degree),1.0);\x0a}','#version\x20300\x20es','BC2RGBAUnormSRGB','CLIPPLANE2','getCaps','frontFace','TEXTUREFORMAT_DEPTH24UNORM_STENCIL8','_setTarget','#ifndef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0a#if\x20NUM_BONE_INFLUENCERS>0\x0avar\x20influence\x20:\x20mat4x4<f32>;\x0a#ifdef\x20BONETEXTURE\x0ainfluence=readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[0])*vertexInputs.matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0ainfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[1])*vertexInputs.matricesWeights[1];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0ainfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[2])*vertexInputs.matricesWeights[2];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0ainfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[3])*vertexInputs.matricesWeights[3];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0ainfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[0])*vertexInputs.matricesWeightsExtra[0];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0ainfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[1])*vertexInputs.matricesWeightsExtra[1];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0ainfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[2])*vertexInputs.matricesWeightsExtra[2];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0ainfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[3])*vertexInputs.matricesWeightsExtra[3];\x0a#endif\x20\x0a#else\x20\x0ainfluence=uniforms.mBones[int(vertexInputs.matricesIndices[0])]*vertexInputs.matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0ainfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndices[1])]*vertexInputs.matricesWeights[1];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0ainfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndices[2])]*vertexInputs.matricesWeights[2];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0ainfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndices[3])]*vertexInputs.matricesWeights[3];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0ainfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[0])]*vertexInputs.matricesWeightsExtra[0];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0ainfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[1])]*vertexInputs.matricesWeightsExtra[1];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0ainfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[2])]*vertexInputs.matricesWeightsExtra[2];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0ainfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[3])]*vertexInputs.matricesWeightsExtra[3];\x0a#endif\x20\x0a#endif\x0afinalWorld=finalWorld*influence;\x0a#endif\x0a#endif\x0a','_partialLoadImg','uniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20ALBEDO\x0auniform\x20mat4\x20albedoMatrix;\x0auniform\x20vec2\x20vAlbedoInfos;\x0a#endif\x0a#ifdef\x20AMBIENT\x0auniform\x20mat4\x20ambientMatrix;\x0auniform\x20vec4\x20vAmbientInfos;\x0a#endif\x0a#ifdef\x20OPACITY\x0auniform\x20mat4\x20opacityMatrix;\x0auniform\x20vec2\x20vOpacityInfos;\x0a#endif\x0a#ifdef\x20EMISSIVE\x0auniform\x20vec2\x20vEmissiveInfos;\x0auniform\x20mat4\x20emissiveMatrix;\x0a#endif\x0a#ifdef\x20LIGHTMAP\x0auniform\x20vec2\x20vLightmapInfos;\x0auniform\x20mat4\x20lightmapMatrix;\x0a#endif\x0a#ifdef\x20REFLECTIVITY\x20\x0auniform\x20vec3\x20vReflectivityInfos;\x0auniform\x20mat4\x20reflectivityMatrix;\x0a#endif\x0a#ifdef\x20METALLIC_REFLECTANCE\x0auniform\x20vec2\x20vMetallicReflectanceInfos;\x0auniform\x20mat4\x20metallicReflectanceMatrix;\x0a#endif\x0a#ifdef\x20REFLECTANCE\x0auniform\x20vec2\x20vReflectanceInfos;\x0auniform\x20mat4\x20reflectanceMatrix;\x0a#endif\x0a#ifdef\x20MICROSURFACEMAP\x0auniform\x20vec2\x20vMicroSurfaceSamplerInfos;\x0auniform\x20mat4\x20microSurfaceSamplerMatrix;\x0a#endif\x0a#ifdef\x20BUMP\x0auniform\x20vec3\x20vBumpInfos;\x0auniform\x20mat4\x20bumpMatrix;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0a#ifdef\x20REFLECTION\x0auniform\x20vec2\x20vReflectionInfos;\x0auniform\x20mat4\x20reflectionMatrix;\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0a#if\x20defined(CLEARCOAT_TEXTURE)\x20||\x20defined(CLEARCOAT_TEXTURE_ROUGHNESS)\x0auniform\x20vec4\x20vClearCoatInfos;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0auniform\x20mat4\x20clearCoatMatrix;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TEXTURE_ROUGHNESS\x0auniform\x20mat4\x20clearCoatRoughnessMatrix;\x0a#endif\x0a#ifdef\x20CLEARCOAT_BUMP\x0auniform\x20vec2\x20vClearCoatBumpInfos;\x0auniform\x20mat4\x20clearCoatBumpMatrix;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TINT_TEXTURE\x0auniform\x20vec2\x20vClearCoatTintInfos;\x0auniform\x20mat4\x20clearCoatTintMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0a#if\x20defined(IRIDESCENCE_TEXTURE)\x20||\x20defined(IRIDESCENCE_THICKNESS_TEXTURE)\x0auniform\x20vec4\x20vIridescenceInfos;\x0a#endif\x0a#ifdef\x20IRIDESCENCE_TEXTURE\x0auniform\x20mat4\x20iridescenceMatrix;\x0a#endif\x0a#ifdef\x20IRIDESCENCE_THICKNESS_TEXTURE\x0auniform\x20mat4\x20iridescenceThicknessMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0a#ifdef\x20ANISOTROPIC_TEXTURE\x0auniform\x20vec2\x20vAnisotropyInfos;\x0auniform\x20mat4\x20anisotropyMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20SHEEN\x0a#if\x20defined(SHEEN_TEXTURE)\x20||\x20defined(SHEEN_TEXTURE_ROUGHNESS)\x0auniform\x20vec4\x20vSheenInfos;\x0a#endif\x0a#ifdef\x20SHEEN_TEXTURE\x0auniform\x20mat4\x20sheenMatrix;\x0a#endif\x0a#ifdef\x20SHEEN_TEXTURE_ROUGHNESS\x0auniform\x20mat4\x20sheenRoughnessMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20SUBSURFACE\x0a#ifdef\x20SS_REFRACTION\x0auniform\x20vec4\x20vRefractionInfos;\x0auniform\x20mat4\x20refractionMatrix;\x0a#endif\x0a#ifdef\x20SS_THICKNESSANDMASK_TEXTURE\x0auniform\x20vec2\x20vThicknessInfos;\x0auniform\x20mat4\x20thicknessMatrix;\x0a#endif\x0a#ifdef\x20SS_REFRACTIONINTENSITY_TEXTURE\x0auniform\x20vec2\x20vRefractionIntensityInfos;\x0auniform\x20mat4\x20refractionIntensityMatrix;\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCYINTENSITY_TEXTURE\x0auniform\x20vec2\x20vTranslucencyIntensityInfos;\x0auniform\x20mat4\x20translucencyIntensityMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20NORMAL\x0a#if\x20defined(USESPHERICALFROMREFLECTIONMAP)\x20&&\x20defined(USESPHERICALINVERTEX)\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#ifdef\x20SPHERICAL_HARMONICS\x0auniform\x20vec3\x20vSphericalL00;\x0auniform\x20vec3\x20vSphericalL1_1;\x0auniform\x20vec3\x20vSphericalL10;\x0auniform\x20vec3\x20vSphericalL11;\x0auniform\x20vec3\x20vSphericalL2_2;\x0auniform\x20vec3\x20vSphericalL2_1;\x0auniform\x20vec3\x20vSphericalL20;\x0auniform\x20vec3\x20vSphericalL21;\x0auniform\x20vec3\x20vSphericalL22;\x0a#else\x0auniform\x20vec3\x20vSphericalX;\x0auniform\x20vec3\x20vSphericalY;\x0auniform\x20vec3\x20vSphericalZ;\x0auniform\x20vec3\x20vSphericalXX_ZZ;\x0auniform\x20vec3\x20vSphericalYY_ZZ;\x0auniform\x20vec3\x20vSphericalZZ;\x0auniform\x20vec3\x20vSphericalXY;\x0auniform\x20vec3\x20vSphericalYZ;\x0auniform\x20vec3\x20vSphericalZX;\x0a#endif\x0a#endif\x0a#endif\x0a#endif\x0a#ifdef\x20DETAIL\x0auniform\x20vec4\x20vDetailInfos;\x0auniform\x20mat4\x20detailMatrix;\x0a#endif\x0a#include<decalVertexDeclaration>\x0a#define\x20ADDITIONAL_VERTEX_DECLARATION\x0a','clipPlane','GetNumChannelsFromWebGPUTextureFormat','Invalid\x20multiview\x20frame\x20buffer','_swipeButtonPressed','setUIntArray3','#ifdef\x20FOG\x0a#define\x20FOGMODE_NONE\x200.\x0a#define\x20FOGMODE_EXP\x201.\x0a#define\x20FOGMODE_EXP2\x202.\x0a#define\x20FOGMODE_LINEAR\x203.\x0a#define\x20E\x202.71828\x0auniform\x20vec4\x20vFogInfos;\x0auniform\x20vec3\x20vFogColor;\x0avarying\x20vec3\x20vFogDistance;\x0afloat\x20CalcFogFactor()\x0a{\x0afloat\x20fogCoeff=1.0;\x0afloat\x20fogStart=vFogInfos.y;\x0afloat\x20fogEnd=vFogInfos.z;\x0afloat\x20fogDensity=vFogInfos.w;\x0afloat\x20fogDistance=length(vFogDistance);\x0aif\x20(FOGMODE_LINEAR==vFogInfos.x)\x0a{\x0afogCoeff=(fogEnd-fogDistance)/(fogEnd-fogStart);\x0a}\x0aelse\x20if\x20(FOGMODE_EXP==vFogInfos.x)\x0a{\x0afogCoeff=1.0/pow(E,fogDistance*fogDensity);\x0a}\x0aelse\x20if\x20(FOGMODE_EXP2==vFogInfos.x)\x0a{\x0afogCoeff=1.0/pow(E,fogDistance*fogDistance*fogDensity*fogDensity);\x0a}\x0areturn\x20clamp(fogCoeff,0.0,1.0);\x0a}\x0a#endif\x0a','[0..','bonesVertex','TEXTURE_2D_ARRAY','FromArray','sharedData','ssao2PixelShader','_releaseFramebufferObjects','availableSamplers','setArray4','_getFreeDefineName','RG32Uint','setStencilReference','BC1RGBAUnorm','setCullEnabled','_bonesComputationForcedToCPU','meshInstancesCount','getClassName','LIGHTMAP_DEFAULT','_isDepthTestDirty','Forward','lastIndexOf','setFrontFace','sin','_depthStencilBuffer','viewProjection','_valueCache','ONE_MINUS_CONSTANT_COLOR','_mask','customizeMaterialCount','\x0a\x20\x20\x20\x20#extension\x20GL_EXT_samplerless_texture_functions\x20:\x20enable\x0a\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x200)\x20uniform\x20texture2D\x20img;\x0a\x0a\x20\x20\x20\x20#ifdef\x20INVERTY\x0a\x20\x20\x20\x20\x20\x20\x20\x20layout(location\x20=\x200)\x20in\x20flat\x20ivec2\x20vTextureSize;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20layout(location\x20=\x200)\x20out\x20vec4\x20outColor;\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20#ifdef\x20INVERTY\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20color\x20=\x20texelFetch(img,\x20ivec2(gl_FragCoord.x,\x20vTextureSize.y\x20-\x20gl_FragCoord.y),\x200);\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20color\x20=\x20texelFetch(img,\x20ivec2(gl_FragCoord.xy),\x200);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20#ifdef\x20PREMULTIPLYALPHA\x0a\x20\x20\x20\x20\x20\x20\x20\x20color.rgb\x20*=\x20color.a;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20outColor\x20=\x20color;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','particlesVertexShader','BC1RGBAUnormSRGB','_constantDeclaration','vertexArrayObject','TEXTUREFORMAT_LUMINANCE_ALPHA\x20format\x20not\x20supported\x20in\x20WebGPU','pbrUboDeclaration','.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0d\x0a','Uint16','struct\x20reflectivityOutParams\x0a{\x0afloat\x20microSurface;\x0afloat\x20roughness;\x0avec3\x20surfaceReflectivityColor;\x0a#ifdef\x20METALLICWORKFLOW\x0avec3\x20surfaceAlbedo;\x0a#endif\x0a#if\x20defined(METALLICWORKFLOW)\x20&&\x20defined(REFLECTIVITY)\x20&&\x20defined(AOSTOREINMETALMAPRED)\x0avec3\x20ambientOcclusionColor;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0avec4\x20surfaceMetallicColorMap;\x0avec4\x20surfaceReflectivityColorMap;\x0avec2\x20metallicRoughness;\x0avec3\x20metallicF0;\x0a#endif\x0a};\x0a#define\x20pbr_inline\x0avoid\x20reflectivityBlock(\x0ain\x20vec4\x20vReflectivityColor,\x0a#ifdef\x20METALLICWORKFLOW\x0ain\x20vec3\x20surfaceAlbedo,\x0ain\x20vec4\x20metallicReflectanceFactors,\x0a#endif\x0a#ifdef\x20REFLECTIVITY\x0ain\x20vec3\x20reflectivityInfos,\x0ain\x20vec4\x20surfaceMetallicOrReflectivityColorMap,\x0a#endif\x0a#if\x20defined(METALLICWORKFLOW)\x20&&\x20defined(REFLECTIVITY)\x20&&\x20defined(AOSTOREINMETALMAPRED)\x0ain\x20vec3\x20ambientOcclusionColorIn,\x0a#endif\x0a#ifdef\x20MICROSURFACEMAP\x0ain\x20vec4\x20microSurfaceTexel,\x0a#endif\x0a#ifdef\x20DETAIL\x0ain\x20vec4\x20detailColor,\x0ain\x20vec4\x20vDetailInfos,\x0a#endif\x0aout\x20reflectivityOutParams\x20outParams\x0a)\x0a{\x0afloat\x20microSurface=vReflectivityColor.a;\x0avec3\x20surfaceReflectivityColor=vReflectivityColor.rgb;\x0a#ifdef\x20METALLICWORKFLOW\x0avec2\x20metallicRoughness=surfaceReflectivityColor.rg;\x0a#ifdef\x20REFLECTIVITY\x0a#if\x20DEBUGMODE>0\x0aoutParams.surfaceMetallicColorMap=surfaceMetallicOrReflectivityColorMap;\x0a#endif\x0a#ifdef\x20AOSTOREINMETALMAPRED\x0avec3\x20aoStoreInMetalMap=vec3(surfaceMetallicOrReflectivityColorMap.r,surfaceMetallicOrReflectivityColorMap.r,surfaceMetallicOrReflectivityColorMap.r);\x0aoutParams.ambientOcclusionColor=mix(ambientOcclusionColorIn,aoStoreInMetalMap,reflectivityInfos.z);\x0a#endif\x0a#ifdef\x20METALLNESSSTOREINMETALMAPBLUE\x0ametallicRoughness.r*=surfaceMetallicOrReflectivityColorMap.b;\x0a#else\x0ametallicRoughness.r*=surfaceMetallicOrReflectivityColorMap.r;\x0a#endif\x0a#ifdef\x20ROUGHNESSSTOREINMETALMAPALPHA\x0ametallicRoughness.g*=surfaceMetallicOrReflectivityColorMap.a;\x0a#else\x0a#ifdef\x20ROUGHNESSSTOREINMETALMAPGREEN\x0ametallicRoughness.g*=surfaceMetallicOrReflectivityColorMap.g;\x0a#endif\x0a#endif\x0a#endif\x0a#ifdef\x20DETAIL\x0afloat\x20detailRoughness=mix(0.5,detailColor.b,vDetailInfos.w);\x0afloat\x20loLerp=mix(0.,metallicRoughness.g,detailRoughness*2.);\x0afloat\x20hiLerp=mix(metallicRoughness.g,1.,(detailRoughness-0.5)*2.);\x0ametallicRoughness.g=mix(loLerp,hiLerp,step(detailRoughness,0.5));\x0a#endif\x0a#ifdef\x20MICROSURFACEMAP\x0ametallicRoughness.g*=microSurfaceTexel.r;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0aoutParams.metallicRoughness=metallicRoughness;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_UPDATE_METALLICROUGHNESS\x0amicroSurface=1.0-metallicRoughness.g;\x0avec3\x20baseColor=surfaceAlbedo;\x0a#ifdef\x20FROSTBITE_REFLECTANCE\x0aoutParams.surfaceAlbedo=baseColor.rgb*(1.0-metallicRoughness.r);\x0asurfaceReflectivityColor=mix(0.16*reflectance*reflectance,baseColor,metallicRoughness.r);\x0a#else\x0avec3\x20metallicF0=metallicReflectanceFactors.rgb;\x0a#if\x20DEBUGMODE>0\x0aoutParams.metallicF0=metallicF0;\x0a#endif\x0aoutParams.surfaceAlbedo=mix(baseColor.rgb*(1.0-metallicF0),vec3(0.,0.,0.),metallicRoughness.r);\x0asurfaceReflectivityColor=mix(metallicF0,baseColor,metallicRoughness.r);\x0a#endif\x0a#else\x0a#ifdef\x20REFLECTIVITY\x0asurfaceReflectivityColor*=surfaceMetallicOrReflectivityColorMap.rgb;\x0a#if\x20DEBUGMODE>0\x0aoutParams.surfaceReflectivityColorMap=surfaceMetallicOrReflectivityColorMap;\x0a#endif\x0a#ifdef\x20MICROSURFACEFROMREFLECTIVITYMAP\x0amicroSurface*=surfaceMetallicOrReflectivityColorMap.a;\x0amicroSurface*=reflectivityInfos.z;\x0a#else\x0a#ifdef\x20MICROSURFACEAUTOMATIC\x0amicroSurface*=computeDefaultMicroSurface(microSurface,surfaceReflectivityColor);\x0a#endif\x0a#ifdef\x20MICROSURFACEMAP\x0amicroSurface*=microSurfaceTexel.r;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_UPDATE_MICROSURFACE\x0a#endif\x0a#endif\x0a#endif\x0amicroSurface=saturate(microSurface);\x0afloat\x20roughness=1.-microSurface;\x0aoutParams.microSurface=microSurface;\x0aoutParams.roughness=roughness;\x0aoutParams.surfaceReflectivityColor=surfaceReflectivityColor;\x0a}\x0a','Depth24Plus','_singleClick','_useSRGBBuffer','_videoPipelines','_renderTargetWrapperCache','R16Uint','close','is2DArray','Matrix','#ifdef\x20LIGHT{X}\x0a#if\x20defined(SHADOWONLY)\x20||\x20defined(LIGHTMAP)\x20&&\x20defined(LIGHTMAPEXCLUDED{X})\x20&&\x20defined(LIGHTMAPNOSPECULAR{X})\x0a#else\x0a#ifdef\x20PBR\x0a#ifdef\x20SPOTLIGHT{X}\x0apreInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\x0a#elif\x20defined(POINTLIGHT{X})\x0apreInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\x0a#elif\x20defined(HEMILIGHT{X})\x0apreInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\x0a#elif\x20defined(DIRLIGHT{X})\x0apreInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\x0a#endif\x0apreInfo.NdotV=NdotV;\x0a#ifdef\x20SPOTLIGHT{X}\x0a#ifdef\x20LIGHT_FALLOFF_GLTF{X}\x0apreInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);\x0apreInfo.attenuation*=computeDirectionalLightFalloff_GLTF(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);\x0a#elif\x20defined(LIGHT_FALLOFF_PHYSICAL{X})\x0apreInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);\x0apreInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w);\x0a#elif\x20defined(LIGHT_FALLOFF_STANDARD{X})\x0apreInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);\x0apreInfo.attenuation*=computeDirectionalLightFalloff_Standard(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w);\x0a#else\x0apreInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);\x0apreInfo.attenuation*=computeDirectionalLightFalloff(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);\x0a#endif\x0a#elif\x20defined(POINTLIGHT{X})\x0a#ifdef\x20LIGHT_FALLOFF_GLTF{X}\x0apreInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);\x0a#elif\x20defined(LIGHT_FALLOFF_PHYSICAL{X})\x0apreInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);\x0a#elif\x20defined(LIGHT_FALLOFF_STANDARD{X})\x0apreInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);\x0a#else\x0apreInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);\x0a#endif\x0a#else\x0apreInfo.attenuation=1.0;\x0a#endif\x0a#ifdef\x20HEMILIGHT{X}\x0apreInfo.roughness=roughness;\x0a#else\x0apreInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0apreInfo.iridescenceIntensity=iridescenceIntensity;\x0a#endif\x0a#ifdef\x20HEMILIGHT{X}\x0ainfo.diffuse=computeHemisphericDiffuseLighting(preInfo,light{X}.vLightDiffuse.rgb,light{X}.vLightGround);\x0a#elif\x20defined(SS_TRANSLUCENCY)\x0ainfo.diffuse=computeDiffuseAndTransmittedLighting(preInfo,light{X}.vLightDiffuse.rgb,subSurfaceOut.transmittance);\x0a#else\x0ainfo.diffuse=computeDiffuseLighting(preInfo,light{X}.vLightDiffuse.rgb);\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0a#ifdef\x20ANISOTROPIC\x0ainfo.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\x0a#else\x0ainfo.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\x0a#endif\x0a#endif\x0a#ifdef\x20SHEEN\x0a#ifdef\x20SHEEN_LINKWITHALBEDO\x0apreInfo.roughness=sheenOut.sheenIntensity;\x0a#else\x0a#ifdef\x20HEMILIGHT{X}\x0apreInfo.roughness=sheenOut.sheenRoughness;\x0a#else\x0apreInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\x0a#endif\x0a#endif\x0ainfo.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0a#ifdef\x20HEMILIGHT{X}\x0apreInfo.roughness=clearcoatOut.clearCoatRoughness;\x0a#else\x0apreInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\x0a#endif\x0ainfo.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,light{X}.vLightDiffuse.rgb);\x0a#ifdef\x20CLEARCOAT_TINT\x0aabsorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity);\x0ainfo.diffuse*=absorption;\x0a#ifdef\x20SPECULARTERM\x0ainfo.specular*=absorption;\x0a#endif\x0a#endif\x0ainfo.diffuse*=info.clearCoat.w;\x0a#ifdef\x20SPECULARTERM\x0ainfo.specular*=info.clearCoat.w;\x0a#endif\x0a#ifdef\x20SHEEN\x0ainfo.sheen*=info.clearCoat.w;\x0a#endif\x0a#endif\x0a#else\x0a#ifdef\x20SPOTLIGHT{X}\x0ainfo=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightDiffuse.a,glossiness);\x0a#elif\x20defined(HEMILIGHT{X})\x0ainfo=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness);\x0a#elif\x20defined(POINTLIGHT{X})\x20||\x20defined(DIRLIGHT{X})\x0ainfo=computeLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightDiffuse.a,glossiness);\x0a#endif\x0a#endif\x0a#ifdef\x20PROJECTEDLIGHTTEXTURE{X}\x0ainfo.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightSampler{X},textureProjectionMatrix{X});\x0a#endif\x0a#endif\x0a#ifdef\x20SHADOW{X}\x0a#ifdef\x20SHADOWCSM{X}\x0afor\x20(int\x20i=0;\x20i<SHADOWCSMNUM_CASCADES{X};\x20i++)\x20\x0a{\x0a#ifdef\x20SHADOWCSM_RIGHTHANDED{X}\x0adiff{X}=viewFrustumZ{X}[i]+vPositionFromCamera{X}.z;\x0a#else\x0adiff{X}=viewFrustumZ{X}[i]-vPositionFromCamera{X}.z;\x0a#endif\x0aif\x20(diff{X}>=0.)\x20{\x0aindex{X}=i;\x0abreak;\x0a}\x0a}\x0a#ifdef\x20SHADOWCSMUSESHADOWMAXZ{X}\x0aif\x20(index{X}>=0)\x0a#endif\x0a{\x0a#if\x20defined(SHADOWPCF{X})\x0a#if\x20defined(SHADOWLOWQUALITY{X})\x0ashadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#elif\x20defined(SHADOWMEDIUMQUALITY{X})\x0ashadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#else\x0ashadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0a#elif\x20defined(SHADOWPCSS{X})\x0a#if\x20defined(SHADOWLOWQUALITY{X})\x0ashadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\x0a#elif\x20defined(SHADOWMEDIUMQUALITY{X})\x0ashadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\x0a#else\x0ashadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\x0a#endif\x0a#else\x0ashadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0a#ifdef\x20SHADOWCSMDEBUG{X}\x0ashadowDebug{X}=vec3(shadow)*vCascadeColorsMultiplier{X}[index{X}];\x0a#endif\x0a#ifndef\x20SHADOWCSMNOBLEND{X}\x0afloat\x20frustumLength=frustumLengths{X}[index{X}];\x0afloat\x20diffRatio=clamp(diff{X}/frustumLength,0.,1.)*cascadeBlendFactor{X};\x0aif\x20(index{X}<(SHADOWCSMNUM_CASCADES{X}-1)\x20&&\x20diffRatio<1.)\x0a{\x0aindex{X}+=1;\x0afloat\x20nextShadow=0.;\x0a#if\x20defined(SHADOWPCF{X})\x0a#if\x20defined(SHADOWLOWQUALITY{X})\x0anextShadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#elif\x20defined(SHADOWMEDIUMQUALITY{X})\x0anextShadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#else\x0anextShadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0a#elif\x20defined(SHADOWPCSS{X})\x0a#if\x20defined(SHADOWLOWQUALITY{X})\x0anextShadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\x0a#elif\x20defined(SHADOWMEDIUMQUALITY{X})\x0anextShadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\x0a#else\x0anextShadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\x0a#endif\x0a#else\x0anextShadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0ashadow=mix(nextShadow,shadow,diffRatio);\x0a#ifdef\x20SHADOWCSMDEBUG{X}\x0ashadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio);\x0a#endif\x0a}\x0a#endif\x0a}\x0a#elif\x20defined(SHADOWCLOSEESM{X})\x0a#if\x20defined(SHADOWCUBE{X})\x0ashadow=computeShadowWithCloseESMCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);\x0a#else\x0ashadow=computeShadowWithCloseESM(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);\x0a#endif\x0a#elif\x20defined(SHADOWESM{X})\x0a#if\x20defined(SHADOWCUBE{X})\x0ashadow=computeShadowWithESMCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);\x0a#else\x0ashadow=computeShadowWithESM(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);\x0a#endif\x0a#elif\x20defined(SHADOWPOISSON{X})\x0a#if\x20defined(SHADOWCUBE{X})\x0ashadow=computeShadowWithPoissonSamplingCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues);\x0a#else\x0ashadow=computeShadowWithPoissonSampling(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0a#elif\x20defined(SHADOWPCF{X})\x0a#if\x20defined(SHADOWLOWQUALITY{X})\x0ashadow=computeShadowWithPCF1(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#elif\x20defined(SHADOWMEDIUMQUALITY{X})\x0ashadow=computeShadowWithPCF3(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#else\x0ashadow=computeShadowWithPCF5(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0a#elif\x20defined(SHADOWPCSS{X})\x0a#if\x20defined(SHADOWLOWQUALITY{X})\x0ashadow=computeShadowWithPCSS16(vPositionFromLight{X},vDepthMetric{X},depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#elif\x20defined(SHADOWMEDIUMQUALITY{X})\x0ashadow=computeShadowWithPCSS32(vPositionFromLight{X},vDepthMetric{X},depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#else\x0ashadow=computeShadowWithPCSS64(vPositionFromLight{X},vDepthMetric{X},depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0a#else\x0a#if\x20defined(SHADOWCUBE{X})\x0ashadow=computeShadowCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.x,light{X}.depthValues);\x0a#else\x0ashadow=computeShadow(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0a#endif\x0a#ifdef\x20SHADOWONLY\x0a#ifndef\x20SHADOWINUSE\x0a#define\x20SHADOWINUSE\x0a#endif\x0aglobalShadow+=shadow;\x0ashadowLightCount+=1.0;\x0a#endif\x0a#else\x0ashadow=1.;\x0a#endif\x0a#ifndef\x20SHADOWONLY\x0a#ifdef\x20CUSTOMUSERLIGHTING\x0adiffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow);\x0a#ifdef\x20SPECULARTERM\x0aspecularBase+=computeCustomSpecularLighting(info,specularBase,shadow);\x0a#endif\x0a#elif\x20defined(LIGHTMAP)\x20&&\x20defined(LIGHTMAPEXCLUDED{X})\x0adiffuseBase+=lightmapColor.rgb*shadow;\x0a#ifdef\x20SPECULARTERM\x0a#ifndef\x20LIGHTMAPNOSPECULAR{X}\x0aspecularBase+=info.specular*shadow*lightmapColor.rgb;\x0a#endif\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0a#ifndef\x20LIGHTMAPNOSPECULAR{X}\x0aclearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb;\x0a#endif\x0a#endif\x0a#ifdef\x20SHEEN\x0a#ifndef\x20LIGHTMAPNOSPECULAR{X}\x0asheenBase+=info.sheen.rgb*shadow;\x0a#endif\x0a#endif\x0a#else\x0a#ifdef\x20SHADOWCSMDEBUG{X}\x0adiffuseBase+=info.diffuse*shadowDebug{X};\x0a#else\x20\x0adiffuseBase+=info.diffuse*shadow;\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0aspecularBase+=info.specular*shadow;\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0aclearCoatBase+=info.clearCoat.rgb*shadow;\x0a#endif\x0a#ifdef\x20SHEEN\x0asheenBase+=info.sheen.rgb*shadow;\x0a#endif\x0a#endif\x0a#endif\x0a#endif\x0a','pointerId','ASTC10x5Unorm','_useVAO','layerType','markAllAsDirty','updateRenderTargetTextureSampleCount','TEXTURE_EQUIRECTANGULAR_MODE','removeVaryings','_createBlurPostProcesses','texture','processTrigger','boxMin','Error','substr','_cachedWrapV','Texture;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#define\x20','extractHighlightsPixelShader','drawArraysType','layer','_timestampQuery','#if\x20','getHierarchyEmittedParticleSystems','currentLine','vrdisplaypresentchange','_MoveCursorWithinIf','precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;\x0auniform\x20sampler2D\x20diffuseSampler;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20baseColor=vec4(1.,1.,1.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20DIFFUSE\x0abaseColor=texture2D(diffuseSampler,vDiffuseUV);\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0abaseColor.rgb*=vDiffuseInfos.y;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0afloat\x20glossiness=0.;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0a#endif\x20\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\x0avec4\x20color=vec4(finalDiffuse,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','pbrBlockReflection','_prepareVRComponent','doubleClick','stage','#if\x20SM_USEDISTANCE==1\x0avPositionWSM=worldPos.xyz;\x0a#endif\x0a#if\x20SM_DEPTHTEXTURE==1\x0a#ifdef\x20IS_NDC_HALF_ZRANGE\x0a#define\x20BIASFACTOR\x200.5\x0a#else\x0a#define\x20BIASFACTOR\x201.0\x0a#endif\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0agl_Position.z-=biasAndScaleSM.x*gl_Position.w*BIASFACTOR;\x0a#else\x0agl_Position.z+=biasAndScaleSM.x*gl_Position.w*BIASFACTOR;\x0a#endif\x0a#endif\x0a#if\x20defined(SM_DEPTHCLAMP)\x20&&\x20SM_DEPTHCLAMP==1\x0azSM=gl_Position.z;\x0agl_Position.z=0.0;\x0a#elif\x20SM_USEDISTANCE==0\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0avDepthMetricSM=(-gl_Position.z+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\x0a#else\x0avDepthMetricSM=(gl_Position.z+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\x0a#endif\x0a#endif\x0a','setScissorRect','_bindTexture','_readTexturePixelsSync\x20is\x20unsupported\x20in\x20WebGPU!','_isStencilFuncDirty','_zOffset','_tintWASM','depthVertexShader','_textureFormatInUse','top','maximum','_growArray','#else\x0d\x0a','_currentMaterialContext','TEXTUREFORMAT_ALPHA','TEXTUREFORMAT_LUMINANCE_ALPHA','funcRef','_maxLodLevel','_compression','\x20@align(16)\x20','frameMaxRenderMemoryLength','setLayerAndFaceIndex','uniformProcessor','setCullFace','_emitVaryingFromString','_FileToolsLoadFile','uniform\x20sampler2D\x20','#if\x20defined(CLIPPLANE)\x20||\x20defined(CLIPPLANE2)\x20||\x20defined(CLIPPLANE3)\x20||\x20defined(CLIPPLANE4)\x20||\x20defined(CLIPPLANE5)\x20||\x20defined(CLIPPLANE6)\x0aif\x20(false)\x20{}\x0a#endif\x0a#ifdef\x20CLIPPLANE\x0aelse\x20if\x20(fClipDistance>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0aelse\x20if\x20(fClipDistance2>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0aelse\x20if\x20(fClipDistance3>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0aelse\x20if\x20(fClipDistance4>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0aelse\x20if\x20(fClipDistance5>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0aelse\x20if\x20(fClipDistance6>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a','updateCubeTextures','resetStencilState','_options','_cascadeLoadFiles','meshUVSpaceRendererPixelShader','restoreSingleAttachmentForRenderTarget','checks','\x0d\x0a}','getPluginVersion','updateInt4','attribute\x20vec3\x20position;\x0aattribute\x20vec2\x20offset;\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0auniform\x20vec2\x20size;\x0avarying\x20vec2\x20uv;\x0avarying\x20vec3\x20viewPos;\x0avarying\x20float\x20sphereRadius;\x0a#ifdef\x20FLUIDRENDERING_VELOCITY\x0aattribute\x20vec3\x20velocity;\x0avarying\x20float\x20velocityNorm;\x0a#endif\x0avoid\x20main(void)\x20{\x0avec3\x20cornerPos;\x0acornerPos.xy=vec2(offset.x-0.5,offset.y-0.5)*size;\x0acornerPos.z=0.0;\x0aviewPos=(view*vec4(position,1.0)).xyz;\x0agl_Position=projection*vec4(viewPos+cornerPos,1.0);\x0auv=offset;\x0asphereRadius=size.x/2.0;\x0a#ifdef\x20FLUIDRENDERING_VELOCITY\x0avelocityNorm=length(velocity);\x0a#endif\x0a}\x0a','_PreparePreProcessors','TEXTURETYPE_INT','some','ALPHA_EXCLUSION','uniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20highlightsSampler;\x0auniform\x20sampler2D\x20depthSampler;\x0auniform\x20sampler2D\x20grainSampler;\x0auniform\x20float\x20grain_amount;\x0auniform\x20bool\x20blur_noise;\x0auniform\x20float\x20screen_width;\x0auniform\x20float\x20screen_height;\x0auniform\x20float\x20distortion;\x0auniform\x20bool\x20dof_enabled;\x0auniform\x20float\x20screen_distance;\x20\x0auniform\x20float\x20aperture;\x0auniform\x20float\x20darken;\x0auniform\x20float\x20edge_blur;\x0auniform\x20bool\x20highlights;\x0auniform\x20float\x20near;\x0auniform\x20float\x20far;\x0avarying\x20vec2\x20vUV;\x0a#define\x20PI\x203.14159265\x0a#define\x20TWOPI\x206.28318530\x0a#define\x20inverse_focal_length\x200.1\x20\x0avec2\x20centered_screen_pos;\x0avec2\x20distorted_coords;\x0afloat\x20radius2;\x0afloat\x20radius;\x0avec2\x20rand(vec2\x20co)\x0a{\x0afloat\x20noise1=(fract(sin(dot(co,vec2(12.9898,78.233)))*43758.5453));\x0afloat\x20noise2=(fract(sin(dot(co,vec2(12.9898,78.233)*2.0))*43758.5453));\x0areturn\x20clamp(vec2(noise1,noise2),0.0,1.0);\x0a}\x0avec2\x20getDistortedCoords(vec2\x20coords)\x20{\x0aif\x20(distortion==0.0)\x20{\x20return\x20coords;\x20}\x0avec2\x20direction=1.0*normalize(centered_screen_pos);\x0avec2\x20dist_coords=vec2(0.5,0.5);\x0adist_coords.x=0.5+direction.x*radius2*1.0;\x0adist_coords.y=0.5+direction.y*radius2*1.0;\x0afloat\x20dist_amount=clamp(distortion*0.23,0.0,1.0);\x0adist_coords=mix(coords,dist_coords,dist_amount);\x0areturn\x20dist_coords;\x0a}\x0afloat\x20sampleScreen(inout\x20vec4\x20color,in\x20vec2\x20offset,in\x20float\x20weight)\x20{\x0avec2\x20coords=distorted_coords;\x0afloat\x20angle=rand(coords*100.0).x*TWOPI;\x0acoords+=vec2(offset.x*cos(angle)-offset.y*sin(angle),offset.x*sin(angle)+offset.y*cos(angle));\x0acolor+=texture2D(textureSampler,coords)*weight;\x0areturn\x20weight;\x0a}\x0afloat\x20getBlurLevel(float\x20size)\x20{\x0areturn\x20min(3.0,ceil(size/1.0));\x0a}\x0avec4\x20getBlurColor(float\x20size)\x20{\x0avec4\x20col=texture2D(textureSampler,distorted_coords);\x0afloat\x20blur_level=getBlurLevel(size);\x0afloat\x20w=(size/screen_width);\x0afloat\x20h=(size/screen_height);\x0afloat\x20total_weight=1.0;\x0avec2\x20sample_coords;\x0atotal_weight+=sampleScreen(col,vec2(-0.50*w,0.24*h),0.93);\x0atotal_weight+=sampleScreen(col,vec2(0.30*w,-0.75*h),0.90);\x0atotal_weight+=sampleScreen(col,vec2(0.36*w,0.96*h),0.87);\x0atotal_weight+=sampleScreen(col,vec2(-1.08*w,-0.55*h),0.85);\x0atotal_weight+=sampleScreen(col,vec2(1.33*w,-0.37*h),0.83);\x0atotal_weight+=sampleScreen(col,vec2(-0.82*w,1.31*h),0.80);\x0atotal_weight+=sampleScreen(col,vec2(-0.31*w,-1.67*h),0.78);\x0atotal_weight+=sampleScreen(col,vec2(1.47*w,1.11*h),0.76);\x0atotal_weight+=sampleScreen(col,vec2(-1.97*w,0.19*h),0.74);\x0atotal_weight+=sampleScreen(col,vec2(1.42*w,-1.57*h),0.72);\x0aif\x20(blur_level>1.0)\x20{\x0atotal_weight+=sampleScreen(col,vec2(0.01*w,2.25*h),0.70);\x0atotal_weight+=sampleScreen(col,vec2(-1.62*w,-1.74*h),0.67);\x0atotal_weight+=sampleScreen(col,vec2(2.49*w,0.20*h),0.65);\x0atotal_weight+=sampleScreen(col,vec2(-2.07*w,1.61*h),0.63);\x0atotal_weight+=sampleScreen(col,vec2(0.46*w,-2.70*h),0.61);\x0atotal_weight+=sampleScreen(col,vec2(1.55*w,2.40*h),0.59);\x0atotal_weight+=sampleScreen(col,vec2(-2.88*w,-0.75*h),0.56);\x0atotal_weight+=sampleScreen(col,vec2(2.73*w,-1.44*h),0.54);\x0atotal_weight+=sampleScreen(col,vec2(-1.08*w,3.02*h),0.52);\x0atotal_weight+=sampleScreen(col,vec2(-1.28*w,-3.05*h),0.49);\x0a}\x0aif\x20(blur_level>2.0)\x20{\x0atotal_weight+=sampleScreen(col,vec2(3.11*w,1.43*h),0.46);\x0atotal_weight+=sampleScreen(col,vec2(-3.36*w,1.08*h),0.44);\x0atotal_weight+=sampleScreen(col,vec2(1.80*w,-3.16*h),0.41);\x0atotal_weight+=sampleScreen(col,vec2(0.83*w,3.65*h),0.38);\x0atotal_weight+=sampleScreen(col,vec2(-3.16*w,-2.19*h),0.34);\x0atotal_weight+=sampleScreen(col,vec2(3.92*w,-0.53*h),0.31);\x0atotal_weight+=sampleScreen(col,vec2(-2.59*w,3.12*h),0.26);\x0atotal_weight+=sampleScreen(col,vec2(-0.20*w,-4.15*h),0.22);\x0atotal_weight+=sampleScreen(col,vec2(3.02*w,3.00*h),0.15);\x0a}\x0acol/=total_weight;\x20\x0aif\x20(darken>0.0)\x20{\x0acol.rgb*=clamp(0.3,1.0,1.05-size*0.5*darken);\x0a}\x0areturn\x20col;\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0acentered_screen_pos=vec2(vUV.x-0.5,vUV.y-0.5);\x0aradius2=centered_screen_pos.x*centered_screen_pos.x+centered_screen_pos.y*centered_screen_pos.y;\x0aradius=sqrt(radius2);\x0adistorted_coords=getDistortedCoords(vUV);\x20\x0avec2\x20texels_coords=vec2(vUV.x*screen_width,vUV.y*screen_height);\x20\x0afloat\x20depth=texture2D(depthSampler,distorted_coords).r;\x20\x0afloat\x20distance=near+(far-near)*depth;\x20\x0avec4\x20color=texture2D(textureSampler,vUV);\x20\x0afloat\x20coc=abs(aperture*(screen_distance*(inverse_focal_length-1.0/distance)-1.0));\x0aif\x20(dof_enabled==false\x20||\x20coc<0.07)\x20{\x20coc=0.0;\x20}\x0afloat\x20edge_blur_amount=0.0;\x0aif\x20(edge_blur>0.0)\x20{\x0aedge_blur_amount=clamp((radius*2.0-1.0+0.15*edge_blur)*1.5,0.0,1.0)*1.3;\x0a}\x0afloat\x20blur_amount=max(edge_blur_amount,coc);\x0aif\x20(blur_amount==0.0)\x20{\x0agl_FragColor=texture2D(textureSampler,distorted_coords);\x0a}\x0aelse\x20{\x0agl_FragColor=getBlurColor(blur_amount*1.7);\x0aif\x20(highlights)\x20{\x0agl_FragColor.rgb+=clamp(coc,0.0,1.0)*texture2D(highlightsSampler,distorted_coords).rgb;\x0a}\x0aif\x20(blur_noise)\x20{\x0avec2\x20noise=rand(distorted_coords)*0.01*blur_amount;\x0avec2\x20blurred_coord=vec2(distorted_coords.x+noise.x,distorted_coords.y+noise.y);\x0agl_FragColor=0.04*texture2D(textureSampler,blurred_coord)+0.96*gl_FragColor;\x0a}\x0a}\x0aif\x20(grain_amount>0.0)\x20{\x0avec4\x20grain_color=texture2D(grainSampler,texels_coords*0.003);\x0agl_FragColor.rgb+=(-0.5+grain_color.rgb)*0.30*grain_amount;\x0a}\x0a}\x0a','diffuseBase','precision\x20highp\x20float;uniform\x20vec4\x20vEyePosition;uniform\x20vec4\x20vDiffuseColor;uniform\x20vec4\x20furColor;uniform\x20float\x20furLength;varying\x20vec3\x20vPositionW;varying\x20float\x20vfur_length;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;uniform\x20sampler2D\x20diffuseSampler;uniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20HIGHLEVEL\x0auniform\x20float\x20furOffset;uniform\x20float\x20furOcclusion;uniform\x20sampler2D\x20furTexture;varying\x20vec2\x20vFurUV;\x0a#endif\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<fogFragmentDeclaration>\x0a#include<clipPlaneFragmentDeclaration>\x0afloat\x20Rand(vec3\x20rv)\x20{float\x20x=dot(rv,vec3(12.9898,78.233,24.65487));return\x20fract(sin(x)*43758.5453);}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4\x20baseColor=furColor;vec3\x20diffuseColor=vDiffuseColor.rgb;float\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20DIFFUSE\x0abaseColor*=texture2D(diffuseSampler,vDiffuseUV);\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0abaseColor.rgb*=vDiffuseInfos.y;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0a#ifdef\x20HIGHLEVEL\x0avec4\x20furTextureColor=texture2D(furTexture,vec2(vFurUV.x,vFurUV.y));if\x20(furTextureColor.a<=0.0\x20||\x20furTextureColor.g<furOffset)\x20{discard;}\x0afloat\x20occlusion=mix(0.0,furTextureColor.b*1.2,furOffset);baseColor=vec4(baseColor.xyz*max(occlusion,furOcclusion),1.1-furOffset);\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);lightingInfo\x20info;float\x20shadow=1.;float\x20glossiness=0.;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0a#endif\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase.rgb*baseColor.rgb,0.0,1.0);\x0a#ifdef\x20HIGHLEVEL\x0avec4\x20color=vec4(finalDiffuse,alpha);\x0a#else\x0afloat\x20r=vfur_length/furLength*0.5;vec4\x20color=vec4(finalDiffuse*(0.5+r),alpha);\x0a#endif\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','#define\x20HEMISPHERICEMITTER','dataStoreArrayBuffer','start','setQuaternion','ONE_MINUS_DST_COLOR','hasSpecificMask','BGRA8Unorm','Vertex','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20mat4\x20kernelMatrix;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec3\x20baseColor=texture2D(textureSampler,vUV).rgb;\x0avec3\x20updatedColor=(kernelMatrix*vec4(baseColor,1.0)).rgb;\x0agl_FragColor=vec4(updatedColor,1.0);\x0a}','_removeCameraPointerObserver','#define\x20MULTIVIEW','vec4\x20pack(float\x20depth)\x0a{\x0aconst\x20vec4\x20bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);\x0aconst\x20vec4\x20bit_mask=vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);\x0avec4\x20res=fract(depth*bit_shift);\x0ares-=res.xxyz*bit_mask;\x0areturn\x20res;\x0a}\x0afloat\x20unpack(vec4\x20color)\x0a{\x0aconst\x20vec4\x20bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);\x0areturn\x20dot(color,bit_shift);\x0a}','MapWrite','clipPlane3','updateRawTexture3D','updateIntArray','_DefaultIndexOfRefraction','attribute','Parse','addUniform','_halfDome','thinInstancePartialBufferUpdate','terrainPixelShader','You\x20already\x20reached\x20the\x20maximum\x20number\x20of\x20diffusion\x20profiles.','//\x20Internals\x20UBO','_getDepthThreshold','depthValue','sceneUboDeclaration','TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE','_emit2DSampler','_setupFramebufferDepthAttachments','isCompatible','getOwnPropertyDescriptor','{X}','_itemLength','_measureDuration','#ifdef\x20UV{X}\x0aattribute\x20vec2\x20uv{X};\x0a#endif\x0a','_getVideoPipeline','_dstBuffers','_buildLeftOverUBO','videoWidth','_framebuffer','_emitFunction','_createBuffer','length','refractionPixelShader','matrixData','copyTo','REPLACE','Fragment','setUIntArray4','vec4\x20finalColor=vec4(\x0a#ifndef\x20UNLIT\x0a#ifdef\x20REFLECTION\x0afinalIrradiance\x20+\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0afinalSpecularScaled\x20+\x0a#endif\x0a#ifdef\x20SHEEN\x0afinalSheenScaled\x20+\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0afinalClearCoatScaled\x20+\x0a#endif\x0a#ifdef\x20REFLECTION\x0afinalRadianceScaled\x20+\x0a#if\x20defined(SHEEN)\x20&&\x20defined(ENVIRONMENTBRDF)\x0asheenOut.finalSheenRadianceScaled\x20+\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0aclearcoatOut.finalClearCoatRadianceScaled\x20+\x0a#endif\x0a#endif\x0a#ifdef\x20SS_REFRACTION\x0asubSurfaceOut.finalRefraction\x20+\x0a#endif\x0a#endif\x0afinalAmbient\x20+\x0afinalDiffuse,\x0aalpha);\x0a#ifdef\x20LIGHTMAP\x0a#ifndef\x20LIGHTMAPEXCLUDED\x0a#ifdef\x20USELIGHTMAPASSHADOWMAP\x0afinalColor.rgb*=lightmapColor.rgb;\x0a#else\x0afinalColor.rgb+=lightmapColor.rgb;\x0a#endif\x0a#endif\x0a#endif\x0afinalColor.rgb+=finalEmissive;\x0a#define\x20CUSTOM_FRAGMENT_BEFORE_FOG\x0afinalColor=max(finalColor,0.0);\x0a','_getVertexShaderCode','sampler2DArrayShadow','geometryVertexShader','varying\x20','TEXTUREFORMAT_RG_INTEGER','resolveQuerySet','Identity','DEPTH_STENCIL','_HandleParenthesisContent','_codeVariableName','exitPointerLock','bindMultiviewFramebuffer','};\x0avar<private>\x20fragmentOutputs\x20:\x20FragmentOutputs;\x0a','enablePointerMoveEvents','samplerShadow','_mipmapGenBindGroup','prePassDeclaration','setIntArray2','rgbdDecodePixelShader','_measureDurationState','RGBA16Sint','startFrame','Unknown','pointerup','_getVRDisplaysAsync','bindUniformBlock','resource','pbrBlockGeometryInfo','RG8Snorm','PREPASS_IRRADIANCE_TEXTURE_TYPE','#ifdef\x20CLIPPLANE\x0auniform\x20vec4\x20vClipPlane;\x0aout\x20float\x20fClipDistance;\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0auniform\x20vec4\x20vClipPlane2;\x0aout\x20float\x20fClipDistance2;\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0auniform\x20vec4\x20vClipPlane3;\x0aout\x20float\x20fClipDistance3;\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0auniform\x20vec4\x20vClipPlane4;\x0aout\x20float\x20fClipDistance4;\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0auniform\x20vec4\x20vClipPlane5;\x0aout\x20float\x20fClipDistance5;\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0auniform\x20vec4\x20vClipPlane6;\x0aout\x20float\x20fClipDistance6;\x0a#endif\x0a','MATERIAL_PointListDrawMode','ConeParticleEmitter','gpuFrameTimeCounter','_lastBuffer','maximizeInPlace','replace','decalFragment','clipPlaneVertex','createStorageBuffer','modelList','updateInt','CreateNewFromScene','atan2','TransformCoordinatesToRef','functions','InvertY','lineVertexShader','float\x20distanceSquared(vec2\x20a,vec2\x20b)\x20{\x20a-=b;\x20return\x20dot(a,a);\x20}\x0a/**\x0aparam\x20csOrigin\x20Camera-space\x20ray\x20origin,which\x20must\x20be\x20\x0awithin\x20the\x20view\x20volume\x20and\x20must\x20have\x20z>0.01\x20and\x20project\x20within\x20the\x20valid\x20screen\x20rectangle\x0aparam\x20csDirection\x20Unit\x20length\x20camera-space\x20ray\x20direction\x0aparam\x20projectToPixelMatrix\x20A\x20projection\x20matrix\x20that\x20maps\x20to\x20**pixel**\x20coordinates\x20\x0a(**not**\x20[-1,+1]\x20normalized\x20device\x20coordinates).\x0aparam\x20csZBuffer\x20The\x20camera-space\x20Z\x20buffer\x0aparam\x20csZBufferSize\x20Dimensions\x20of\x20csZBuffer\x0aparam\x20csZThickness\x20Camera\x20space\x20csZThickness\x20to\x20ascribe\x20to\x20each\x20pixel\x20in\x20the\x20depth\x20buffer\x0aparam\x20nearPlaneZ\x20Positive\x20number.\x20Doesn\x27t\x20have\x20to\x20be\x20THE\x20actual\x20near\x20plane,just\x20a\x20reasonable\x20value\x0afor\x20clipping\x20rays\x20headed\x20towards\x20the\x20camera\x0aparam\x20stride\x20Step\x20in\x20horizontal\x20or\x20vertical\x20pixels\x20between\x20samples.\x20This\x20is\x20a\x20float\x0abecause\x20integer\x20math\x20is\x20slow\x20on\x20GPUs,but\x20should\x20be\x20set\x20to\x20an\x20integer>=1\x0aparam\x20jitterFraction\x20Number\x20between\x200\x20and\x201\x20for\x20how\x20far\x20to\x20bump\x20the\x20ray\x20in\x20stride\x20units\x0ato\x20conceal\x20banding\x20artifacts,plus\x20the\x20stride\x20ray\x20offset.\x0aparam\x20maxSteps\x20Maximum\x20number\x20of\x20iterations.\x20Higher\x20gives\x20better\x20images\x20but\x20may\x20be\x20slow\x0aparam\x20maxRayTraceDistance\x20Maximum\x20camera-space\x20distance\x20to\x20trace\x20before\x20returning\x20a\x20miss\x0aparam\x20selfCollisionNumSkip\x20Number\x20of\x20steps\x20to\x20skip\x20at\x20start\x20when\x20raytracing\x20to\x20avoid\x20self\x20collisions.\x0a1\x20is\x20a\x20reasonable\x20value,depending\x20on\x20the\x20scene\x20you\x20may\x20need\x20to\x20set\x20this\x20value\x20to\x202\x0aparam\x20hitPixel\x20Pixel\x20coordinates\x20of\x20the\x20first\x20intersection\x20with\x20the\x20scene\x0aparam\x20numIterations\x20number\x20of\x20iterations\x20performed\x0aparam\x20csHitPoint\x20Camera\x20space\x20location\x20of\x20the\x20ray\x20hit\x0a*/\x0a#define\x20inline\x0abool\x20traceScreenSpaceRay1(\x0avec3\x20csOrigin,\x0avec3\x20csDirection,\x0amat4\x20projectToPixelMatrix,\x0asampler2D\x20csZBuffer,\x0avec2\x20csZBufferSize,\x0a#ifdef\x20SSRAYTRACE_USE_BACK_DEPTHBUFFER\x0asampler2D\x20csZBackBuffer,\x0afloat\x20csZBackSizeFactor,\x0a#endif\x0afloat\x20csZThickness,\x0afloat\x20nearPlaneZ,\x0afloat\x20stride,\x0afloat\x20jitterFraction,\x0afloat\x20maxSteps,\x0afloat\x20maxRayTraceDistance,\x0afloat\x20selfCollisionNumSkip,\x0aout\x20vec2\x20startPixel,\x0aout\x20vec2\x20hitPixel,\x0aout\x20vec3\x20csHitPoint,\x0aout\x20float\x20numIterations\x0a#ifdef\x20SSRAYTRACE_DEBUG\x0a,out\x20vec3\x20debugColor\x0a#endif\x0a)\x0a{\x0a#ifdef\x20SSRAYTRACE_RIGHT_HANDED_SCENE\x0afloat\x20rayLength=(csOrigin.z+csDirection.z*maxRayTraceDistance)>-nearPlaneZ\x20?\x20(-nearPlaneZ-csOrigin.z)/csDirection.z\x20:\x20maxRayTraceDistance;\x0a#else\x0afloat\x20rayLength=(csOrigin.z+csDirection.z*maxRayTraceDistance)<nearPlaneZ\x20?\x20(nearPlaneZ-csOrigin.z)/csDirection.z\x20:\x20maxRayTraceDistance;\x0a#endif\x0avec3\x20csEndPoint=csOrigin+csDirection*rayLength;\x0ahitPixel=vec2(-1.0,-1.0);\x0avec4\x20H0=projectToPixelMatrix*vec4(csOrigin,1.0);\x0avec4\x20H1=projectToPixelMatrix*vec4(csEndPoint,1.0);\x0afloat\x20k0=1.0/H0.w;\x0afloat\x20k1=1.0/H1.w;\x0avec3\x20Q0=csOrigin*k0;\x0avec3\x20Q1=csEndPoint*k1;\x0avec2\x20P0=H0.xy*k0;\x0avec2\x20P1=H1.xy*k1;\x0a#ifdef\x20SSRAYTRACE_CLIP_TO_FRUSTUM\x0afloat\x20xMax=csZBufferSize.x-0.5,xMin=0.5,yMax=csZBufferSize.y-0.5,yMin=0.5;\x0afloat\x20alpha=0.0;\x0aif\x20((P1.y>yMax)\x20||\x20(P1.y<yMin))\x20{\x0aalpha=(P1.y-((P1.y>yMax)\x20?\x20yMax\x20:\x20yMin))/(P1.y-P0.y);\x0a}\x0aif\x20((P1.x>xMax)\x20||\x20(P1.x<xMin))\x20{\x0aalpha=max(alpha,(P1.x-((P1.x>xMax)\x20?\x20xMax\x20:\x20xMin))/(P1.x-P0.x));\x0a}\x0aP1=mix(P1,P0,alpha);\x20k1=mix(k1,k0,alpha);\x20Q1=mix(Q1,Q0,alpha);\x0a#endif\x0aP1+=vec2((distanceSquared(P0,P1)<0.0001)\x20?\x200.01\x20:\x200.0);\x0avec2\x20delta=P1-P0;\x0abool\x20permute=false;\x0aif\x20(abs(delta.x)<abs(delta.y))\x20{\x20\x0apermute=true;\x0adelta=delta.yx;\x0aP0=P0.yx;\x0aP1=P1.yx;\x20\x0a}\x0afloat\x20stepDirection=sign(delta.x);\x0afloat\x20invdx=stepDirection/delta.x;\x0avec2\x20dP=vec2(stepDirection,delta.y*invdx);\x0avec3\x20dQ=(Q1-Q0)*invdx;\x0afloat\x20dk=(k1-k0)*invdx;\x0afloat\x20zMin=min(csEndPoint.z,csOrigin.z);\x0afloat\x20zMax=max(csEndPoint.z,csOrigin.z);\x0adP*=stride;\x20dQ*=stride;\x20dk*=stride;\x0aP0+=dP*jitterFraction;\x20Q0+=dQ*jitterFraction;\x20k0+=dk*jitterFraction;\x0avec4\x20pqk=vec4(P0,Q0.z,k0);\x0avec4\x20dPQK=vec4(dP,dQ.z,dk);\x0astartPixel=permute\x20?\x20P0.yx\x20:\x20P0.xy;\x0afloat\x20prevZMaxEstimate=csOrigin.z;\x0afloat\x20rayZMin=prevZMaxEstimate,rayZMax=prevZMaxEstimate;\x0afloat\x20sceneZMax=rayZMax+1e4;\x0afloat\x20end=P1.x*stepDirection;\x0abool\x20hit=false;\x0afloat\x20stepCount;\x0afor\x20(stepCount=0.0;\x0astepCount<=selfCollisionNumSkip\x20||\x0a(pqk.x*stepDirection)<=end\x20&&\x0astepCount<maxSteps\x20&&\x0a!hit\x20&&\x0asceneZMax\x20!=\x200.0;\x20\x0apqk+=dPQK,++stepCount)\x0a{\x0ahitPixel=permute\x20?\x20pqk.yx\x20:\x20pqk.xy;\x0arayZMin=prevZMaxEstimate;\x0arayZMax=(dPQK.z*0.5+pqk.z)/(dPQK.w*0.5+pqk.w);\x0arayZMax=clamp(rayZMax,zMin,zMax);\x0aprevZMaxEstimate=rayZMax;\x0aif\x20(rayZMin>rayZMax)\x20{\x20\x0afloat\x20t=rayZMin;\x20rayZMin=rayZMax;\x20rayZMax=t;\x0a}\x0asceneZMax=texelFetch(csZBuffer,ivec2(hitPixel),0).r;\x0a#ifdef\x20SSRAYTRACE_RIGHT_HANDED_SCENE\x0a#ifdef\x20SSRAYTRACE_USE_BACK_DEPTHBUFFER\x0afloat\x20sceneBackZ=texelFetch(csZBackBuffer,ivec2(hitPixel/csZBackSizeFactor),0).r;\x0ahit=(rayZMax>=sceneBackZ-csZThickness)\x20&&\x20(rayZMin<=sceneZMax);\x0a#else\x0ahit=(rayZMax>=sceneZMax-csZThickness)\x20&&\x20(rayZMin<=sceneZMax);\x0a#endif\x0a#else\x0a#ifdef\x20SSRAYTRACE_USE_BACK_DEPTHBUFFER\x0afloat\x20sceneBackZ=texelFetch(csZBackBuffer,ivec2(hitPixel/csZBackSizeFactor),0).r;\x0ahit=(rayZMin<=sceneBackZ+csZThickness)\x20&&\x20(rayZMax>=sceneZMax)\x20&&\x20(sceneZMax\x20!=\x200.0);\x0a#else\x0ahit=(rayZMin<=sceneZMax+csZThickness)\x20&&\x20(rayZMax>=sceneZMax);\x0a#endif\x0a#endif\x0a}\x0apqk-=dPQK;\x0astepCount-=1.0;\x0aif\x20(((pqk.x+dPQK.x)*stepDirection)>end\x20||\x20(stepCount+1.0)>=maxSteps\x20||\x20sceneZMax==0.0)\x20{\x0ahit=false;\x0a}\x0a#ifdef\x20SSRAYTRACE_ENABLE_REFINEMENT\x0aif\x20(stride>1.0\x20&&\x20hit)\x20{\x0apqk-=dPQK;\x0astepCount-=1.0;\x0afloat\x20invStride=1.0/stride;\x0adPQK*=invStride;\x0afloat\x20refinementStepCount=0.0;\x0aprevZMaxEstimate=pqk.z/pqk.w;\x0arayZMax=prevZMaxEstimate;\x0asceneZMax=rayZMax+1e7;\x0afor\x20(;\x0arefinementStepCount<=1.0\x20||\x0a(refinementStepCount<=stride*1.4)\x20&&\x0a(rayZMax<sceneZMax)\x20&&\x20(sceneZMax\x20!=\x200.0);\x0apqk+=dPQK,refinementStepCount+=1.0)\x0a{\x0arayZMin=prevZMaxEstimate;\x0arayZMax=(dPQK.z*0.5+pqk.z)/(dPQK.w*0.5+pqk.w);\x0arayZMax=clamp(rayZMax,zMin,zMax);\x0aprevZMaxEstimate=rayZMax;\x0arayZMax=max(rayZMax,rayZMin);\x0ahitPixel=permute\x20?\x20pqk.yx\x20:\x20pqk.xy;\x0asceneZMax=texelFetch(csZBuffer,ivec2(hitPixel),0).r;\x0a}\x0apqk-=dPQK;\x0arefinementStepCount-=1.0;\x0astepCount+=refinementStepCount/stride;\x0a}\x0a#endif\x0aQ0.xy+=dQ.xy*stepCount;\x0aQ0.z=pqk.z;\x0acsHitPoint=Q0/pqk.w;\x0anumIterations=stepCount+1.0;\x0a#ifdef\x20SSRAYTRACE_DEBUG\x0aif\x20(((pqk.x+dPQK.x)*stepDirection)>end)\x20{\x0adebugColor=vec3(0,0,1);\x0a}\x20else\x20if\x20((stepCount+1.0)>=maxSteps)\x20{\x0adebugColor=vec3(1,0,0);\x0a}\x20else\x20if\x20(sceneZMax==0.0)\x20{\x0adebugColor=vec3(1,1,0);\x0a}\x20else\x20{\x0adebugColor=vec3(0,stepCount/maxSteps,0);\x0a}\x0a#endif\x0areturn\x20hit;\x0a}\x0a','thinInstanceBufferUpdated','heightRange','boundingBoxRendererVertexDeclaration','precision\x20highp\x20float','updateUInt2','uniform\x20float\x20depthValue;\x0aconst\x20vec2\x20pos[4]={\x0avec2(-1.0,1.0),\x0avec2(1.0,1.0),\x0avec2(-1.0,-1.0),\x0avec2(1.0,-1.0)\x0a};\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0agl_Position=vec4(pos[gl_VertexID],depthValue,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','TEXTURETYPE_UNSIGNED_SHORT','skipOnKeyboardObservable','ASTC10x8Unorm','directionRandomizer','pickWorldPosition','create\x20cube\x20mipmaps\x20-\x20','kernelBlurPixelShader','_isUbo','_SimplifyNegation','_setColorFormat','anisotropicFilteringLevel','_isStencilMaskDirty','#include<samplerFragmentDeclaration>(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo,_SAMPLERNAME_,albedo)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_SAMPLERNAME_,ambient)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_SAMPLERNAME_,opacity)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_SAMPLERNAME_,emissive)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_SAMPLERNAME_,lightmap)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity,_SAMPLERNAME_,reflectivity)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler,_SAMPLERNAME_,microSurface)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance,_SAMPLERNAME_,metallicReflectance)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance,_SAMPLERNAME_,reflectance)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_SAMPLERNAME_,decal)\x0a#ifdef\x20CLEARCOAT\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat,_SAMPLERNAME_,clearCoat)\x0a#include<samplerFragmentAlternateDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness)\x0a#if\x20defined(CLEARCOAT_TEXTURE_ROUGHNESS)\x20&&\x20!defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL)\x0auniform\x20sampler2D\x20clearCoatRoughnessSampler;\x0a#endif\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump,_SAMPLERNAME_,clearCoatBump)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint,_SAMPLERNAME_,clearCoatTint)\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence,_SAMPLERNAME_,iridescence)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness,_SAMPLERNAME_,iridescenceThickness)\x0a#endif\x0a#ifdef\x20SHEEN\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen,_SAMPLERNAME_,sheen)\x0a#include<samplerFragmentAlternateDeclaration>(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness)\x0a#if\x20defined(SHEEN_ROUGHNESS)\x20&&\x20defined(SHEEN_TEXTURE_ROUGHNESS)\x20&&\x20!defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL)\x0auniform\x20sampler2D\x20sheenRoughnessSampler;\x0a#endif\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy,_SAMPLERNAME_,anisotropy)\x0a#endif\x0a#ifdef\x20REFLECTION\x0a#ifdef\x20REFLECTIONMAP_3D\x0a#define\x20sampleReflection(s,c)\x20textureCube(s,c)\x0auniform\x20samplerCube\x20reflectionSampler;\x0a#ifdef\x20LODBASEDMICROSFURACE\x0a#define\x20sampleReflectionLod(s,c,l)\x20textureCubeLodEXT(s,c,l)\x0a#else\x0auniform\x20samplerCube\x20reflectionSamplerLow;\x0auniform\x20samplerCube\x20reflectionSamplerHigh;\x0a#endif\x0a#ifdef\x20USEIRRADIANCEMAP\x0auniform\x20samplerCube\x20irradianceSampler;\x0a#endif\x0a#else\x0a#define\x20sampleReflection(s,c)\x20texture2D(s,c)\x0auniform\x20sampler2D\x20reflectionSampler;\x0a#ifdef\x20LODBASEDMICROSFURACE\x0a#define\x20sampleReflectionLod(s,c,l)\x20texture2DLodEXT(s,c,l)\x0a#else\x0auniform\x20sampler2D\x20reflectionSamplerLow;\x0auniform\x20sampler2D\x20reflectionSamplerHigh;\x0a#endif\x0a#ifdef\x20USEIRRADIANCEMAP\x0auniform\x20sampler2D\x20irradianceSampler;\x0a#endif\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avarying\x20vec3\x20vPositionUVW;\x0a#else\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avarying\x20vec3\x20vDirectionW;\x0a#endif\x0a#endif\x0a#endif\x0a#ifdef\x20ENVIRONMENTBRDF\x0auniform\x20sampler2D\x20environmentBrdfSampler;\x0a#endif\x0a#ifdef\x20SUBSURFACE\x0a#ifdef\x20SS_REFRACTION\x0a#ifdef\x20SS_REFRACTIONMAP_3D\x0a#define\x20sampleRefraction(s,c)\x20textureCube(s,c)\x0auniform\x20samplerCube\x20refractionSampler;\x0a#ifdef\x20LODBASEDMICROSFURACE\x0a#define\x20sampleRefractionLod(s,c,l)\x20textureCubeLodEXT(s,c,l)\x0a#else\x0auniform\x20samplerCube\x20refractionSamplerLow;\x0auniform\x20samplerCube\x20refractionSamplerHigh;\x0a#endif\x0a#else\x0a#define\x20sampleRefraction(s,c)\x20texture2D(s,c)\x0auniform\x20sampler2D\x20refractionSampler;\x0a#ifdef\x20LODBASEDMICROSFURACE\x0a#define\x20sampleRefractionLod(s,c,l)\x20texture2DLodEXT(s,c,l)\x0a#else\x0auniform\x20sampler2D\x20refractionSamplerLow;\x0auniform\x20sampler2D\x20refractionSamplerHigh;\x0a#endif\x0a#endif\x0a#endif\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness,_SAMPLERNAME_,thickness)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity,_SAMPLERNAME_,refractionIntensity)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity,_SAMPLERNAME_,translucencyIntensity)\x0a#endif\x0a','defined($1)','setCommandEncoder','meshVertexDeclaration','processingContext','_isMultiTouchGesture','compilationError','.xyz,\x20','textureInfos','attribute\x20vec3\x20position;\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20viewProjection;\x0auniform\x20vec2\x20depthValues;\x0a#if\x20defined(ALPHATEST)\x20||\x20defined(NEED_UV)\x0avarying\x20vec2\x20vUV;\x0auniform\x20mat4\x20diffuseMatrix;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec3\x20positionUpdated=position;\x0a#if\x20(defined(ALPHATEST)\x20||\x20defined(NEED_UV))\x20&&\x20defined(UV1)\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0agl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\x0a#if\x20defined(ALPHATEST)\x20||\x20defined(BASIC_RENDER)\x0a#ifdef\x20UV1\x0avUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20UV2\x0avUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a}\x0a','_initActionManager','onCompiled','creationFlags','#define\x20PIXEL_PERFECT\x0a','renderPriority','colorFormats','#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avColor=vec4(1.0);\x0a#ifdef\x20VERTEXCOLOR\x0a#ifdef\x20VERTEXALPHA\x0avColor*=color;\x0a#else\x0avColor.rgb*=color.rgb;\x0a#endif\x0a#endif\x0a#ifdef\x20INSTANCESCOLOR\x0avColor*=instanceColor;\x0a#endif\x0a#endif\x0a','uniform\x20sampler2DArray\x20','pbrBlockImageProcessing','projection','generateCubeMipmaps','layerMask','pbrBlockFinalColorComposition','POINTERMOVE','pbrBlockIridescence','add','line','ALPHA_SRC_DSTONEMINUSSRCALPHA',',\x201.,\x20','_defineOppositeZ','Float','ILog2','DEPTH_STENCIL_ATTACHMENT','_MSAARenderBuffers','_alphaEquation','updateDynamicTexture','#ifdef\x20PREPASS\x0a#ifdef\x20PREPASS_DEPTH\x0avarying\x20vec3\x20vViewPos;\x0a#endif\x0a#ifdef\x20PREPASS_VELOCITY\x0auniform\x20mat4\x20previousViewProjection;\x0avarying\x20vec4\x20vCurrentPosition;\x0avarying\x20vec4\x20vPreviousPosition;\x0a#endif\x0a#endif\x0a','_startingPointerPosition','\x20needs\x20to\x20be\x20imported\x20before\x20as\x20it\x20contains\x20a\x20side-effect\x20required\x20by\x20your\x20code.','mag','\x22\x20is\x20not\x20declared\x20in\x20the\x20vertex\x20shader!\x20This\x20declaration\x20will\x20be\x20ignored.','minimizeInPlace','_fragmentIsGLES3','_endRenderTargetRenderPass','_attributeDeclaration','availableBuffers','fragmentCompilationError','createRawBuffer','_glslang','getBindGroups','_deferredReleaseBuffers','ASTC10x8UnormSRGB','_pickMove','isAttribute','Store','waterVertexShader','_generateMipmaps','Ubo','blendMode','#if\x20defined(BUMP)\x20||\x20defined(PARALLAX)\x20||\x20defined(CLEARCOAT_BUMP)\x20||\x20defined(ANISOTROPIC)\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x20\x0avarying\x20mat3\x20vTBN;\x0a#endif\x0a#endif\x0a','updateVector4','availableAttributes','stencilGlobal','vec4','TEXTURE_FIXED_EQUIRECTANGULAR_MODE','packingFunctions','isDirty','_disposeThinInstanceSpecificData','_occlusionQuery','pop','_renderForCamera','attributeProcessor','cameraWorldPosition','_emit2DArraySampler','_uploadEncoder','_attached','#define\x20INVERTY\x0d\x0a','_frontFace','#ifdef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0auniform\x20bakedVertexAnimationTime:\x20f32;\x0auniform\x20bakedVertexAnimationTextureSizeInverted:\x20vec2<f32>;\x0auniform\x20bakedVertexAnimationSettings:\x20vec4<f32>;\x0avar\x20bakedVertexAnimationTexture\x20:\x20texture_2d<f32>;\x0a#ifdef\x20INSTANCES\x0aattribute\x20bakedVertexAnimationSettingsInstanced\x20:\x20vec4<f32>;\x0a#endif\x0afn\x20readMatrixFromRawSamplerVAT(smp\x20:\x20texture_2d<f32>,index\x20:\x20f32,frame\x20:\x20f32)->mat4x4<f32>\x0a{\x0alet\x20offset=i32(index)*4;\x0alet\x20frameUV=i32(frame);\x0alet\x20m0=textureLoad(smp,vec2<i32>(offset+0,frameUV),0);\x0alet\x20m1=textureLoad(smp,vec2<i32>(offset+1,frameUV),0);\x0alet\x20m2=textureLoad(smp,vec2<i32>(offset+2,frameUV),0);\x0alet\x20m3=textureLoad(smp,vec2<i32>(offset+3,frameUV),0);\x0areturn\x20mat4x4<f32>(m0,m1,m2,m3);\x0a}\x0a#endif\x0a','defines','pbrVertexShader','_maxRank','int','clipPlane6','_reflectionPositionName','materialContext','groupIndex','getDescendants','programLinkError','underlyingResource','CylinderParticleEmitter','GL_ES','_cacheFloat4','LEQUAL','setAsAttribute','Clone','markAsProcessed','View','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;\x0auniform\x20mat4\x20diffuseMatrix;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0agl_Position=viewProjection*worldPos;\x0avPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0aif\x20(vDiffuseInfos.x==0.)\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\x0a}\x0aelse\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','VertexAndFragment','_halfDomeMask','defined[$1]','void\x20main(','IsImageBitmap','exec','_cubeSamplerName','update','gl_VertexIndex','blitFramebuffer','Cannot\x20create\x20canvas\x20to\x20resize\x20texture.','fovMultiplier','baseHeight','setPhysicsLinkWith','getPipelineContext','ray','samples','_repeatableContentAnchor','additionalDefineKey','.texture\x20=\x20new\x20BABYLON.Texture(\x22','shaderProcessingContext','#include\x20<','createCubeTextureBase','ASTC6x5UnormSRGB','sunDirection','meshUboDeclaration','handleFragmentSideInits','void\x20main(void)\x20{\x0d\x0a','needPOTTextures','\x20=\x20computeProjectionCoords(','_GetTextureTypeFromFormat','AddModel','getRenderingCanvas','_DefaultMaximumThickness','TEXTURE_CUBE_MAP_POSITIVE_X','BC3RGBAUnormSRGB','fillMode','_keys','UNPACK_PREMULTIPLY_ALPHA_WEBGL','Int','pick','createView','_postProcessRunningIndex','NONE','_areLightsDisposed','vTBN','TEXTURE_PLANAR_MODE','notifyObservers','\x20{\x0a','pbrFragmentSamplersDeclaration','fresnelFunction','RGBA32Sint','setUniqueId','BC4RUnorm','removeVerticesData','MAINUV0','SetImmediate','_oldHardwareScaleFactor','IncludesShadersStoreWGSL','_outputPostProcess','createPickingRay','REFLECTIONMAP_EQUIRECTANGULAR_FIXED','forcedBindableBlocks','_emitFunctionFromInclude','bindGroupLayoutEntryInfo','isCompiled','_ProcessShaderConversion','INVERTCUBICMAP','_isDepthMaskDirty','testValue','importanceSampling','vec3\x20','R8Sint','depthTextureFormat','processor','handleFragmentSideCodeReflectionColor','_SimplifiedKnownUBOs','DYNAMIC_DRAW','_areTexturesDirty','markAsPrePassDirty','isArray','incrementReferences','isTextureArray','TEXTURETYPE_UNSIGNED_INT','_irradianceTexture','renderPageFocus','textureFloat','hasSwiped','bindingIndex','XRWebGLLayer','#if\x20defined(FORCENORMALFORWARD)\x20&&\x20defined(NORMAL)\x0avec3\x20faceNormal=normalize(cross(dFdx(vPositionW),dFdy(vPositionW)))*vEyePosition.w;\x0a#if\x20defined(TWOSIDEDLIGHTING)\x0afaceNormal=gl_FrontFacing\x20?\x20faceNormal\x20:\x20-faceNormal;\x0a#endif\x0anormalW*=sign(dot(normalW,faceNormal));\x0a#endif\x0a#if\x20defined(TWOSIDEDLIGHTING)\x20&&\x20defined(NORMAL)\x0anormalW=gl_FrontFacing\x20?\x20normalW\x20:\x20-normalW;\x0a#endif\x0a','_onXRFrame','attribute\x20vec3\x20position;\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#include<clipPlaneVertexDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20viewProjection;\x0avarying\x20vec4\x20vPosition;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vUVDiffuse;\x0auniform\x20mat4\x20diffuseMatrix;\x0a#endif\x0a#ifdef\x20OPACITY\x0avarying\x20vec2\x20vUVOpacity;\x0auniform\x20mat4\x20opacityMatrix;\x0a#endif\x0a#ifdef\x20EMISSIVE\x0avarying\x20vec2\x20vUVEmissive;\x0auniform\x20mat4\x20emissiveMatrix;\x0a#endif\x0a#ifdef\x20VERTEXALPHA\x0aattribute\x20vec4\x20color;\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec3\x20positionUpdated=position;\x0a#ifdef\x20UV1\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(positionUpdated,1.0);\x0a#ifdef\x20CUBEMAP\x0avPosition=worldPos;\x0agl_Position=viewProjection*finalWorld*vec4(position,1.0);\x0a#else\x0avPosition=viewProjection*worldPos;\x0agl_Position=vPosition;\x0a#endif\x0a#ifdef\x20DIFFUSE\x0a#ifdef\x20DIFFUSEUV1\x0avUVDiffuse=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20DIFFUSEUV2\x0avUVDiffuse=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a#ifdef\x20OPACITY\x0a#ifdef\x20OPACITYUV1\x0avUVOpacity=vec2(opacityMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20OPACITYUV2\x0avUVOpacity=vec2(opacityMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a#ifdef\x20EMISSIVE\x0a#ifdef\x20EMISSIVEUV1\x0avUVEmissive=vec2(emissiveMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20EMISSIVEUV2\x0avUVEmissive=vec2(emissiveMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a#ifdef\x20VERTEXALPHA\x0avColor=color;\x0a#endif\x0a#include<clipPlaneVertex>\x0a}','IsImageBitmapArray','Keyboard','_leftOverUniformsByName','opStencilFail','getBindGroupLayout','normalize(','pointerUpPredicate','ASTC6x6UnormSRGB','string','_copyInvertYRenderPassDescr','RGBA8UnormSRGB','isIntermediate','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20screenSize;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec4\x20colorDepth=vec4(0.0);\x0afor\x20(int\x20x=-OFFSET;\x20x<=OFFSET;\x20x++)\x0afor\x20(int\x20y=-OFFSET;\x20y<=OFFSET;\x20y++)\x0acolorDepth+=texture2D(textureSampler,vUV+vec2(x,y)/screenSize);\x0agl_FragColor=(colorDepth/float((OFFSET*2+1)*(OFFSET*2+1)));\x0a}','\x20=\x20computeCubicLocalCoords(','resolve','thinInstanceSetAttributeAt','fogEnd','getTimeStep','_cacheSampler','hdrFilteringFunctions','RG16Uint','oitFinalPixelShader','UniformSizes','#ifdef\x20MORPHTARGETS\x0a#ifndef\x20MORPHTARGETS_TEXTURE\x0aattribute\x20position{X}\x20:\x20vec3<f32>;\x0a#ifdef\x20MORPHTARGETS_NORMAL\x0aattribute\x20normal{X}\x20:\x20vec3<f32>;\x0a#endif\x0a#ifdef\x20MORPHTARGETS_TANGENT\x0aattribute\x20tangent{X}\x20:\x20vec3<f32>;\x0a#endif\x0a#ifdef\x20MORPHTARGETS_UV\x0aattribute\x20uv_{X}\x20:\x20vec2<f32>;\x0a#endif\x0a#endif\x0a#endif\x0a','blurDir','mrtFragmentDeclaration','Not\x20implemented','_preProcessors','_deserialize','getHeight','Vector2','_defineMirroredEquirectangularFixedName','subtractToRef','_material','#if\x20NUM_BONE_INFLUENCERS>0\x0aattribute\x20matricesIndices\x20:\x20vec4<f32>;\x0aattribute\x20matricesWeights\x20:\x20vec4<f32>;\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0aattribute\x20matricesIndicesExtra\x20:\x20vec4<f32>;\x0aattribute\x20matricesWeightsExtra\x20:\x20vec4<f32>;\x0a#endif\x0a#ifndef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0a#ifdef\x20BONETEXTURE\x0avar\x20boneSampler\x20:\x20texture_2d<f32>;\x0auniform\x20boneTextureWidth\x20:\x20f32;\x0a#else\x0auniform\x20mBones\x20:\x20array<mat4x4,BonesPerMesh>;\x0a#ifdef\x20BONES_VELOCITY_ENABLED\x0auniform\x20mPreviousBones\x20:\x20array<mat4x4,BonesPerMesh>;\x0a#endif\x0a#endif\x0a#ifdef\x20BONETEXTURE\x0afn\x20readMatrixFromRawSampler(smp\x20:\x20texture_2d<f32>,index\x20:\x20f32)->mat4x4<f32>\x0a{\x0alet\x20offset=i32(index)\x20*4;\x20\x0alet\x20m0=textureLoad(smp,vec2<i32>(offset+0,0),0);\x0alet\x20m1=textureLoad(smp,vec2<i32>(offset+1,0),0);\x0alet\x20m2=textureLoad(smp,vec2<i32>(offset+2,0),0);\x0alet\x20m3=textureLoad(smp,vec2<i32>(offset+3,0),0);\x0areturn\x20mat4x4<f32>(m0,m1,m2,m3);\x0a}\x0a#endif\x0a#endif\x0a#endif\x0a','DEPTH24_STENCIL8','gradientVertexShader','applyBlurPostProcesses','POINTERDOWN','_zOffsetUnits','oitBackBlendPixelShader','left','_vrExclusivePointerMode','minimum','TextureBinding','disableDepthWrite','DST_COLOR','blurNumIterations','stereoscopicInterlacePixelShader','materialCount','_renderPipelines','_blendFunctionParameters','pvrtc','fn\x20main','_bufferView','DragMovementThreshold','textureNames','i32','vIridescenceParams','toString','_GetAttributeNamesOrOptions','sampler2DArray','_gpuFrameTimeCounter','CreateNewFromSprite','#ifdef\x20INSTANCES\x0aattribute\x20vec4\x20world0;\x0aattribute\x20vec4\x20world1;\x0aattribute\x20vec4\x20world2;\x0aattribute\x20vec4\x20world3;\x0a#ifdef\x20INSTANCESCOLOR\x0aattribute\x20vec4\x20instanceColor;\x0a#endif\x0a#if\x20defined(THIN_INSTANCES)\x20&&\x20!defined(WORLD_UBO)\x0auniform\x20mat4\x20world;\x0a#endif\x0a#if\x20defined(VELOCITY)\x20||\x20defined(PREPASS_VELOCITY)\x0aattribute\x20vec4\x20previousWorld0;\x0aattribute\x20vec4\x20previousWorld1;\x0aattribute\x20vec4\x20previousWorld2;\x0aattribute\x20vec4\x20previousWorld3;\x0a#ifdef\x20THIN_INSTANCES\x0auniform\x20mat4\x20previousWorld;\x0a#endif\x0a#endif\x0a#else\x0a#if\x20!defined(WORLD_UBO)\x0auniform\x20mat4\x20world;\x0a#endif\x0a#if\x20defined(VELOCITY)\x20||\x20defined(PREPASS_VELOCITY)\x0auniform\x20mat4\x20previousWorld;\x0a#endif\x0a#endif\x0a','_ssFilterRadii','onBeforePhysicsObservable','updateFloat3','R16Sint','updateRawCubeTexture','fluidRenderingParticleDiffuseVertexShader','onAfterPhysicsObservable','setTextureSampler','abs','vec','framebufferTextureMultiviewOVR','addItem','output','_wasPreviouslyReady','querySet','throw','mixPixelShader','attribute\x20vec3\x20position;\x0aattribute\x20vec4\x20color;\x0aattribute\x20float\x20angle;\x0aattribute\x20vec2\x20size;\x0a#ifdef\x20ANIMATESHEET\x0aattribute\x20float\x20cellIndex;\x0a#endif\x0a#ifndef\x20BILLBOARD\x0aattribute\x20vec3\x20direction;\x0a#endif\x0a#ifdef\x20BILLBOARDSTRETCHED\x0aattribute\x20vec3\x20direction;\x0a#endif\x0a#ifdef\x20RAMPGRADIENT\x0aattribute\x20vec4\x20remapData;\x0a#endif\x0aattribute\x20vec2\x20offset;\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0auniform\x20vec2\x20translationPivot;\x0a#ifdef\x20ANIMATESHEET\x0auniform\x20vec3\x20particlesInfos;\x20\x0a#endif\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec4\x20vColor;\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20RAMPGRADIENT\x0avarying\x20vec4\x20remapRanges;\x0a#endif\x0a#if\x20defined(BILLBOARD)\x20&&\x20!defined(BILLBOARDY)\x20&&\x20!defined(BILLBOARDSTRETCHED)\x0auniform\x20mat4\x20invView;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<logDepthDeclaration>\x0a#ifdef\x20BILLBOARD\x0auniform\x20vec3\x20eyePosition;\x0a#endif\x0avec3\x20rotate(vec3\x20yaxis,vec3\x20rotatedCorner)\x20{\x0avec3\x20xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));\x0avec3\x20zaxis=normalize(cross(yaxis,xaxis));\x0avec3\x20row0=vec3(xaxis.x,xaxis.y,xaxis.z);\x0avec3\x20row1=vec3(yaxis.x,yaxis.y,yaxis.z);\x0avec3\x20row2=vec3(zaxis.x,zaxis.y,zaxis.z);\x0amat3\x20rotMatrix=\x20mat3(row0,row1,row2);\x0avec3\x20alignedCorner=rotMatrix*rotatedCorner;\x0areturn\x20position+alignedCorner;\x0a}\x0a#ifdef\x20BILLBOARDSTRETCHED\x0avec3\x20rotateAlign(vec3\x20toCamera,vec3\x20rotatedCorner)\x20{\x0avec3\x20normalizedToCamera=normalize(toCamera);\x0avec3\x20normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));\x0avec3\x20row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);\x0avec3\x20row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\x0a#ifdef\x20BILLBOARDSTRETCHED_LOCAL\x0avec3\x20row1=direction;\x0a#else\x0avec3\x20crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));\x0avec3\x20row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);\x0a#endif\x0amat3\x20rotMatrix=\x20mat3(row0,row1,row2);\x0avec3\x20alignedCorner=rotMatrix*rotatedCorner;\x0areturn\x20position+alignedCorner;\x0a}\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avec2\x20cornerPos;\x0acornerPos=(vec2(offset.x-0.5,offset.y\x20-0.5)-translationPivot)*size+translationPivot;\x0a#ifdef\x20BILLBOARD\x0avec3\x20rotatedCorner;\x0a#ifdef\x20BILLBOARDY\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.y=0.;\x0avec3\x20yaxis=position-eyePosition;\x0ayaxis.y=0.;\x0avPositionW=rotate(normalize(yaxis),rotatedCorner);\x0avec3\x20viewPos=(view*vec4(vPositionW,1.0)).xyz;\x0a#elif\x20defined(BILLBOARDSTRETCHED)\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.z=0.;\x0avec3\x20toCamera=position-eyePosition;\x0avPositionW=rotateAlign(toCamera,rotatedCorner);\x0avec3\x20viewPos=(view*vec4(vPositionW,1.0)).xyz;\x0a#else\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.z=0.;\x0avec3\x20viewPos=(view*vec4(position,1.0)).xyz+rotatedCorner;\x0avPositionW=(invView*vec4(viewPos,1)).xyz;\x0a#endif\x0a#ifdef\x20RAMPGRADIENT\x0aremapRanges=remapData;\x0a#endif\x0agl_Position=projection*vec4(viewPos,1.0);\x0a#else\x0avec3\x20rotatedCorner;\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.y=0.;\x0avec3\x20yaxis=normalize(direction);\x0avPositionW=rotate(yaxis,rotatedCorner);\x0agl_Position=projection*view*vec4(vPositionW,1.0);\x0a#endif\x0avColor=color;\x0a#ifdef\x20ANIMATESHEET\x0afloat\x20rowOffset=floor(cellIndex*particlesInfos.z);\x0afloat\x20columnOffset=cellIndex-rowOffset/particlesInfos.z;\x0avec2\x20uvScale=particlesInfos.xy;\x0avec2\x20uvOffset=vec2(offset.x\x20,1.0-offset.y);\x0avUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;\x0a#else\x0avUV=offset;\x0a#endif\x0a#if\x20defined(CLIPPLANE)\x20||\x20defined(CLIPPLANE2)\x20||\x20defined(CLIPPLANE3)\x20||\x20defined(CLIPPLANE4)\x20||\x20defined(CLIPPLANE5)\x20||\x20defined(CLIPPLANE6)\x0avec4\x20worldPos=vec4(vPositionW,1.0);\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<logDepthVertex>\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','_currentRank','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0a#include<helperFunctions>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0agl_FragColor=toRGBD(texture2D(textureSampler,vUV).rgb);\x0a}',')\x20in\x20','grainPixelShader','MatchesQuery','createTexture','TransformNormalToRef','ARRAY_BUFFER','screenSpaceReflection2PixelShader','initializeShaders','isMainRender','E2d','#include<clipPlaneFragmentDeclaration>\x0auniform\x20vec4\x20color;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0agl_FragColor=color;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','ASTC10x6UnormSRGB','matchesTagsQuery','bindBufferBase','updateEffect','bufferSubData','_availableIndices','getHostWindow','charCodeAt','#define\x20SPHEREEMITTER','vrdisplayconnect','meshCount','updateTexture:\x20Can\x27t\x20process\x20the\x20texture\x20data\x20because\x20a\x20GPUTexture\x20was\x20provided\x20instead\x20of\x20an\x20InternalTexture!','HALF_FLOAT','attribute\x20vec2\x20position;\x0auniform\x20vec2\x20scale;\x0auniform\x20vec2\x20offset;\x0auniform\x20mat4\x20textureMatrix;\x0avarying\x20vec2\x20vUV;\x0aconst\x20vec2\x20madd=vec2(0.5,0.5);\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avec2\x20shiftedPosition=position*scale+offset;\x0avUV=vec2(textureMatrix*vec4(shiftedPosition*madd+madd,1.0,0.0));\x0agl_Position=vec4(shiftedPosition,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','framebufferTextureLayer','binding','Depth\x20cube\x20texture\x20is\x20not\x20supported\x20by\x20WebGL\x201.','copyTextureToTexture','textureBlocks','rebuild','bind','>,\x0a','_yOffset','_startingPointerTime','TEXTUREFORMAT_RGBA_INTEGER','isRightCamera','samplingMode','pbrIBLFunctions','precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20float\x20alpha;\x0auniform\x20vec3\x20shadowColor;\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0afloat\x20glossiness=0.;\x0a#include<lightFragment>[0..1]\x0avec4\x20color=vec4(shadowColor,(1.0-clamp(shadow,0.,1.))*alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','cull','_blendConstants','TEXTURE_NEAREST_SAMPLINGMODE','url','#define\x20PREMULTIPLYALPHA\x0d\x0a','MAINUV1','fogVertexDeclaration','attribute\x20vec2\x20position;\x0auniform\x20vec2\x20texelSize;\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec2\x20sampleCoordS;\x0avarying\x20vec2\x20sampleCoordE;\x0avarying\x20vec2\x20sampleCoordN;\x0avarying\x20vec2\x20sampleCoordW;\x0avarying\x20vec2\x20sampleCoordNW;\x0avarying\x20vec2\x20sampleCoordSE;\x0avarying\x20vec2\x20sampleCoordNE;\x0avarying\x20vec2\x20sampleCoordSW;\x0aconst\x20vec2\x20madd=vec2(0.5,0.5);\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avUV=(position*madd+madd);\x0asampleCoordS=vUV+vec2(\x200.0,1.0)*texelSize;\x0asampleCoordE=vUV+vec2(\x201.0,0.0)*texelSize;\x0asampleCoordN=vUV+vec2(\x200.0,-1.0)*texelSize;\x0asampleCoordW=vUV+vec2(-1.0,0.0)*texelSize;\x0asampleCoordNW=vUV+vec2(-1.0,-1.0)*texelSize;\x0asampleCoordSE=vUV+vec2(\x201.0,1.0)*texelSize;\x0asampleCoordNE=vUV+vec2(\x201.0,-1.0)*texelSize;\x0asampleCoordSW=vUV+vec2(-1.0,1.0)*texelSize;\x0agl_Position=vec4(position,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','_retrieveQueryBuffer','_areFresnelDirty','R8Unorm','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20','RG16Float','constantlyUpdateMeshUnderPointer','setStencilCompare','boxMax','uniformBufferProcessor','attributeKeywordName','uvVariableDeclaration','setDepthTestEnabled','BACKSIDE','clipPlane2','spriteMapVertexShader','getInputElementClientRect','simulatePointerUp','formats','ALPHA_SUBTRACT','detachControl','setMatrix','_createRenderTarget','REFLECTIONMAP_EXPLICIT','DoubleClickDelay','struct\x20Mesh\x20{\x0aworld\x20:\x20mat4x4<f32>,\x0avisibility\x20:\x20f32,\x0a};\x0avar<uniform>\x20mesh\x20:\x20Mesh;\x0a#define\x20WORLD_UBO\x0a','style','_canUseMultipleBuffers','_cachedWrapU','drawImage','Auto','_drawWrapperFogDepth','offsetX','currentViewProjection','colorAttachmentGPUTextures','_advancePhysicsEngineStep','__framebufferDepthStencil','_createHardwareRenderTargetWrapper','Iridescence\x20ior','copyWithInvertY','CopyDst','setStencilEnabled','Read','TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4','addPendingData','pbrBlockLightmapInit','DeepCopy','dataStoreDataCurrentBufferBlockIndex','#define\x20FRESNEL_MAXIMUM_ON_ROUGH\x200.25\x0a#ifdef\x20MS_BRDF_ENERGY_CONSERVATION\x0avec3\x20getEnergyConservationFactor(const\x20vec3\x20specularEnvironmentR0,const\x20vec3\x20environmentBrdf)\x20{\x0areturn\x201.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);\x0a}\x0a#endif\x0a#ifdef\x20ENVIRONMENTBRDF\x0avec3\x20getBRDFLookup(float\x20NdotV,float\x20perceptualRoughness)\x20{\x0avec2\x20UV=vec2(NdotV,perceptualRoughness);\x0avec4\x20brdfLookup=texture2D(environmentBrdfSampler,UV);\x0a#ifdef\x20ENVIRONMENTBRDF_RGBD\x0abrdfLookup.rgb=fromRGBD(brdfLookup.rgba);\x0a#endif\x0areturn\x20brdfLookup.rgb;\x0a}\x0avec3\x20getReflectanceFromBRDFLookup(const\x20vec3\x20specularEnvironmentR0,const\x20vec3\x20specularEnvironmentR90,const\x20vec3\x20environmentBrdf)\x20{\x0a#ifdef\x20BRDF_V_HEIGHT_CORRELATED\x0avec3\x20reflectance=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;\x0a#else\x0avec3\x20reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;\x0a#endif\x0areturn\x20reflectance;\x0a}\x0avec3\x20getReflectanceFromBRDFLookup(const\x20vec3\x20specularEnvironmentR0,const\x20vec3\x20environmentBrdf)\x20{\x0a#ifdef\x20BRDF_V_HEIGHT_CORRELATED\x0avec3\x20reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);\x0a#else\x0avec3\x20reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;\x0a#endif\x0areturn\x20reflectance;\x0a}\x0a#endif\x0a/*\x20NOT\x20USED\x0a#if\x20defined(SHEEN)\x20&&\x20defined(SHEEN_SOFTER)\x0afloat\x20getBRDFLookupCharlieSheen(float\x20NdotV,float\x20perceptualRoughness)\x0a{\x0afloat\x20c=1.0-NdotV;\x0afloat\x20c3=c*c*c;\x0areturn\x200.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));\x0a}\x0a#endif\x0a*/\x0a#if\x20!defined(ENVIRONMENTBRDF)\x20||\x20defined(REFLECTIONMAP_SKYBOX)\x20||\x20defined(ALPHAFRESNEL)\x0avec3\x20getReflectanceFromAnalyticalBRDFLookup_Jones(float\x20VdotN,vec3\x20reflectance0,vec3\x20reflectance90,float\x20smoothness)\x0a{\x0afloat\x20weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);\x0areturn\x20reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));\x0a}\x0a#endif\x0a#if\x20defined(SHEEN)\x20&&\x20defined(ENVIRONMENTBRDF)\x0a/**\x0a*\x20The\x20sheen\x20BRDF\x20not\x20containing\x20F\x20can\x20be\x20easily\x20stored\x20in\x20the\x20blue\x20channel\x20of\x20the\x20BRDF\x20texture.\x0a*\x20The\x20blue\x20channel\x20contains\x20DCharlie*VAshikhmin*NdotL\x20as\x20a\x20lokkup\x20table\x0a*/\x0avec3\x20getSheenReflectanceFromBRDFLookup(const\x20vec3\x20reflectance0,const\x20vec3\x20environmentBrdf)\x20{\x0avec3\x20sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;\x0areturn\x20sheenEnvironmentReflectance;\x0a}\x0a#endif\x0avec3\x20fresnelSchlickGGX(float\x20VdotH,vec3\x20reflectance0,vec3\x20reflectance90)\x0a{\x0areturn\x20reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);\x0a}\x0afloat\x20fresnelSchlickGGX(float\x20VdotH,float\x20reflectance0,float\x20reflectance90)\x0a{\x0areturn\x20reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);\x0a}\x0a#ifdef\x20CLEARCOAT\x0avec3\x20getR0RemappedForClearCoat(vec3\x20f0)\x20{\x0a#ifdef\x20CLEARCOAT_DEFAULTIOR\x0a#ifdef\x20MOBILE\x0areturn\x20saturate(f0*(f0*0.526868+0.529324)-0.0482256);\x0a#else\x0areturn\x20saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);\x0a#endif\x0a#else\x0avec3\x20s=sqrt(f0);\x0avec3\x20t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);\x0areturn\x20square(t);\x0a#endif\x0a}\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0aconst\x20mat3\x20XYZ_TO_REC709=mat3(\x0a3.2404542,-0.9692660,\x200.0556434,\x0a-1.5371385,\x201.8760108,-0.2040259,\x0a-0.4985314,\x200.0415560,\x201.0572252\x0a);\x0avec3\x20getIORTfromAirToSurfaceR0(vec3\x20f0)\x20{\x0avec3\x20sqrtF0=sqrt(f0);\x0areturn\x20(1.+sqrtF0)/(1.-sqrtF0);\x0a}\x0avec3\x20getR0fromIORs(vec3\x20iorT,float\x20iorI)\x20{\x0areturn\x20square((iorT-vec3(iorI))/(iorT+vec3(iorI)));\x0a}\x0afloat\x20getR0fromIORs(float\x20iorT,float\x20iorI)\x20{\x0areturn\x20square((iorT-iorI)/(iorT+iorI));\x0a}\x0avec3\x20evalSensitivity(float\x20opd,vec3\x20shift)\x20{\x0afloat\x20phase=2.0*PI*opd*1.0e-9;\x0aconst\x20vec3\x20val=vec3(5.4856e-13,4.4201e-13,5.2481e-13);\x0aconst\x20vec3\x20pos=vec3(1.6810e+06,1.7953e+06,2.2084e+06);\x0aconst\x20vec3\x20var=vec3(4.3278e+09,9.3046e+09,6.6121e+09);\x0avec3\x20xyz=val*sqrt(2.0*PI*var)*cos(pos*phase+shift)*exp(-square(phase)*var);\x0axyz.x+=9.7470e-14*sqrt(2.0*PI*4.5282e+09)*cos(2.2399e+06*phase+shift[0])*exp(-4.5282e+09*square(phase));\x0axyz/=1.0685e-7;\x0avec3\x20srgb=XYZ_TO_REC709*xyz;\x0areturn\x20srgb;\x0a}\x0avec3\x20evalIridescence(float\x20outsideIOR,float\x20eta2,float\x20cosTheta1,float\x20thinFilmThickness,vec3\x20baseF0)\x20{\x0avec3\x20I=vec3(1.0);\x0afloat\x20iridescenceIOR=mix(outsideIOR,eta2,smoothstep(0.0,0.03,thinFilmThickness));\x0afloat\x20sinTheta2Sq=square(outsideIOR/iridescenceIOR)*(1.0-square(cosTheta1));\x0afloat\x20cosTheta2Sq=1.0-sinTheta2Sq;\x0aif\x20(cosTheta2Sq<0.0)\x20{\x0areturn\x20I;\x0a}\x0afloat\x20cosTheta2=sqrt(cosTheta2Sq);\x0afloat\x20R0=getR0fromIORs(iridescenceIOR,outsideIOR);\x0afloat\x20R12=fresnelSchlickGGX(cosTheta1,R0,1.);\x0afloat\x20R21=R12;\x0afloat\x20T121=1.0-R12;\x0afloat\x20phi12=0.0;\x0aif\x20(iridescenceIOR<outsideIOR)\x20phi12=PI;\x0afloat\x20phi21=PI-phi12;\x0avec3\x20baseIOR=getIORTfromAirToSurfaceR0(clamp(baseF0,0.0,0.9999));\x20\x0avec3\x20R1=getR0fromIORs(baseIOR,iridescenceIOR);\x0avec3\x20R23=fresnelSchlickGGX(cosTheta2,R1,vec3(1.));\x0avec3\x20phi23=vec3(0.0);\x0aif\x20(baseIOR[0]<iridescenceIOR)\x20phi23[0]=PI;\x0aif\x20(baseIOR[1]<iridescenceIOR)\x20phi23[1]=PI;\x0aif\x20(baseIOR[2]<iridescenceIOR)\x20phi23[2]=PI;\x0afloat\x20opd=2.0*iridescenceIOR*thinFilmThickness*cosTheta2;\x0avec3\x20phi=vec3(phi21)+phi23;\x0avec3\x20R123=clamp(R12*R23,1e-5,0.9999);\x0avec3\x20r123=sqrt(R123);\x0avec3\x20Rs=square(T121)*R23/(vec3(1.0)-R123);\x0avec3\x20C0=R12+Rs;\x0aI=C0;\x0avec3\x20Cm=Rs-T121;\x0afor\x20(int\x20m=1;\x20m<=2;\x20++m)\x0a{\x0aCm*=r123;\x0avec3\x20Sm=2.0*evalSensitivity(float(m)*opd,float(m)*phi);\x0aI+=Cm*Sm;\x0a}\x0areturn\x20max(I,vec3(0.0));\x0a}\x0a#endif\x0afloat\x20normalDistributionFunction_TrowbridgeReitzGGX(float\x20NdotH,float\x20alphaG)\x0a{\x0afloat\x20a2=square(alphaG);\x0afloat\x20d=NdotH*NdotH*(a2-1.0)+1.0;\x0areturn\x20a2/(PI*d*d);\x0a}\x0a#ifdef\x20SHEEN\x0afloat\x20normalDistributionFunction_CharlieSheen(float\x20NdotH,float\x20alphaG)\x0a{\x0afloat\x20invR=1./alphaG;\x0afloat\x20cos2h=NdotH*NdotH;\x0afloat\x20sin2h=1.-cos2h;\x0areturn\x20(2.+invR)*pow(sin2h,invR*.5)/(2.*PI);\x0a}\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0afloat\x20normalDistributionFunction_BurleyGGX_Anisotropic(float\x20NdotH,float\x20TdotH,float\x20BdotH,const\x20vec2\x20alphaTB)\x20{\x0afloat\x20a2=alphaTB.x*alphaTB.y;\x0avec3\x20v=vec3(alphaTB.y*TdotH,alphaTB.x\x20*BdotH,a2*NdotH);\x0afloat\x20v2=dot(v,v);\x0afloat\x20w2=a2/v2;\x0areturn\x20a2*w2*w2*RECIPROCAL_PI;\x0a}\x0a#endif\x0a#ifdef\x20BRDF_V_HEIGHT_CORRELATED\x0afloat\x20smithVisibility_GGXCorrelated(float\x20NdotL,float\x20NdotV,float\x20alphaG)\x20{\x0a#ifdef\x20MOBILE\x0afloat\x20GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);\x0afloat\x20GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);\x0areturn\x200.5/(GGXV+GGXL);\x0a#else\x0afloat\x20a2=alphaG*alphaG;\x0afloat\x20GGXV=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);\x0afloat\x20GGXL=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);\x0areturn\x200.5/(GGXV+GGXL);\x0a#endif\x0a}\x0a#else\x0afloat\x20smithVisibilityG1_TrowbridgeReitzGGXFast(float\x20dot,float\x20alphaG)\x0a{\x0a#ifdef\x20MOBILE\x0areturn\x201.0/(dot+alphaG+(1.0-alphaG)*dot\x20));\x0a#else\x0afloat\x20alphaSquared=alphaG*alphaG;\x0areturn\x201.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));\x0a#endif\x0a}\x0afloat\x20smithVisibility_TrowbridgeReitzGGXFast(float\x20NdotL,float\x20NdotV,float\x20alphaG)\x0a{\x0afloat\x20visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);\x0areturn\x20visibility;\x0a}\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0afloat\x20smithVisibility_GGXCorrelated_Anisotropic(float\x20NdotL,float\x20NdotV,float\x20TdotV,float\x20BdotV,float\x20TdotL,float\x20BdotL,const\x20vec2\x20alphaTB)\x20{\x0afloat\x20lambdaV=NdotL*length(vec3(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));\x0afloat\x20lambdaL=NdotV*length(vec3(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));\x0afloat\x20v=0.5/(lambdaV+lambdaL);\x0areturn\x20v;\x0a}\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0afloat\x20visibility_Kelemen(float\x20VdotH)\x20{\x0areturn\x200.25/(VdotH*VdotH);\x20\x0a}\x0a#endif\x0a#ifdef\x20SHEEN\x0afloat\x20visibility_Ashikhmin(float\x20NdotL,float\x20NdotV)\x0a{\x0areturn\x201./(4.*(NdotL+NdotV-NdotL*NdotV));\x0a}\x0a/*\x20NOT\x20USED\x0a#ifdef\x20SHEEN_SOFTER\x0afloat\x20l(float\x20x,float\x20alphaG)\x0a{\x0afloat\x20oneMinusAlphaSq=(1.0-alphaG)*(1.0-alphaG);\x0afloat\x20a=mix(21.5473,25.3245,oneMinusAlphaSq);\x0afloat\x20b=mix(3.82987,3.32435,oneMinusAlphaSq);\x0afloat\x20c=mix(0.19823,0.16801,oneMinusAlphaSq);\x0afloat\x20d=mix(-1.97760,-1.27393,oneMinusAlphaSq);\x0afloat\x20e=mix(-4.32054,-4.85967,oneMinusAlphaSq);\x0areturn\x20a/(1.0+b*pow(x,c))+d*x+e;\x0a}\x0afloat\x20lambdaSheen(float\x20cosTheta,float\x20alphaG)\x0a{\x0areturn\x20abs(cosTheta)<0.5\x20?\x20exp(l(cosTheta,alphaG))\x20:\x20exp(2.0*l(0.5,alphaG)-l(1.0-cosTheta,alphaG));\x0a}\x0afloat\x20visibility_CharlieSheen(float\x20NdotL,float\x20NdotV,float\x20alphaG)\x0a{\x0afloat\x20G=1.0/(1.0+lambdaSheen(NdotV,alphaG)+lambdaSheen(NdotL,alphaG));\x0areturn\x20G/(4.0*NdotV*NdotL);\x0a}\x0a#endif\x0a*/\x0a#endif\x0afloat\x20diffuseBRDF_Burley(float\x20NdotL,float\x20NdotV,float\x20VdotH,float\x20roughness)\x20{\x0afloat\x20diffuseFresnelNV=pow5(saturateEps(1.0-NdotL));\x0afloat\x20diffuseFresnelNL=pow5(saturateEps(1.0-NdotV));\x0afloat\x20diffuseFresnel90=0.5+2.0*VdotH*VdotH*roughness;\x0afloat\x20fresnel\x20=\x0a(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL)\x20*\x0a(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);\x0areturn\x20fresnel/PI;\x0a}\x0a#ifdef\x20SS_TRANSLUCENCY\x0avec3\x20transmittanceBRDF_Burley(const\x20vec3\x20tintColor,const\x20vec3\x20diffusionDistance,float\x20thickness)\x20{\x0avec3\x20S=1./maxEps(diffusionDistance);\x0avec3\x20temp=exp((-0.333333333*thickness)*S);\x0areturn\x20tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);\x0a}\x0afloat\x20computeWrappedDiffuseNdotL(float\x20NdotL,float\x20w)\x20{\x0afloat\x20t=1.0+w;\x0afloat\x20invt2=1.0/square(t);\x0areturn\x20saturate((NdotL+w)*invt2);\x0a}\x0a#endif\x0a','label','#define\x20CLIPPLANE5','#ifdef\x20INSTANCES\x0aattribute\x20world0\x20:\x20vec4<f32>;\x0aattribute\x20world1\x20:\x20vec4<f32>;\x0aattribute\x20world2\x20:\x20vec4<f32>;\x0aattribute\x20world3\x20:\x20vec4<f32>;\x0a#ifdef\x20INSTANCESCOLOR\x0aattribute\x20instanceColor\x20:\x20vec4<f32>;\x0a#endif\x0a#if\x20defined(THIN_INSTANCES)\x20&&\x20!defined(WORLD_UBO)\x0auniform\x20world\x20:\x20mat4x4<f32>;\x0a#endif\x0a#if\x20defined(VELOCITY)\x20||\x20defined(PREPASS_VELOCITY)\x0aattribute\x20previousWorld0\x20:\x20vec4<f32>;\x0aattribute\x20previousWorld1\x20:\x20vec4<f32>;\x0aattribute\x20previousWorld2\x20:\x20vec4<f32>;\x0aattribute\x20previousWorld3\x20:\x20vec4<f32>;\x0a#ifdef\x20THIN_INSTANCES\x0auniform\x20previousWorld\x20:\x20mat4x4<f32>;\x0a#endif\x0a#endif\x0a#else\x0a#if\x20!defined(WORLD_UBO)\x0auniform\x20world\x20:\x20mat4x4<f32>;\x0a#endif\x0a#if\x20defined(VELOCITY)\x20||\x20defined(PREPASS_VELOCITY)\x0auniform\x20previousWorld\x20:\x20mat4x4<f32>;\x0a#endif\x0a#endif\x0a','createRawTexture2DArray','precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0a#ifdef\x20SPECULARTERM\x0auniform\x20vec4\x20vSpecularColor;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vTextureUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20vTextureInfos;\x0auniform\x20sampler2D\x20diffuse1Sampler;\x0auniform\x20sampler2D\x20diffuse2Sampler;\x0auniform\x20sampler2D\x20diffuse3Sampler;\x0auniform\x20vec2\x20diffuse1Infos;\x0auniform\x20vec2\x20diffuse2Infos;\x0auniform\x20vec2\x20diffuse3Infos;\x0a#endif\x0a#ifdef\x20BUMP\x0auniform\x20sampler2D\x20bump1Sampler;\x0auniform\x20sampler2D\x20bump2Sampler;\x0auniform\x20sampler2D\x20bump3Sampler;\x0a#endif\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#ifdef\x20BUMP\x0a#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0amat3\x20cotangent_frame(vec3\x20normal,vec3\x20p,vec2\x20uv)\x0a{\x0avec3\x20dp1=dFdx(p);\x0avec3\x20dp2=dFdy(p);\x0avec2\x20duv1=dFdx(uv);\x0avec2\x20duv2=dFdy(uv);\x0avec3\x20dp2perp=cross(dp2,normal);\x0avec3\x20dp1perp=cross(normal,dp1);\x0avec3\x20tangent=dp2perp*duv1.x+dp1perp*duv2.x;\x0avec3\x20binormal=dp2perp*duv1.y+dp1perp*duv2.y;\x0afloat\x20invmax=inversesqrt(max(dot(tangent,tangent),dot(binormal,binormal)));\x0areturn\x20mat3(tangent*invmax,binormal*invmax,normal);\x0a}\x0avec3\x20perturbNormal(vec3\x20viewDir,vec3\x20mixColor)\x0a{\x0avec3\x20bump1Color=texture2D(bump1Sampler,vTextureUV*diffuse1Infos).xyz;\x0avec3\x20bump2Color=texture2D(bump2Sampler,vTextureUV*diffuse2Infos).xyz;\x0avec3\x20bump3Color=texture2D(bump3Sampler,vTextureUV*diffuse3Infos).xyz;\x0abump1Color.rgb*=mixColor.r;\x0abump2Color.rgb=mix(bump1Color.rgb,bump2Color.rgb,mixColor.g);\x0avec3\x20map=mix(bump2Color.rgb,bump3Color.rgb,mixColor.b);\x0amap=map*255./127.-128./127.;\x0amat3\x20TBN=cotangent_frame(vNormalW*vTextureInfos.y,-viewDir,vTextureUV);\x0areturn\x20normalize(TBN*map);\x0a}\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20baseColor=vec4(1.,1.,1.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0a#ifdef\x20SPECULARTERM\x0afloat\x20glossiness=vSpecularColor.a;\x0avec3\x20specularColor=vSpecularColor.rgb;\x0a#else\x0afloat\x20glossiness=0.;\x0a#endif\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0abaseColor=texture2D(textureSampler,vTextureUV);\x0a#if\x20defined(BUMP)\x20&&\x20defined(DIFFUSE)\x0anormalW=perturbNormal(viewDirectionW,baseColor.rgb);\x0a#endif\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0abaseColor.rgb*=vTextureInfos.y;\x0avec4\x20diffuse1Color=texture2D(diffuse1Sampler,vTextureUV*diffuse1Infos);\x0avec4\x20diffuse2Color=texture2D(diffuse2Sampler,vTextureUV*diffuse2Infos);\x0avec4\x20diffuse3Color=texture2D(diffuse3Sampler,vTextureUV*diffuse3Infos);\x0adiffuse1Color.rgb*=baseColor.r;\x0adiffuse2Color.rgb=mix(diffuse1Color.rgb,diffuse2Color.rgb,baseColor.g);\x0abaseColor.rgb=mix(diffuse2Color.rgb,diffuse3Color.rgb,baseColor.b);\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0a#endif\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20finalSpecular=specularBase*specularColor;\x0a#else\x0avec3\x20finalSpecular=vec3(0.0);\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor*baseColor.rgb,0.0,1.0);\x0avec4\x20color=vec4(finalDiffuse+finalSpecular,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','registerOutput','depthBoxBlurPixelShader','autoPlay','vOffset','textureRegexp','_reflectionSizeName','_projectOnTrianglesToRef','addOnce','#ifdef\x20FOG\x0avarying\x20vec3\x20vFogDistance;\x0a#endif\x0a','_doubleClick','clear','_2DSamplerName','bindableBlocks','RGBA','_onBeforeCameraRenderObserver','geometryVertexDeclaration','CubeRaw','_currentPickResult','attribute\x20vec2\x20position;\x0avarying\x20vec3\x20direction;\x0auniform\x20vec3\x20up;\x0auniform\x20vec3\x20right;\x0auniform\x20vec3\x20front;\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0amat3\x20view=mat3(up,right,front);\x0adirection=view*vec3(position,1.0);\x0agl_Position=vec4(position,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','timeoutId','decalMap','_createMultiviewUbo','DEPTH_TEST','varying\x20vec2\x20vUV;\x0auniform\x20samplerCube\x20textureSampler;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0avec2\x20uv=vUV*2.0-1.0;\x0a#ifdef\x20POSITIVEX\x0agl_FragColor=textureCube(textureSampler,vec3(1.001,uv.y,uv.x));\x0a#endif\x0a#ifdef\x20NEGATIVEX\x0agl_FragColor=textureCube(textureSampler,vec3(-1.001,uv.y,uv.x));\x0a#endif\x0a#ifdef\x20POSITIVEY\x0agl_FragColor=textureCube(textureSampler,vec3(uv.y,1.001,uv.x));\x0a#endif\x0a#ifdef\x20NEGATIVEY\x0agl_FragColor=textureCube(textureSampler,vec3(uv.y,-1.001,uv.x));\x0a#endif\x0a#ifdef\x20POSITIVEZ\x0agl_FragColor=textureCube(textureSampler,vec3(uv,1.001));\x0a#endif\x0a#ifdef\x20NEGATIVEZ\x0agl_FragColor=textureCube(textureSampler,vec3(uv,-1.001));\x0a#endif\x0a}','gl_Position.y\x20*=\x20yFactor_;\x0a','writeOutputs','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20LensCenter;\x0auniform\x20vec2\x20Scale;\x0auniform\x20vec2\x20ScaleIn;\x0auniform\x20vec4\x20HmdWarpParam;\x0avec2\x20HmdWarp(vec2\x20in01)\x20{\x0avec2\x20theta=(in01-LensCenter)*ScaleIn;\x20\x0afloat\x20rSq=theta.x*theta.x+theta.y*theta.y;\x0avec2\x20rvector=theta*(HmdWarpParam.x+HmdWarpParam.y*rSq+HmdWarpParam.z*rSq*rSq+HmdWarpParam.w*rSq*rSq*rSq);\x0areturn\x20LensCenter+Scale*rvector;\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec2\x20tc=HmdWarp(vUV);\x0aif\x20(tc.x\x20<0.0\x20||\x20tc.x>1.0\x20||\x20tc.y<0.0\x20||\x20tc.y>1.0)\x0agl_FragColor=vec4(0.0,0.0,0.0,0.0);\x0aelse{\x0agl_FragColor=texture2D(textureSampler,tc);\x0a}\x0a}','TEXTURE_NEAREST_LINEAR_MIPLINEAR','_modeSaved','markAsUnprocessed','textures','_depthTextureFormat','struct\x20subSurfaceOutParams\x0a{\x0avec3\x20specularEnvironmentReflectance;\x0a#ifdef\x20SS_REFRACTION\x0avec3\x20finalRefraction;\x0avec3\x20surfaceAlbedo;\x0a#ifdef\x20SS_LINKREFRACTIONTOTRANSPARENCY\x0afloat\x20alpha;\x0a#endif\x0a#ifdef\x20REFLECTION\x0afloat\x20refractionFactorForIrradiance;\x0a#endif\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCY\x0avec3\x20transmittance;\x0afloat\x20translucencyIntensity;\x0a#ifdef\x20REFLECTION\x0avec3\x20refractionIrradiance;\x0a#endif\x0a#endif\x0a#if\x20DEBUGMODE>0\x0avec4\x20thicknessMap;\x0avec4\x20environmentRefraction;\x0avec3\x20refractionTransmittance;\x0a#endif\x0a};\x0a#ifdef\x20SUBSURFACE\x0a#define\x20pbr_inline\x0a#define\x20inline\x0avoid\x20subSurfaceBlock(\x0ain\x20vec3\x20vSubSurfaceIntensity,\x0ain\x20vec2\x20vThicknessParam,\x0ain\x20vec4\x20vTintColor,\x0ain\x20vec3\x20normalW,\x0ain\x20vec3\x20specularEnvironmentReflectance,\x0a#ifdef\x20SS_THICKNESSANDMASK_TEXTURE\x0ain\x20vec4\x20thicknessMap,\x0a#endif\x0a#ifdef\x20SS_REFRACTIONINTENSITY_TEXTURE\x0ain\x20vec4\x20refractionIntensityMap,\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCYINTENSITY_TEXTURE\x0ain\x20vec4\x20translucencyIntensityMap,\x0a#endif\x0a#ifdef\x20REFLECTION\x0a#ifdef\x20SS_TRANSLUCENCY\x0ain\x20mat4\x20reflectionMatrix,\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#if\x20!defined(NORMAL)\x20||\x20!defined(USESPHERICALINVERTEX)\x0ain\x20vec3\x20irradianceVector_,\x0a#endif\x0a#if\x20defined(REALTIME_FILTERING)\x0ain\x20samplerCube\x20reflectionSampler,\x0ain\x20vec2\x20vReflectionFilteringInfo,\x0a#endif\x0a#endif\x0a#ifdef\x20USEIRRADIANCEMAP\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20irradianceSampler,\x0a#else\x0ain\x20sampler2D\x20irradianceSampler,\x0a#endif\x0a#endif\x0a#endif\x0a#endif\x0a#if\x20defined(SS_REFRACTION)\x20||\x20defined(SS_TRANSLUCENCY)\x0ain\x20vec3\x20surfaceAlbedo,\x0a#endif\x0a#ifdef\x20SS_REFRACTION\x0ain\x20vec3\x20vPositionW,\x0ain\x20vec3\x20viewDirectionW,\x0ain\x20mat4\x20view,\x0ain\x20vec4\x20vRefractionInfos,\x0ain\x20mat4\x20refractionMatrix,\x0ain\x20vec4\x20vRefractionMicrosurfaceInfos,\x0ain\x20vec4\x20vLightingIntensity,\x0a#ifdef\x20SS_LINKREFRACTIONTOTRANSPARENCY\x0ain\x20float\x20alpha,\x0a#endif\x0a#ifdef\x20SS_LODINREFRACTIONALPHA\x0ain\x20float\x20NdotVUnclamped,\x0a#endif\x0a#ifdef\x20SS_LINEARSPECULARREFRACTION\x0ain\x20float\x20roughness,\x0a#endif\x0ain\x20float\x20alphaG,\x0a#ifdef\x20SS_REFRACTIONMAP_3D\x0ain\x20samplerCube\x20refractionSampler,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0ain\x20samplerCube\x20refractionSamplerLow,\x0ain\x20samplerCube\x20refractionSamplerHigh,\x0a#endif\x0a#else\x0ain\x20sampler2D\x20refractionSampler,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0ain\x20sampler2D\x20refractionSamplerLow,\x0ain\x20sampler2D\x20refractionSamplerHigh,\x0a#endif\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0ain\x20anisotropicOutParams\x20anisotropicOut,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0ain\x20vec2\x20vRefractionFilteringInfo,\x0a#endif\x0a#ifdef\x20SS_USE_LOCAL_REFRACTIONMAP_CUBIC\x0ain\x20vec3\x20refractionPosition,\x0ain\x20vec3\x20refractionSize,\x0a#endif\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCY\x0ain\x20vec3\x20vDiffusionDistance,\x0a#endif\x0aout\x20subSurfaceOutParams\x20outParams\x0a)\x0a{\x0aoutParams.specularEnvironmentReflectance=specularEnvironmentReflectance;\x0a#ifdef\x20SS_REFRACTION\x0afloat\x20refractionIntensity=vSubSurfaceIntensity.x;\x0a#ifdef\x20SS_LINKREFRACTIONTOTRANSPARENCY\x0arefractionIntensity*=(1.0-alpha);\x0aoutParams.alpha=1.0;\x0a#endif\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCY\x0afloat\x20translucencyIntensity=vSubSurfaceIntensity.y;\x0a#endif\x0a#ifdef\x20SS_THICKNESSANDMASK_TEXTURE\x0a#if\x20defined(SS_USE_GLTF_TEXTURES)\x0afloat\x20thickness=thicknessMap.g*vThicknessParam.y+vThicknessParam.x;\x0a#else\x0afloat\x20thickness=thicknessMap.r*vThicknessParam.y+vThicknessParam.x;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0aoutParams.thicknessMap=thicknessMap;\x0a#endif\x0a#ifdef\x20SS_MASK_FROM_THICKNESS_TEXTURE\x0a#if\x20defined(SS_REFRACTION)\x20&&\x20defined(SS_REFRACTION_USE_INTENSITY_FROM_TEXTURE)\x0a#if\x20defined(SS_USE_GLTF_TEXTURES)\x0arefractionIntensity*=thicknessMap.r;\x0a#else\x0arefractionIntensity*=thicknessMap.g;\x0a#endif\x0a#endif\x0a#if\x20defined(SS_TRANSLUCENCY)\x20&&\x20defined(SS_TRANSLUCENCY_USE_INTENSITY_FROM_TEXTURE)\x0atranslucencyIntensity*=thicknessMap.b;\x0a#endif\x0a#endif\x0a#else\x0afloat\x20thickness=vThicknessParam.y;\x0a#endif\x0a#ifdef\x20SS_REFRACTIONINTENSITY_TEXTURE\x0a#ifdef\x20SS_USE_GLTF_TEXTURES\x0arefractionIntensity*=refractionIntensityMap.r;\x0a#else\x0arefractionIntensity*=refractionIntensityMap.g;\x0a#endif\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCYINTENSITY_TEXTURE\x0atranslucencyIntensity*=translucencyIntensityMap.b;\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCY\x0athickness=maxEps(thickness);\x0avec3\x20transmittance=transmittanceBRDF_Burley(vTintColor.rgb,vDiffusionDistance,thickness);\x0atransmittance*=translucencyIntensity;\x0aoutParams.transmittance=transmittance;\x0aoutParams.translucencyIntensity=translucencyIntensity;\x0a#endif\x0a#ifdef\x20SS_REFRACTION\x0avec4\x20environmentRefraction=vec4(0.,0.,0.,0.);\x0a#ifdef\x20ANISOTROPIC\x0avec3\x20refractionVector=refract(-viewDirectionW,anisotropicOut.anisotropicNormal,vRefractionInfos.y);\x0a#else\x0avec3\x20refractionVector=refract(-viewDirectionW,normalW,vRefractionInfos.y);\x0a#endif\x0a#ifdef\x20SS_REFRACTIONMAP_OPPOSITEZ\x0arefractionVector.z*=-1.0;\x0a#endif\x0a#ifdef\x20SS_REFRACTIONMAP_3D\x0a#ifdef\x20SS_USE_LOCAL_REFRACTIONMAP_CUBIC\x0arefractionVector=parallaxCorrectNormal(vPositionW,refractionVector,refractionSize,refractionPosition);\x0a#endif\x0arefractionVector.y=refractionVector.y*vRefractionInfos.w;\x0avec3\x20refractionCoords=refractionVector;\x0arefractionCoords=vec3(refractionMatrix*vec4(refractionCoords,0));\x0a#else\x0a#ifdef\x20SS_USE_THICKNESS_AS_DEPTH\x0avec3\x20vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*thickness,1.0)));\x0a#else\x0avec3\x20vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0)));\x0a#endif\x0avec2\x20refractionCoords=vRefractionUVW.xy/vRefractionUVW.z;\x0arefractionCoords.y=1.0-refractionCoords.y;\x0a#endif\x0a#ifdef\x20SS_HAS_THICKNESS\x0afloat\x20ior=vRefractionInfos.y;\x0a#else\x0afloat\x20ior=vRefractionMicrosurfaceInfos.w;\x0a#endif\x0a#ifdef\x20SS_LODINREFRACTIONALPHA\x0afloat\x20refractionAlphaG=alphaG;\x0arefractionAlphaG=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));\x0afloat\x20refractionLOD=getLodFromAlphaG(vRefractionMicrosurfaceInfos.x,refractionAlphaG,NdotVUnclamped);\x0a#elif\x20defined(SS_LINEARSPECULARREFRACTION)\x0afloat\x20refractionRoughness=alphaG;\x0arefractionRoughness=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));\x0afloat\x20refractionLOD=getLinearLodFromRoughness(vRefractionMicrosurfaceInfos.x,refractionRoughness);\x0a#else\x0afloat\x20refractionAlphaG=alphaG;\x0arefractionAlphaG=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));\x0afloat\x20refractionLOD=getLodFromAlphaG(vRefractionMicrosurfaceInfos.x,refractionAlphaG);\x0a#endif\x0a#ifdef\x20LODBASEDMICROSFURACE\x0arefractionLOD=refractionLOD*vRefractionMicrosurfaceInfos.y+vRefractionMicrosurfaceInfos.z;\x0a#ifdef\x20SS_LODINREFRACTIONALPHA\x0afloat\x20automaticRefractionLOD=UNPACK_LOD(sampleRefraction(refractionSampler,refractionCoords).a);\x0afloat\x20requestedRefractionLOD=max(automaticRefractionLOD,refractionLOD);\x0a#else\x0afloat\x20requestedRefractionLOD=refractionLOD;\x0a#endif\x0a#if\x20defined(REALTIME_FILTERING)\x20&&\x20defined(SS_REFRACTIONMAP_3D)\x0aenvironmentRefraction=vec4(radiance(alphaG,refractionSampler,refractionCoords,vRefractionFilteringInfo),1.0);\x0a#else\x0aenvironmentRefraction=sampleRefractionLod(refractionSampler,refractionCoords,requestedRefractionLOD);\x0a#endif\x0a#else\x0afloat\x20lodRefractionNormalized=saturate(refractionLOD/log2(vRefractionMicrosurfaceInfos.x));\x0afloat\x20lodRefractionNormalizedDoubled=lodRefractionNormalized*2.0;\x0avec4\x20environmentRefractionMid=sampleRefraction(refractionSampler,refractionCoords);\x0aif\x20(lodRefractionNormalizedDoubled<1.0){\x0aenvironmentRefraction=mix(\x0asampleRefraction(refractionSamplerHigh,refractionCoords),\x0aenvironmentRefractionMid,\x0alodRefractionNormalizedDoubled\x0a);\x0a}\x20else\x20{\x0aenvironmentRefraction=mix(\x0aenvironmentRefractionMid,\x0asampleRefraction(refractionSamplerLow,refractionCoords),\x0alodRefractionNormalizedDoubled-1.0\x0a);\x0a}\x0a#endif\x0a#ifdef\x20SS_RGBDREFRACTION\x0aenvironmentRefraction.rgb=fromRGBD(environmentRefraction);\x0a#endif\x0a#ifdef\x20SS_GAMMAREFRACTION\x0aenvironmentRefraction.rgb=toLinearSpace(environmentRefraction.rgb);\x0a#endif\x0aenvironmentRefraction.rgb*=vRefractionInfos.x;\x0a#endif\x0a#ifdef\x20SS_REFRACTION\x0avec3\x20refractionTransmittance=vec3(refractionIntensity);\x0a#ifdef\x20SS_THICKNESSANDMASK_TEXTURE\x0avec3\x20volumeAlbedo=computeColorAtDistanceInMedia(vTintColor.rgb,vTintColor.w);\x0arefractionTransmittance*=cocaLambert(volumeAlbedo,thickness);\x0a#elif\x20defined(SS_LINKREFRACTIONTOTRANSPARENCY)\x0afloat\x20maxChannel=max(max(surfaceAlbedo.r,surfaceAlbedo.g),surfaceAlbedo.b);\x0avec3\x20volumeAlbedo=saturate(maxChannel*surfaceAlbedo);\x0aenvironmentRefraction.rgb*=volumeAlbedo;\x0a#else\x0avec3\x20volumeAlbedo=computeColorAtDistanceInMedia(vTintColor.rgb,vTintColor.w);\x0arefractionTransmittance*=cocaLambert(volumeAlbedo,vThicknessParam.y);\x0a#endif\x0a#ifdef\x20SS_ALBEDOFORREFRACTIONTINT\x0aenvironmentRefraction.rgb*=surfaceAlbedo.rgb;\x0a#endif\x0aoutParams.surfaceAlbedo=surfaceAlbedo*(1.-refractionIntensity);\x0a#ifdef\x20REFLECTION\x0aoutParams.refractionFactorForIrradiance=(1.-refractionIntensity);\x0a#endif\x0a#ifdef\x20UNUSED_MULTIPLEBOUNCES\x0avec3\x20bounceSpecularEnvironmentReflectance=(2.0*specularEnvironmentReflectance)/(1.0+specularEnvironmentReflectance);\x0aoutParams.specularEnvironmentReflectance=mix(bounceSpecularEnvironmentReflectance,specularEnvironmentReflectance,refractionIntensity);\x0a#endif\x0arefractionTransmittance*=1.0-outParams.specularEnvironmentReflectance;\x0a#if\x20DEBUGMODE>0\x0aoutParams.refractionTransmittance=refractionTransmittance;\x0a#endif\x0aoutParams.finalRefraction=environmentRefraction.rgb*refractionTransmittance*vLightingIntensity.z;\x0a#if\x20DEBUGMODE>0\x0aoutParams.environmentRefraction=environmentRefraction;\x0a#endif\x0a#endif\x0a#if\x20defined(REFLECTION)\x20&&\x20defined(SS_TRANSLUCENCY)\x0a#if\x20defined(NORMAL)\x20&&\x20defined(USESPHERICALINVERTEX)\x20||\x20!defined(USESPHERICALFROMREFLECTIONMAP)\x0avec3\x20irradianceVector=vec3(reflectionMatrix*vec4(normalW,0)).xyz;\x0a#ifdef\x20REFLECTIONMAP_OPPOSITEZ\x0airradianceVector.z*=-1.0;\x0a#endif\x0a#ifdef\x20INVERTCUBICMAP\x0airradianceVector.y*=-1.0;\x0a#endif\x0a#else\x0avec3\x20irradianceVector=irradianceVector_;\x0a#endif\x0a#if\x20defined(USESPHERICALFROMREFLECTIONMAP)\x0a#if\x20defined(REALTIME_FILTERING)\x0avec3\x20refractionIrradiance=irradiance(reflectionSampler,-irradianceVector,vReflectionFilteringInfo);\x0a#else\x0avec3\x20refractionIrradiance=computeEnvironmentIrradiance(-irradianceVector);\x0a#endif\x0a#elif\x20defined(USEIRRADIANCEMAP)\x0a#ifdef\x20REFLECTIONMAP_3D\x0avec3\x20irradianceCoords=irradianceVector;\x0a#else\x0avec2\x20irradianceCoords=irradianceVector.xy;\x0a#ifdef\x20REFLECTIONMAP_PROJECTION\x0airradianceCoords/=irradianceVector.z;\x0a#endif\x0airradianceCoords.y=1.0-irradianceCoords.y;\x0a#endif\x0avec4\x20refractionIrradiance=sampleReflection(irradianceSampler,-irradianceCoords);\x0a#ifdef\x20RGBDREFLECTION\x0arefractionIrradiance.rgb=fromRGBD(refractionIrradiance);\x0a#endif\x0a#ifdef\x20GAMMAREFLECTION\x0arefractionIrradiance.rgb=toLinearSpace(refractionIrradiance.rgb);\x0a#endif\x0a#else\x0avec4\x20refractionIrradiance=vec4(0.);\x0a#endif\x0arefractionIrradiance.rgb*=transmittance;\x0a#ifdef\x20SS_ALBEDOFORTRANSLUCENCYTINT\x0arefractionIrradiance.rgb*=surfaceAlbedo.rgb;\x0a#endif\x0aoutParams.refractionIrradiance=refractionIrradiance.rgb;\x0a#endif\x0a}\x0a#endif\x0a','_previousPickResult','sampler_comparison','ALPHA_ONEONE_ONEZERO','leftOperand','HasSpecificTrigger','_clearReverseDepthValue','_onVRDisplayPointerRestricted','_outputs','BuildTuple','\x20=\x20textureCubeLodEXT(','_processStridedUniformArrays','Vector4','_width','TEXTUREFORMAT_RGB\x20format\x20not\x20supported\x20in\x20WebGPU','areAllComputeEffectsReady','#ifdef\x20DEPTHPREPASS\x0agl_FragColor=vec4(0.,0.,0.,1.0);\x0areturn;\x0a#endif\x0a','LIGHTTYPEID_SPOTLIGHT','\x0a};\x0avar<private>\x20fragmentInputs\x20:\x20FragmentInputs;\x0a','previousWorldMatrices','ASTC12x12UnormSRGB','previousMatrixBuffer','_declareOutput','now','_debugFlushPendingCommands','counters','_deviceInputSystem','lineIndex','pbrBlockFinalLitComponents','hasOwnProperty','modelTotalCount','DepthOnly','Float\x20textures\x20are\x20not\x20supported.\x20Render\x20target\x20forced\x20to\x20TEXTURETYPE_UNSIGNED_BYTE\x20type','storageTexture','bindBuffer','multiview\x20rtt','isPickable','\x20\x20\x20\x20','skyVertexShader','emitFragment','forEach','_timeElapsedQueryEnded','remove','_radius','pbrBlockAlphaFresnel','getAttributes','addTags','textureCube','_getFragmentShaderCode','call','_copyInvertYBindGroupWithOfst','-pvrtc.ktx','colorCorrectionPixelShader','TEXTUREFORMAT_RGB_INTEGER','setStorageBuffer:\x20Unsupported\x20method\x20in\x20this\x20engine!','canBeginQuery','EACRG11Snorm','thinInstanceRefreshBoundingInfo','_attributesWGSL','INTENSITYMODE_ILLUMINANCE','invertU','associatedVariableName','endOcclusionQuery','struct\x20preLightingInfo\x0a{\x0avec3\x20lightOffset;\x0afloat\x20lightDistanceSquared;\x0afloat\x20lightDistance;\x0afloat\x20attenuation;\x0avec3\x20L;\x0avec3\x20H;\x0afloat\x20NdotV;\x0afloat\x20NdotLUnclamped;\x0afloat\x20NdotL;\x0afloat\x20VdotH;\x0afloat\x20roughness;\x0a#ifdef\x20IRIDESCENCE\x0afloat\x20iridescenceIntensity;\x0a#endif\x0a};\x0apreLightingInfo\x20computePointAndSpotPreLightingInfo(vec4\x20lightData,vec3\x20V,vec3\x20N)\x20{\x0apreLightingInfo\x20result;\x0aresult.lightOffset=lightData.xyz-vPositionW;\x0aresult.lightDistanceSquared=dot(result.lightOffset,result.lightOffset);\x0aresult.lightDistance=sqrt(result.lightDistanceSquared);\x0aresult.L=normalize(result.lightOffset);\x0aresult.H=normalize(V+result.L);\x0aresult.VdotH=saturate(dot(V,result.H));\x0aresult.NdotLUnclamped=dot(N,result.L);\x0aresult.NdotL=saturateEps(result.NdotLUnclamped);\x0areturn\x20result;\x0a}\x0apreLightingInfo\x20computeDirectionalPreLightingInfo(vec4\x20lightData,vec3\x20V,vec3\x20N)\x20{\x0apreLightingInfo\x20result;\x0aresult.lightDistance=length(-lightData.xyz);\x0aresult.L=normalize(-lightData.xyz);\x0aresult.H=normalize(V+result.L);\x0aresult.VdotH=saturate(dot(V,result.H));\x0aresult.NdotLUnclamped=dot(N,result.L);\x0aresult.NdotL=saturateEps(result.NdotLUnclamped);\x0areturn\x20result;\x0a}\x0apreLightingInfo\x20computeHemisphericPreLightingInfo(vec4\x20lightData,vec3\x20V,vec3\x20N)\x20{\x0apreLightingInfo\x20result;\x0aresult.NdotL=dot(N,lightData.xyz)*0.5+0.5;\x0aresult.NdotL=saturateEps(result.NdotL);\x0aresult.NdotLUnclamped=result.NdotL;\x0a#ifdef\x20SPECULARTERM\x0aresult.L=normalize(lightData.xyz);\x0aresult.H=normalize(V+result.L);\x0aresult.VdotH=saturate(dot(V,result.H));\x0a#endif\x0areturn\x20result;\x0a}','passCubePixelShader','Can\x27t\x20get\x20the\x20texture\x20dimension\x20corresponding\x20to\x20the\x20texture\x20function\x20\x22','noColorAttachment','FRAMEBUFFER','func','stencilFunc','BUFFER_CREATIONFLAG_STORAGE','webGLVersion','_onVRFullScreenTriggered','_debugPushGroup','.texture\x20=\x20new\x20BABYLON.CubeTexture(\x22','blendFuncSeparate','ONE_MINUS_DST_ALPHA','_uvs','ETC2RGB8UnormSRGB','_processPointerUp','postfixToInfix','REFLECTIONMAP_3D','_queryBuffer','pbrHelperFunctions','fogColor','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20screenSize;\x0auniform\x20vec2\x20direction;\x0auniform\x20float\x20blurWidth;\x0afloat\x20getLuminance(vec3\x20color)\x0a{\x0areturn\x20dot(color,vec3(0.2126,0.7152,0.0722));\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0afloat\x20weights[7];\x0aweights[0]=0.05;\x0aweights[1]=0.1;\x0aweights[2]=0.2;\x0aweights[3]=0.3;\x0aweights[4]=0.2;\x0aweights[5]=0.1;\x0aweights[6]=0.05;\x0avec2\x20texelSize=vec2(1.0/screenSize.x,1.0/screenSize.y);\x0avec2\x20texelStep=texelSize*direction*blurWidth;\x0avec2\x20start=vUV-3.0*texelStep;\x0avec4\x20baseColor=vec4(0.,0.,0.,0.);\x0avec2\x20texelOffset=vec2(0.,0.);\x0afor\x20(int\x20i=0;\x20i<7;\x20i++)\x0a{\x0avec4\x20texel=texture2D(textureSampler,start+texelOffset);\x0abaseColor.a+=texel.a*weights[i];\x0afloat\x20luminance=getLuminance(baseColor.rgb);\x0afloat\x20luminanceTexel=getLuminance(texel.rgb);\x0afloat\x20choice=step(luminanceTexel,luminance);\x0abaseColor.rgb=choice*baseColor.rgb+(1.0-choice)*texel.rgb;\x0atexelOffset+=texelStep;\x0a}\x0agl_FragColor=baseColor;\x0a}','setFloatArray4','2300152PVJlLf','_enableEffect','maxTextureSize','shadowEnabled','supportSRGBBuffers','verticesStart','tabIndex','thinInstanceSetMatrixAt','_registeredActions','_inputs','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;\x0auniform\x20mat4\x20diffuseMatrix;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0agl_Position=viewProjection*worldPos;\x0avPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0aif\x20(vDiffuseInfos.x==0.)\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\x0a}\x0aelse\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','intensity','source','#if\x20defined(WEBGL2)\x20||\x20defines(WEBGPU)\x0d\x0aprecision\x20highp\x20sampler2DArray;\x0d\x0a#endif\x0d\x0a','#define\x20CYLINDEREMITTER','_bundleCache','_createInternalTexture','cursor','projectionMatrix','_setInitialTarget','multiplyByFloats','setTextures','BC7RGBAUnorm','isWebGPU','isCube','onLoadObservable','BLEND','_onPointerDown','_excludeVariableName','precision\x20mediump\x20float;\x0a','_mipmapGenRenderPassDescr','Uniform','IRIDESCENCE','_reflectionMatrixName','textBuffer','_addBufferBindingDescription','setRawData','GetCode','_currentRenderPass','_capacity','TEXTUREFORMAT_DEPTH24','_textureType','_BuildSubExpression','startsWith','copyToArray','astc','_injectStartingAndEndingCode','_mainPassBundleList','_depthStencilTextureWithStencil','indexParameters','\x5cs*\x5c[(.+)?\x5c]','indexInGroupEntries','flushFramebuffer','RenderTarget','_addNewAttachObserver','match','simplePixelShader','IridescenceBlock','_webgpuTexture','clipPlane4','_funcMask','#elif','TEXTURE_CLAMP_ADDRESSMODE','#else','GetEffect','sizes','ELEMENT_ARRAY_BUFFER','textureBlur','GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_ALPHA','_define3DName','isVRDevicePresent','#include<fibonacci>\x0a#include<helperFunctions>\x0a#include<subSurfaceScatteringFunctions>\x0a#include<diffusionProfile>\x0avarying\x20vec2\x20vUV;\x0auniform\x20vec2\x20texelSize;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20irradianceSampler;\x0auniform\x20sampler2D\x20depthSampler;\x0auniform\x20sampler2D\x20albedoSampler;\x0auniform\x20vec2\x20viewportSize;\x0auniform\x20float\x20metersPerUnit;\x0aconst\x20float\x20LOG2_E=1.4426950408889634;\x0aconst\x20float\x20SSS_PIXELS_PER_SAMPLE=4.;\x0aconst\x20int\x20_SssSampleBudget=40;\x0a#define\x20rcp(x)\x201./x\x0a#define\x20Sq(x)\x20x*x\x0a#define\x20SSS_BILATERAL_FILTER\x20true\x0avec3\x20EvalBurleyDiffusionProfile(float\x20r,vec3\x20S)\x0a{\x0avec3\x20exp_13=exp2(((LOG2_E*(-1.0/3.0))*r)*S);\x20\x0avec3\x20expSum=exp_13*(1.+exp_13*exp_13);\x20\x0areturn\x20(S*rcp(8.*PI))*expSum;\x20\x0a}\x0avec2\x20SampleBurleyDiffusionProfile(float\x20u,float\x20rcpS)\x0a{\x0au=1.-u;\x20\x0afloat\x20g=1.+(4.*u)*(2.*u+sqrt(1.+(4.*u)*u));\x0afloat\x20n=exp2(log2(g)*(-1.0/3.0));\x20\x0afloat\x20p=(g*n)*n;\x20\x0afloat\x20c=1.+p+n;\x20\x0afloat\x20d=(3./LOG2_E*2.)+(3./LOG2_E)*log2(u);\x20\x0afloat\x20x=(3./LOG2_E)*log2(c)-d;\x20\x0afloat\x20rcpExp=((c*c)*c)*rcp((4.*u)*((c*c)+(4.*u)*(4.*u)));\x0afloat\x20r=x*rcpS;\x0afloat\x20rcpPdf=(8.*PI*rcpS)*rcpExp;\x20\x0areturn\x20vec2(r,rcpPdf);\x0a}\x0avec3\x20ComputeBilateralWeight(float\x20xy2,float\x20z,float\x20mmPerUnit,vec3\x20S,float\x20rcpPdf)\x0a{\x0a#ifndef\x20SSS_BILATERAL_FILTER\x0az=0.;\x0a#endif\x0afloat\x20r=sqrt(xy2+(z*mmPerUnit)*(z*mmPerUnit));\x0afloat\x20area=rcpPdf;\x0a#if\x20SSS_CLAMP_ARTIFACT\x0areturn\x20clamp(EvalBurleyDiffusionProfile(r,S)*area,0.0,1.0);\x0a#else\x0areturn\x20EvalBurleyDiffusionProfile(r,S)*area;\x0a#endif\x0a}\x0avoid\x20EvaluateSample(int\x20i,int\x20n,vec3\x20S,float\x20d,vec3\x20centerPosVS,float\x20mmPerUnit,float\x20pixelsPerMm,\x0afloat\x20phase,inout\x20vec3\x20totalIrradiance,inout\x20vec3\x20totalWeight)\x0a{\x0afloat\x20scale\x20=rcp(float(n));\x0afloat\x20offset=rcp(float(n))*0.5;\x0afloat\x20sinPhase,cosPhase;\x0asinPhase=sin(phase);\x0acosPhase=cos(phase);\x0avec2\x20bdp=SampleBurleyDiffusionProfile(float(i)*scale+offset,d);\x0afloat\x20r=bdp.x;\x0afloat\x20rcpPdf=bdp.y;\x0afloat\x20phi=SampleDiskGolden(i,n).y;\x0afloat\x20sinPhi,cosPhi;\x0asinPhi=sin(phi);\x0acosPhi=cos(phi);\x0afloat\x20sinPsi=cosPhase*sinPhi+sinPhase*cosPhi;\x20\x0afloat\x20cosPsi=cosPhase*cosPhi-sinPhase*sinPhi;\x20\x0avec2\x20vec=r*vec2(cosPsi,sinPsi);\x0avec2\x20position;\x20\x0afloat\x20xy2;\x0aposition=vUV+round((pixelsPerMm*r)*vec2(cosPsi,sinPsi))*texelSize;\x0axy2\x20=r*r;\x0avec4\x20textureSample=texture2D(irradianceSampler,position);\x0afloat\x20viewZ=texture2D(depthSampler,position).r;\x0avec3\x20irradiance\x20=textureSample.rgb;\x0aif\x20(testLightingForSSS(textureSample.a))\x0a{\x0afloat\x20relZ=viewZ-centerPosVS.z;\x0avec3\x20weight=ComputeBilateralWeight(xy2,relZ,mmPerUnit,S,rcpPdf);\x0atotalIrradiance+=weight*irradiance;\x0atotalWeight\x20+=weight;\x0a}\x0aelse\x0a{\x0a}\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0avec4\x20irradianceAndDiffusionProfile\x20=texture2D(irradianceSampler,vUV);\x0avec3\x20centerIrradiance=irradianceAndDiffusionProfile.rgb;\x0aint\x20diffusionProfileIndex=int(round(irradianceAndDiffusionProfile.a*255.));\x0afloat\x20centerDepth\x20=0.;\x0avec4\x20inputColor=texture2D(textureSampler,vUV);\x0abool\x20passedStencilTest=testLightingForSSS(irradianceAndDiffusionProfile.a);\x0aif\x20(passedStencilTest)\x0a{\x0acenterDepth=texture2D(depthSampler,vUV).r;\x0a}\x0aif\x20(!passedStencilTest)\x20{\x20\x0agl_FragColor=inputColor;\x0areturn;\x0a}\x0afloat\x20distScale\x20=1.;\x0avec3\x20S\x20=diffusionS[diffusionProfileIndex];\x0afloat\x20d\x20=diffusionD[diffusionProfileIndex];\x0afloat\x20filterRadius=filterRadii[diffusionProfileIndex];\x0avec2\x20centerPosNDC=vUV;\x0avec2\x20cornerPosNDC=vUV+0.5*texelSize;\x0avec3\x20centerPosVS\x20=vec3(centerPosNDC*viewportSize,1.0)*centerDepth;\x20\x0avec3\x20cornerPosVS\x20=vec3(cornerPosNDC*viewportSize,1.0)*centerDepth;\x20\x0afloat\x20mmPerUnit\x20=1000.*(metersPerUnit*rcp(distScale));\x0afloat\x20unitsPerMm=rcp(mmPerUnit);\x0afloat\x20unitsPerPixel=2.*abs(cornerPosVS.x-centerPosVS.x);\x0afloat\x20pixelsPerMm\x20=rcp(unitsPerPixel)*unitsPerMm;\x0afloat\x20filterArea\x20=PI*Sq(filterRadius*pixelsPerMm);\x0aint\x20sampleCount\x20=int(filterArea*rcp(SSS_PIXELS_PER_SAMPLE));\x0aint\x20sampleBudget=_SssSampleBudget;\x0aint\x20texturingMode=0;\x0avec3\x20albedo\x20=texture2D(albedoSampler,vUV).rgb;\x0aif\x20(distScale==0.\x20||\x20sampleCount<1)\x0a{\x0a#ifdef\x20DEBUG_SSS_SAMPLES\x0avec3\x20green=vec3(0.,1.,0.);\x0agl_FragColor=vec4(green,1.0);\x0areturn;\x0a#endif\x0agl_FragColor=vec4(inputColor.rgb+albedo*centerIrradiance,1.0);\x0areturn;\x0a}\x0a#ifdef\x20DEBUG_SSS_SAMPLES\x0avec3\x20red\x20=vec3(1.,0.,0.);\x0avec3\x20blue=vec3(0.,0.,1.);\x0agl_FragColor=vec4(mix(blue,red,clamp(float(sampleCount)/float(sampleBudget),0.0,1.0)),1.0);\x0areturn;\x0a#endif\x0afloat\x20phase=0.;\x0aint\x20n=min(sampleCount,sampleBudget);\x0avec3\x20centerWeight\x20=vec3(0.);\x20\x0avec3\x20totalIrradiance=vec3(0.);\x0avec3\x20totalWeight\x20=vec3(0.);\x0afor\x20(int\x20i=0;\x20i<n;\x20i++)\x0a{\x0aEvaluateSample(i,n,S,d,centerPosVS,mmPerUnit,pixelsPerMm,\x0aphase,totalIrradiance,totalWeight);\x0a}\x0atotalWeight=max(totalWeight,HALF_MIN);\x0agl_FragColor=vec4(inputColor.rgb+albedo*max(totalIrradiance/totalWeight,vec3(0.0)),1.);\x0a}','faceIndices','fluidRenderingStandardBlurPixelShader','copyFrom','vec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=normalize(cross(dFdx(vPositionW),dFdy(vPositionW)))*vEyePosition.w;\x0a#endif\x0avec3\x20geometricNormalW=normalW;\x0a#if\x20defined(TWOSIDEDLIGHTING)\x20&&\x20defined(NORMAL)\x0ageometricNormalW=gl_FrontFacing\x20?\x20geometricNormalW\x20:\x20-geometricNormalW;\x0a#endif\x0a','_onVrDisplayPresentChange','texelSize','heartbeat','_pipelineContext','_removeOnDetach','TEXTURE_CUBE_MAP','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','_areLightsDirty','_KnownUBOs','pbrDirectLightingFunctions','attribute\x20vec4\x20position;\x0aattribute\x20vec2\x20options;\x0aattribute\x20vec2\x20offsets;\x0aattribute\x20vec2\x20inverts;\x0aattribute\x20vec4\x20cellInfo;\x0aattribute\x20vec4\x20color;\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec4\x20vColor;\x0a#include<fogVertexDeclaration>\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avec3\x20viewPos=(view*vec4(position.xyz,1.0)).xyz;\x20\x0avec2\x20cornerPos;\x0afloat\x20angle=position.w;\x0avec2\x20size=vec2(options.x,options.y);\x0avec2\x20offset=offsets.xy;\x0acornerPos=vec2(offset.x-0.5,offset.y\x20-0.5)*size;\x0avec3\x20rotatedCorner;\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.z=0.;\x0aviewPos+=rotatedCorner;\x0agl_Position=projection*vec4(viewPos,1.0);\x20\x0avColor=color;\x0avec2\x20uvOffset=vec2(abs(offset.x-inverts.x),abs(1.0-offset.y-inverts.y));\x0avec2\x20uvPlace=cellInfo.xy;\x0avec2\x20uvSize=cellInfo.zw;\x0avUV.x=uvPlace.x+uvSize.x*uvOffset.x;\x0avUV.y=uvPlace.y+uvSize.y*uvOffset.y;\x0a#ifdef\x20FOG\x0avFogDistance=viewPos;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','defineNames','target','\x0a};\x0avar<private>\x20vertexInputs\x20:\x20VertexInputs;\x0a','computeBonesUsingShaders','_setReady','Unable\x20to\x20create\x20dynamic\x20uniform\x20buffer','MATERIAL_TriangleFillMode','STENCIL_ATTACHMENT','ALPHA_PREMULTIPLIED','pickId','_source','ETC2RGB8A1Unorm','_getShaderSource','hasObservers','RGB10A2Unorm','createComputePipeline','attributeNamesFromEffect','previous','layerCounts','query','renderTargetBlur','vertexShaderName','depthOrArrayLayers','\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@size(16)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20el:\x20','imageProcessingDeclaration','ONE','precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20topColor;\x0auniform\x20vec4\x20bottomColor;\x0auniform\x20float\x20offset;\x0auniform\x20float\x20scale;\x0auniform\x20float\x20smoothness;\x0avarying\x20vec3\x20vPositionW;\x0avarying\x20vec3\x20vPosition;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0]\x0a#include<__decl__lightFragment>[1]\x0a#include<__decl__lightFragment>[2]\x0a#include<__decl__lightFragment>[3]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0afloat\x20h=vPosition.y*scale+offset;\x0afloat\x20mysmoothness=clamp(smoothness,0.01,max(smoothness,10.));\x0avec4\x20baseColor=mix(bottomColor,topColor,max(pow(max(h,0.0),mysmoothness),0.0));\x0avec3\x20diffuseColor=baseColor.rgb;\x0afloat\x20alpha=baseColor.a;\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0a#ifdef\x20VERTEXCOLOR\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0a#ifdef\x20EMISSIVE\x0avec3\x20diffuseBase=baseColor.rgb;\x0a#else\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0a#endif\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0afloat\x20glossiness=0.;\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\x0avec4\x20color=vec4(finalDiffuse,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','finish','GL_ALPHA_FUNCTION_SRC_ALPHA','_allocateNewIndices','setArray3','data:','generateMipMaps','webpackChunkBim','_lodGenerationOffset','setBuffer','type','createRawCubeTexture','MouseWheelX','\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x200)\x20uniform\x20sampler\x20imgSampler;\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x201)\x20uniform\x20texture2D\x20img;\x0a\x0a\x20\x20\x20\x20layout(location\x20=\x200)\x20in\x20vec2\x20vTex;\x0a\x20\x20\x20\x20layout(location\x20=\x200)\x20out\x20vec4\x20outColor;\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20outColor\x20=\x20texture(sampler2D(img,\x20imgSampler),\x20vTex);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','ComputeNumMipmapLevels','_onVrDisplayConnect','_prepareEffect','cellPixelShader','_vertexIsGLES3','additionalDefineValue','iridescenceOut','direction2','cos','Eval','GL_ALPHA_FUNCTION_ONE_MINUS_DST_ALPHA','Raw3D','Iridescence\x20intensity','_numFloatTextures','_movePointerInfo','vReflectionPosition','samplerFragmentAlternateDeclaration','applyToShader','stages','setAlphaBlendFunctionParameters','isEqual','sampler','\x20/=\x20','#ifdef\x20ALPHATEST\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0avarying\x20float\x20vDepthMetric;\x0a#ifdef\x20PACKED\x0a#include<packingFunctions>\x0a#endif\x0a#ifdef\x20STORE_CAMERASPACE_Z\x0avarying\x20vec4\x20vViewPos;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0a#include<clipPlaneFragment>\x0a#ifdef\x20ALPHATEST\x0aif\x20(texture2D(diffuseSampler,vUV).a<0.4)\x0adiscard;\x0a#endif\x0a#ifdef\x20STORE_CAMERASPACE_Z\x0a#ifdef\x20PACKED\x0agl_FragColor=pack(vViewPos.z);\x0a#else\x0agl_FragColor=vec4(vViewPos.z,0.0,0.0,1.0);\x0a#endif\x0a#else\x0a#ifdef\x20NONLINEARDEPTH\x0a#ifdef\x20PACKED\x0agl_FragColor=pack(gl_FragCoord.z);\x0a#else\x0agl_FragColor=vec4(gl_FragCoord.z,0.0,0.0,0.0);\x0a#endif\x0a#else\x0a#ifdef\x20PACKED\x0agl_FragColor=pack(vDepthMetric);\x0a#else\x0agl_FragColor=vec4(vDepthMetric,0.0,0.0,1.0);\x0a#endif\x0a#endif\x0a#endif\x0a}','Depth32FloatStencil8','(-internals.yFactor_)*dpdy','clearQuadVertexShader','filterRadii','colorVertexShader','diffusionS','getUniforms','#if\x20defined(BUMP)\x20||\x20defined(PARALLAX)\x20||\x20defined(CLEARCOAT_BUMP)\x20||\x20defined(ANISOTROPIC)\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x0avec3\x20tbnNormal=normalize(normalUpdated);\x0avec3\x20tbnTangent=normalize(tangentUpdated.xyz);\x0avec3\x20tbnBitangent=cross(tbnNormal,tbnTangent)*tangentUpdated.w;\x0avTBN=mat3(finalWorld)*mat3(tbnTangent,tbnBitangent,tbnNormal);\x0a#endif\x0a#endif\x0a','_listLength','dispose','ui8d','HasTriggers','join','shift','setSize','_defineCubicName','EnableFor','#ifdef\x20LOGARITHMICDEPTH\x0avFragmentDepth=1.0+gl_Position.w;\x0agl_Position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;\x0a#endif\x0a','SphereDirectedParticleEmitter','precision\x20highp\x20float;uniform\x20vec4\x20vEyePosition;varying\x20vec3\x20vPositionW;\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;uniform\x20sampler2D\x20diffuseSampler;uniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0auniform\x20sampler2D\x20distortionSampler;uniform\x20sampler2D\x20opacitySampler;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDistortionCoords1;varying\x20vec2\x20vDistortionCoords2;varying\x20vec2\x20vDistortionCoords3;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0avec4\x20bx2(vec4\x20x)\x0a{return\x20vec4(2.0)*x-vec4(1.0);}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4\x20baseColor=vec4(1.,1.,1.,1.);float\x20alpha=1.0;\x0a#ifdef\x20DIFFUSE\x0aconst\x20float\x20distortionAmount0\x20=0.092;const\x20float\x20distortionAmount1\x20=0.092;const\x20float\x20distortionAmount2\x20=0.092;vec2\x20heightAttenuation=vec2(0.3,0.39);vec4\x20noise0=texture2D(distortionSampler,vDistortionCoords1);vec4\x20noise1=texture2D(distortionSampler,vDistortionCoords2);vec4\x20noise2=texture2D(distortionSampler,vDistortionCoords3);vec4\x20noiseSum=bx2(noise0)*distortionAmount0+bx2(noise1)*distortionAmount1+bx2(noise2)*distortionAmount2;vec4\x20perturbedBaseCoords=vec4(vDiffuseUV,0.0,1.0)+noiseSum*(vDiffuseUV.y*heightAttenuation.x+heightAttenuation.y);vec4\x20opacityColor=texture2D(opacitySampler,perturbedBaseCoords.xy);\x0a#ifdef\x20ALPHATEST\x0aif\x20(opacityColor.r<0.1)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0abaseColor=texture2D(diffuseSampler,perturbedBaseCoords.xy)*2.0;baseColor*=opacityColor;baseColor.rgb*=vDiffuseInfos.y;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0avec3\x20diffuseBase=vec3(1.0,1.0,1.0);\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0avec4\x20color=vec4(baseColor.rgb,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}',';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20','.z\x20*=\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0d\x0a','invertYPreMultiplyAlpha','format','\x0a#define\x20BILLBOARD\x0a','Linear','isFragment','setVector2','_WEBGL','BilateralBlurY','UniformBuffer','sphericalPolynomial','inputTexture','ASTC5x4Unorm','_isZOffsetDirty','addMSAARenderBuffer','\x0a#define\x20ANIMATESHEET\x0a','screenSpaceReflectionPixelShader','getScene','out','_decalMap','COLOR_ATTACHMENT0','useReverseDepthBuffer','bumpFragmentFunctions','generateDepthTexture','setAlphaEquation','EACRG11Unorm','GetTags','ALPHA_ONEONE','glowBlurPostProcessPixelShader','normal','createVertexBuffer','uniqueId','void\x20main','_getRGBAMultiSampleBufferFormat','_rtBlur','_crossEye','_list','createQuery','\x22,\x20undefined,\x20undefined,\x20','_onVrDisplayDisconnect','R32Sint','TEXTURE_LINEAR_LINEAR_MIPNEAREST','setMRTAttachments','colorBufferFloat','postprocess','emitFromSpawnPointOnly','updateRawTexture','depthTextureExtension','_IsGPUBuffer','setMRT','#ifdef\x20CLIPPLANE\x0afClipDistance=dot(worldPos,vClipPlane);\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0afClipDistance2=dot(worldPos,vClipPlane2);\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0afClipDistance3=dot(worldPos,vClipPlane3);\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0afClipDistance4=dot(worldPos,vClipPlane4);\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0afClipDistance5=dot(worldPos,vClipPlane5);\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0afClipDistance6=dot(worldPos,vClipPlane6);\x0a#endif\x0a','setEnabled','UNSIGNED_BYTE','_builtCompilationString','setAsSystemValue','_videoSampler','colorPixelShader','\x20\x20@location(','TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1','precision\x20highp\x20float;\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20normalSampler;\x0auniform\x20float\x20curvature_ridge;\x0auniform\x20float\x20curvature_valley;\x0a#ifndef\x20CURVATURE_OFFSET\x0a#define\x20CURVATURE_OFFSET\x201\x0a#endif\x0afloat\x20curvature_soft_clamp(float\x20curvature,float\x20control)\x0a{\x0aif\x20(curvature<0.5/control)\x0areturn\x20curvature*(1.0-curvature*control);\x0areturn\x200.25/control;\x0a}\x0afloat\x20calculate_curvature(ivec2\x20texel,float\x20ridge,float\x20valley)\x0a{\x0avec2\x20normal_up\x20=texelFetch(normalSampler,texel+ivec2(0,\x20CURVATURE_OFFSET),0).rb;\x0avec2\x20normal_down\x20=texelFetch(normalSampler,texel+ivec2(0,-CURVATURE_OFFSET),0).rb;\x0avec2\x20normal_left\x20=texelFetch(normalSampler,texel+ivec2(-CURVATURE_OFFSET,0),0).rb;\x0avec2\x20normal_right=texelFetch(normalSampler,texel+ivec2(\x20CURVATURE_OFFSET,0),0).rb;\x0afloat\x20normal_diff=((normal_up.g-normal_down.g)+(normal_right.r-normal_left.r));\x0aif\x20(normal_diff<0.0)\x0areturn\x20-2.0*curvature_soft_clamp(-normal_diff,valley);\x0areturn\x202.0*curvature_soft_clamp(normal_diff,ridge);\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0aivec2\x20texel=ivec2(gl_FragCoord.xy);\x0avec4\x20baseColor=texture2D(textureSampler,vUV);\x0afloat\x20curvature=calculate_curvature(texel,curvature_ridge,curvature_valley);\x0abaseColor.rgb*=curvature+1.0;\x0agl_FragColor=baseColor;\x0a}','vClipPlane2','viewportSize','matrix','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0a#include<helperFunctions>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0agl_FragColor=vec4(fromRGBD(texture2D(textureSampler,vUV)),1.0);\x0a}','_getActionManagerForTrigger','struct\x20Scene\x20{\x0aviewProjection\x20:\x20mat4x4<f32>,\x0a#ifdef\x20MULTIVIEW\x0aviewProjectionR\x20:\x20mat4x4<f32>,\x0a#endif\x20\x0aview\x20:\x20mat4x4<f32>,\x0aprojection\x20:\x20mat4x4<f32>,\x0avEyePosition\x20:\x20vec4<f32>,\x0a};\x0avar<uniform>\x20scene\x20:\x20Scene;\x0a','statusText','outputRenderTarget','worldMatrices','isPresenting','TEXTUREFORMAT_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT','observer','getVaryingNextLocation','getAttributeNextLocation','updateMatrices','disableVertexArrayObjects','samplerVertexDeclaration','\x20=\x20computeEquirectangularCoords(','ShadersStore','writeBuffer','TempTextureForCopyWithInvertY','diffuseTexture','material','No\x20Physics\x20Body\x20for\x20TransformNode','getTransformMatrix','#if\x20defined(DIFFUSE_ISLINEAR)\x20||\x20defined(EMISSIVE_ISLINEAR)\x0a#include<helperFunctions>\x0a#endif\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vUVDiffuse;\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#endif\x0a#ifdef\x20OPACITY\x0avarying\x20vec2\x20vUVOpacity;\x0auniform\x20sampler2D\x20opacitySampler;\x0auniform\x20float\x20opacityIntensity;\x0a#endif\x0a#ifdef\x20EMISSIVE\x0avarying\x20vec2\x20vUVEmissive;\x0auniform\x20sampler2D\x20emissiveSampler;\x0a#endif\x0a#ifdef\x20VERTEXALPHA\x0avarying\x20vec4\x20vColor;\x0a#endif\x0auniform\x20vec4\x20glowColor;\x0auniform\x20float\x20glowIntensity;\x0a#include<clipPlaneFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0a#include<clipPlaneFragment>\x0avec4\x20finalColor=glowColor;\x0a#ifdef\x20DIFFUSE\x0avec4\x20albedoTexture=texture2D(diffuseSampler,vUVDiffuse);\x0a#ifdef\x20DIFFUSE_ISLINEAR\x0aalbedoTexture=toGammaSpace(albedoTexture);\x0a#endif\x0a#ifdef\x20GLOW\x0afinalColor.a*=albedoTexture.a;\x0a#endif\x0a#ifdef\x20HIGHLIGHT\x0afinalColor.a=albedoTexture.a;\x0a#endif\x0a#endif\x0a#ifdef\x20OPACITY\x0avec4\x20opacityMap=texture2D(opacitySampler,vUVOpacity);\x0a#ifdef\x20OPACITYRGB\x0afinalColor.a*=getLuminance(opacityMap.rgb);\x0a#else\x0afinalColor.a*=opacityMap.a;\x0a#endif\x0afinalColor.a*=opacityIntensity;\x0a#endif\x0a#ifdef\x20VERTEXALPHA\x0afinalColor.a*=vColor.a;\x0a#endif\x0a#ifdef\x20ALPHATEST\x0aif\x20(finalColor.a<ALPHATESTVALUE)\x0adiscard;\x0a#endif\x0a#ifdef\x20EMISSIVE\x0avec4\x20emissive=texture2D(emissiveSampler,vUVEmissive);\x0a#ifdef\x20EMISSIVE_ISLINEAR\x0aemissive=toGammaSpace(emissive);\x0a#endif\x0agl_FragColor=emissive*finalColor*glowIntensity;\x0a#else\x0agl_FragColor=finalColor;\x0a#endif\x0a#ifdef\x20HIGHLIGHT\x0agl_FragColor.a=glowColor.a;\x0a#endif\x0a}','_RemoveTagFrom','),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20NdotV,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20specularEnvironmentR0,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20CLEARCOAT\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20NdotVUnclamped,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20iridescenceOut\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20iridescenceIntensity\x20=\x20iridescenceOut.iridescenceIntensity;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20specularEnvironmentR0\x20=\x20iridescenceOut.specularEnvironmentR0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0d\x0a','_needNormals','useInstancing','layout(std140,column_major)\x20uniform;\x0auniform\x20Material\x0a{\x0auniform\x20vec4\x20vPrimaryColor;\x0auniform\x20vec4\x20vPrimaryColorShadow;\x0auniform\x20vec2\x20vDiffuseInfos;\x0auniform\x20vec2\x20vReflectionInfos;\x0auniform\x20mat4\x20diffuseMatrix;\x0auniform\x20mat4\x20reflectionMatrix;\x0auniform\x20vec3\x20vReflectionMicrosurfaceInfos;\x0auniform\x20float\x20fFovMultiplier;\x0auniform\x20float\x20pointSize;\x0auniform\x20float\x20shadowLevel;\x0auniform\x20float\x20alpha;\x0a#if\x20defined(REFLECTIONFRESNEL)\x20||\x20defined(OPACITYFRESNEL)\x0auniform\x20vec3\x20vBackgroundCenter;\x0a#endif\x0a#ifdef\x20REFLECTIONFRESNEL\x0auniform\x20vec4\x20vReflectionControl;\x0a#endif\x0a};\x0a#include<sceneUboDeclaration>\x0a','#ifdef\x20DOF\x0afactor=sampleCoC(sampleCenter+delta*KERNEL_DEP_OFFSET{X});\x0acomputedWeight=KERNEL_DEP_WEIGHT{X}*factor;\x0asumOfWeights+=computedWeight;\x0a#else\x0acomputedWeight=KERNEL_DEP_WEIGHT{X};\x0a#endif\x0a#ifdef\x20PACKEDFLOAT\x0ablend+=unpack(texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X}))*computedWeight;\x0a#else\x0ablend+=texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X})*computedWeight;\x0a#endif\x0a','decorate','\x20=\x20computeMirroredFixedEquirectangularCoords(','shaderLanguage','pbrBlockAmbientOcclusion','getPhysicsEngine','normalVertexShader','TEXTUREFORMAT_BGRA','DEPTH_ATTACHMENT','_buffer','setTexture','_isSwiping','_spriteBuffer','error','BuildArray','onPointerMove','sources','TEXTUREFORMAT_RED_INTEGER','#ifdef\x20LOGARITHMICDEPTH\x0a#extension\x20GL_EXT_frag_depth\x20:\x20enable\x0a#endif\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec4\x20vColor;\x0auniform\x20vec4\x20textureMask;\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<imageProcessingDeclaration>\x0a#include<logDepthDeclaration>\x0a#include<helperFunctions>\x0a#include<imageProcessingFunctions>\x0a#ifdef\x20RAMPGRADIENT\x0avarying\x20vec4\x20remapRanges;\x0auniform\x20sampler2D\x20rampSampler;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec4\x20textureColor=texture2D(diffuseSampler,vUV);\x0avec4\x20baseColor=(textureColor*textureMask+(vec4(1.,1.,1.,1.)-textureMask))*vColor;\x0a#ifdef\x20RAMPGRADIENT\x0afloat\x20alpha=baseColor.a;\x0afloat\x20remappedColorIndex=clamp((alpha-remapRanges.x)/remapRanges.y,0.0,1.0);\x0avec4\x20rampColor=texture2D(rampSampler,vec2(1.0-remappedColorIndex,0.));\x0abaseColor.rgb*=rampColor.rgb;\x0afloat\x20finalAlpha=baseColor.a;\x0abaseColor.a=clamp((alpha*rampColor.a-remapRanges.z)/remapRanges.w,0.0,1.0);\x0a#endif\x0a#ifdef\x20BLENDMULTIPLYMODE\x0afloat\x20sourceAlpha=vColor.a*textureColor.a;\x0abaseColor.rgb=baseColor.rgb*sourceAlpha+vec3(1.0)*(1.0-sourceAlpha);\x0a#endif\x0a#include<logDepthFragment>\x0a#ifdef\x20IMAGEPROCESSINGPOSTPROCESS\x0abaseColor.rgb=toLinearSpace(baseColor.rgb);\x0a#else\x0a#ifdef\x20IMAGEPROCESSING\x0abaseColor.rgb=toLinearSpace(baseColor.rgb);\x0abaseColor=applyImageProcessing(baseColor);\x0a#endif\x0a#endif\x0agl_FragColor=baseColor;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','Depth','activeTexture'];a7_0x3311=function(){return _0x28c4dd;};return a7_0x3311();}