(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = global || self, factory(global.SuperMap3D = Geoworld)); }(this, (function (exports) { 'use strict'; var _0x551e=['23Pqisgg','104AHVYyp','638103yzZFDi','end','550392ukLhOM','260yybeYM','DeveloperError','begin','54242CxkiDf','3047LLCiZV','prototype','throwInstantiationError','40708dXFWSv','1160OfqsRx','8PrdheG','259265GxEaGA'];var _0x4fdf6b=_0xe4a0;(function(_0x48b193,_0x271ff3){var _0xc43ae0=_0xe4a0;while(!![]){try{var _0x5dd6d8=parseInt(_0xc43ae0(0x12f))*parseInt(_0xc43ae0(0x129))+parseInt(_0xc43ae0(0x135))+-parseInt(_0xc43ae0(0x12e))*parseInt(_0xc43ae0(0x136))+parseInt(_0xc43ae0(0x130))+parseInt(_0xc43ae0(0x132))*-parseInt(_0xc43ae0(0x12a))+parseInt(_0xc43ae0(0x133))+-parseInt(_0xc43ae0(0x131))*parseInt(_0xc43ae0(0x12d));if(_0x5dd6d8===_0x271ff3)break;else _0x48b193['push'](_0x48b193['shift']());}catch(_0x2abbe4){_0x48b193['push'](_0x48b193['shift']());}}}(_0x551e,0x4fd0c));function _0xe4a0(_0x2203e3,_0x228593){_0x2203e3=_0x2203e3-0x128;var _0x551e60=_0x551e[_0x2203e3];return _0x551e60;}function RenderTarget(){}RenderTarget[_0x4fdf6b(0x12b)][_0x4fdf6b(0x128)]=Geoworld[_0x4fdf6b(0x137)][_0x4fdf6b(0x12c)],RenderTarget[_0x4fdf6b(0x12b)][_0x4fdf6b(0x134)]=Geoworld[_0x4fdf6b(0x137)][_0x4fdf6b(0x12c)]; const _0x45df=['environmentVisible','1cMpZZD','depthTextureToCopy','clearCommand','sceneFramebuffer','UNSIGNED_BYTE','create','TextureWrap','1ohdOdk','frameState','depthStencilTexture','update','width','CLAMP_TO_EDGE','viewport','fromCache','429116sgZhBt','BoundingRectangle','beginFunc','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20uniform\x20sampler2D\x20u_depthTexture;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20varying\x20vec2\x20v_textureCoordinates;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20void\x20main()\x0a\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\x20\x20\x20\x20gl_FragColor\x20=\x20czm_packDepth(texture2D(u_depthTexture,\x20v_textureCoordinates).r);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20','context','vertexArray','isDestroyed','52HVmbzi','drawingBufferHeight','Color','endFunc','execute','PassState','isUpdate','2072536LebWMJ','copyDepthCommand','PixelDatatype','equals','438877ZKQtJb','framebuffer','RGBA','1RnUEib','TextureMagnificationFilter','TextureMinificationFilter','NEAREST','prototype','destroy','ClearCommand','height','3415JADSwo','renderState','_updateFramebuffer','474099XyIJeD','passState','drawingBufferWidth','depthTexture','478694ERvbKk','pick','Texture','passes','655093CLzkJc','depth'];function _0x5ca6(_0x310dfc,_0x57b3b9){_0x310dfc=_0x310dfc-0x1d0;let _0x45dfe7=_0x45df[_0x310dfc];return _0x45dfe7;}const _0x4118c3=_0x5ca6;(function(_0x1e9350,_0x42ede0){const _0x2a25a3=_0x5ca6;while(!![]){try{const _0x41a377=-parseInt(_0x2a25a3(0x1ee))+-parseInt(_0x2a25a3(0x1e7))*parseInt(_0x2a25a3(0x1d1))+parseInt(_0x2a25a3(0x1ea))*parseInt(_0x2a25a3(0x1f5))+parseInt(_0x2a25a3(0x1dc))*-parseInt(_0x2a25a3(0x1df))+-parseInt(_0x2a25a3(0x1f2))*parseInt(_0x2a25a3(0x1fc))+-parseInt(_0x2a25a3(0x204))+parseInt(_0x2a25a3(0x1d8));if(_0x41a377===_0x42ede0)break;else _0x1e9350['push'](_0x1e9350['shift']());}catch(_0x14668f){_0x1e9350['push'](_0x1e9350['shift']());}}}(_0x45df,0x59aab));function DepthFramebuffer(_0x1a3a36){const _0x5f051e=_0x5ca6;this[_0x5f051e(0x208)]=_0x1a3a36,this[_0x5f051e(0x1f8)]=new Geoworld['SceneFramebuffer'](),this['passState']=new Geoworld[(_0x5f051e(0x1d6))](_0x1a3a36),this[_0x5f051e(0x1eb)][_0x5f051e(0x202)]=new Geoworld[(_0x5f051e(0x205))](),this[_0x5f051e(0x1f4)]={'isSunVisible':![],'isMoonVisible':![],'isSkyAtmosphereVisible':![],'isSkyBoxVisible':![],'isGlobalVisible':!![],'isObjectVisible':!![]},this[_0x5f051e(0x200)]=0x0,this[_0x5f051e(0x1e6)]=0x0,this[_0x5f051e(0x1d9)]=undefined,this[_0x5f051e(0x1f7)]=undefined,this[_0x5f051e(0x1dd)]=undefined,this[_0x5f051e(0x1f6)]=undefined,this['rs']=undefined,this['depthTexture']=undefined,this[_0x5f051e(0x1dd)]=undefined,this['isUpdate']=![];}DepthFramebuffer[_0x4118c3(0x1e3)]=Object[_0x4118c3(0x1fa)](RenderTarget[_0x4118c3(0x1e3)]),DepthFramebuffer[_0x4118c3(0x1e3)]['constructor']=RenderTarget,DepthFramebuffer[_0x4118c3(0x1e3)][_0x4118c3(0x1e9)]=function(_0x103427){const _0x49e554=_0x4118c3;let _0x22ad38=_0x103427[_0x49e554(0x1ec)],_0x490088=_0x103427[_0x49e554(0x1d2)];(!this[_0x49e554(0x1dd)]||this[_0x49e554(0x200)]!==_0x22ad38||this[_0x49e554(0x1e6)]!==_0x490088)&&(this[_0x49e554(0x200)]=_0x22ad38,this[_0x49e554(0x1e6)]=_0x490088,this['depthTexture']=this[_0x49e554(0x1ed)]&&!this[_0x49e554(0x1ed)][_0x49e554(0x1d0)]()&&this['depthTexture']['destroy'](),this['depthTexture']=new Geoworld[(_0x49e554(0x1f0))]({'context':_0x103427,'width':_0x22ad38,'height':_0x490088,'pixelFormat':Geoworld['PixelFormat'][_0x49e554(0x1de)],'pixelDatatype':Geoworld[_0x49e554(0x1da)][_0x49e554(0x1f9)],'sampler':new Geoworld['Sampler']({'wrapS':Geoworld[_0x49e554(0x1fb)][_0x49e554(0x201)],'wrapT':Geoworld[_0x49e554(0x1fb)][_0x49e554(0x201)],'minificationFilter':Geoworld[_0x49e554(0x1e1)][_0x49e554(0x1e2)],'magnificationFilter':Geoworld[_0x49e554(0x1e0)][_0x49e554(0x1e2)]})}),this[_0x49e554(0x1dd)]=this[_0x49e554(0x1dd)]&&!this['framebuffer'][_0x49e554(0x1d0)]()&&this[_0x49e554(0x1dd)]['destroy'](),this[_0x49e554(0x1dd)]=new Geoworld['Framebuffer']({'context':_0x103427,'colorTextures':[this[_0x49e554(0x1ed)]],'destroyAttachments':![]}));},DepthFramebuffer[_0x4118c3(0x1e3)]['_updateCopyCommand']=function(_0x2b32c6){const _0x3cc47d=_0x4118c3;(!this['rs']||!Geoworld[_0x3cc47d(0x205)][_0x3cc47d(0x1db)](this[_0x3cc47d(0x1eb)]['viewport'],this['rs'][_0x3cc47d(0x202)]))&&(this['rs']=Geoworld['RenderState'][_0x3cc47d(0x203)]({'viewport':this[_0x3cc47d(0x1eb)][_0x3cc47d(0x202)]}));if(!this['copyDepthCommand']){let _0x29db84=_0x3cc47d(0x207);this[_0x3cc47d(0x1d9)]=_0x2b32c6['createViewportQuadCommand'](_0x29db84,{'uniformMap':{'u_depthTexture':()=>{const _0x4d2ea8=_0x3cc47d;return this[_0x4d2ea8(0x1f6)];}},'owner':this});}!this['clearCommand']&&(this[_0x3cc47d(0x1f7)]=new Geoworld[(_0x3cc47d(0x1e5))]({'color':new Geoworld[(_0x3cc47d(0x1d3))](0x0,0x0,0x0,0x0),'stencil':0x0,'depth':0x1,'owner':this})),this[_0x3cc47d(0x1d9)][_0x3cc47d(0x1e8)]=this['rs'],this[_0x3cc47d(0x1d9)][_0x3cc47d(0x1dd)]=this[_0x3cc47d(0x1dd)],this[_0x3cc47d(0x1f7)][_0x3cc47d(0x1dd)]=this['framebuffer'];},DepthFramebuffer[_0x4118c3(0x1e3)]['begin']=function(_0x5f03ae){const _0x3c4d33=_0x4118c3;this[_0x3c4d33(0x1f8)][_0x3c4d33(0x1ff)](_0x5f03ae['context'],_0x5f03ae['view']['viewport'],_0x5f03ae['_hdr']),this['passState']['framebuffer']=this[_0x3c4d33(0x1f8)]['getFramebuffer'](),Geoworld['BoundingRectangle']['clone'](_0x5f03ae['view']['viewport'],this[_0x3c4d33(0x1eb)][_0x3c4d33(0x202)]);let _0x2fbf38=_0x5f03ae[_0x3c4d33(0x208)];return this[_0x3c4d33(0x1e9)](_0x2fbf38),this['_updateCopyCommand'](_0x2fbf38),this['clearCommand'][_0x3c4d33(0x1d5)](_0x2fbf38,this[_0x3c4d33(0x1eb)]),_0x5f03ae[_0x3c4d33(0x1fd)][_0x3c4d33(0x1f1)][_0x3c4d33(0x1f3)]=!![],this[_0x3c4d33(0x206)]&&this['beginFunc'](_0x5f03ae[_0x3c4d33(0x1fd)]),this[_0x3c4d33(0x1eb)];},DepthFramebuffer[_0x4118c3(0x1e3)]['end']=function(_0x5b4104,_0x508974){const _0x92e8db=_0x4118c3;_0x5b4104[_0x92e8db(0x1f1)][_0x92e8db(0x1ef)]=![],_0x5b4104[_0x92e8db(0x1f1)][_0x92e8db(0x1f3)]=![],this[_0x92e8db(0x1d4)]&&this[_0x92e8db(0x1d4)](_0x5b4104),this[_0x92e8db(0x1f6)]=_0x508974[_0x92e8db(0x1dd)][_0x92e8db(0x1fe)],this[_0x92e8db(0x1d9)]&&this[_0x92e8db(0x1d9)][_0x92e8db(0x1d5)](_0x5b4104['context'],_0x508974);},DepthFramebuffer['prototype'][_0x4118c3(0x1d0)]=function(){return ![];},DepthFramebuffer['prototype']['destroy']=function(){const _0x5968e7=_0x4118c3;this[_0x5968e7(0x1ed)]=this[_0x5968e7(0x1ed)]&&!this['depthTexture'][_0x5968e7(0x1d0)]()&&this['depthTexture']['destroy'](),this[_0x5968e7(0x1dd)]=this[_0x5968e7(0x1dd)]&&!this['framebuffer'][_0x5968e7(0x1d0)]()&&this[_0x5968e7(0x1dd)][_0x5968e7(0x1e4)]();if(this[_0x5968e7(0x1d9)]){let _0x5621c2=this[_0x5968e7(0x1d9)]['sp'];_0x5621c2=_0x5621c2&&!_0x5621c2['isDestroyed']()&&_0x5621c2[_0x5968e7(0x1e4)]();let _0x2d9fff=this['copyDepthCommand'][_0x5968e7(0x209)];_0x2d9fff=_0x2d9fff&&!_0x2d9fff[_0x5968e7(0x1d0)]()&&_0x2d9fff[_0x5968e7(0x1e4)](),this['copyDepthCommand']=undefined;}return this[_0x5968e7(0x1f7)]=undefined,this[_0x5968e7(0x1f6)]=undefined,this[_0x5968e7(0x1d7)]=![],Geoworld['destroyObject'](this);}; var _0x3170=['535812QReORJ','11789xOoPRA','\x0a\x20\x20\x20\x20attribute\x20vec4\x20aPosition;\x0a\x20\x20\x20\x20varying\x20vec4\x20vClipPos;\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vClipPos\x20=\x20czm_modelViewProjection\x20*\x20vec4(aPosition.xyz,\x201.0);\x0a\x09\x20\x20\x20\x20gl_Position\x20=\x20vClipPos;\x0a\x20\x20\x20\x20}\x0a','118064FCTUOQ','448248qTzUMV','650703TDbdkz','37BENapC','283412llJlmb','441891zugUQW'];function _0x50b4(_0x3590bc,_0x4beeb0){_0x3590bc=_0x3590bc-0x1ee;var _0x3170f8=_0x3170[_0x3590bc];return _0x3170f8;}var _0x1d7bae=_0x50b4;(function(_0x5054fe,_0x951f28){var _0x23d8dc=_0x50b4;while(!![]){try{var _0x3b5115=parseInt(_0x23d8dc(0x1f3))+parseInt(_0x23d8dc(0x1ef))*parseInt(_0x23d8dc(0x1f4))+-parseInt(_0x23d8dc(0x1f2))+-parseInt(_0x23d8dc(0x1f1))+-parseInt(_0x23d8dc(0x1f6))+parseInt(_0x23d8dc(0x1ee))+-parseInt(_0x23d8dc(0x1f5));if(_0x3b5115===_0x951f28)break;else _0x5054fe['push'](_0x5054fe['shift']());}catch(_0x11ff89){_0x5054fe['push'](_0x5054fe['shift']());}}}(_0x3170,0x50d55));var _0x3d4f91 = _0x1d7bae(0x1f0); var _0x30cc=['1SXtvtm','1386260Gscboi','339416EchsFU','273306moPYGx','420985pHzBqG','54yHkKQm','548957bAHPEl','2zMfmCN','11091SFsXxE','7ukPLqE','17179SCCFCn'];function _0x4cc3(_0x448e95,_0xd6f7eb){_0x448e95=_0x448e95-0x1a6;var _0x30ccde=_0x30cc[_0x448e95];return _0x30ccde;}(function(_0x524eba,_0x2b7412){var _0x5a2d7b=_0x4cc3;while(!![]){try{var _0x21807a=parseInt(_0x5a2d7b(0x1a8))*-parseInt(_0x5a2d7b(0x1ab))+parseInt(_0x5a2d7b(0x1a7))+parseInt(_0x5a2d7b(0x1b0))+parseInt(_0x5a2d7b(0x1aa))*-parseInt(_0x5a2d7b(0x1a6))+parseInt(_0x5a2d7b(0x1ae))*-parseInt(_0x5a2d7b(0x1a9))+parseInt(_0x5a2d7b(0x1ad))*-parseInt(_0x5a2d7b(0x1ac))+parseInt(_0x5a2d7b(0x1af));if(_0x21807a===_0x2b7412)break;else _0x524eba['push'](_0x524eba['shift']());}catch(_0x52e091){_0x524eba['push'](_0x524eba['shift']());}}}(_0x30cc,0x51095));var _0x8bfc72 = '\x0a#ifdef\x20GL_EXT_frag_depth\x0a#extension\x20GL_EXT_frag_depth\x20:\x20enable\x0a#endif\x0a#ifdef\x20GL_OES_standard_derivatives\x0a#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0a#endif\x0a\x0auniform\x20vec4\x20uVisibleAreaColor;\x0auniform\x20vec4\x20uHiddenAreaColor;\x0auniform\x20vec2\x20uTextureSize;\x0auniform\x20sampler2D\x20uGlobalDepthTexture;\x0auniform\x20sampler2D\x20uTexture;\x0auniform\x20mat4\x20uRenderTextureMatrix;\x0avarying\x20vec4\x20vClipPos;\x0a\x0afloat\x20getDepth(in\x20vec4\x20depth)\x0a{\x0a\x20\x20\x20\x20float\x20z_window\x20=\x20czm_unpackDepth(depth);\x0a\x20\x20\x20\x20return\x20z_window;\x0a}\x0a\x0afloat\x20getDepthFromShadowMap(in\x20sampler2D\x20viewShedTexture,\x20in\x20vec4\x20texCoord)\x0a{\x0a\x09vec2\x20tCoord;\x0a\x20\x20\x20\x20tCoord\x20=\x20texCoord.xy\x20*\x20uTextureSize\x20-\x200.5;\x0a\x09float\x20x0\x20=\x20floor(tCoord.x);\x0a\x09float\x20x1\x20=\x20ceil(tCoord.x);\x0a\x09float\x20y0\x20=\x20floor(tCoord.y);\x0a\x09float\x20y1\x20=\x20ceil(tCoord.y);\x0a\x09vec2\x20invTexSize\x20=\x201.0\x20/\x20uTextureSize;\x0a\x09vec2\x20t00\x20=\x20vec2((x0\x20+\x200.5)\x20*\x20invTexSize.x,\x20(y0\x20+\x200.5)\x20*\x20invTexSize.y);\x0a\x09vec2\x20t10\x20=\x20vec2((x1\x20+\x200.5)\x20*\x20invTexSize.x,\x20(y0\x20+\x200.5)\x20*\x20invTexSize.y);\x0a\x09vec2\x20t01\x20=\x20vec2((x0\x20+\x200.5)\x20*\x20invTexSize.x,\x20(y1\x20+\x200.5)\x20*\x20invTexSize.y);\x0a\x09vec2\x20t11\x20=\x20vec2((x1\x20+\x200.5)\x20*\x20invTexSize.x,\x20(y1\x20+\x200.5)\x20*\x20invTexSize.y);\x0a\x09float\x20z00\x20=\x20getDepth(texture2D(uTexture,\x20t00));\x0a\x09float\x20z10\x20=\x20getDepth(texture2D(uTexture,\x20t01));\x0a\x09float\x20z01\x20=\x20getDepth(texture2D(uTexture,\x20t10));\x0a\x09float\x20z11\x20=\x20getDepth(texture2D(uTexture,\x20t11));\x0a\x09float\x20depth\x20=\x20max(max(z00,\x20z01),\x20max(z10,\x20z11));\x0a\x09return\x20depth;\x0a}\x0a\x0avoid\x20main()\x0a{\x0a\x09vec4\x20depthTexCoord\x20=\x20vClipPos\x20/\x20vClipPos.w;\x0a\x09depthTexCoord.xy\x20=\x20depthTexCoord.xy\x20*\x200.5\x20+\x200.5;\x0a\x09float\x20sceneDepth\x20=\x20czm_unpackDepth(texture2D(uGlobalDepthTexture,\x20depthTexCoord.xy));\x0a\x09sceneDepth\x20=\x20sceneDepth\x20*\x202.0\x20-\x201.0;\x0a\x09vec4\x20pos\x20=\x20vClipPos;\x0a\x09pos.z\x20=\x20sceneDepth\x20*\x20pos.w;\x0a\x09vec4\x20renderTextureCoord\x20=\x20uRenderTextureMatrix\x20*\x20pos;\x0a\x09vec4\x20texCoord\x20=\x20renderTextureCoord\x20/\x20renderTextureCoord.w;\x0a\x09texCoord.xyz\x20=\x20texCoord.xyz\x20*\x200.5\x20+\x200.5;\x0a\x09float\x20depth\x20=\x20getDepthFromShadowMap(uTexture,\x20texCoord);\x0a\x09float\x20dxc\x20=\x20abs(dFdx(texCoord.z));\x0a\x09float\x20dyc\x20=\x20abs(dFdy(texCoord.z));\x0a\x09float\x20dF\x20=\x20max(dxc,\x20dyc)\x20*\x203.0;\x0a\x09float\x20bias\x20=\x201.0e-6\x20+\x20dF;\x0a\x09float\x20c\x20=\x20float(depth\x20+\x20bias\x20<\x20texCoord.z);\x0a\x09vec4\x20finalColor\x20=\x20mix(uVisibleAreaColor,\x20uHiddenAreaColor,\x20vec4(c));\x0a\x09if(finalColor.a\x20<\x200.1)\x0a\x09{\x0a\x09\x09discard;\x0a\x09}\x0a\x09gl_FragColor\x20=\x20czm_gammaCorrect(finalColor);\x0a}\x0a'; var _0xde39=['1zHOmld','525433MLpSzl','388853lfMCZl','452085OiXWlO','544345aIiPwl','1DEwDAQ','3KSOZeJ','523784rytLXv','717386PSTmBA','attribute\x20vec4\x20aPosition;\x0avarying\x20vec4\x20vClipVertex;\x0avarying\x20float\x20fWindowZ;\x0avec4\x20depthClampFarPlane(vec4\x20clipPos)\x0a{\x0a\x09fWindowZ\x20=\x20(0.5\x20*\x20(clipPos.z\x20/\x20clipPos.w)\x20+\x200.5)\x20*\x20clipPos.w;\x0a\x09clipPos.z\x20=\x20min(clipPos.z,\x20clipPos.w);\x0a\x09return\x20clipPos;\x0a}\x0avoid\x20main()\x0a{\x0a\x20\x20\x20vec4\x20pos\x20=\x20czm_modelViewProjection\x20*\x20vec4(aPosition.xyz,\x201.0);\x0a\x20\x20\x20gl_Position\x20=\x20depthClampFarPlane(pos);\x0a}\x0a','225005KDbVrm'];function _0x2a5b(_0x30edc3,_0x1d449d){_0x30edc3=_0x30edc3-0xef;var _0xde39ef=_0xde39[_0x30edc3];return _0xde39ef;}var _0xb25f6a=_0x2a5b;(function(_0xe6db03,_0x245640){var _0x4fdbda=_0x2a5b;while(!![]){try{var _0x52d268=-parseInt(_0x4fdbda(0xf7))*-parseInt(_0x4fdbda(0xef))+-parseInt(_0x4fdbda(0xf4))*-parseInt(_0x4fdbda(0xf2))+-parseInt(_0x4fdbda(0xf9))+parseInt(_0x4fdbda(0xf6))+-parseInt(_0x4fdbda(0xf8))*parseInt(_0x4fdbda(0xf1))+parseInt(_0x4fdbda(0xf5))+-parseInt(_0x4fdbda(0xf3));if(_0x52d268===_0x245640)break;else _0xe6db03['push'](_0xe6db03['shift']());}catch(_0x55bbcf){_0xe6db03['push'](_0xe6db03['shift']());}}}(_0xde39,0x5c645));var _0x52211b = _0xb25f6a(0xf0); var _0x4d67=['32507rzCbsN','1LVIeEN','115027gtqNIs','\x0a#ifdef\x20GL_EXT_frag_depth\x0a#extension\x20GL_EXT_frag_depth\x20:\x20enable\x0a#endif\x0auniform\x20vec4\x20uColor;\x0avarying\x20float\x20fWindowZ;\x0avoid\x20main()\x0a{\x0a#ifdef\x20GL_EXT_frag_depth\x0a\x09gl_FragDepthEXT\x20=\x20min(fWindowZ\x20*\x20gl_FragCoord.w,\x201.0);\x0a#endif\x0a\x20\x20\x20gl_FragColor\x20=\x20uColor;\x0a}','394057sIxzBc','75130YJFzSh','244977AuUOZC','11nsfDMa','329324PThNeG','237058BWOtlY','3IQuJWS'];function _0x1068(_0x396813,_0x2d03e4){_0x396813=_0x396813-0xf2;var _0x4d678b=_0x4d67[_0x396813];return _0x4d678b;}var _0x3c2471=_0x1068;(function(_0x427b28,_0x52adcc){var _0x224889=_0x1068;while(!![]){try{var _0x2f2336=parseInt(_0x224889(0xfb))+-parseInt(_0x224889(0xf7))*parseInt(_0x224889(0xfc))+-parseInt(_0x224889(0xfa))+parseInt(_0x224889(0xf3))+parseInt(_0x224889(0xf2))*-parseInt(_0x224889(0xf6))+parseInt(_0x224889(0xf8))+-parseInt(_0x224889(0xf4))*-parseInt(_0x224889(0xf5));if(_0x2f2336===_0x52adcc)break;else _0x427b28['push'](_0x427b28['shift']());}catch(_0x26f35a){_0x427b28['push'](_0x427b28['shift']());}}}(_0x4d67,0x3923c));var _0x5868ba = _0x3c2471(0xf9); const _0xc23e=['viewMatrix','cameraDepthBuffer','center','sin','STATIC_DRAW','fromCache','Pass','magnitude','near','multiply','build','distance','16239oOoCjS','remove','Color','aspectRatio','stencilCommand','inverse','length','BoundingSphere','UNIT_Z','IndexDatatype','globalDepthBuffer','816371xQyela','far','boundingSphere','vertexArray','2262688iZlInC','normalize','138384YZdOBh','radius','BlendingState','endFunc','DECREMENT_WRAP','_verticalFov','_createCommand','fbo','424471kPHOev','_visibleAreaColor','_renderTargets','_hintLineColor','position','roll','2oxUPBX','lineCommand','frustumCommandsList','ShaderSource','Matrix4','ZERO','RADIANS_PER_DEGREE','abs','scene','logarithmicDepthFarToNearRatio','StencilOperation','setDistDirByPoint','fromDegreesArrayHeights','atan','fov','UNSIGNED_SHORT','uniformMap','_pitch','height','projectionMatrix','heading','destroy','colorCommand','ALWAYS','BufferUsage','invViewMatrix','shallowClone','pitch','ShaderProgram','depthTexture','Cartesian3','1bzldil','_hiddenAreaColor','_removeRenderTarget','renderTextureMatrix','isDestroyed','dirty','max','Math','useLogDepth','cross','ComponentDatatype','push','ALPHA_BLEND','clone','_viewPosition','globalName','defineProperties','viewProjectionMatrix','17uMfwti','Buffer','_distance','createVertexBuffer','shaderProgram','KEEP','StencilFunction','depth','tan','prototype','isUpdate','primitives','pick','frustum','_direction','NOT_EQUAL','_horizontalFov','farToNearRatio','update','renderState','width','FLOAT','DrawCommand','name','_projection','UNIT_Y','passes','_destroyCommand','61857KQYZdh','RenderState','createTypedArray','commandList','DEGREES_PER_RADIAN','190919OlilVt','context','_context','dot','transform','cos','segmentCount','VertexArray','direction','createIndexBuffer','camera','LINES','_global','setView'];const _0x4455d8=_0x4a16;function _0x4a16(_0x1e0aed,_0x177700){_0x1e0aed=_0x1e0aed-0x19c;let _0xc23e2b=_0xc23e[_0x1e0aed];return _0xc23e2b;}(function(_0x3ff89e,_0x42651c){const _0x119746=_0x4a16;while(!![]){try{const _0x45e61d=parseInt(_0x119746(0x1a6))+parseInt(_0x119746(0x1fe))*parseInt(_0x119746(0x1a1))+-parseInt(_0x119746(0x1d9))*parseInt(_0x119746(0x1df))+-parseInt(_0x119746(0x1cb))+-parseInt(_0x119746(0x210))*parseInt(_0x119746(0x1c0))+-parseInt(_0x119746(0x1d1))+parseInt(_0x119746(0x1cf));if(_0x45e61d===_0x42651c)break;else _0x3ff89e['push'](_0x3ff89e['shift']());}catch(_0x5f1960){_0x3ff89e['push'](_0x3ff89e['shift']());}}}(_0xc23e,0x6a5f8));function ViewShed3D(_0x489bf3){const _0x562d4b=_0x4a16;this[_0x562d4b(0x1e7)]=_0x489bf3,this[_0x562d4b(0x1b5)]=new DepthFramebuffer(_0x489bf3[_0x562d4b(0x1a8)]),this[_0x562d4b(0x1ca)]=new DepthFramebuffer(_0x489bf3[_0x562d4b(0x1a8)]),this[_0x562d4b(0x19c)]='',this[_0x562d4b(0x20d)]='',this[_0x562d4b(0x1ac)]=0x14,this[_0x562d4b(0x20c)]=[0x0,0x0,0x0],this[_0x562d4b(0x21e)]=0x0,this[_0x562d4b(0x1f0)]=0x0,this[_0x562d4b(0x220)]=0x5a,this[_0x562d4b(0x1d6)]=0x3c,this[_0x562d4b(0x212)]=0x64,this['_visibleAreaColor']=new Geoworld[(_0x562d4b(0x1c2))](0x0,0x1,0x0,0.5),this[_0x562d4b(0x1ff)]=new Geoworld[(_0x562d4b(0x1c2))](0x1,0x0,0x0,0.5),this[_0x562d4b(0x1dc)]=new Geoworld[(_0x562d4b(0x1c2))](0x1,0x1,0x1,0x1),this['boundingSphere']=new Geoworld[(_0x562d4b(0x1c7))](),this['viewProjectionMatrix']=new Geoworld[(_0x562d4b(0x1e3))](),this[_0x562d4b(0x1f8)]=new Geoworld['Matrix4'](),this[_0x562d4b(0x201)]=new Geoworld['Matrix4'](),this[_0x562d4b(0x1f5)]=undefined,this[_0x562d4b(0x1c4)]=undefined,this[_0x562d4b(0x1e0)]=undefined,this[_0x562d4b(0x203)]=![];}Object[_0x4455d8(0x20e)](ViewShed3D[_0x4455d8(0x219)],{'viewPosition':{'get':function(){const _0x17c8cc=_0x4455d8;return this[_0x17c8cc(0x20c)];},'set':function(_0xd832e5){const _0x15903a=_0x4455d8;this[_0x15903a(0x20c)]=_0xd832e5;}},'direction':{'get':function(){const _0x5e0205=_0x4455d8;return this[_0x5e0205(0x21e)];},'set':function(_0xb7ceb9){const _0x2409b3=_0x4455d8;this['_direction']=_0xb7ceb9,this[_0x2409b3(0x203)]=!![];}},'pitch':{'get':function(){const _0x5cd27f=_0x4455d8;return this[_0x5cd27f(0x1f0)];},'set':function(_0x3a33db){const _0x3560a0=_0x4455d8;this['_pitch']=_0x3a33db,this[_0x3560a0(0x203)]=!![];}},'horizontalFov':{'get':function(){const _0x5256a=_0x4455d8;return this[_0x5256a(0x220)];},'set':function(_0x37a291){const _0x17da6b=_0x4455d8;this[_0x17da6b(0x220)]=_0x37a291,this['dirty']=!![];}},'verticalFov':{'get':function(){const _0x528549=_0x4455d8;return this[_0x528549(0x1d6)];},'set':function(_0x294550){const _0x37632a=_0x4455d8;this[_0x37632a(0x1d6)]=_0x294550,this[_0x37632a(0x203)]=!![];}},'distance':{'get':function(){const _0x185984=_0x4455d8;return this[_0x185984(0x212)];},'set':function(_0x5bfcb3){const _0x4c02dc=_0x4455d8;this[_0x4c02dc(0x212)]=Math[_0x4c02dc(0x204)](_0x5bfcb3,0x0),this['dirty']=!![];}}}),ViewShed3D[_0x4455d8(0x219)]['_updateCamera']=function(_0x42f01f){const _0x39ec53=_0x4455d8;let _0x1ba0e2=_0x42f01f[_0x39ec53(0x1b0)],_0x23ab65=this[_0x39ec53(0x220)]*Geoworld[_0x39ec53(0x205)]['RADIANS_PER_DEGREE'],_0x2124fb=this[_0x39ec53(0x1d6)]*Geoworld[_0x39ec53(0x205)][_0x39ec53(0x1e5)],_0x4267d1=Math[_0x39ec53(0x218)](_0x23ab65*0.5),_0x3f98b1=Math['tan'](_0x2124fb*0.5),_0x734451=_0x4267d1/_0x3f98b1,_0x2ac613=this[_0x39ec53(0x212)]*0.001,_0x3a41e4=Math[_0x39ec53(0x204)](this['_distance'],0xa),_0x2838b6=this[_0x39ec53(0x21e)]*Geoworld[_0x39ec53(0x205)][_0x39ec53(0x1e5)],_0x53a495=this[_0x39ec53(0x1f0)]*Geoworld[_0x39ec53(0x205)][_0x39ec53(0x1e5)],_0x178606=Geoworld[_0x39ec53(0x1fd)]['fromDegreesArrayHeights'](this[_0x39ec53(0x20c)])[0x0],_0x14c85c=_0x1ba0e2[_0x39ec53(0x21d)][_0x39ec53(0x1c3)],_0x560f7b=_0x1ba0e2[_0x39ec53(0x21d)]['fov'],_0x3a2d28=_0x1ba0e2[_0x39ec53(0x21d)]['near'],_0x3c1e35=_0x1ba0e2[_0x39ec53(0x21d)][_0x39ec53(0x1cc)],_0x30d171=new Geoworld[(_0x39ec53(0x1fd))](),_0x377815=_0x1ba0e2[_0x39ec53(0x1f3)],_0x234b61=_0x1ba0e2[_0x39ec53(0x1fa)];Geoworld[_0x39ec53(0x1fd)][_0x39ec53(0x20b)](_0x1ba0e2[_0x39ec53(0x1dd)],_0x30d171);let _0x5e3b55=_0x42f01f['useLogDepth'],_0x11a6fd=this[_0x39ec53(0x1e7)][_0x39ec53(0x221)];this['cameraDepthBuffer']['isUpdate']=!![],this[_0x39ec53(0x1b5)]['beginFunc']=_0x5acf97=>{const _0x3a7977=_0x39ec53;_0x5acf97['useLogDepth']=![],_0x14c85c=_0x1ba0e2['frustum']['aspectRatio'],_0x560f7b=_0x1ba0e2['frustum'][_0x3a7977(0x1ed)],_0x3a2d28=_0x1ba0e2['frustum']['near'],_0x3c1e35=_0x1ba0e2[_0x3a7977(0x21d)][_0x3a7977(0x1cc)],_0x377815=_0x1ba0e2[_0x3a7977(0x1f3)],_0x234b61=_0x1ba0e2[_0x3a7977(0x1fa)],Geoworld[_0x3a7977(0x1fd)]['clone'](_0x1ba0e2['position'],_0x30d171),_0x1ba0e2[_0x3a7977(0x21d)][_0x3a7977(0x1c3)]=_0x734451,_0x1ba0e2[_0x3a7977(0x21d)][_0x3a7977(0x1ed)]=_0x23ab65,_0x1ba0e2[_0x3a7977(0x21d)][_0x3a7977(0x1bc)]=0x1,_0x1ba0e2[_0x3a7977(0x21d)][_0x3a7977(0x1cc)]=_0x3a41e4+0x1,_0x1ba0e2['setView']({'destination':_0x178606,'orientation':{'heading':_0x2838b6,'pitch':_0x53a495,'roll':_0x1ba0e2[_0x3a7977(0x1de)]}}),Geoworld['Matrix4'][_0x3a7977(0x1bd)](_0x1ba0e2[_0x3a7977(0x21d)][_0x3a7977(0x1f2)],_0x1ba0e2[_0x3a7977(0x1b4)],this[_0x3a7977(0x20f)]),Geoworld[_0x3a7977(0x1e3)][_0x3a7977(0x20b)](_0x1ba0e2['inverseViewMatrix'],this[_0x3a7977(0x1f8)]),Geoworld[_0x3a7977(0x1fd)][_0x3a7977(0x20b)](Geoworld[_0x3a7977(0x1fd)][_0x3a7977(0x1e4)],this[_0x3a7977(0x1cd)][_0x3a7977(0x1b6)]),this[_0x3a7977(0x1cd)][_0x3a7977(0x1d2)]=this[_0x3a7977(0x212)],Geoworld[_0x3a7977(0x1c7)][_0x3a7977(0x1aa)](this[_0x3a7977(0x1cd)],this[_0x3a7977(0x1f8)],this[_0x3a7977(0x1cd)]);},this[_0x39ec53(0x1b5)]['endFunc']=_0x595334=>{const _0x360d33=_0x39ec53;_0x1ba0e2[_0x360d33(0x1b3)]({'destination':_0x30d171,'orientation':{'heading':_0x377815,'pitch':_0x234b61,'roll':_0x1ba0e2[_0x360d33(0x1de)]},'convert':![]}),_0x1ba0e2['frustum'][_0x360d33(0x1c3)]=_0x14c85c,_0x1ba0e2['frustum'][_0x360d33(0x1ed)]=_0x560f7b,_0x1ba0e2[_0x360d33(0x21d)][_0x360d33(0x1bc)]=_0x3a2d28,_0x1ba0e2[_0x360d33(0x21d)]['far']=_0x3c1e35,this['cameraDepthBuffer'][_0x360d33(0x21a)]=![],_0x595334[_0x360d33(0x206)]=_0x5e3b55;},this[_0x39ec53(0x1ca)][_0x39ec53(0x21a)]=!![],this[_0x39ec53(0x1ca)]['beginFunc']=_0x2ff9db=>{const _0x1ae20a=_0x39ec53;_0x2ff9db[_0x1ae20a(0x206)]=![],_0x1ba0e2[_0x1ae20a(0x21d)][_0x1ae20a(0x1bc)]=0xa,this['scene']['farToNearRatio']=this[_0x1ae20a(0x1e7)][_0x1ae20a(0x1e8)];},this[_0x39ec53(0x1ca)][_0x39ec53(0x1d4)]=_0x19ccc9=>{const _0x46b397=_0x39ec53;if(this['scene']['view'][_0x46b397(0x1e1)][_0x46b397(0x1c6)]>0x0){let _0x95075b=this['scene']['view'][_0x46b397(0x1e1)][0x0];_0x1ba0e2['frustum'][_0x46b397(0x1bc)]=_0x95075b[_0x46b397(0x1bc)],_0x1ba0e2[_0x46b397(0x21d)][_0x46b397(0x1cc)]=_0x95075b[_0x46b397(0x1cc)];}let _0x3d3bab=Geoworld[_0x46b397(0x1e3)][_0x46b397(0x1c5)](_0x1ba0e2['frustum'][_0x46b397(0x1f2)],new Geoworld[(_0x46b397(0x1e3))]()),_0x5f57cf=Geoworld[_0x46b397(0x1e3)][_0x46b397(0x1bd)](_0x1ba0e2['inverseViewMatrix'],_0x3d3bab,new Geoworld[(_0x46b397(0x1e3))]());Geoworld['Matrix4']['multiply'](this['viewProjectionMatrix'],_0x5f57cf,this['renderTextureMatrix']),_0x19ccc9[_0x46b397(0x206)]=_0x5e3b55,this[_0x46b397(0x1e7)]['farToNearRatio']=_0x11a6fd,_0x1ba0e2[_0x46b397(0x21d)][_0x46b397(0x1bc)]=_0x3a2d28,_0x1ba0e2['frustum'][_0x46b397(0x1cc)]=_0x3c1e35;};};function createVertices(_0x4656f1){const _0x1e3c39=_0x4455d8,_0x20839d=_0x4656f1[_0x1e3c39(0x1ac)],_0x2b958b=_0x4656f1[_0x1e3c39(0x1ac)]+0x1,_0x5de17e=_0x4656f1[_0x1e3c39(0x212)];let _0x202dff=_0x2b958b*_0x2b958b+0x1,_0x33b213=Geoworld['ComponentDatatype'][_0x1e3c39(0x1a3)](Geoworld[_0x1e3c39(0x208)][_0x1e3c39(0x225)],_0x202dff*0x3),_0x3cf2dd=_0x4656f1['_horizontalFov']*Geoworld[_0x1e3c39(0x205)]['RADIANS_PER_DEGREE'],_0x30745d=_0x4656f1[_0x1e3c39(0x1d6)]*Geoworld[_0x1e3c39(0x205)][_0x1e3c39(0x1e5)],_0x3536ff=Math[_0x1e3c39(0x218)](_0x3cf2dd*0.5),_0x420550=Math[_0x1e3c39(0x218)](_0x30745d*0.5),_0x4758c5=Math['PI']-_0x3cf2dd*0.5,_0x5ba2f5=_0x5de17e*_0x420550,_0xd718c5=0x0,_0x2c25bf=0x0,_0x2f856a=_0x3cf2dd/_0x20839d,_0x4aa9e7=0x3;for(let _0x428135=0x0;_0x428135<_0x2b958b;_0x428135++){_0xd718c5=_0x4758c5+_0x428135*_0x2f856a;let _0x44d86a=_0x5ba2f5/(_0x5de17e/Math[_0x1e3c39(0x1ab)](_0xd718c5)),_0x339862=Math[_0x1e3c39(0x1ec)](_0x44d86a),_0x5cbf45=-_0x339862,_0x16bb8d=_0x339862*0x2/_0x20839d;for(let _0x1954a4=0x0;_0x1954a4<_0x2b958b;_0x1954a4++){_0x2c25bf=_0x5cbf45+_0x1954a4*_0x16bb8d;let _0x41ea8d=_0x5de17e*Math[_0x1e3c39(0x1ab)](_0x2c25bf)*Math['sin'](_0xd718c5),_0x16e9ef=_0x5de17e*Math[_0x1e3c39(0x1b7)](_0x2c25bf),_0x58dc90=_0x5de17e*Math[_0x1e3c39(0x1ab)](_0x2c25bf)*Math['cos'](_0xd718c5);_0x33b213[_0x4aa9e7++]=_0x41ea8d,_0x33b213[_0x4aa9e7++]=_0x16e9ef,_0x33b213[_0x4aa9e7++]=_0x58dc90;}}return _0x33b213;}function createFaceIndices(_0x3dde29){const _0x20fbad=_0x4455d8,_0x21c625=_0x3dde29[_0x20fbad(0x1ac)],_0x425c9a=_0x21c625+0x1;let _0x7bae08=_0x21c625*_0x21c625*0x3*0x2+_0x21c625*0x3*0x4,_0x219885=Geoworld[_0x20fbad(0x208)]['createTypedArray'](Geoworld[_0x20fbad(0x208)][_0x20fbad(0x1ee)],_0x7bae08),_0x4fbf52=0x0,_0x4f60e4=0x1;for(let _0x5065e3=0x0;_0x5065e3<_0x21c625;_0x5065e3++){for(let _0x1447d2=0x0;_0x1447d2<_0x21c625;_0x1447d2++){_0x219885[_0x4fbf52++]=_0x4f60e4+_0x5065e3+_0x1447d2*_0x425c9a,_0x219885[_0x4fbf52++]=_0x4f60e4+_0x5065e3+0x1+_0x1447d2*_0x425c9a,_0x219885[_0x4fbf52++]=_0x4f60e4+_0x5065e3+(_0x1447d2+0x1)*_0x425c9a,_0x219885[_0x4fbf52++]=_0x4f60e4+_0x5065e3+0x1+_0x1447d2*_0x425c9a,_0x219885[_0x4fbf52++]=_0x4f60e4+_0x5065e3+0x1+(_0x1447d2+0x1)*_0x425c9a,_0x219885[_0x4fbf52++]=_0x4f60e4+_0x5065e3+(_0x1447d2+0x1)*_0x425c9a;}}for(let _0x134cbd=0x0;_0x134cbd<_0x21c625;_0x134cbd++){_0x219885[_0x4fbf52++]=_0x134cbd+0x1+_0x4f60e4,_0x219885[_0x4fbf52++]=_0x134cbd+_0x4f60e4,_0x219885[_0x4fbf52++]=0x0,_0x219885[_0x4fbf52++]=0x0,_0x219885[_0x4fbf52++]=_0x134cbd+_0x21c625*_0x425c9a+_0x4f60e4,_0x219885[_0x4fbf52++]=_0x134cbd+0x1+_0x21c625*_0x425c9a+_0x4f60e4;}for(let _0x32fe6e=0x0;_0x32fe6e<_0x21c625;_0x32fe6e++){_0x219885[_0x4fbf52++]=0x0,_0x219885[_0x4fbf52++]=_0x32fe6e*_0x425c9a+_0x4f60e4,_0x219885[_0x4fbf52++]=(_0x32fe6e+0x1)*_0x425c9a+_0x4f60e4,_0x219885[_0x4fbf52++]=_0x21c625+(_0x32fe6e+0x1)*_0x425c9a+_0x4f60e4,_0x219885[_0x4fbf52++]=_0x21c625+_0x32fe6e*_0x425c9a+_0x4f60e4,_0x219885[_0x4fbf52++]=0x0;}return _0x219885;}function createLineIndices(_0x43bef2){const _0x52883f=_0x4455d8,_0x4e4e96=_0x43bef2['segmentCount'],_0x1df4c3=_0x4e4e96+0x1,_0x440f3e=(0x4+_0x4e4e96*0x5+_0x4e4e96*0x2*0x3)*0x2;let _0x36e2a3=Geoworld['ComponentDatatype'][_0x52883f(0x1a3)](Geoworld[_0x52883f(0x208)]['UNSIGNED_SHORT'],_0x440f3e),_0x211d57=0x0;_0x36e2a3[_0x211d57++]=0x0,_0x36e2a3[_0x211d57++]=0x1,_0x36e2a3[_0x211d57++]=0x0,_0x36e2a3[_0x211d57++]=_0x1df4c3,_0x36e2a3[_0x211d57++]=0x0,_0x36e2a3[_0x211d57++]=_0x4e4e96*_0x1df4c3+0x1,_0x36e2a3[_0x211d57++]=0x0,_0x36e2a3[_0x211d57++]=_0x1df4c3*_0x1df4c3;for(let _0x181792=0x0;_0x181792<0x5;_0x181792++){for(let _0x2408f1=0x0;_0x2408f1<_0x4e4e96;_0x2408f1++){_0x36e2a3[_0x211d57++]=0x1+_0x2408f1+_0x1df4c3*0x5*_0x181792,_0x36e2a3[_0x211d57++]=0x1+(_0x2408f1+0x1)+_0x1df4c3*0x5*_0x181792;}}for(let _0x58f4a3=0x0;_0x58f4a3<0x5;_0x58f4a3++){for(let _0x2a6dc7=0x0;_0x2a6dc7<_0x4e4e96;_0x2a6dc7++){_0x36e2a3[_0x211d57++]=0x1+_0x1df4c3*_0x2a6dc7+_0x58f4a3*0x5,_0x36e2a3[_0x211d57++]=0x1+_0x1df4c3*(_0x2a6dc7+0x1)+_0x58f4a3*0x5;}}return _0x36e2a3;}ViewShed3D['prototype']['_createCommand']=function(_0x57f740){const _0x1a8d31=_0x4455d8;let _0x3b750d=createVertices(this),_0x4ae470=createFaceIndices(this),_0x5b530f=createLineIndices(this),_0x1f3d06=_0x57f740[_0x1a8d31(0x1a7)],_0x916470=Geoworld[_0x1a8d31(0x211)][_0x1a8d31(0x213)]({'context':_0x1f3d06,'typedArray':_0x3b750d,'usage':Geoworld[_0x1a8d31(0x1f7)][_0x1a8d31(0x1b8)]}),_0x11e26b=Geoworld[_0x1a8d31(0x211)][_0x1a8d31(0x1af)]({'context':_0x1f3d06,'typedArray':_0x4ae470,'usage':Geoworld[_0x1a8d31(0x1f7)][_0x1a8d31(0x1b8)],'indexDatatype':Geoworld[_0x1a8d31(0x1c9)][_0x1a8d31(0x1ee)]}),_0x744c71=[{'index':0x0,'vertexBuffer':_0x916470,'componentsPerAttribute':0x3,'componentDatatype':Geoworld[_0x1a8d31(0x208)][_0x1a8d31(0x225)],'offsetInBytes':0x0,'strideInBytes':0x3*0x4,'normalize':![]}],_0x3e501e={'aPosition':0x0},_0x409694=new Geoworld['VertexArray']({'context':_0x1f3d06,'attributes':_0x744c71,'indexBuffer':_0x11e26b}),_0x49718b=new Geoworld[(_0x1a8d31(0x1e2))]({'sources':[_0x3d4f91]}),_0x53082d=new Geoworld[(_0x1a8d31(0x1e2))]({'sources':[_0x8bfc72]}),_0x11bcb3=Geoworld['ShaderProgram']['fromCache']({'context':_0x1f3d06,'vertexShaderSource':_0x49718b,'fragmentShaderSource':_0x53082d,'attributeLocations':_0x3e501e}),_0x40f84c=Geoworld[_0x1a8d31(0x1a2)][_0x1a8d31(0x1b9)]({'cull':{'enabled':![]},'depthTest':{'enabled':![]},'depthMask':![],'stencilTest':{'enabled':!![],'frontFunction':Geoworld['StencilFunction'][_0x1a8d31(0x21f)],'frontOperation':{'fail':Geoworld['StencilOperation']['KEEP'],'zFail':Geoworld['StencilOperation']['KEEP'],'zPass':Geoworld[_0x1a8d31(0x1e9)]['DECREMENT_WRAP']},'backFunction':Geoworld[_0x1a8d31(0x216)]['NOT_EQUAL'],'backOperation':{'fail':Geoworld['StencilOperation'][_0x1a8d31(0x215)],'zFail':Geoworld[_0x1a8d31(0x1e9)]['KEEP'],'zPass':Geoworld[_0x1a8d31(0x1e9)][_0x1a8d31(0x1d5)]},'reference':0x0,'mask':~0x0},'blending':Geoworld[_0x1a8d31(0x1d3)][_0x1a8d31(0x20a)]});this['colorCommand']=new Geoworld[(_0x1a8d31(0x226))]({'primitiveType':Geoworld['PrimitiveType']['TRIANGLES'],'modelMatrix':this[_0x1a8d31(0x1f8)],'boundingVolume':this['boundingSphere'],'pass':Geoworld[_0x1a8d31(0x1ba)]['OPAQUE'],'shaderProgram':_0x11bcb3,'vertexArray':_0x409694,'renderState':_0x40f84c,'owner':this,'cull':!![]}),this[_0x1a8d31(0x1f5)][_0x1a8d31(0x1ef)]={'uVisibleAreaColor':()=>{const _0x3bab4e=_0x1a8d31;return this[_0x3bab4e(0x1da)];},'uHiddenAreaColor':()=>{return this['_hiddenAreaColor'];},'uRenderTextureMatrix':()=>{const _0x337147=_0x1a8d31;return this[_0x337147(0x201)];},'uTextureSize':()=>{const _0x3ffc70=_0x1a8d31;let _0x182ef0=this[_0x3ffc70(0x1b5)][_0x3ffc70(0x1fc)];return new Geoworld['Cartesian2'](_0x182ef0[_0x3ffc70(0x224)],_0x182ef0[_0x3ffc70(0x1f1)]);},'uTexture':()=>{const _0x6364c3=_0x1a8d31;return this['cameraDepthBuffer'][_0x6364c3(0x1fc)];},'uGlobalDepthTexture':()=>{const _0x5785ee=_0x1a8d31;return this[_0x5785ee(0x1ca)]['depthTexture'];}};let _0x3fbde0=Geoworld[_0x1a8d31(0x226)][_0x1a8d31(0x1f9)](this[_0x1a8d31(0x1f5)]);_0x3fbde0[_0x1a8d31(0x223)]=Geoworld[_0x1a8d31(0x1a2)]['fromCache']({'depthMask':![],'colorMask':{'red':![],'green':![],'blue':![],'alpha':![]},'depthTest':{'enabled':!![],'func':Geoworld['DepthFunction']['GREATER']},'stencilTest':{'enabled':!![],'frontFunction':Geoworld[_0x1a8d31(0x216)][_0x1a8d31(0x1f6)],'frontOperation':{'fail':Geoworld['StencilOperation'][_0x1a8d31(0x215)],'zFail':Geoworld[_0x1a8d31(0x1e9)][_0x1a8d31(0x215)],'zPass':Geoworld[_0x1a8d31(0x1e9)]['INCREMENT_WRAP']},'backFunction':Geoworld[_0x1a8d31(0x216)][_0x1a8d31(0x1f6)],'backOperation':{'fail':Geoworld['StencilOperation'][_0x1a8d31(0x215)],'zFail':Geoworld[_0x1a8d31(0x1e9)]['KEEP'],'zPass':Geoworld['StencilOperation'][_0x1a8d31(0x1d5)]},'reference':0x0,'mask':~0x0}}),this[_0x1a8d31(0x1c4)]=_0x3fbde0;let _0x4cc7da=Geoworld[_0x1a8d31(0x211)][_0x1a8d31(0x1af)]({'context':_0x1f3d06,'typedArray':_0x5b530f,'usage':Geoworld[_0x1a8d31(0x1f7)]['STATIC_DRAW'],'indexDatatype':Geoworld[_0x1a8d31(0x1c9)][_0x1a8d31(0x1ee)]});this['lineCommand']=new Geoworld[(_0x1a8d31(0x226))]({'primitiveType':Geoworld['PrimitiveType'][_0x1a8d31(0x1b1)],'modelMatrix':this[_0x1a8d31(0x1f8)],'boundingVolume':this[_0x1a8d31(0x1cd)],'pass':Geoworld[_0x1a8d31(0x1ba)]['OPAQUE'],'owner':this,'cull':!![]}),this[_0x1a8d31(0x1e0)][_0x1a8d31(0x1ce)]=new Geoworld[(_0x1a8d31(0x1ad))]({'context':_0x1f3d06,'attributes':_0x744c71,'indexBuffer':_0x4cc7da}),this[_0x1a8d31(0x1e0)][_0x1a8d31(0x214)]=Geoworld[_0x1a8d31(0x1fb)][_0x1a8d31(0x1b9)]({'context':_0x1f3d06,'vertexShaderSource':_0x52211b,'fragmentShaderSource':_0x5868ba,'attributeLocations':_0x3e501e}),this[_0x1a8d31(0x1e0)][_0x1a8d31(0x223)]=Geoworld[_0x1a8d31(0x1a2)][_0x1a8d31(0x1b9)]({'cull':{'enabled':![]},'depthTest':{'enabled':!![]},'blending':Geoworld['BlendingState']['ALPHA_BLEND']}),this[_0x1a8d31(0x1e0)][_0x1a8d31(0x1ef)]={'uColor':()=>{const _0x545bea=_0x1a8d31;return this[_0x545bea(0x1dc)];}};},ViewShed3D['prototype'][_0x4455d8(0x1ea)]=function(_0x13d9f0){const _0x2a1df4=_0x4455d8;let _0xf93ec2=this['scene'][_0x2a1df4(0x1b0)],_0xc3ab3=_0xf93ec2[_0x2a1df4(0x19d)],_0x3db11a=Geoworld[_0x2a1df4(0x1fd)][_0x2a1df4(0x1eb)](_0x13d9f0)[0x0],_0x413a20=Geoworld[_0x2a1df4(0x1fd)][_0x2a1df4(0x1eb)](this[_0x2a1df4(0x20c)])[0x0],_0x92211a=new Geoworld[(_0x2a1df4(0x1fd))]();Geoworld[_0x2a1df4(0x1fd)]['subtract'](_0x3db11a,_0x413a20,_0x92211a);let _0x463c6e=Geoworld[_0x2a1df4(0x1fd)][_0x2a1df4(0x1bb)](_0x92211a);Geoworld['Cartesian3'][_0x2a1df4(0x1d0)](_0x92211a,_0x92211a),this[_0x2a1df4(0x1bf)]=_0x463c6e;let _0x593834=_0xf93ec2[_0x2a1df4(0x1f3)],_0x2b3bdb=_0xf93ec2[_0x2a1df4(0x1fa)],_0x25c116=_0xf93ec2[_0x2a1df4(0x1de)],_0x5972d5=new Geoworld[(_0x2a1df4(0x1fd))]();Geoworld[_0x2a1df4(0x1fd)][_0x2a1df4(0x20b)](_0xf93ec2[_0x2a1df4(0x1dd)],_0x5972d5);let _0x5bb827=_0x92211a[_0x2a1df4(0x20b)](),_0x35140b=_0x413a20[_0x2a1df4(0x20b)]();_0x35140b=Geoworld[_0x2a1df4(0x1fd)]['normalize'](_0x35140b,_0x35140b);Math[_0x2a1df4(0x1e6)](Geoworld[_0x2a1df4(0x1fd)][_0x2a1df4(0x1a9)](_0x35140b,_0x5bb827))>=0x1&&(Math['abs'](Geoworld['Cartesian3'][_0x2a1df4(0x1a9)](_0x5bb827,Geoworld['Cartesian3'][_0x2a1df4(0x19e)]))<0x1?_0x35140b=Geoworld[_0x2a1df4(0x1fd)][_0x2a1df4(0x20b)](Cartesian3[_0x2a1df4(0x19e)],_0x35140b):_0x35140b=Geoworld[_0x2a1df4(0x1fd)][_0x2a1df4(0x20b)](Cartesian3[_0x2a1df4(0x1c8)],_0x35140b));let _0x2594da=new Geoworld[(_0x2a1df4(0x1fd))]();Geoworld['Cartesian3'][_0x2a1df4(0x207)](_0x35140b,_0x5bb827,_0x2594da),_0x2594da=Geoworld['Cartesian3'][_0x2a1df4(0x1d0)](_0x2594da,_0x2594da),Geoworld[_0x2a1df4(0x1fd)][_0x2a1df4(0x207)](_0x5bb827,_0x2594da,_0x35140b),_0x35140b=Geoworld['Cartesian3'][_0x2a1df4(0x1d0)](_0x35140b,_0x35140b),_0xf93ec2[_0x2a1df4(0x1b3)]({'destination':_0x413a20,'orientation':{'direction':_0x5bb827,'up':_0x35140b},'convert':![]}),this[_0x2a1df4(0x1ae)]=_0xf93ec2['heading']*Geoworld[_0x2a1df4(0x205)]['DEGREES_PER_RADIAN'],this[_0x2a1df4(0x1fa)]=_0xf93ec2[_0x2a1df4(0x1fa)]*Geoworld[_0x2a1df4(0x205)][_0x2a1df4(0x1a5)],_0xf93ec2[_0x2a1df4(0x1b3)]({'destination':_0x5972d5,'orientation':{'heading':_0x593834,'pitch':_0x2b3bdb,'roll':_0x25c116},'convert':![]});},ViewShed3D[_0x4455d8(0x219)][_0x4455d8(0x1a0)]=function(){const _0x53c0b9=_0x4455d8;this[_0x53c0b9(0x1f5)]&&(this[_0x53c0b9(0x1f5)]['vertexArray']=this[_0x53c0b9(0x1f5)][_0x53c0b9(0x1ce)]&&!this['colorCommand'][_0x53c0b9(0x1ce)][_0x53c0b9(0x202)]()&&this[_0x53c0b9(0x1f5)][_0x53c0b9(0x1ce)][_0x53c0b9(0x1f4)](),this[_0x53c0b9(0x1f5)][_0x53c0b9(0x214)]=this[_0x53c0b9(0x1f5)][_0x53c0b9(0x214)]&&!this[_0x53c0b9(0x1f5)][_0x53c0b9(0x214)][_0x53c0b9(0x202)]()&&this['colorCommand']['shaderProgram']['destroy'](),this['colorCommand']=undefined),this['stencilCommand']&&(this[_0x53c0b9(0x1c4)][_0x53c0b9(0x1ce)]=this[_0x53c0b9(0x1c4)][_0x53c0b9(0x1ce)]&&!this[_0x53c0b9(0x1c4)][_0x53c0b9(0x1ce)]['isDestroyed']()&&this[_0x53c0b9(0x1c4)][_0x53c0b9(0x1ce)]['destroy'](),this['stencilCommand']['shaderProgram']=this['stencilCommand'][_0x53c0b9(0x214)]&&!this[_0x53c0b9(0x1c4)][_0x53c0b9(0x214)]['isDestroyed']()&&this[_0x53c0b9(0x1c4)]['shaderProgram'][_0x53c0b9(0x1f4)](),this['stencilCommand']=undefined),this[_0x53c0b9(0x1e0)]&&(this[_0x53c0b9(0x1e0)]['vertexArray']=this[_0x53c0b9(0x1e0)][_0x53c0b9(0x1ce)]&&!this[_0x53c0b9(0x1e0)]['vertexArray']['isDestroyed']()&&this[_0x53c0b9(0x1e0)][_0x53c0b9(0x1ce)][_0x53c0b9(0x1f4)](),this[_0x53c0b9(0x1e0)][_0x53c0b9(0x214)]=this[_0x53c0b9(0x1e0)][_0x53c0b9(0x214)]&&!this['lineCommand'][_0x53c0b9(0x214)]['isDestroyed']()&&this['lineCommand'][_0x53c0b9(0x214)][_0x53c0b9(0x1f4)](),this[_0x53c0b9(0x1e0)]=undefined);},ViewShed3D[_0x4455d8(0x219)][_0x4455d8(0x222)]=function(_0xce4845){const _0x24b3cd=_0x4455d8;if(_0xce4845[_0x24b3cd(0x1d8)]||_0xce4845[_0x24b3cd(0x19f)][_0x24b3cd(0x21c)]||_0xce4845[_0x24b3cd(0x19f)][_0x24b3cd(0x217)])return;this[_0x24b3cd(0x203)]&&(this[_0x24b3cd(0x203)]=![],this['_destroyCommand'](),this['_updateCamera'](_0xce4845),this[_0x24b3cd(0x1d7)](_0xce4845)),this[_0x24b3cd(0x1c4)]&&_0xce4845[_0x24b3cd(0x1a4)][_0x24b3cd(0x209)](this[_0x24b3cd(0x1c4)]),this['colorCommand']&&_0xce4845[_0x24b3cd(0x1a4)][_0x24b3cd(0x209)](this['colorCommand']),this['lineCommand']&&_0xce4845[_0x24b3cd(0x1a4)]['push'](this['lineCommand']);},ViewShed3D[_0x4455d8(0x219)][_0x4455d8(0x1be)]=function(){const _0x23c22f=_0x4455d8;this[_0x23c22f(0x19c)]='viewshed3d'+this['scene'][_0x23c22f(0x1db)][_0x23c22f(0x1c6)],this[_0x23c22f(0x20d)]=this[_0x23c22f(0x19c)]+_0x23c22f(0x1b2),this[_0x23c22f(0x1e7)]['_setRenderTarget'](this[_0x23c22f(0x19c)],this[_0x23c22f(0x1b5)]),this[_0x23c22f(0x1e7)]['_setRenderTarget'](this['globalName'],this['globalDepthBuffer']),this['scene'][_0x23c22f(0x21b)]['add'](this);},ViewShed3D[_0x4455d8(0x219)]['clear']=function(){const _0x58f538=_0x4455d8;this['scene']['_removeRenderTarget'](this[_0x58f538(0x19c)]),this[_0x58f538(0x1e7)][_0x58f538(0x200)](this[_0x58f538(0x20d)]),this['scene'][_0x58f538(0x21b)][_0x58f538(0x1c1)](this);},ViewShed3D[_0x4455d8(0x219)][_0x4455d8(0x202)]=function(){return ![];},ViewShed3D['prototype'][_0x4455d8(0x1f4)]=function(){const _0x5e4707=_0x4455d8;this[_0x5e4707(0x1b5)]=this[_0x5e4707(0x1b5)][_0x5e4707(0x1f4)](),this[_0x5e4707(0x1ca)]=this['globalDepthBuffer'][_0x5e4707(0x1f4)]();if(this[_0x5e4707(0x1f5)]){let _0x10fd2f=this[_0x5e4707(0x1f5)][_0x5e4707(0x1ce)],_0x2bceea=this[_0x5e4707(0x1f5)][_0x5e4707(0x214)];_0x10fd2f=_0x10fd2f&&!_0x10fd2f[_0x5e4707(0x202)]()&&_0x10fd2f[_0x5e4707(0x1f4)](),_0x2bceea=_0x2bceea&&!_0x2bceea[_0x5e4707(0x202)]()&&_0x2bceea[_0x5e4707(0x1f4)](),this['colorCommand']=undefined;}if(this[_0x5e4707(0x1c4)]){let _0x191488=this[_0x5e4707(0x1c4)][_0x5e4707(0x1ce)],_0x519160=this[_0x5e4707(0x1c4)]['shaderProgram'];_0x191488=_0x191488&&!_0x191488['isDestroyed']()&&_0x191488[_0x5e4707(0x1f4)](),_0x519160=_0x519160&&!_0x519160['isDestroyed']()&&_0x519160[_0x5e4707(0x1f4)](),this[_0x5e4707(0x1c4)]=undefined;}if(this[_0x5e4707(0x1e0)]){let _0x44c38b=this[_0x5e4707(0x1e0)][_0x5e4707(0x1ce)],_0x4fcfec=this['lineCommand'][_0x5e4707(0x214)];_0x44c38b=_0x44c38b&&!_0x44c38b[_0x5e4707(0x202)]()&&_0x44c38b['destroy'](),_0x4fcfec=_0x4fcfec&&!_0x4fcfec[_0x5e4707(0x202)]()&&_0x4fcfec[_0x5e4707(0x1f4)](),this[_0x5e4707(0x1e0)]=undefined;}}; const _0x14c8=['125271btusIu','getAttribute','toLowerCase','getElementsByTagNameNS','33LKdaXt','test','length','11875DFRcPE','queryStringAttribute','getAttributeNodeNS','3142oDqDbs','childNodes','queryChildNodes','queryBooleanValue','trim','34271Hekdam','3SFHRos','102712LpWWTJ','true','read','queryNumericAttribute','getChildValue','parseFromString','text/xml','nodeName','indexOf','queryNodes','8NSGNVB','queryBooleanAttribute','queryFirstNode','95878tIedbF','nextSibling','firstChild','attributes','xmldom','localName','8IOHjTH','queryStringValue','296540DktfDX','nodeType','textContent','2jZBWDD','prefix','push','nodeValue','loadXML','false','namespaceURI'];const _0xc12085=_0x409f;(function(_0xca24be,_0x3456b1){const _0x461af2=_0x409f;while(!![]){try{const _0x22538c=parseInt(_0x461af2(0x106))+-parseInt(_0x461af2(0x12b))*parseInt(_0x461af2(0x11f))+parseInt(_0x461af2(0x120))*parseInt(_0x461af2(0xfe))+-parseInt(_0x461af2(0x117))*-parseInt(_0x461af2(0x104))+parseInt(_0x461af2(0x109))*-parseInt(_0x461af2(0x110))+-parseInt(_0x461af2(0x121))+parseInt(_0x461af2(0x11a))*parseInt(_0x461af2(0x114));if(_0x22538c===_0x3456b1)break;else _0xca24be['push'](_0xca24be['shift']());}catch(_0x257004){_0xca24be['push'](_0xca24be['shift']());}}}(_0x14c8,0x25f2e));function XMLParser(){}function _0x409f(_0x14d2c4,_0x21d915){_0x14d2c4=_0x14d2c4-0xfc;let _0x14c83d=_0x14c8[_0x14d2c4];return _0x14c83d;}XMLParser[_0xc12085(0x123)]=function(_0x2c80fd){const _0x2ae126=_0xc12085;let _0x41a201=_0x2c80fd[_0x2ae126(0x129)]('<');_0x41a201>0x0&&(_0x2c80fd=_0x2c80fd['substring'](_0x41a201));if(DOMParser)return !XMLParser['xmldom']&&(XMLParser['xmldom']=new DOMParser()),XMLParser[_0x2ae126(0x102)][_0x2ae126(0x126)](_0x2c80fd,_0x2ae126(0x127));return !XMLParser[_0x2ae126(0x102)]&&(XMLParser['xmldom']=new ActiveXObject('Microsoft.XMLDOM')),XMLParser[_0x2ae126(0x102)][_0x2ae126(0x10d)](_0x2c80fd);},XMLParser[_0xc12085(0x113)]=function(_0x269f5d,_0x4779d2,_0x5c09af){const _0x4252a5=_0xc12085;let _0x4de152=[];if(_0x269f5d[_0x4252a5(0x113)])_0x4de152=_0x269f5d['getElementsByTagNameNS'](_0x4779d2,_0x5c09af);else {let _0x38ec0d=_0x269f5d['getElementsByTagName']('*'),_0x42e2ca,_0x578044;for(let _0x339276=0x0,_0x24c6df=_0x38ec0d[_0x4252a5(0x116)];_0x339276<_0x24c6df;++_0x339276){_0x42e2ca=_0x38ec0d[_0x339276],_0x578044=_0x42e2ca[_0x4252a5(0x10a)]?_0x42e2ca[_0x4252a5(0x10a)]+':'+_0x5c09af:_0x5c09af,(_0x5c09af==='*'||_0x578044===_0x42e2ca['nodeName'])&&((_0x4779d2==='*'||_0x4779d2===_0x42e2ca[_0x4252a5(0x10f)])&&_0x4de152[_0x4252a5(0x10b)](_0x42e2ca));}}return _0x4de152;},XMLParser['getAttributeNodeNS']=function(_0x9a6b03,_0x2bcaa2,_0x2feb6c){const _0x204e67=_0xc12085;let _0x537fa2=null;if(_0x9a6b03[_0x204e67(0x119)])_0x537fa2=_0x9a6b03[_0x204e67(0x119)](_0x2bcaa2,_0x2feb6c);else {let _0x462ff4=_0x9a6b03[_0x204e67(0x101)],_0x50b274,_0x5714ef;for(let _0x4f6f7f=0x0,_0x1ebd9b=_0x462ff4[_0x204e67(0x116)];_0x4f6f7f<_0x1ebd9b;++_0x4f6f7f){_0x50b274=_0x462ff4[_0x4f6f7f];if(_0x50b274[_0x204e67(0x10f)]===_0x2bcaa2){_0x5714ef=_0x50b274[_0x204e67(0x10a)]?_0x50b274[_0x204e67(0x10a)]+':'+_0x2feb6c:_0x2feb6c;if(_0x5714ef===_0x50b274[_0x204e67(0x128)]){_0x537fa2=_0x50b274;break;}}}}return _0x537fa2;},XMLParser[_0xc12085(0x125)]=function(_0x6445dd,_0x209805){const _0x252664=_0xc12085;let _0x24ab13=_0x209805||'';if(_0x6445dd)for(let _0x3eeac1=_0x6445dd[_0x252664(0x100)];_0x3eeac1;_0x3eeac1=_0x3eeac1[_0x252664(0xff)]){switch(_0x3eeac1[_0x252664(0x107)]){case 0x3:case 0x4:_0x24ab13+=_0x3eeac1[_0x252664(0x10c)];}}return _0x24ab13;},XMLParser[_0xc12085(0x124)]=function(_0x184d48,_0x11e0e4){if(!_0x184d48)return undefined;let _0x17ee6e=_0x184d48['getAttribute'](_0x11e0e4);if(_0x17ee6e!==null){let _0x1f9f72=parseFloat(_0x17ee6e);return !isNaN(_0x1f9f72)?_0x1f9f72:undefined;}return undefined;},XMLParser[_0xc12085(0x118)]=function(_0x9bf328,_0x3aec93){const _0x5561c7=_0xc12085;if(!_0x9bf328)return undefined;let _0xcf9ff0=_0x9bf328[_0x5561c7(0x111)](_0x3aec93);return _0xcf9ff0!==null?_0xcf9ff0:undefined;},XMLParser[_0xc12085(0xfc)]=function(_0xf72810,_0x217cef){const _0x13c106=_0xc12085;if(!_0xf72810)return undefined;let _0x427b2d=_0xf72810['getAttribute'](_0x217cef);_0x427b2d=_0x427b2d[_0x13c106(0x112)]();if(_0x13c106(0x10e)===_0x427b2d)return ![];if(_0x13c106(0x122)===_0x427b2d)return !![];return undefined;},XMLParser[_0xc12085(0xfd)]=function(_0x5a7c96,_0xcf54db,_0x4d7033){const _0x1f4411=_0xc12085;if(!_0x5a7c96)return undefined;let _0x379341=_0x5a7c96['childNodes'],_0xf24885=_0x379341[_0x1f4411(0x116)];for(let _0x4f3f51=0x0;_0x4f3f51<_0xf24885;_0x4f3f51++){let _0x5d4bbf=_0x379341[_0x4f3f51];if(_0x4d7033){if(_0x5d4bbf['localName']===_0xcf54db&&_0x4d7033[_0x1f4411(0x129)](_0x5d4bbf[_0x1f4411(0x10f)])!==-0x1)return _0x5d4bbf;}else {if(_0x5d4bbf[_0x1f4411(0x103)]===_0xcf54db)return _0x5d4bbf;}}return undefined;},XMLParser[_0xc12085(0x12a)]=function(_0x366cb9,_0x1d085a,_0x5237e2){const _0x3b9386=_0xc12085;if(!_0x366cb9)return undefined;let _0x28b81c=[],_0x556a35=_0x366cb9[_0x3b9386(0x113)]('*',_0x1d085a),_0x284ea3=_0x556a35[_0x3b9386(0x116)];for(let _0x27b388=0x0;_0x27b388<_0x284ea3;_0x27b388++){let _0x54d65b=_0x556a35[_0x27b388];_0x5237e2?_0x54d65b[_0x3b9386(0x103)]===_0x1d085a&&_0x5237e2[_0x3b9386(0x129)](_0x54d65b[_0x3b9386(0x10f)])!==-0x1&&_0x28b81c[_0x3b9386(0x10b)](_0x54d65b):_0x54d65b[_0x3b9386(0x103)]===_0x1d085a&&_0x28b81c['push'](_0x54d65b);}return _0x28b81c;},XMLParser[_0xc12085(0x11c)]=function(_0x1a3e92,_0x1d81e9,_0x28deb5){const _0xb4601e=_0xc12085;if(!_0x1a3e92)return [];let _0x29417c=[],_0x4ee54b=_0x1a3e92[_0xb4601e(0x11b)],_0x357b59=_0x4ee54b[_0xb4601e(0x116)];for(let _0x1717a1=0x0;_0x1717a1<_0x357b59;_0x1717a1++){let _0x2ac10d=_0x4ee54b[_0x1717a1];_0x28deb5?_0x2ac10d[_0xb4601e(0x103)]===_0x1d81e9&&_0x28deb5['indexOf'](_0x2ac10d[_0xb4601e(0x10f)])!==-0x1&&_0x29417c[_0xb4601e(0x10b)](_0x2ac10d):_0x2ac10d['localName']===_0x1d81e9&&_0x29417c[_0xb4601e(0x10b)](_0x2ac10d);}return _0x29417c;},XMLParser['queryNumericValue']=function(_0x4e72c2,_0x4dc6a5,_0x2bd5d1){const _0x5cdcd6=_0xc12085;let _0x29c17d=XMLParser[_0x5cdcd6(0xfd)](_0x4e72c2,_0x4dc6a5,_0x2bd5d1);if(_0x29c17d){let _0xec27bb=parseFloat(_0x29c17d[_0x5cdcd6(0x108)]);return !isNaN(_0xec27bb)?_0xec27bb:undefined;}return undefined;},XMLParser[_0xc12085(0x105)]=function(_0x4f166e,_0x2726db,_0x344dd2){const _0x30e950=_0xc12085;let _0x3108f4=XMLParser[_0x30e950(0xfd)](_0x4f166e,_0x2726db,_0x344dd2);if(_0x3108f4)return _0x3108f4[_0x30e950(0x108)][_0x30e950(0x11e)]();return undefined;},XMLParser[_0xc12085(0x11d)]=function(_0x30688b,_0x3898b8,_0x5ec76a){const _0x1c69cc=_0xc12085;let _0x6d4a54=XMLParser[_0x1c69cc(0xfd)](_0x30688b,_0x3898b8,_0x5ec76a);if(_0x6d4a54){let _0x4ba4a0=_0x6d4a54['textContent'][_0x1c69cc(0x11e)]();return _0x4ba4a0==='1'||/^true$/i[_0x1c69cc(0x115)](_0x4ba4a0);}return undefined;}; const _0x318d=['1PJPEkx','117422wvfQof','1032670MfzzCa','21hMsFdl','5555dzgnNF','7DjBlwr','488NZZPIw','844329yAQcfr','984576gWGLYb','freeze','1125753ycXsxD','44842KHBKrf'];const _0xff5053=_0x1468;(function(_0x4e48c5,_0x23b435){const _0x29496a=_0x1468;while(!![]){try{const _0x1e9a3b=-parseInt(_0x29496a(0xd0))+parseInt(_0x29496a(0xd9))*-parseInt(_0x29496a(0xd1))+-parseInt(_0x29496a(0xd5))*-parseInt(_0x29496a(0xce))+-parseInt(_0x29496a(0xcf))*parseInt(_0x29496a(0xd3))+parseInt(_0x29496a(0xd6))+-parseInt(_0x29496a(0xd8))+-parseInt(_0x29496a(0xd4))*-parseInt(_0x29496a(0xd2));if(_0x1e9a3b===_0x23b435)break;else _0x4e48c5['push'](_0x4e48c5['shift']());}catch(_0x5bfbb7){_0x4e48c5['push'](_0x4e48c5['shift']());}}}(_0x318d,0x96cd6));const FillStyle={'Fill':0x0,'WireFrame':0x1,'Fill_And_WireFrame':0x2};function _0x1468(_0x307be1,_0x1318d9){_0x307be1=_0x307be1-0xce;let _0x318df3=_0x318d[_0x307be1];return _0x318df3;}var _0x58394d = Object[_0xff5053(0xd7)](FillStyle); const _0x23d1=['7XDuIpz','104808LNRLCf','freeze','24988BQnoTh','940EGmguw','29lvMhyi','836156DZSEPo','1016234otTKbE','986621YLnUdV','448768stIpfJ','1DpBTUs'];const _0x24119d=_0x4263;(function(_0x29f962,_0x376098){const _0xe4b53=_0x4263;while(!![]){try{const _0x42d757=-parseInt(_0xe4b53(0x150))+-parseInt(_0xe4b53(0x153))*-parseInt(_0xe4b53(0x14f))+parseInt(_0xe4b53(0x151))+parseInt(_0xe4b53(0x152))+-parseInt(_0xe4b53(0x14d))*-parseInt(_0xe4b53(0x14e))+-parseInt(_0xe4b53(0x149))*parseInt(_0xe4b53(0x14a))+parseInt(_0xe4b53(0x14c));if(_0x42d757===_0x376098)break;else _0x29f962['push'](_0x29f962['shift']());}catch(_0x49824d){_0x29f962['push'](_0x29f962['shift']());}}}(_0x23d1,0x8c1cf));function _0x4263(_0x242c3c,_0x28a47a){_0x242c3c=_0x242c3c-0x149;let _0x23d1de=_0x23d1[_0x242c3c];return _0x23d1de;}const BillboardMode={'None':0x0,'FixedZ':0x1,'FixedXYZ':0x2};var _0x44d1c2 = Object[_0x24119d(0x14b)](BillboardMode); const _0x4e3b=['_altitudeMode','_lineColor','Check','number','RED','14gqcJig','_calloutWidth','_imageReady','_fillForeColor','prototype','842495umFMdb','53feBwAV','83MouYhe','6575BsJlCT','_emissionColor','defineProperties','object','altitudeMode\x20value','point\x20color','_image','_pointColor','_fillStyle','_dirty','1DGXECW','string','_billboardMode','92243PukQNE','_bottomAltitude','fillForeColor\x20value','_owner','911WqCduZ','_lineWidth','20599LgMRhV','clone','12lcBRbf','emission\x20color','line\x20color','typeOf','_pointSize','_calloutColor','NONE','154692dUaguD','Color','bottomAltitude\x20value','2411fvmahw','SCREEN_ALIGNED','fillStyle\x20value'];const _0x3c03d1=_0x1b4c;(function(_0x286090,_0x2fcca5){const _0x424b5d=_0x1b4c;while(!![]){try{const _0x286247=-parseInt(_0x424b5d(0x1dd))*parseInt(_0x424b5d(0x1cb))+parseInt(_0x424b5d(0x1eb))*-parseInt(_0x424b5d(0x1ca))+parseInt(_0x424b5d(0x1e1))*parseInt(_0x424b5d(0x1cc))+parseInt(_0x424b5d(0x1f3))*-parseInt(_0x424b5d(0x1df))+-parseInt(_0x424b5d(0x1e8))+-parseInt(_0x424b5d(0x1d9))+-parseInt(_0x424b5d(0x1c9))*-parseInt(_0x424b5d(0x1d6));if(_0x286247===_0x2fcca5)break;else _0x286090['push'](_0x286090['shift']());}catch(_0x24759e){_0x286090['push'](_0x286090['shift']());}}}(_0x4e3b,0x2c996));function _0x1b4c(_0x5c55eb,_0x42c28b){_0x5c55eb=_0x5c55eb-0x1c9;let _0x4e3b1e=_0x4e3b[_0x5c55eb];return _0x4e3b1e;}function Style3D(){const _0x458b75=_0x1b4c;this[_0x458b75(0x1f6)]=new Geoworld[(_0x458b75(0x1e9))](),this['_fillStyle']=_0x58394d['Fill'],this[_0x458b75(0x1ef)]=new Geoworld['Color'](),this[_0x458b75(0x1de)]=0x1,this[_0x458b75(0x1da)]=0x0,this[_0x458b75(0x1e5)]=0x1,this[_0x458b75(0x1d3)]=new Geoworld['Color'](),this[_0x458b75(0x1ee)]=Geoworld['HeightReference'][_0x458b75(0x1e7)],this['_emissionColor']=new Geoworld[(_0x458b75(0x1e9))](0x1,0x1,0x1,0x1),this[_0x458b75(0x1dc)]=undefined,this[_0x458b75(0x1d5)]=![],this[_0x458b75(0x1d2)]=undefined,this[_0x458b75(0x1f5)]=!![],this[_0x458b75(0x1e6)]=Geoworld['Color'][_0x458b75(0x1f2)],this[_0x458b75(0x1f4)]=0x1,this[_0x458b75(0x1d8)]=_0x44d1c2[_0x458b75(0x1ec)];}Object[_0x3c03d1(0x1ce)](Style3D[_0x3c03d1(0x1f7)],{'fillForeColor':{'get':function(){return this['_fillForeColor'];},'set':function(_0x7c146a){const _0x3e64c7=_0x3c03d1;Geoworld[_0x3e64c7(0x1f0)][_0x3e64c7(0x1e4)][_0x3e64c7(0x1cf)](_0x3e64c7(0x1db),_0x7c146a),Geoworld[_0x3e64c7(0x1e9)][_0x3e64c7(0x1e0)](_0x7c146a,this[_0x3e64c7(0x1f6)]);}},'bottomAltitude':{'get':function(){return this['_bottomAltitude'];},'set':function(_0x4a9f97){const _0x40674e=_0x3c03d1;Geoworld['Check'][_0x40674e(0x1e4)][_0x40674e(0x1f1)](_0x40674e(0x1ea),_0x4a9f97),this[_0x40674e(0x1da)]!==_0x4a9f97&&(this['_bottomAltitude']=_0x4a9f97,this[_0x40674e(0x1d5)]=!![]);}},'altitudeMode':{'get':function(){const _0x1b14f2=_0x3c03d1;return this[_0x1b14f2(0x1ee)];},'set':function(_0x103f3a){const _0x276dc9=_0x3c03d1;Geoworld[_0x276dc9(0x1f0)]['typeOf'][_0x276dc9(0x1f1)](_0x276dc9(0x1d0),_0x103f3a),this['_altitudeMode']=_0x103f3a;}},'fillStyle':{'get':function(){const _0x201a55=_0x3c03d1;return this[_0x201a55(0x1d4)];},'set':function(_0x1ded35){const _0x268840=_0x3c03d1;Geoworld['Check']['typeOf']['number'](_0x268840(0x1ed),_0x1ded35);let _0x4a0802=this['_fillStyle'];this['_fillStyle']=_0x1ded35,_0x1ded35!==_0x4a0802&&this[_0x268840(0x1dc)]&&this['_owner']['fillStyleChange']();}},'lineColor':{'get':function(){return this['_lineColor'];},'set':function(_0x1f6308){const _0x1124c3=_0x3c03d1;Geoworld[_0x1124c3(0x1f0)][_0x1124c3(0x1e4)]['object'](_0x1124c3(0x1e3),_0x1f6308),Geoworld[_0x1124c3(0x1e9)][_0x1124c3(0x1e0)](_0x1f6308,this[_0x1124c3(0x1ef)]);}},'lineWidth':{'get':function(){const _0x2d8ad8=_0x3c03d1;return this[_0x2d8ad8(0x1de)];},'set':function(_0x47df7d){const _0x936c96=_0x3c03d1;Geoworld[_0x936c96(0x1f0)][_0x936c96(0x1e4)][_0x936c96(0x1f1)]('line\x20width',_0x47df7d),this[_0x936c96(0x1de)]=_0x47df7d;}},'pointSize':{'get':function(){const _0xdc2b4a=_0x3c03d1;return this[_0xdc2b4a(0x1e5)];},'set':function(_0x5c15a3){const _0x2a35b9=_0x3c03d1;Geoworld[_0x2a35b9(0x1f0)][_0x2a35b9(0x1e4)][_0x2a35b9(0x1f1)]('point\x20size',_0x5c15a3),this[_0x2a35b9(0x1e5)]=_0x5c15a3;}},'pointColor':{'get':function(){const _0x5db283=_0x3c03d1;return this[_0x5db283(0x1d3)];},'set':function(_0x26a4ff){const _0x42a8b8=_0x3c03d1;Geoworld['Check'][_0x42a8b8(0x1e4)][_0x42a8b8(0x1cf)](_0x42a8b8(0x1d1),_0x26a4ff),Geoworld[_0x42a8b8(0x1e9)]['clone'](_0x26a4ff,this[_0x42a8b8(0x1d3)]);}},'emissionColor':{'get':function(){const _0x21f7ed=_0x3c03d1;return this[_0x21f7ed(0x1cd)];},'set':function(_0x177073){const _0x18c589=_0x3c03d1;Geoworld[_0x18c589(0x1f0)][_0x18c589(0x1e4)][_0x18c589(0x1cf)](_0x18c589(0x1e2),_0x177073),Geoworld[_0x18c589(0x1e9)][_0x18c589(0x1e0)](_0x177073,this[_0x18c589(0x1cd)]);}},'image':{'get':function(){const _0x252264=_0x3c03d1;return this[_0x252264(0x1d2)];},'set':function(_0x20a8d5){const _0x500b07=_0x3c03d1;this[_0x500b07(0x1f5)]=![],this[_0x500b07(0x1d2)]=_0x20a8d5,typeof _0x20a8d5===_0x500b07(0x1d7)?this['_loadImage']():this[_0x500b07(0x1f5)]=!![];}},'imageReady':{'get':function(){const _0x32bc90=_0x3c03d1;return this[_0x32bc90(0x1f5)];}},'calloutColor':{'get':function(){const _0x1b0b10=_0x3c03d1;return this[_0x1b0b10(0x1e6)];},'set':function(_0x1470b9){const _0x9ea352=_0x3c03d1;this[_0x9ea352(0x1e6)]!==_0x1470b9&&(this['_calloutColor']=_0x1470b9);}},'calloutWidth':{'get':function(){return this['_calloutWidth'];},'set':function(_0x263425){const _0x3454b2=_0x3c03d1;this[_0x3454b2(0x1f4)]!==_0x263425&&(this[_0x3454b2(0x1f4)]=_0x263425);}},'billboardMode':{'get':function(){const _0x517401=_0x3c03d1;return this[_0x517401(0x1d8)];},'set':function(_0x5bdbdc){const _0x2ebf8d=_0x3c03d1;this['_billboardMode']!==_0x5bdbdc&&(this[_0x2ebf8d(0x1d8)]=_0x5bdbdc);}}}); const _0x4066=['20798mqZvsC','385682HYdscF','612998SPgCRR','780487XMhprT','freeze','1125586gqwFcG','28011SpHPyX','191923ZNpOEo'];const _0x497623=_0x45a8;(function(_0x44e27e,_0x3059ac){const _0x33b1c0=_0x45a8;while(!![]){try{const _0x3636be=parseInt(_0x33b1c0(0x142))+parseInt(_0x33b1c0(0x13e))+parseInt(_0x33b1c0(0x13f))+parseInt(_0x33b1c0(0x13c))+-parseInt(_0x33b1c0(0x143))+parseInt(_0x33b1c0(0x13d))+-parseInt(_0x33b1c0(0x141));if(_0x3636be===_0x3059ac)break;else _0x44e27e['push'](_0x44e27e['shift']());}catch(_0x1f734e){_0x44e27e['push'](_0x44e27e['shift']());}}}(_0x4066,0x7ca03));function _0x45a8(_0x1d414f,_0x321a48){_0x1d414f=_0x1d414f-0x13c;let _0x40665b=_0x4066[_0x1d414f];return _0x40665b;}const ContentState={'UNLOADED':0x0,'LOADING':0x1,'PARSING':0x2,'READY':0x3,'FAILED':0x4};var _0x5a7352 = Object[_0x497623(0x140)](ContentState); const _0xbe42=['1rBBexP','706525OdutCP','freeze','4606980JsQePj','586142bgBQXU','9lyFTPn','127364IEeWpU','1719782SXNDJY','1601076SOhGei','208663mzwpZI'];const _0x51b4c8=_0x7508;function _0x7508(_0x301c7d,_0x1ecc0e){_0x301c7d=_0x301c7d-0x1ec;let _0xbe4215=_0xbe42[_0x301c7d];return _0xbe4215;}(function(_0x3b036f,_0x3424bd){const _0x272e55=_0x7508;while(!![]){try{const _0x20e7dc=-parseInt(_0x272e55(0x1f4))*-parseInt(_0x272e55(0x1ee))+parseInt(_0x272e55(0x1f2))+parseInt(_0x272e55(0x1f5))+parseInt(_0x272e55(0x1ef))*parseInt(_0x272e55(0x1f0))+parseInt(_0x272e55(0x1f1))+-parseInt(_0x272e55(0x1f3))+-parseInt(_0x272e55(0x1ed));if(_0x20e7dc===_0x3424bd)break;else _0x3b036f['push'](_0x3b036f['shift']());}catch(_0x3ad47d){_0x3b036f['push'](_0x3b036f['shift']());}}}(_0xbe42,0xe681e));const S3MPixelFormat={'LUMINANCE_8':0x1,'LUMINANCE_16':0x2,'ALPHA':0x3,'ALPHA_4_LUMINANCE_4':0x4,'LUMINANCE_ALPHA':0x5,'RGB_565':0x6,'BGR565':0x7,'RGB':0xa,'BGR':0xb,'ARGB':0xc,'ABGR':0xd,'BGRA':0xe,'WEBP':0x19,'RGBA':0x1c,'DXT1':0x11,'DXT2':0x12,'DXT3':0x13,'DXT4':0x14,'DXT5':0x15,'CRN_DXT5':0x1a,'STANDARD_CRN':0x1b};var _0x4b817e = Object[_0x51b4c8(0x1ec)](S3MPixelFormat); const _0x1f09=['183AmZrKP','1118lsuBEW','21DmlfWY','15791ZFvhID','1RhLUJY','freeze','838247wuymLi','707099GzDJHT','725199mNpRQe','311307yrLFgL','477350jtdhJF','1FoakBC'];const _0x1c7fc1=_0x3556;(function(_0x441854,_0x2fd7fd){const _0xe7a41b=_0x3556;while(!![]){try{const _0x436b19=-parseInt(_0xe7a41b(0xdc))+-parseInt(_0xe7a41b(0xda))*parseInt(_0xe7a41b(0xdd))+-parseInt(_0xe7a41b(0xd8))+parseInt(_0xe7a41b(0xdb))+parseInt(_0xe7a41b(0xdf))*-parseInt(_0xe7a41b(0xe0))+parseInt(_0xe7a41b(0xd9))*-parseInt(_0xe7a41b(0xd6))+-parseInt(_0xe7a41b(0xde))*-parseInt(_0xe7a41b(0xe1));if(_0x436b19===_0x2fd7fd)break;else _0x441854['push'](_0x441854['shift']());}catch(_0x417f99){_0x441854['push'](_0x441854['shift']());}}}(_0x1f09,0x68e77));function _0x3556(_0x20407c,_0x515940){_0x20407c=_0x20407c-0xd6;let _0x1f0906=_0x1f09[_0x20407c];return _0x1f0906;}const S3MCompressType={'encNONE':0x0,'enrS3TCDXTN':0xe,'enrPVRTPF_PVRTC2':0x13,'enrPVRTPF_PVRTC':0x14,'enrPVRTPF_PVRTC_4bpp':0x15,'enrPVRTPF_ETC1':0x16};var S3MCompressType$1 = Object[_0x1c7fc1(0xd7)](S3MCompressType); const _0x1fa4=['1AHYfjo','60876yePNHW','239865KkScOy','64456VJBzwV','3lmIKAP','234947LbgTxA','1nRwaat','freeze','331517oFlGfX','7398THEnQq','204942ISkZoE'];function _0x385b(_0x736b3,_0x3d8b8d){_0x736b3=_0x736b3-0x141;let _0x1fa4ca=_0x1fa4[_0x736b3];return _0x1fa4ca;}const _0x182c2c=_0x385b;(function(_0x292a7a,_0x42c447){const _0xb6273a=_0x385b;while(!![]){try{const _0x235f9e=parseInt(_0xb6273a(0x143))*-parseInt(_0xb6273a(0x144))+-parseInt(_0xb6273a(0x141))*-parseInt(_0xb6273a(0x142))+parseInt(_0xb6273a(0x148))+-parseInt(_0xb6273a(0x147))+parseInt(_0xb6273a(0x14a))+-parseInt(_0xb6273a(0x14b))*-parseInt(_0xb6273a(0x149))+-parseInt(_0xb6273a(0x146));if(_0x235f9e===_0x42c447)break;else _0x292a7a['push'](_0x292a7a['shift']());}catch(_0xf4c462){_0x292a7a['push'](_0x292a7a['shift']());}}}(_0x1fa4,0x1e905));const VertexCompressOptions={'SVC_Vertex':0x1,'SVC_Normal':0x2,'SVC_VertexColor':0x4,'SVC_SecondColor':0x8,'SVC_TexutreCoord':0x10,'SVC_TexutreCoordIsW':0x20};var _0x1d3947 = Object[_0x182c2c(0x145)](VertexCompressOptions); var tmp = {}; /* pako 1.0.4 nodeca/pako */(function(f){tmp = f();})(function(){return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r);}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1); } _utf8len[254] = _utf8len[254] = 1; // Invalid sequence start // convert string to array (typed, when possible) exports.string2buf = function (str) { var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; // count binary size for (m_pos = 0; m_pos < str_len; m_pos++) { c = str.charCodeAt(m_pos); if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) { c2 = str.charCodeAt(m_pos + 1); if ((c2 & 0xfc00) === 0xdc00) { c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); m_pos++; } } buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; } // allocate buffer buf = new utils.Buf8(buf_len); // convert for (i = 0, m_pos = 0; i < buf_len; m_pos++) { c = str.charCodeAt(m_pos); if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) { c2 = str.charCodeAt(m_pos + 1); if ((c2 & 0xfc00) === 0xdc00) { c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); m_pos++; } } if (c < 0x80) { /* one byte */ buf[i++] = c; } else if (c < 0x800) { /* two bytes */ buf[i++] = 0xC0 | (c >>> 6); buf[i++] = 0x80 | (c & 0x3f); } else if (c < 0x10000) { /* three bytes */ buf[i++] = 0xE0 | (c >>> 12); buf[i++] = 0x80 | (c >>> 6 & 0x3f); buf[i++] = 0x80 | (c & 0x3f); } else { /* four bytes */ buf[i++] = 0xf0 | (c >>> 18); buf[i++] = 0x80 | (c >>> 12 & 0x3f); buf[i++] = 0x80 | (c >>> 6 & 0x3f); buf[i++] = 0x80 | (c & 0x3f); } } return buf; }; // Helper (used in 2 places) function buf2binstring(buf, len) { // use fallback for big arrays to avoid stack overflow if (len < 65537) { if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) { return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); } } var result = ''; for (var i = 0; i < len; i++) { result += String.fromCharCode(buf[i]); } return result; } // Convert byte array to binary string exports.buf2binstring = function (buf) { return buf2binstring(buf, buf.length); }; // Convert binary string (typed, when possible) exports.binstring2buf = function (str) { var buf = new utils.Buf8(str.length); for (var i = 0, len = buf.length; i < len; i++) { buf[i] = str.charCodeAt(i); } return buf; }; // convert array to string exports.buf2string = function (buf, max) { var i, out, c, c_len; var len = max || buf.length; // Reserve max possible length (2 words per char) // NB: by unknown reasons, Array is significantly faster for // String.fromCharCode.apply than Uint16Array. var utf16buf = new Array(len * 2); for (out = 0, i = 0; i < len;) { c = buf[i++]; // quick process ascii if (c < 0x80) { utf16buf[out++] = c; continue; } c_len = _utf8len[c]; // skip 5 & 6 byte codes if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; } // apply mask on first byte c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; // join the rest while (c_len > 1 && i < len) { c = (c << 6) | (buf[i++] & 0x3f); c_len--; } // terminated by end of string? if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } if (c < 0x10000) { utf16buf[out++] = c; } else { c -= 0x10000; utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); utf16buf[out++] = 0xdc00 | (c & 0x3ff); } } return buf2binstring(utf16buf, out); }; // Calculate max possible position in utf8 buffer, // that will not break sequence. If that's not possible // - (very small limits) return max size as is. // // buf[] - utf8 bytes array // max - length limit (mandatory); exports.utf8border = function (buf, max) { var pos; max = max || buf.length; if (max > buf.length) { max = buf.length; } // go back from last position, until start of sequence found pos = max - 1; while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } // Fuckup - very small and broken sequence, // return max, because we should return something anyway. if (pos < 0) { return max; } // If we came to start of buffer - that means vuffer is too small, // return max too. if (pos === 0) { return max; } return (pos + _utf8len[buf[pos]] > max) ? pos : max; }; },{"./common":1}],3:[function(require,module,exports){ // Note: adler32 takes 12% for level 0 and 2% for level 6. // It doesn't worth to make additional optimizationa as in original. // Small size is preferable. function adler32(adler, buf, len, pos) { var s1 = (adler & 0xffff) |0, s2 = ((adler >>> 16) & 0xffff) |0, n = 0; while (len !== 0) { // Set limit ~ twice less than 5552, to keep // s2 in 31-bits, because we force signed ints. // in other case %= will fail. n = len > 2000 ? 2000 : len; len -= n; do { s1 = (s1 + buf[pos++]) |0; s2 = (s2 + s1) |0; } while (--n); s1 %= 65521; s2 %= 65521; } return (s1 | (s2 << 16)) |0; } module.exports = adler32; },{}],4:[function(require,module,exports){ module.exports = { /* Allowed flush values; see deflate() and inflate() below for details */ Z_NO_FLUSH: 0, Z_PARTIAL_FLUSH: 1, Z_SYNC_FLUSH: 2, Z_FULL_FLUSH: 3, Z_FINISH: 4, Z_BLOCK: 5, Z_TREES: 6, /* Return codes for the compression/decompression functions. Negative values * are errors, positive values are used for special but normal events. */ Z_OK: 0, Z_STREAM_END: 1, Z_NEED_DICT: 2, Z_ERRNO: -1, Z_STREAM_ERROR: -2, Z_DATA_ERROR: -3, //Z_MEM_ERROR: -4, Z_BUF_ERROR: -5, //Z_VERSION_ERROR: -6, /* compression levels */ Z_NO_COMPRESSION: 0, Z_BEST_SPEED: 1, Z_BEST_COMPRESSION: 9, Z_DEFAULT_COMPRESSION: -1, Z_FILTERED: 1, Z_HUFFMAN_ONLY: 2, Z_RLE: 3, Z_FIXED: 4, Z_DEFAULT_STRATEGY: 0, /* Possible values of the data_type field (though see inflate()) */ Z_BINARY: 0, Z_TEXT: 1, //Z_ASCII: 1, // = Z_TEXT (deprecated) Z_UNKNOWN: 2, /* The deflate compression method */ Z_DEFLATED: 8 //Z_NULL: null // Use -1 or null inline, depending on var type }; },{}],5:[function(require,module,exports){ // Note: we can't get significant speed boost here. // So write code to minimize size - no pregenerated tables // and array tools dependencies. // Use ordinary array, since untyped makes no boost here function makeTable() { var c, table = []; for (var n = 0; n < 256; n++) { c = n; for (var k = 0; k < 8; k++) { c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); } table[n] = c; } return table; } // Create table on load. Just 255 signed longs. Not a problem. var crcTable = makeTable(); function crc32(crc, buf, len, pos) { var t = crcTable, end = pos + len; crc ^= -1; for (var i = pos; i < end; i++) { crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; } return (crc ^ (-1)); // >>> 0; } module.exports = crc32; },{}],6:[function(require,module,exports){ function GZheader() { /* true if compressed data believed to be text */ this.text = 0; /* modification time */ this.time = 0; /* extra flags (not used when writing a gzip file) */ this.xflags = 0; /* operating system */ this.os = 0; /* pointer to extra field or Z_NULL if none */ this.extra = null; /* extra field length (valid if extra != Z_NULL) */ this.extra_len = 0; // Actually, we don't need it in JS, // but leave for few code modifications // // Setup limits is not necessary because in js we should not preallocate memory // for inflate use constant limit in 65536 bytes // /* space at extra (only when reading header) */ // this.extra_max = 0; /* pointer to zero-terminated file name or Z_NULL */ this.name = ''; /* space at name (only when reading header) */ // this.name_max = 0; /* pointer to zero-terminated comment or Z_NULL */ this.comment = ''; /* space at comment (only when reading header) */ // this.comm_max = 0; /* true if there was or will be a header crc */ this.hcrc = 0; /* true when done reading gzip header (not used when writing a gzip file) */ this.done = false; } module.exports = GZheader; },{}],7:[function(require,module,exports){ // See state defs from inflate.js var BAD = 30; /* got a data error -- remain here until reset */ var TYPE = 12; /* i: waiting for type bits, including last-flag bit */ /* Decode literal, length, and distance codes and write out the resulting literal and match bytes until either not enough input or output is available, an end-of-block is encountered, or a data error is encountered. When large enough input and output buffers are supplied to inflate(), for example, a 16K input buffer and a 64K output buffer, more than 95% of the inflate execution time is spent in this routine. Entry assumptions: state.mode === LEN strm.avail_in >= 6 strm.avail_out >= 258 start >= strm.avail_out state.bits < 8 On return, state.mode is one of: LEN -- ran out of enough output space or enough available input TYPE -- reached end of block code, inflate() to interpret next block BAD -- error in block data Notes: - The maximum input bits used by a length/distance pair is 15 bits for the length code, 5 bits for the length extra, 15 bits for the distance code, and 13 bits for the distance extra. This totals 48 bits, or six bytes. Therefore if strm.avail_in >= 6, then there is enough input to avoid checking for available input while decoding. - The maximum bytes that a single length/distance pair can output is 258 bytes, which is the maximum length that can be coded. inflate_fast() requires strm.avail_out >= 258 for each loop to avoid checking for output space. */ module.exports = function inflate_fast(strm, start) { var state; var _in; /* local strm.input */ var last; /* have enough input while in < last */ var _out; /* local strm.output */ var beg; /* inflate()'s initial strm.output */ var end; /* while out < end, enough space available */ //#ifdef INFLATE_STRICT var dmax; /* maximum distance from zlib header */ //#endif var wsize; /* window size or zero if not using window */ var whave; /* valid bytes in the window */ var wnext; /* window write index */ // Use `s_window` instead `window`, avoid conflict with instrumentation tools var s_window; /* allocated sliding window, if wsize != 0 */ var hold; /* local strm.hold */ var bits; /* local strm.bits */ var lcode; /* local strm.lencode */ var dcode; /* local strm.distcode */ var lmask; /* mask for first level of length codes */ var dmask; /* mask for first level of distance codes */ var here; /* retrieved table entry */ var op; /* code bits, operation, extra bits, or */ /* window position, window bytes to copy */ var len; /* match length, unused bytes */ var dist; /* match distance */ var from; /* where to copy match from */ var from_source; var input, output; // JS specific, because we have no pointers /* copy state to local variables */ state = strm.state; //here = state.here; _in = strm.next_in; input = strm.input; last = _in + (strm.avail_in - 5); _out = strm.next_out; output = strm.output; beg = _out - (start - strm.avail_out); end = _out + (strm.avail_out - 257); //#ifdef INFLATE_STRICT dmax = state.dmax; //#endif wsize = state.wsize; whave = state.whave; wnext = state.wnext; s_window = state.window; hold = state.hold; bits = state.bits; lcode = state.lencode; dcode = state.distcode; lmask = (1 << state.lenbits) - 1; dmask = (1 << state.distbits) - 1; /* decode literals and length/distances until end-of-block or not enough input data or output space */ top: do { if (bits < 15) { hold += input[_in++] << bits; bits += 8; hold += input[_in++] << bits; bits += 8; } here = lcode[hold & lmask]; dolen: for (;;) { // Goto emulation op = here >>> 24/*here.bits*/; hold >>>= op; bits -= op; op = (here >>> 16) & 0xff/*here.op*/; if (op === 0) { /* literal */ //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? // "inflate: literal '%c'\n" : // "inflate: literal 0x%02x\n", here.val)); output[_out++] = here & 0xffff/*here.val*/; } else if (op & 16) { /* length base */ len = here & 0xffff/*here.val*/; op &= 15; /* number of extra bits */ if (op) { if (bits < op) { hold += input[_in++] << bits; bits += 8; } len += hold & ((1 << op) - 1); hold >>>= op; bits -= op; } //Tracevv((stderr, "inflate: length %u\n", len)); if (bits < 15) { hold += input[_in++] << bits; bits += 8; hold += input[_in++] << bits; bits += 8; } here = dcode[hold & dmask]; dodist: for (;;) { // goto emulation op = here >>> 24/*here.bits*/; hold >>>= op; bits -= op; op = (here >>> 16) & 0xff/*here.op*/; if (op & 16) { /* distance base */ dist = here & 0xffff/*here.val*/; op &= 15; /* number of extra bits */ if (bits < op) { hold += input[_in++] << bits; bits += 8; if (bits < op) { hold += input[_in++] << bits; bits += 8; } } dist += hold & ((1 << op) - 1); //#ifdef INFLATE_STRICT if (dist > dmax) { strm.msg = 'invalid distance too far back'; state.mode = BAD; break top; } //#endif hold >>>= op; bits -= op; //Tracevv((stderr, "inflate: distance %u\n", dist)); op = _out - beg; /* max distance in output */ if (dist > op) { /* see if copy from window */ op = dist - op; /* distance back in window */ if (op > whave) { if (state.sane) { strm.msg = 'invalid distance too far back'; state.mode = BAD; break top; } // (!) This block is disabled in zlib defailts, // don't enable it for binary compatibility //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR // if (len <= op - whave) { // do { // output[_out++] = 0; // } while (--len); // continue top; // } // len -= op - whave; // do { // output[_out++] = 0; // } while (--op > whave); // if (op === 0) { // from = _out - dist; // do { // output[_out++] = output[from++]; // } while (--len); // continue top; // } //#endif } from = 0; // window index from_source = s_window; if (wnext === 0) { /* very common case */ from += wsize - op; if (op < len) { /* some from window */ len -= op; do { output[_out++] = s_window[from++]; } while (--op); from = _out - dist; /* rest from output */ from_source = output; } } else if (wnext < op) { /* wrap around window */ from += wsize + wnext - op; op -= wnext; if (op < len) { /* some from end of window */ len -= op; do { output[_out++] = s_window[from++]; } while (--op); from = 0; if (wnext < len) { /* some from start of window */ op = wnext; len -= op; do { output[_out++] = s_window[from++]; } while (--op); from = _out - dist; /* rest from output */ from_source = output; } } } else { /* contiguous in window */ from += wnext - op; if (op < len) { /* some from window */ len -= op; do { output[_out++] = s_window[from++]; } while (--op); from = _out - dist; /* rest from output */ from_source = output; } } while (len > 2) { output[_out++] = from_source[from++]; output[_out++] = from_source[from++]; output[_out++] = from_source[from++]; len -= 3; } if (len) { output[_out++] = from_source[from++]; if (len > 1) { output[_out++] = from_source[from++]; } } } else { from = _out - dist; /* copy direct from output */ do { /* minimum length is three */ output[_out++] = output[from++]; output[_out++] = output[from++]; output[_out++] = output[from++]; len -= 3; } while (len > 2); if (len) { output[_out++] = output[from++]; if (len > 1) { output[_out++] = output[from++]; } } } } else if ((op & 64) === 0) { /* 2nd level distance code */ here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; continue dodist; } else { strm.msg = 'invalid distance code'; state.mode = BAD; break top; } break; // need to emulate goto via "continue" } } else if ((op & 64) === 0) { /* 2nd level length code */ here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; continue dolen; } else if (op & 32) { /* end-of-block */ //Tracevv((stderr, "inflate: end of block\n")); state.mode = TYPE; break top; } else { strm.msg = 'invalid literal/length code'; state.mode = BAD; break top; } break; // need to emulate goto via "continue" } } while (_in < last && _out < end); /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ len = bits >> 3; _in -= len; bits -= len << 3; hold &= (1 << bits) - 1; /* update state and return */ strm.next_in = _in; strm.next_out = _out; strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last)); strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end)); state.hold = hold; state.bits = bits; return; }; },{}],8:[function(require,module,exports){ var utils = require('../utils/common'); var adler32 = require('./adler32'); var crc32 = require('./crc32'); var inflate_fast = require('./inffast'); var inflate_table = require('./inftrees'); var CODES = 0; var LENS = 1; var DISTS = 2; /* Public constants ==========================================================*/ /* ===========================================================================*/ /* Allowed flush values; see deflate() and inflate() below for details */ //var Z_NO_FLUSH = 0; //var Z_PARTIAL_FLUSH = 1; //var Z_SYNC_FLUSH = 2; //var Z_FULL_FLUSH = 3; var Z_FINISH = 4; var Z_BLOCK = 5; var Z_TREES = 6; /* Return codes for the compression/decompression functions. Negative values * are errors, positive values are used for special but normal events. */ var Z_OK = 0; var Z_STREAM_END = 1; var Z_NEED_DICT = 2; //var Z_ERRNO = -1; var Z_STREAM_ERROR = -2; var Z_DATA_ERROR = -3; var Z_MEM_ERROR = -4; var Z_BUF_ERROR = -5; //var Z_VERSION_ERROR = -6; /* The deflate compression method */ var Z_DEFLATED = 8; /* STATES ====================================================================*/ /* ===========================================================================*/ var HEAD = 1; /* i: waiting for magic header */ var FLAGS = 2; /* i: waiting for method and flags (gzip) */ var TIME = 3; /* i: waiting for modification time (gzip) */ var OS = 4; /* i: waiting for extra flags and operating system (gzip) */ var EXLEN = 5; /* i: waiting for extra length (gzip) */ var EXTRA = 6; /* i: waiting for extra bytes (gzip) */ var NAME = 7; /* i: waiting for end of file name (gzip) */ var COMMENT = 8; /* i: waiting for end of comment (gzip) */ var HCRC = 9; /* i: waiting for header crc (gzip) */ var DICTID = 10; /* i: waiting for dictionary check value */ var DICT = 11; /* waiting for inflateSetDictionary() call */ var TYPE = 12; /* i: waiting for type bits, including last-flag bit */ var TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */ var STORED = 14; /* i: waiting for stored size (length and complement) */ var COPY_ = 15; /* i/o: same as COPY below, but only first time in */ var COPY = 16; /* i/o: waiting for input or output to copy stored block */ var TABLE = 17; /* i: waiting for dynamic block table lengths */ var LENLENS = 18; /* i: waiting for code length code lengths */ var CODELENS = 19; /* i: waiting for length/lit and distance code lengths */ var LEN_ = 20; /* i: same as LEN below, but only first time in */ var LEN = 21; /* i: waiting for length/lit/eob code */ var LENEXT = 22; /* i: waiting for length extra bits */ var DIST = 23; /* i: waiting for distance code */ var DISTEXT = 24; /* i: waiting for distance extra bits */ var MATCH = 25; /* o: waiting for output space to copy string */ var LIT = 26; /* o: waiting for output space to write literal */ var CHECK = 27; /* i: waiting for 32-bit check value */ var LENGTH = 28; /* i: waiting for 32-bit length (gzip) */ var DONE = 29; /* finished check, done -- remain here until reset */ var BAD = 30; /* got a data error -- remain here until reset */ var MEM = 31; /* got an inflate() memory error -- remain here until reset */ var SYNC = 32; /* looking for synchronization bytes to restart inflate() */ /* ===========================================================================*/ var ENOUGH_LENS = 852; var ENOUGH_DISTS = 592; //var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); var MAX_WBITS = 15; /* 32K LZ77 window */ var DEF_WBITS = MAX_WBITS; function zswap32(q) { return (((q >>> 24) & 0xff) + ((q >>> 8) & 0xff00) + ((q & 0xff00) << 8) + ((q & 0xff) << 24)); } function InflateState() { this.mode = 0; /* current inflate mode */ this.last = false; /* true if processing last block */ this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */ this.havedict = false; /* true if dictionary provided */ this.flags = 0; /* gzip header method and flags (0 if zlib) */ this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */ this.check = 0; /* protected copy of check value */ this.total = 0; /* protected copy of output count */ // TODO: may be {} this.head = null; /* where to save gzip header information */ /* sliding window */ this.wbits = 0; /* log base 2 of requested window size */ this.wsize = 0; /* window size or zero if not using window */ this.whave = 0; /* valid bytes in the window */ this.wnext = 0; /* window write index */ this.window = null; /* allocated sliding window, if needed */ /* bit accumulator */ this.hold = 0; /* input bit accumulator */ this.bits = 0; /* number of bits in "in" */ /* for string and stored block copying */ this.length = 0; /* literal or length of data to copy */ this.offset = 0; /* distance back to copy string from */ /* for table and code decoding */ this.extra = 0; /* extra bits needed */ /* fixed and dynamic code tables */ this.lencode = null; /* starting table for length/literal codes */ this.distcode = null; /* starting table for distance codes */ this.lenbits = 0; /* index bits for lencode */ this.distbits = 0; /* index bits for distcode */ /* dynamic table building */ this.ncode = 0; /* number of code length code lengths */ this.nlen = 0; /* number of length code lengths */ this.ndist = 0; /* number of distance code lengths */ this.have = 0; /* number of code lengths in lens[] */ this.next = null; /* next available space in codes[] */ this.lens = new utils.Buf16(320); /* temporary storage for code lengths */ this.work = new utils.Buf16(288); /* work area for code table building */ /* because we don't have pointers in js, we use lencode and distcode directly as buffers so we don't need codes */ //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */ this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */ this.distdyn = null; /* dynamic table for distance codes (JS specific) */ this.sane = 0; /* if false, allow invalid distance too far */ this.back = 0; /* bits back of last unprocessed length/lit */ this.was = 0; /* initial length of match */ } function inflateResetKeep(strm) { var state; if (!strm || !strm.state) { return Z_STREAM_ERROR; } state = strm.state; strm.total_in = strm.total_out = state.total = 0; strm.msg = ''; /*Z_NULL*/ if (state.wrap) { /* to support ill-conceived Java test suite */ strm.adler = state.wrap & 1; } state.mode = HEAD; state.last = 0; state.havedict = 0; state.dmax = 32768; state.head = null/*Z_NULL*/; state.hold = 0; state.bits = 0; //state.lencode = state.distcode = state.next = state.codes; state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS); state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS); state.sane = 1; state.back = -1; //Tracev((stderr, "inflate: reset\n")); return Z_OK; } function inflateReset(strm) { var state; if (!strm || !strm.state) { return Z_STREAM_ERROR; } state = strm.state; state.wsize = 0; state.whave = 0; state.wnext = 0; return inflateResetKeep(strm); } function inflateReset2(strm, windowBits) { var wrap; var state; /* get the state */ if (!strm || !strm.state) { return Z_STREAM_ERROR; } state = strm.state; /* extract wrap request from windowBits parameter */ if (windowBits < 0) { wrap = 0; windowBits = -windowBits; } else { wrap = (windowBits >> 4) + 1; if (windowBits < 48) { windowBits &= 15; } } /* set number of window bits, free window if different */ if (windowBits && (windowBits < 8 || windowBits > 15)) { return Z_STREAM_ERROR; } if (state.window !== null && state.wbits !== windowBits) { state.window = null; } /* update state and reset the rest of it */ state.wrap = wrap; state.wbits = windowBits; return inflateReset(strm); } function inflateInit2(strm, windowBits) { var ret; var state; if (!strm) { return Z_STREAM_ERROR; } //strm.msg = Z_NULL; /* in case we return an error */ state = new InflateState(); //if (state === Z_NULL) return Z_MEM_ERROR; //Tracev((stderr, "inflate: allocated\n")); strm.state = state; state.window = null/*Z_NULL*/; ret = inflateReset2(strm, windowBits); if (ret !== Z_OK) { strm.state = null/*Z_NULL*/; } return ret; } function inflateInit(strm) { return inflateInit2(strm, DEF_WBITS); } /* Return state with length and distance decoding tables and index sizes set to fixed code decoding. Normally this returns fixed tables from inffixed.h. If BUILDFIXED is defined, then instead this routine builds the tables the first time it's called, and returns those tables the first time and thereafter. This reduces the size of the code by about 2K bytes, in exchange for a little execution time. However, BUILDFIXED should not be used for threaded applications, since the rewriting of the tables and virgin may not be thread-safe. */ var virgin = true; var lenfix, distfix; // We have no pointers in JS, so keep tables separate function fixedtables(state) { /* build fixed huffman tables if first call (may not be thread safe) */ if (virgin) { var sym; lenfix = new utils.Buf32(512); distfix = new utils.Buf32(32); /* literal/length table */ sym = 0; while (sym < 144) { state.lens[sym++] = 8; } while (sym < 256) { state.lens[sym++] = 9; } while (sym < 280) { state.lens[sym++] = 7; } while (sym < 288) { state.lens[sym++] = 8; } inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); /* distance table */ sym = 0; while (sym < 32) { state.lens[sym++] = 5; } inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); /* do this just once */ virgin = false; } state.lencode = lenfix; state.lenbits = 9; state.distcode = distfix; state.distbits = 5; } /* Update the window with the last wsize (normally 32K) bytes written before returning. If window does not exist yet, create it. This is only called when a window is already in use, or when output has been written during this inflate call, but the end of the deflate stream has not been reached yet. It is also called to create a window for dictionary data when a dictionary is loaded. Providing output buffers larger than 32K to inflate() should provide a speed advantage, since only the last 32K of output is copied to the sliding window upon return from inflate(), and since all distances after the first 32K of output will fall in the output data, making match copies simpler and faster. The advantage may be dependent on the size of the processor's data caches. */ function updatewindow(strm, src, end, copy) { var dist; var state = strm.state; /* if it hasn't been done already, allocate space for the window */ if (state.window === null) { state.wsize = 1 << state.wbits; state.wnext = 0; state.whave = 0; state.window = new utils.Buf8(state.wsize); } /* copy state->wsize or less output bytes into the circular window */ if (copy >= state.wsize) { utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0); state.wnext = 0; state.whave = state.wsize; } else { dist = state.wsize - state.wnext; if (dist > copy) { dist = copy; } //zmemcpy(state->window + state->wnext, end - copy, dist); utils.arraySet(state.window, src, end - copy, dist, state.wnext); copy -= dist; if (copy) { //zmemcpy(state->window, end - copy, copy); utils.arraySet(state.window, src, end - copy, copy, 0); state.wnext = copy; state.whave = state.wsize; } else { state.wnext += dist; if (state.wnext === state.wsize) { state.wnext = 0; } if (state.whave < state.wsize) { state.whave += dist; } } } return 0; } function inflate(strm, flush) { var state; var input, output; // input/output buffers var next; /* next input INDEX */ var put; /* next output INDEX */ var have, left; /* available input and output */ var hold; /* bit buffer */ var bits; /* bits in bit buffer */ var _in, _out; /* save starting available input and output */ var copy; /* number of stored or match bytes to copy */ var from; /* where to copy match bytes from */ var from_source; var here = 0; /* current decoding table entry */ var here_bits, here_op, here_val; // paked "here" denormalized (JS specific) //var last; /* parent table entry */ var last_bits, last_op, last_val; // paked "last" denormalized (JS specific) var len; /* length to copy for repeats, bits to drop */ var ret; /* return code */ var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */ var opts; var n; // temporary var for NEED_BITS var order = /* permutation of code lengths */ [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]; if (!strm || !strm.state || !strm.output || (!strm.input && strm.avail_in !== 0)) { return Z_STREAM_ERROR; } state = strm.state; if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */ //--- LOAD() --- put = strm.next_out; output = strm.output; left = strm.avail_out; next = strm.next_in; input = strm.input; have = strm.avail_in; hold = state.hold; bits = state.bits; //--- _in = have; _out = left; ret = Z_OK; inf_leave: // goto emulation for (;;) { switch (state.mode) { case HEAD: if (state.wrap === 0) { state.mode = TYPEDO; break; } //=== NEEDBITS(16); while (bits < 16) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */ state.check = 0/*crc32(0L, Z_NULL, 0)*/; //=== CRC2(state.check, hold); hbuf[0] = hold & 0xff; hbuf[1] = (hold >>> 8) & 0xff; state.check = crc32(state.check, hbuf, 2, 0); //===// //=== INITBITS(); hold = 0; bits = 0; //===// state.mode = FLAGS; break; } state.flags = 0; /* expect zlib header */ if (state.head) { state.head.done = false; } if (!(state.wrap & 1) || /* check if zlib header allowed */ (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) { strm.msg = 'incorrect header check'; state.mode = BAD; break; } if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) { strm.msg = 'unknown compression method'; state.mode = BAD; break; } //--- DROPBITS(4) ---// hold >>>= 4; bits -= 4; //---// len = (hold & 0x0f)/*BITS(4)*/ + 8; if (state.wbits === 0) { state.wbits = len; } else if (len > state.wbits) { strm.msg = 'invalid window size'; state.mode = BAD; break; } state.dmax = 1 << len; //Tracev((stderr, "inflate: zlib header ok\n")); strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; state.mode = hold & 0x200 ? DICTID : TYPE; //=== INITBITS(); hold = 0; bits = 0; //===// break; case FLAGS: //=== NEEDBITS(16); */ while (bits < 16) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// state.flags = hold; if ((state.flags & 0xff) !== Z_DEFLATED) { strm.msg = 'unknown compression method'; state.mode = BAD; break; } if (state.flags & 0xe000) { strm.msg = 'unknown header flags set'; state.mode = BAD; break; } if (state.head) { state.head.text = ((hold >> 8) & 1); } if (state.flags & 0x0200) { //=== CRC2(state.check, hold); hbuf[0] = hold & 0xff; hbuf[1] = (hold >>> 8) & 0xff; state.check = crc32(state.check, hbuf, 2, 0); //===// } //=== INITBITS(); hold = 0; bits = 0; //===// state.mode = TIME; /* falls through */ case TIME: //=== NEEDBITS(32); */ while (bits < 32) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// if (state.head) { state.head.time = hold; } if (state.flags & 0x0200) { //=== CRC4(state.check, hold) hbuf[0] = hold & 0xff; hbuf[1] = (hold >>> 8) & 0xff; hbuf[2] = (hold >>> 16) & 0xff; hbuf[3] = (hold >>> 24) & 0xff; state.check = crc32(state.check, hbuf, 4, 0); //=== } //=== INITBITS(); hold = 0; bits = 0; //===// state.mode = OS; /* falls through */ case OS: //=== NEEDBITS(16); */ while (bits < 16) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// if (state.head) { state.head.xflags = (hold & 0xff); state.head.os = (hold >> 8); } if (state.flags & 0x0200) { //=== CRC2(state.check, hold); hbuf[0] = hold & 0xff; hbuf[1] = (hold >>> 8) & 0xff; state.check = crc32(state.check, hbuf, 2, 0); //===// } //=== INITBITS(); hold = 0; bits = 0; //===// state.mode = EXLEN; /* falls through */ case EXLEN: if (state.flags & 0x0400) { //=== NEEDBITS(16); */ while (bits < 16) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// state.length = hold; if (state.head) { state.head.extra_len = hold; } if (state.flags & 0x0200) { //=== CRC2(state.check, hold); hbuf[0] = hold & 0xff; hbuf[1] = (hold >>> 8) & 0xff; state.check = crc32(state.check, hbuf, 2, 0); //===// } //=== INITBITS(); hold = 0; bits = 0; //===// } else if (state.head) { state.head.extra = null/*Z_NULL*/; } state.mode = EXTRA; /* falls through */ case EXTRA: if (state.flags & 0x0400) { copy = state.length; if (copy > have) { copy = have; } if (copy) { if (state.head) { len = state.head.extra_len - state.length; if (!state.head.extra) { // Use untyped array for more conveniend processing later state.head.extra = new Array(state.head.extra_len); } utils.arraySet( state.head.extra, input, next, // extra field is limited to 65536 bytes // - no need for additional size check copy, /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/ len ); //zmemcpy(state.head.extra + len, next, // len + copy > state.head.extra_max ? // state.head.extra_max - len : copy); } if (state.flags & 0x0200) { state.check = crc32(state.check, input, copy, next); } have -= copy; next += copy; state.length -= copy; } if (state.length) { break inf_leave; } } state.length = 0; state.mode = NAME; /* falls through */ case NAME: if (state.flags & 0x0800) { if (have === 0) { break inf_leave; } copy = 0; do { // TODO: 2 or 1 bytes? len = input[next + copy++]; /* use constant limit because in js we should not preallocate memory */ if (state.head && len && (state.length < 65536 /*state.head.name_max*/)) { state.head.name += String.fromCharCode(len); } } while (len && copy < have); if (state.flags & 0x0200) { state.check = crc32(state.check, input, copy, next); } have -= copy; next += copy; if (len) { break inf_leave; } } else if (state.head) { state.head.name = null; } state.length = 0; state.mode = COMMENT; /* falls through */ case COMMENT: if (state.flags & 0x1000) { if (have === 0) { break inf_leave; } copy = 0; do { len = input[next + copy++]; /* use constant limit because in js we should not preallocate memory */ if (state.head && len && (state.length < 65536 /*state.head.comm_max*/)) { state.head.comment += String.fromCharCode(len); } } while (len && copy < have); if (state.flags & 0x0200) { state.check = crc32(state.check, input, copy, next); } have -= copy; next += copy; if (len) { break inf_leave; } } else if (state.head) { state.head.comment = null; } state.mode = HCRC; /* falls through */ case HCRC: if (state.flags & 0x0200) { //=== NEEDBITS(16); */ while (bits < 16) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// if (hold !== (state.check & 0xffff)) { strm.msg = 'header crc mismatch'; state.mode = BAD; break; } //=== INITBITS(); hold = 0; bits = 0; //===// } if (state.head) { state.head.hcrc = ((state.flags >> 9) & 1); state.head.done = true; } strm.adler = state.check = 0; state.mode = TYPE; break; case DICTID: //=== NEEDBITS(32); */ while (bits < 32) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// strm.adler = state.check = zswap32(hold); //=== INITBITS(); hold = 0; bits = 0; //===// state.mode = DICT; /* falls through */ case DICT: if (state.havedict === 0) { //--- RESTORE() --- strm.next_out = put; strm.avail_out = left; strm.next_in = next; strm.avail_in = have; state.hold = hold; state.bits = bits; //--- return Z_NEED_DICT; } strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; state.mode = TYPE; /* falls through */ case TYPE: if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; } /* falls through */ case TYPEDO: if (state.last) { //--- BYTEBITS() ---// hold >>>= bits & 7; bits -= bits & 7; //---// state.mode = CHECK; break; } //=== NEEDBITS(3); */ while (bits < 3) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// state.last = (hold & 0x01)/*BITS(1)*/; //--- DROPBITS(1) ---// hold >>>= 1; bits -= 1; //---// switch ((hold & 0x03)/*BITS(2)*/) { case 0: /* stored block */ //Tracev((stderr, "inflate: stored block%s\n", // state.last ? " (last)" : "")); state.mode = STORED; break; case 1: /* fixed block */ fixedtables(state); //Tracev((stderr, "inflate: fixed codes block%s\n", // state.last ? " (last)" : "")); state.mode = LEN_; /* decode codes */ if (flush === Z_TREES) { //--- DROPBITS(2) ---// hold >>>= 2; bits -= 2; //---// break inf_leave; } break; case 2: /* dynamic block */ //Tracev((stderr, "inflate: dynamic codes block%s\n", // state.last ? " (last)" : "")); state.mode = TABLE; break; case 3: strm.msg = 'invalid block type'; state.mode = BAD; } //--- DROPBITS(2) ---// hold >>>= 2; bits -= 2; //---// break; case STORED: //--- BYTEBITS() ---// /* go to byte boundary */ hold >>>= bits & 7; bits -= bits & 7; //---// //=== NEEDBITS(32); */ while (bits < 32) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) { strm.msg = 'invalid stored block lengths'; state.mode = BAD; break; } state.length = hold & 0xffff; //Tracev((stderr, "inflate: stored length %u\n", // state.length)); //=== INITBITS(); hold = 0; bits = 0; //===// state.mode = COPY_; if (flush === Z_TREES) { break inf_leave; } /* falls through */ case COPY_: state.mode = COPY; /* falls through */ case COPY: copy = state.length; if (copy) { if (copy > have) { copy = have; } if (copy > left) { copy = left; } if (copy === 0) { break inf_leave; } //--- zmemcpy(put, next, copy); --- utils.arraySet(output, input, next, copy, put); //---// have -= copy; next += copy; left -= copy; put += copy; state.length -= copy; break; } //Tracev((stderr, "inflate: stored end\n")); state.mode = TYPE; break; case TABLE: //=== NEEDBITS(14); */ while (bits < 14) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257; //--- DROPBITS(5) ---// hold >>>= 5; bits -= 5; //---// state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1; //--- DROPBITS(5) ---// hold >>>= 5; bits -= 5; //---// state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4; //--- DROPBITS(4) ---// hold >>>= 4; bits -= 4; //---// //#ifndef PKZIP_BUG_WORKAROUND if (state.nlen > 286 || state.ndist > 30) { strm.msg = 'too many length or distance symbols'; state.mode = BAD; break; } //#endif //Tracev((stderr, "inflate: table sizes ok\n")); state.have = 0; state.mode = LENLENS; /* falls through */ case LENLENS: while (state.have < state.ncode) { //=== NEEDBITS(3); while (bits < 3) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// state.lens[order[state.have++]] = (hold & 0x07);//BITS(3); //--- DROPBITS(3) ---// hold >>>= 3; bits -= 3; //---// } while (state.have < 19) { state.lens[order[state.have++]] = 0; } // We have separate tables & no pointers. 2 commented lines below not needed. //state.next = state.codes; //state.lencode = state.next; // Switch to use dynamic table state.lencode = state.lendyn; state.lenbits = 7; opts = { bits: state.lenbits }; ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); state.lenbits = opts.bits; if (ret) { strm.msg = 'invalid code lengths set'; state.mode = BAD; break; } //Tracev((stderr, "inflate: code lengths ok\n")); state.have = 0; state.mode = CODELENS; /* falls through */ case CODELENS: while (state.have < state.nlen + state.ndist) { for (;;) { here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/ here_bits = here >>> 24; here_op = (here >>> 16) & 0xff; here_val = here & 0xffff; if ((here_bits) <= bits) { break; } //--- PULLBYTE() ---// if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; //---// } if (here_val < 16) { //--- DROPBITS(here.bits) ---// hold >>>= here_bits; bits -= here_bits; //---// state.lens[state.have++] = here_val; } else { if (here_val === 16) { //=== NEEDBITS(here.bits + 2); n = here_bits + 2; while (bits < n) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// //--- DROPBITS(here.bits) ---// hold >>>= here_bits; bits -= here_bits; //---// if (state.have === 0) { strm.msg = 'invalid bit length repeat'; state.mode = BAD; break; } len = state.lens[state.have - 1]; copy = 3 + (hold & 0x03);//BITS(2); //--- DROPBITS(2) ---// hold >>>= 2; bits -= 2; //---// } else if (here_val === 17) { //=== NEEDBITS(here.bits + 3); n = here_bits + 3; while (bits < n) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// //--- DROPBITS(here.bits) ---// hold >>>= here_bits; bits -= here_bits; //---// len = 0; copy = 3 + (hold & 0x07);//BITS(3); //--- DROPBITS(3) ---// hold >>>= 3; bits -= 3; //---// } else { //=== NEEDBITS(here.bits + 7); n = here_bits + 7; while (bits < n) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// //--- DROPBITS(here.bits) ---// hold >>>= here_bits; bits -= here_bits; //---// len = 0; copy = 11 + (hold & 0x7f);//BITS(7); //--- DROPBITS(7) ---// hold >>>= 7; bits -= 7; //---// } if (state.have + copy > state.nlen + state.ndist) { strm.msg = 'invalid bit length repeat'; state.mode = BAD; break; } while (copy--) { state.lens[state.have++] = len; } } } /* handle error breaks in while */ if (state.mode === BAD) { break; } /* check for end-of-block code (better have one) */ if (state.lens[256] === 0) { strm.msg = 'invalid code -- missing end-of-block'; state.mode = BAD; break; } /* build code tables -- note: do not change the lenbits or distbits values here (9 and 6) without reading the comments in inftrees.h concerning the ENOUGH constants, which depend on those values */ state.lenbits = 9; opts = { bits: state.lenbits }; ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); // We have separate tables & no pointers. 2 commented lines below not needed. // state.next_index = opts.table_index; state.lenbits = opts.bits; // state.lencode = state.next; if (ret) { strm.msg = 'invalid literal/lengths set'; state.mode = BAD; break; } state.distbits = 6; //state.distcode.copy(state.codes); // Switch to use dynamic table state.distcode = state.distdyn; opts = { bits: state.distbits }; ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); // We have separate tables & no pointers. 2 commented lines below not needed. // state.next_index = opts.table_index; state.distbits = opts.bits; // state.distcode = state.next; if (ret) { strm.msg = 'invalid distances set'; state.mode = BAD; break; } //Tracev((stderr, 'inflate: codes ok\n')); state.mode = LEN_; if (flush === Z_TREES) { break inf_leave; } /* falls through */ case LEN_: state.mode = LEN; /* falls through */ case LEN: if (have >= 6 && left >= 258) { //--- RESTORE() --- strm.next_out = put; strm.avail_out = left; strm.next_in = next; strm.avail_in = have; state.hold = hold; state.bits = bits; //--- inflate_fast(strm, _out); //--- LOAD() --- put = strm.next_out; output = strm.output; left = strm.avail_out; next = strm.next_in; input = strm.input; have = strm.avail_in; hold = state.hold; bits = state.bits; //--- if (state.mode === TYPE) { state.back = -1; } break; } state.back = 0; for (;;) { here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/ here_bits = here >>> 24; here_op = (here >>> 16) & 0xff; here_val = here & 0xffff; if (here_bits <= bits) { break; } //--- PULLBYTE() ---// if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; //---// } if (here_op && (here_op & 0xf0) === 0) { last_bits = here_bits; last_op = here_op; last_val = here_val; for (;;) { here = state.lencode[last_val + ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)]; here_bits = here >>> 24; here_op = (here >>> 16) & 0xff; here_val = here & 0xffff; if ((last_bits + here_bits) <= bits) { break; } //--- PULLBYTE() ---// if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; //---// } //--- DROPBITS(last.bits) ---// hold >>>= last_bits; bits -= last_bits; //---// state.back += last_bits; } //--- DROPBITS(here.bits) ---// hold >>>= here_bits; bits -= here_bits; //---// state.back += here_bits; state.length = here_val; if (here_op === 0) { //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? // "inflate: literal '%c'\n" : // "inflate: literal 0x%02x\n", here.val)); state.mode = LIT; break; } if (here_op & 32) { //Tracevv((stderr, "inflate: end of block\n")); state.back = -1; state.mode = TYPE; break; } if (here_op & 64) { strm.msg = 'invalid literal/length code'; state.mode = BAD; break; } state.extra = here_op & 15; state.mode = LENEXT; /* falls through */ case LENEXT: if (state.extra) { //=== NEEDBITS(state.extra); n = state.extra; while (bits < n) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/; //--- DROPBITS(state.extra) ---// hold >>>= state.extra; bits -= state.extra; //---// state.back += state.extra; } //Tracevv((stderr, "inflate: length %u\n", state.length)); state.was = state.length; state.mode = DIST; /* falls through */ case DIST: for (;;) { here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/ here_bits = here >>> 24; here_op = (here >>> 16) & 0xff; here_val = here & 0xffff; if ((here_bits) <= bits) { break; } //--- PULLBYTE() ---// if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; //---// } if ((here_op & 0xf0) === 0) { last_bits = here_bits; last_op = here_op; last_val = here_val; for (;;) { here = state.distcode[last_val + ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)]; here_bits = here >>> 24; here_op = (here >>> 16) & 0xff; here_val = here & 0xffff; if ((last_bits + here_bits) <= bits) { break; } //--- PULLBYTE() ---// if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; //---// } //--- DROPBITS(last.bits) ---// hold >>>= last_bits; bits -= last_bits; //---// state.back += last_bits; } //--- DROPBITS(here.bits) ---// hold >>>= here_bits; bits -= here_bits; //---// state.back += here_bits; if (here_op & 64) { strm.msg = 'invalid distance code'; state.mode = BAD; break; } state.offset = here_val; state.extra = (here_op) & 15; state.mode = DISTEXT; /* falls through */ case DISTEXT: if (state.extra) { //=== NEEDBITS(state.extra); n = state.extra; while (bits < n) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/; //--- DROPBITS(state.extra) ---// hold >>>= state.extra; bits -= state.extra; //---// state.back += state.extra; } //#ifdef INFLATE_STRICT if (state.offset > state.dmax) { strm.msg = 'invalid distance too far back'; state.mode = BAD; break; } //#endif //Tracevv((stderr, "inflate: distance %u\n", state.offset)); state.mode = MATCH; /* falls through */ case MATCH: if (left === 0) { break inf_leave; } copy = _out - left; if (state.offset > copy) { /* copy from window */ copy = state.offset - copy; if (copy > state.whave) { if (state.sane) { strm.msg = 'invalid distance too far back'; state.mode = BAD; break; } // (!) This block is disabled in zlib defailts, // don't enable it for binary compatibility //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR // Trace((stderr, "inflate.c too far\n")); // copy -= state.whave; // if (copy > state.length) { copy = state.length; } // if (copy > left) { copy = left; } // left -= copy; // state.length -= copy; // do { // output[put++] = 0; // } while (--copy); // if (state.length === 0) { state.mode = LEN; } // break; //#endif } if (copy > state.wnext) { copy -= state.wnext; from = state.wsize - copy; } else { from = state.wnext - copy; } if (copy > state.length) { copy = state.length; } from_source = state.window; } else { /* copy from output */ from_source = output; from = put - state.offset; copy = state.length; } if (copy > left) { copy = left; } left -= copy; state.length -= copy; do { output[put++] = from_source[from++]; } while (--copy); if (state.length === 0) { state.mode = LEN; } break; case LIT: if (left === 0) { break inf_leave; } output[put++] = state.length; left--; state.mode = LEN; break; case CHECK: if (state.wrap) { //=== NEEDBITS(32); while (bits < 32) { if (have === 0) { break inf_leave; } have--; // Use '|' insdead of '+' to make sure that result is signed hold |= input[next++] << bits; bits += 8; } //===// _out -= left; strm.total_out += _out; state.total += _out; if (_out) { strm.adler = state.check = /*UPDATE(state.check, put - _out, _out);*/ (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out)); } _out = left; // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too if ((state.flags ? hold : zswap32(hold)) !== state.check) { strm.msg = 'incorrect data check'; state.mode = BAD; break; } //=== INITBITS(); hold = 0; bits = 0; //===// //Tracev((stderr, "inflate: check matches trailer\n")); } state.mode = LENGTH; /* falls through */ case LENGTH: if (state.wrap && state.flags) { //=== NEEDBITS(32); while (bits < 32) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } //===// if (hold !== (state.total & 0xffffffff)) { strm.msg = 'incorrect length check'; state.mode = BAD; break; } //=== INITBITS(); hold = 0; bits = 0; //===// //Tracev((stderr, "inflate: length matches trailer\n")); } state.mode = DONE; /* falls through */ case DONE: ret = Z_STREAM_END; break inf_leave; case BAD: ret = Z_DATA_ERROR; break inf_leave; case MEM: return Z_MEM_ERROR; case SYNC: /* falls through */ default: return Z_STREAM_ERROR; } } // inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave" /* Return from inflate(), updating the total counts and the check value. If there was no progress during the inflate() call, return a buffer error. Call updatewindow() to create and/or update the window state. Note: a memory error from inflate() is non-recoverable. */ //--- RESTORE() --- strm.next_out = put; strm.avail_out = left; strm.next_in = next; strm.avail_in = have; state.hold = hold; state.bits = bits; //--- if (state.wsize || (_out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH))) { if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ; } _in -= strm.avail_in; _out -= strm.avail_out; strm.total_in += _in; strm.total_out += _out; state.total += _out; if (state.wrap && _out) { strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/ (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out)); } strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) { ret = Z_BUF_ERROR; } return ret; } function inflateEnd(strm) { if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) { return Z_STREAM_ERROR; } var state = strm.state; if (state.window) { state.window = null; } strm.state = null; return Z_OK; } function inflateGetHeader(strm, head) { var state; /* check state */ if (!strm || !strm.state) { return Z_STREAM_ERROR; } state = strm.state; if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; } /* save header structure */ state.head = head; head.done = false; return Z_OK; } function inflateSetDictionary(strm, dictionary) { var dictLength = dictionary.length; var state; var dictid; var ret; /* check state */ if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; } state = strm.state; if (state.wrap !== 0 && state.mode !== DICT) { return Z_STREAM_ERROR; } /* check for correct dictionary identifier */ if (state.mode === DICT) { dictid = 1; /* adler32(0, null, 0)*/ /* dictid = adler32(dictid, dictionary, dictLength); */ dictid = adler32(dictid, dictionary, dictLength, 0); if (dictid !== state.check) { return Z_DATA_ERROR; } } /* copy dictionary to window using updatewindow(), which will amend the existing dictionary if appropriate */ ret = updatewindow(strm, dictionary, dictLength, dictLength); if (ret) { state.mode = MEM; return Z_MEM_ERROR; } state.havedict = 1; // Tracev((stderr, "inflate: dictionary set\n")); return Z_OK; } exports.inflateReset = inflateReset; exports.inflateReset2 = inflateReset2; exports.inflateResetKeep = inflateResetKeep; exports.inflateInit = inflateInit; exports.inflateInit2 = inflateInit2; exports.inflate = inflate; exports.inflateEnd = inflateEnd; exports.inflateGetHeader = inflateGetHeader; exports.inflateSetDictionary = inflateSetDictionary; exports.inflateInfo = 'pako inflate (from Nodeca project)'; /* Not implemented exports.inflateCopy = inflateCopy; exports.inflateGetDictionary = inflateGetDictionary; exports.inflateMark = inflateMark; exports.inflatePrime = inflatePrime; exports.inflateSync = inflateSync; exports.inflateSyncPoint = inflateSyncPoint; exports.inflateUndermine = inflateUndermine; */ },{"../utils/common":1,"./adler32":3,"./crc32":5,"./inffast":7,"./inftrees":9}],9:[function(require,module,exports){ var utils = require('../utils/common'); var MAXBITS = 15; var ENOUGH_LENS = 852; var ENOUGH_DISTS = 592; //var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); var CODES = 0; var LENS = 1; var DISTS = 2; var lbase = [ /* Length codes 257..285 base */ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 ]; var lext = [ /* Length codes 257..285 extra */ 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78 ]; var dbase = [ /* Distance codes 0..29 base */ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0 ]; var dext = [ /* Distance codes 0..29 extra */ 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64 ]; module.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) { var bits = opts.bits; //here = opts.here; /* table entry for duplication */ var len = 0; /* a code's length in bits */ var sym = 0; /* index of code symbols */ var min = 0, max = 0; /* minimum and maximum code lengths */ var root = 0; /* number of index bits for root table */ var curr = 0; /* number of index bits for current table */ var drop = 0; /* code bits to drop for sub-table */ var left = 0; /* number of prefix codes available */ var used = 0; /* code entries in table used */ var huff = 0; /* Huffman code */ var incr; /* for incrementing code, index */ var fill; /* index for replicating entries */ var low; /* low bits for current root entry */ var mask; /* mask for low root bits */ var next; /* next available space in table */ var base = null; /* base value table to use */ var base_index = 0; // var shoextra; /* extra bits table to use */ var end; /* use base and extra for symbol > end */ var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */ var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */ var extra = null; var extra_index = 0; var here_bits, here_op, here_val; /* Process a set of code lengths to create a canonical Huffman code. The code lengths are lens[0..codes-1]. Each length corresponds to the symbols 0..codes-1. The Huffman code is generated by first sorting the symbols by length from short to long, and retaining the symbol order for codes with equal lengths. Then the code starts with all zero bits for the first code of the shortest length, and the codes are integer increments for the same length, and zeros are appended as the length increases. For the deflate format, these bits are stored backwards from their more natural integer increment ordering, and so when the decoding tables are built in the large loop below, the integer codes are incremented backwards. This routine assumes, but does not check, that all of the entries in lens[] are in the range 0..MAXBITS. The caller must assure this. 1..MAXBITS is interpreted as that code length. zero means that that symbol does not occur in this code. The codes are sorted by computing a count of codes for each length, creating from that a table of starting indices for each length in the sorted table, and then entering the symbols in order in the sorted table. The sorted table is work[], with that space being provided by the caller. The length counts are used for other purposes as well, i.e. finding the minimum and maximum length codes, determining if there are any codes at all, checking for a valid set of lengths, and looking ahead at length counts to determine sub-table sizes when building the decoding tables. */ /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ for (len = 0; len <= MAXBITS; len++) { count[len] = 0; } for (sym = 0; sym < codes; sym++) { count[lens[lens_index + sym]]++; } /* bound code lengths, force root to be within code lengths */ root = bits; for (max = MAXBITS; max >= 1; max--) { if (count[max] !== 0) { break; } } if (root > max) { root = max; } if (max === 0) { /* no symbols to code at all */ //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */ //table.bits[opts.table_index] = 1; //here.bits = (var char)1; //table.val[opts.table_index++] = 0; //here.val = (var short)0; table[table_index++] = (1 << 24) | (64 << 16) | 0; //table.op[opts.table_index] = 64; //table.bits[opts.table_index] = 1; //table.val[opts.table_index++] = 0; table[table_index++] = (1 << 24) | (64 << 16) | 0; opts.bits = 1; return 0; /* no symbols, but wait for decoding to report error */ } for (min = 1; min < max; min++) { if (count[min] !== 0) { break; } } if (root < min) { root = min; } /* check for an over-subscribed or incomplete set of lengths */ left = 1; for (len = 1; len <= MAXBITS; len++) { left <<= 1; left -= count[len]; if (left < 0) { return -1; } /* over-subscribed */ } if (left > 0 && (type === CODES || max !== 1)) { return -1; /* incomplete set */ } /* generate offsets into symbol table for each length for sorting */ offs[1] = 0; for (len = 1; len < MAXBITS; len++) { offs[len + 1] = offs[len] + count[len]; } /* sort symbols by length, by symbol order within each length */ for (sym = 0; sym < codes; sym++) { if (lens[lens_index + sym] !== 0) { work[offs[lens[lens_index + sym]]++] = sym; } } /* Create and fill in decoding tables. In this loop, the table being filled is at next and has curr index bits. The code being used is huff with length len. That code is converted to an index by dropping drop bits off of the bottom. For codes where len is less than drop + curr, those top drop + curr - len bits are incremented through all values to fill the table with replicated entries. root is the number of index bits for the root table. When len exceeds root, sub-tables are created pointed to by the root entry with an index of the low root bits of huff. This is saved in low to check for when a new sub-table should be started. drop is zero when the root table is being filled, and drop is root when sub-tables are being filled. When a new sub-table is needed, it is necessary to look ahead in the code lengths to determine what size sub-table is needed. The length counts are used for this, and so count[] is decremented as codes are entered in the tables. used keeps track of how many table entries have been allocated from the provided *table space. It is checked for LENS and DIST tables against the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in the initial root table size constants. See the comments in inftrees.h for more information. sym increments through all symbols, and the loop terminates when all codes of length max, i.e. all codes, have been processed. This routine permits incomplete codes, so another loop after this one fills in the rest of the decoding tables with invalid code markers. */ /* set up for code type */ // poor man optimization - use if-else instead of switch, // to avoid deopts in old v8 if (type === CODES) { base = extra = work; /* dummy value--not used */ end = 19; } else if (type === LENS) { base = lbase; base_index -= 257; extra = lext; extra_index -= 257; end = 256; } else { /* DISTS */ base = dbase; extra = dext; end = -1; } /* initialize opts for loop */ huff = 0; /* starting code */ sym = 0; /* starting code symbol */ len = min; /* starting code length */ next = table_index; /* current table to fill in */ curr = root; /* current table index bits */ drop = 0; /* current bits to drop from code for index */ low = -1; /* trigger new sub-table when len > root */ used = 1 << root; /* use root table entries */ mask = used - 1; /* mask for comparing low */ /* check available table space */ if ((type === LENS && used > ENOUGH_LENS) || (type === DISTS && used > ENOUGH_DISTS)) { return 1; } /* process all codes and make table entries */ for (;;) { /* create table entry */ here_bits = len - drop; if (work[sym] < end) { here_op = 0; here_val = work[sym]; } else if (work[sym] > end) { here_op = extra[extra_index + work[sym]]; here_val = base[base_index + work[sym]]; } else { here_op = 32 + 64; /* end of block */ here_val = 0; } /* replicate for those indices with low len bits equal to huff */ incr = 1 << (len - drop); fill = 1 << curr; min = fill; /* save offset to next table */ do { fill -= incr; table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0; } while (fill !== 0); /* backwards increment the len-bit code huff */ incr = 1 << (len - 1); while (huff & incr) { incr >>= 1; } if (incr !== 0) { huff &= incr - 1; huff += incr; } else { huff = 0; } /* go to next symbol, update count, len */ sym++; if (--count[len] === 0) { if (len === max) { break; } len = lens[lens_index + work[sym]]; } /* create new sub-table if needed */ if (len > root && (huff & mask) !== low) { /* if first time, transition to sub-tables */ if (drop === 0) { drop = root; } /* increment past last table */ next += min; /* here min is 1 << curr */ /* determine length of next table */ curr = len - drop; left = 1 << curr; while (curr + drop < max) { left -= count[curr + drop]; if (left <= 0) { break; } curr++; left <<= 1; } /* check for enough space */ used += 1 << curr; if ((type === LENS && used > ENOUGH_LENS) || (type === DISTS && used > ENOUGH_DISTS)) { return 1; } /* point entry in root table to sub-table */ low = huff & mask; /*table.op[low] = curr; table.bits[low] = root; table.val[low] = next - opts.table_index;*/ table[low] = (root << 24) | (curr << 16) | (next - table_index) |0; } } /* fill in remaining table entry if code is incomplete (guaranteed to have at most one remaining entry, since if the code is incomplete, the maximum code length that was allowed to get this far is one bit) */ if (huff !== 0) { //table.op[next + huff] = 64; /* invalid code marker */ //table.bits[next + huff] = len - drop; //table.val[next + huff] = 0; table[next + huff] = ((len - drop) << 24) | (64 << 16) |0; } /* set return parameters */ //opts.table_index += used; opts.bits = root; return 0; }; },{"../utils/common":1}],10:[function(require,module,exports){ module.exports = { 2: 'need dictionary', /* Z_NEED_DICT 2 */ 1: 'stream end', /* Z_STREAM_END 1 */ 0: '', /* Z_OK 0 */ '-1': 'file error', /* Z_ERRNO (-1) */ '-2': 'stream error', /* Z_STREAM_ERROR (-2) */ '-3': 'data error', /* Z_DATA_ERROR (-3) */ '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */ '-5': 'buffer error', /* Z_BUF_ERROR (-5) */ '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */ }; },{}],11:[function(require,module,exports){ function ZStream() { /* next input byte */ this.input = null; // JS specific, because we have no pointers this.next_in = 0; /* number of bytes available at input */ this.avail_in = 0; /* total number of input bytes read so far */ this.total_in = 0; /* next output byte should be put there */ this.output = null; // JS specific, because we have no pointers this.next_out = 0; /* remaining free space at output */ this.avail_out = 0; /* total number of bytes output so far */ this.total_out = 0; /* last error message, NULL if no error */ this.msg = ''/*Z_NULL*/; /* not visible by applications */ this.state = null; /* best guess about the data type: binary or text */ this.data_type = 2/*Z_UNKNOWN*/; /* adler32 value of the uncompressed data */ this.adler = 0; } module.exports = ZStream; },{}],"/lib/inflate.js":[function(require,module,exports){ var zlib_inflate = require('./zlib/inflate'); var utils = require('./utils/common'); var strings = require('./utils/strings'); var c = require('./zlib/constants'); var msg = require('./zlib/messages'); var ZStream = require('./zlib/zstream'); var GZheader = require('./zlib/gzheader'); var toString = Object.prototype.toString; /** * class Inflate * * Generic JS-style wrapper for zlib calls. If you don't need * streaming behaviour - use more simple functions: [[inflate]] * and [[inflateRaw]]. **/ /* internal * inflate.chunks -> Array * * Chunks of output data, if [[Inflate#onData]] not overriden. **/ /** * Inflate.result -> Uint8Array|Array|String * * Uncompressed result, generated by default [[Inflate#onData]] * and [[Inflate#onEnd]] handlers. Filled after you push last chunk * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you * push a chunk with explicit flush (call [[Inflate#push]] with * `Z_SYNC_FLUSH` param). **/ /** * Inflate.err -> Number * * Error code after inflate finished. 0 (Z_OK) on success. * Should be checked if broken data possible. **/ /** * Inflate.msg -> String * * Error message, if [[Inflate.err]] != 0 **/ /** * new Inflate(options) * - options (Object): zlib inflate options. * * Creates new inflator instance with specified params. Throws exception * on bad params. Supported options: * * - `windowBits` * - `dictionary` * * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) * for more information on these. * * Additional options, for internal needs: * * - `chunkSize` - size of generated data chunks (16K by default) * - `raw` (Boolean) - do raw inflate * - `to` (String) - if equal to 'string', then result will be converted * from utf8 to utf16 (javascript) string. When string output requested, * chunk length can differ from `chunkSize`, depending on content. * * By default, when no options set, autodetect deflate/gzip data format via * wrapper header. * * ##### Example: * * ```javascript * var pako = require('pako') * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9]) * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]); * * var inflate = new pako.Inflate({ level: 3}); * * inflate.push(chunk1, false); * inflate.push(chunk2, true); // true -> last chunk * * if (inflate.err) { throw new Error(inflate.err); } * * console.log(inflate.result); * ``` **/ function Inflate(options) { if (!(this instanceof Inflate)) return new Inflate(options); this.options = utils.assign({ chunkSize: 16384, windowBits: 0, to: '' }, options || {}); var opt = this.options; // Force window size for `raw` data, if not set directly, // because we have no header for autodetect. if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) { opt.windowBits = -opt.windowBits; if (opt.windowBits === 0) { opt.windowBits = -15; } } // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate if ((opt.windowBits >= 0) && (opt.windowBits < 16) && !(options && options.windowBits)) { opt.windowBits += 32; } // Gzip header has no info about windows size, we can do autodetect only // for deflate. So, if window size not set, force it to max when gzip possible if ((opt.windowBits > 15) && (opt.windowBits < 48)) { // bit 3 (16) -> gzipped data // bit 4 (32) -> autodetect gzip/deflate if ((opt.windowBits & 15) === 0) { opt.windowBits |= 15; } } this.err = 0; // error code, if happens (0 = Z_OK) this.msg = ''; // error message this.ended = false; // used to avoid multiple onEnd() calls this.chunks = []; // chunks of compressed data this.strm = new ZStream(); this.strm.avail_out = 0; var status = zlib_inflate.inflateInit2( this.strm, opt.windowBits ); if (status !== c.Z_OK) { throw new Error(msg[status]); } this.header = new GZheader(); zlib_inflate.inflateGetHeader(this.strm, this.header); } /** * Inflate#push(data[, mode]) -> Boolean * - data (Uint8Array|Array|ArrayBuffer|String): input data * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes. * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH. * * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with * new output chunks. Returns `true` on success. The last data block must have * mode Z_FINISH (or `true`). That will flush internal pending buffers and call * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you * can use mode Z_SYNC_FLUSH, keeping the decompression context. * * On fail call [[Inflate#onEnd]] with error code and return false. * * We strongly recommend to use `Uint8Array` on input for best speed (output * format is detected automatically). Also, don't skip last param and always * use the same type in your code (boolean or number). That will improve JS speed. * * For regular `Array`-s make sure all elements are [0..255]. * * ##### Example * * ```javascript * push(chunk, false); // push one of data chunks * ... * push(chunk, true); // push last chunk * ``` **/ Inflate.prototype.push = function (data, mode) { var strm = this.strm; var chunkSize = this.options.chunkSize; var dictionary = this.options.dictionary; var status, _mode; var next_out_utf8, tail, utf8str; var dict; // Flag to properly process Z_BUF_ERROR on testing inflate call // when we check that all output data was flushed. var allowBufError = false; if (this.ended) { return false; } _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH); // Convert data if needed if (typeof data === 'string') { // Only binary strings can be decompressed on practice strm.input = strings.binstring2buf(data); } else if (toString.call(data) === '[object ArrayBuffer]') { strm.input = new Uint8Array(data); } else { strm.input = data; } strm.next_in = 0; strm.avail_in = strm.input.length; do { if (strm.avail_out === 0) { strm.output = new utils.Buf8(chunkSize); strm.next_out = 0; strm.avail_out = chunkSize; } status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */ if (status === c.Z_NEED_DICT && dictionary) { // Convert data if needed if (typeof dictionary === 'string') { dict = strings.string2buf(dictionary); } else if (toString.call(dictionary) === '[object ArrayBuffer]') { dict = new Uint8Array(dictionary); } else { dict = dictionary; } status = zlib_inflate.inflateSetDictionary(this.strm, dict); } if (status === c.Z_BUF_ERROR && allowBufError === true) { status = c.Z_OK; allowBufError = false; } if (status !== c.Z_STREAM_END && status !== c.Z_OK) { this.onEnd(status); this.ended = true; return false; } if (strm.next_out) { if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) { if (this.options.to === 'string') { next_out_utf8 = strings.utf8border(strm.output, strm.next_out); tail = strm.next_out - next_out_utf8; utf8str = strings.buf2string(strm.output, next_out_utf8); // move tail strm.next_out = tail; strm.avail_out = chunkSize - tail; if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); } this.onData(utf8str); } else { this.onData(utils.shrinkBuf(strm.output, strm.next_out)); } } } // When no more input data, we should check that internal inflate buffers // are flushed. The only way to do it when avail_out = 0 - run one more // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR. // Here we set flag to process this error properly. // // NOTE. Deflate does not return error in this case and does not needs such // logic. if (strm.avail_in === 0 && strm.avail_out === 0) { allowBufError = true; } } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END); if (status === c.Z_STREAM_END) { _mode = c.Z_FINISH; } // Finalize on the last chunk. if (_mode === c.Z_FINISH) { status = zlib_inflate.inflateEnd(this.strm); this.onEnd(status); this.ended = true; return status === c.Z_OK; } // callback interim results if Z_SYNC_FLUSH. if (_mode === c.Z_SYNC_FLUSH) { this.onEnd(c.Z_OK); strm.avail_out = 0; return true; } return true; }; /** * Inflate#onData(chunk) -> Void * - chunk (Uint8Array|Array|String): ouput data. Type of array depends * on js engine support. When string output requested, each chunk * will be string. * * By default, stores data blocks in `chunks[]` property and glue * those in `onEnd`. Override this handler, if you need another behaviour. **/ Inflate.prototype.onData = function (chunk) { this.chunks.push(chunk); }; /** * Inflate#onEnd(status) -> Void * - status (Number): inflate status. 0 (Z_OK) on success, * other if not. * * Called either after you tell inflate that the input stream is * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH) * or if an error happened. By default - join collected chunks, * free memory and fill `results` / `err` properties. **/ Inflate.prototype.onEnd = function (status) { // On success - join if (status === c.Z_OK) { if (this.options.to === 'string') { // Glue & convert here, until we teach pako to send // utf8 alligned strings to onData this.result = this.chunks.join(''); } else { this.result = utils.flattenChunks(this.chunks); } } this.chunks = []; this.err = status; this.msg = this.strm.msg; }; /** * inflate(data[, options]) -> Uint8Array|Array|String * - data (Uint8Array|Array|String): input data to decompress. * - options (Object): zlib inflate options. * * Decompress `data` with inflate/ungzip and `options`. Autodetect * format via wrapper header by default. That's why we don't provide * separate `ungzip` method. * * Supported options are: * * - windowBits * * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) * for more information. * * Sugar (options): * * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify * negative windowBits implicitly. * - `to` (String) - if equal to 'string', then result will be converted * from utf8 to utf16 (javascript) string. When string output requested, * chunk length can differ from `chunkSize`, depending on content. * * * ##### Example: * * ```javascript * var pako = require('pako') * , input = pako.deflate([1,2,3,4,5,6,7,8,9]) * , output; * * try { * output = pako.inflate(input); * } catch (err) * console.log(err); * } * ``` **/ function inflate(input, options) { var inflator = new Inflate(options); inflator.push(input, true); // That will never happens, if you don't cheat with options :) if (inflator.err) { throw inflator.msg || msg[inflator.err]; } return inflator.result; } /** * inflateRaw(data[, options]) -> Uint8Array|Array|String * - data (Uint8Array|Array|String): input data to decompress. * - options (Object): zlib inflate options. * * The same as [[inflate]], but creates raw data, without wrapper * (header and adler32 crc). **/ function inflateRaw(input, options) { options = options || {}; options.raw = true; return inflate(input, options); } /** * ungzip(data[, options]) -> Uint8Array|Array|String * - data (Uint8Array|Array|String): input data to decompress. * - options (Object): zlib inflate options. * * Just shortcut to [[inflate]], because it autodetects format * by header.content. Done for convenience. **/ exports.Inflate = Inflate; exports.inflate = inflate; exports.inflateRaw = inflateRaw; exports.ungzip = inflate; },{"./utils/common":1,"./utils/strings":2,"./zlib/constants":4,"./zlib/gzheader":6,"./zlib/inflate":8,"./zlib/messages":10,"./zlib/zstream":11}]},{},[])("/lib/inflate.js") }); var _0x2de58e = tmp; const _0x578b=['aSideness','push','byteLength','deduplicate','indices','IndexDatatype','15082PDDluD','componentsPerAttribute','selectIndexData','255399PWDtPB','11143vuStUM','slice','verticesCount','regular','normalize','aPosition0','instancesData','extractEdges','vertexAttributes','minVerticesValue','createIndexBuffer','extractEdgeInformation','147451aAEkUL','subtract','aNormalA','17WDxvHt','byteOffset','aNormal','1CvoNjy','attributes','aPosition1','getSizeInBytes','ZERO','distance','BufferUsage','buffer','silhouette','1060311ZwicCa','ComponentDatatype','vertexArrayDestroyable','createEdgeDataByIndices','FLOAT','createVertexBuffer','indexType','aPosition','length','57245EkuslR','uniqueCount','2yCIpbS','cross','indicesTypedArray','RegularInstanceStride','STATIC_DRAW','Cartesian3','161717rTLwKn','equals','1jLgcLx','aNormalB','attrLocation','computeNeighbors','createRegularEdgeAttributes','typedArray','Buffer'];function _0xae4e(_0x153401,_0x4b60d1){_0x153401=_0x153401-0x161;let _0x578b16=_0x578b[_0x153401];return _0x578b16;}const _0x2171e5=_0xae4e;(function(_0x5b59c5,_0x154680){const _0x11d9b4=_0xae4e;while(!![]){try{const _0x3a94c7=parseInt(_0x11d9b4(0x19a))*-parseInt(_0x11d9b4(0x16e))+parseInt(_0x11d9b4(0x19e))+parseInt(_0x11d9b4(0x18b))*-parseInt(_0x11d9b4(0x18d))+parseInt(_0x11d9b4(0x19d))*-parseInt(_0x11d9b4(0x171))+-parseInt(_0x11d9b4(0x16b))+parseInt(_0x11d9b4(0x183))*-parseInt(_0x11d9b4(0x185))+parseInt(_0x11d9b4(0x17a));if(_0x3a94c7===_0x154680)break;else _0x5b59c5['push'](_0x5b59c5['shift']());}catch(_0x34a83e){_0x5b59c5['push'](_0x5b59c5['shift']());}}}(_0x578b,0x21343));function S3MEdgeProcessor(){}S3MEdgeProcessor[_0x2171e5(0x188)]=0x9,S3MEdgeProcessor['createEdgeData']=function(_0x20b6ec,_0x16274f,_0x3882e8){const _0x279d1c=_0x2171e5;if(_0x16274f['length']==0x0)return null;let _0x40b377=_0x16274f[0x0],_0x2b667f;_0x40b377[_0x279d1c(0x180)]===0x0?_0x2b667f=new Uint16Array(_0x40b377['indicesTypedArray'][_0x279d1c(0x178)],_0x40b377['indicesTypedArray'][_0x279d1c(0x16f)],_0x40b377[_0x279d1c(0x187)]['byteLength']/0x2):_0x2b667f=new Uint32Array(_0x40b377[_0x279d1c(0x187)][_0x279d1c(0x178)],_0x40b377[_0x279d1c(0x187)][_0x279d1c(0x16f)],_0x40b377[_0x279d1c(0x187)]['byteLength']/0x4);let _0x471402=![],_0x5563e3=S3MEdgeProcessor[_0x279d1c(0x16a)](_0x20b6ec,_0x471402,_0x2b667f),_0x2c7e99=EdgePreprocessing[_0x279d1c(0x166)](_0x5563e3);return _0x3882e8&&(_0x2c7e99['regular'][_0x279d1c(0x165)]&&_0x3882e8[_0x279d1c(0x195)](_0x2c7e99[_0x279d1c(0x162)][_0x279d1c(0x165)]['buffer']),_0x2c7e99[_0x279d1c(0x179)][_0x279d1c(0x165)]&&_0x3882e8['push'](_0x2c7e99['silhouette'][_0x279d1c(0x165)][_0x279d1c(0x178)])),_0x2c7e99;};let scratchSidenessVertexBuffer=null;function createEdgeSidenessVertexBuffer(_0x49a258){const _0x57275f=_0x2171e5;if(scratchSidenessVertexBuffer)return scratchSidenessVertexBuffer;let _0x5a11c9=new Float32Array(0x8),_0x1cb72c=0x0;return _0x5a11c9[_0x1cb72c++]=0x0,_0x5a11c9[_0x1cb72c++]=0x0,_0x5a11c9[_0x1cb72c++]=0x0,_0x5a11c9[_0x1cb72c++]=0x1,_0x5a11c9[_0x1cb72c++]=0x1,_0x5a11c9[_0x1cb72c++]=0x1,_0x5a11c9[_0x1cb72c++]=0x1,_0x5a11c9[_0x1cb72c++]=0x0,scratchSidenessVertexBuffer=Geoworld['Buffer'][_0x57275f(0x17f)]({'context':_0x49a258,'typedArray':_0x5a11c9,'usage':Geoworld[_0x57275f(0x177)]['STATIC_DRAW']}),scratchSidenessVertexBuffer['vertexArrayDestroyable']=![],scratchSidenessVertexBuffer;}function createEdgeIndexArray(){let _0x5ca8b8=new Uint16Array(0x6),_0x5eaa22=0x0;return _0x5ca8b8[_0x5eaa22++]=0x2,_0x5ca8b8[_0x5eaa22++]=0x1,_0x5ca8b8[_0x5eaa22++]=0x0,_0x5ca8b8[_0x5eaa22++]=0x3,_0x5ca8b8[_0x5eaa22++]=0x2,_0x5ca8b8[_0x5eaa22++]=0x0,_0x5ca8b8;}let scratchIndexBuffer=null;S3MEdgeProcessor[_0x2171e5(0x169)]=function(_0x19f75c){const _0x7903a3=_0x2171e5;if(scratchIndexBuffer)return scratchIndexBuffer;return scratchIndexBuffer=Geoworld[_0x7903a3(0x193)]['createIndexBuffer']({'context':_0x19f75c,'typedArray':createEdgeIndexArray(),'usage':Geoworld[_0x7903a3(0x177)]['STATIC_DRAW'],'indexDatatype':Geoworld[_0x7903a3(0x199)]['UNSIGNED_SHORT']}),scratchIndexBuffer[_0x7903a3(0x17c)]=![],scratchIndexBuffer;},S3MEdgeProcessor[_0x2171e5(0x191)]=function(_0xded191,_0x3de275){const _0x49a8ea=_0x2171e5;if(!_0x3de275['instancesData']||_0x3de275[_0x49a8ea(0x165)]['length']===0x0)return;let _0x29e5ce={},_0xae7a91=[];_0x3de275['attributeLocations']=_0x29e5ce,_0x3de275[_0x49a8ea(0x172)]=_0xae7a91;let _0x46856b=Geoworld['Buffer'][_0x49a8ea(0x17f)]({'context':_0xded191,'typedArray':_0x3de275[_0x49a8ea(0x165)],'usage':Geoworld['BufferUsage']['STATIC_DRAW']});_0x3de275[_0x49a8ea(0x165)]=null;let _0x2f9b9d=Geoworld[_0x49a8ea(0x17b)][_0x49a8ea(0x174)](Geoworld[_0x49a8ea(0x17b)][_0x49a8ea(0x17e)]),_0x43d6f5=createEdgeSidenessVertexBuffer(_0xded191),_0xfd4b14=0x0;_0x29e5ce[_0x49a8ea(0x194)]=_0xfd4b14++,_0xae7a91[_0x49a8ea(0x195)]({'index':_0x29e5ce[_0x49a8ea(0x194)],'vertexBuffer':_0x43d6f5,'componentsPerAttribute':0x2,'componentDatatype':Geoworld[_0x49a8ea(0x17b)]['FLOAT'],'offsetInBytes':0x0,'strideInBytes':Geoworld[_0x49a8ea(0x17b)]['getSizeInBytes'](Geoworld[_0x49a8ea(0x17b)][_0x49a8ea(0x17e)])*0x2,'normalize':![]});let _0x314806=S3MEdgeProcessor[_0x49a8ea(0x188)],_0x3e10d1=0x0;_0x29e5ce[_0x49a8ea(0x164)]=_0xfd4b14++,_0xae7a91[_0x49a8ea(0x195)]({'index':_0x29e5ce[_0x49a8ea(0x164)],'vertexBuffer':_0x46856b,'componentsPerAttribute':0x3,'componentDatatype':Geoworld['ComponentDatatype']['FLOAT'],'normalize':![],'offsetInBytes':_0x2f9b9d*_0x3e10d1,'strideInBytes':_0x2f9b9d*_0x314806,'instanceDivisor':0x1}),_0x3e10d1+=0x3,_0x29e5ce[_0x49a8ea(0x173)]=_0xfd4b14++,_0xae7a91[_0x49a8ea(0x195)]({'index':_0x29e5ce[_0x49a8ea(0x173)],'vertexBuffer':_0x46856b,'componentsPerAttribute':0x3,'componentDatatype':Geoworld[_0x49a8ea(0x17b)][_0x49a8ea(0x17e)],'normalize':![],'offsetInBytes':_0x2f9b9d*_0x3e10d1,'strideInBytes':_0x2f9b9d*_0x314806,'instanceDivisor':0x1}),_0x3e10d1+=0x3,_0x29e5ce[_0x49a8ea(0x170)]=_0xfd4b14++,_0xae7a91['push']({'index':_0x29e5ce[_0x49a8ea(0x170)],'vertexBuffer':_0x46856b,'componentsPerAttribute':0x3,'componentDatatype':Geoworld[_0x49a8ea(0x17b)][_0x49a8ea(0x17e)],'normalize':!![],'offsetInBytes':_0x2f9b9d*_0x3e10d1,'strideInBytes':_0x2f9b9d*_0x314806,'instanceDivisor':0x1}),_0x3e10d1+=0x3;},S3MEdgeProcessor['createSilhouetteEdgeAttributes']=function(_0x13ccec,_0x5659ad){const _0x42715a=_0x2171e5;if(!_0x5659ad[_0x42715a(0x165)]||_0x5659ad[_0x42715a(0x165)]['length']==0x0)return;let _0xf883b2={},_0x1e681d=[];_0x5659ad['attributeLocations']=_0xf883b2,_0x5659ad['attributes']=_0x1e681d;let _0x28dbc8=Geoworld[_0x42715a(0x193)]['createVertexBuffer']({'context':_0x13ccec,'typedArray':_0x5659ad[_0x42715a(0x165)],'usage':Geoworld['BufferUsage'][_0x42715a(0x189)]});_0x5659ad[_0x42715a(0x165)]=null;let _0x2dcce7=Geoworld[_0x42715a(0x17b)][_0x42715a(0x174)](Geoworld[_0x42715a(0x17b)][_0x42715a(0x17e)]),_0x79436d=0x0;_0xf883b2[_0x42715a(0x194)]=_0x79436d++,_0x1e681d['push']({'index':_0xf883b2[_0x42715a(0x194)],'vertexBuffer':createEdgeSidenessVertexBuffer(_0x13ccec),'componentsPerAttribute':0x2,'componentDatatype':Geoworld[_0x42715a(0x17b)][_0x42715a(0x17e)],'offsetInBytes':0x0,'strideInBytes':_0x2dcce7*0x2,'normalize':![]});let _0x2350f9=0x3+0x3+0x3+0x3,_0x53fcf6=0x0;_0xf883b2[_0x42715a(0x164)]=_0x79436d++,_0x1e681d[_0x42715a(0x195)]({'index':_0xf883b2[_0x42715a(0x164)],'vertexBuffer':_0x28dbc8,'componentsPerAttribute':0x3,'componentDatatype':Geoworld[_0x42715a(0x17b)]['FLOAT'],'normalize':![],'offsetInBytes':_0x2dcce7*_0x53fcf6,'strideInBytes':_0x2dcce7*_0x2350f9,'instanceDivisor':0x1}),_0x53fcf6+=0x3,_0xf883b2[_0x42715a(0x173)]=_0x79436d++,_0x1e681d['push']({'index':_0xf883b2['aPosition1'],'vertexBuffer':_0x28dbc8,'componentsPerAttribute':0x3,'componentDatatype':Geoworld[_0x42715a(0x17b)][_0x42715a(0x17e)],'normalize':![],'offsetInBytes':_0x2dcce7*_0x53fcf6,'strideInBytes':_0x2dcce7*_0x2350f9,'instanceDivisor':0x1}),_0x53fcf6+=0x3,_0xf883b2[_0x42715a(0x16d)]=_0x79436d++,_0x1e681d[_0x42715a(0x195)]({'index':_0xf883b2['aNormalA'],'vertexBuffer':_0x28dbc8,'componentsPerAttribute':0x3,'componentDatatype':Geoworld[_0x42715a(0x17b)][_0x42715a(0x17e)],'normalize':!![],'offsetInBytes':_0x2dcce7*_0x53fcf6,'strideInBytes':_0x2dcce7*_0x2350f9,'instanceDivisor':0x1}),_0x53fcf6+=0x3,_0xf883b2[_0x42715a(0x18e)]=_0x79436d++,_0x1e681d[_0x42715a(0x195)]({'index':_0xf883b2[_0x42715a(0x18e)],'vertexBuffer':_0x28dbc8,'componentsPerAttribute':0x3,'componentDatatype':Geoworld[_0x42715a(0x17b)][_0x42715a(0x17e)],'normalize':!![],'offsetInBytes':_0x2dcce7*_0x53fcf6,'strideInBytes':_0x2dcce7*_0x2350f9,'instanceDivisor':0x1}),_0x53fcf6+=0x3;};S3MEdgeProcessor[_0x2171e5(0x16a)]=function(_0x5c71eb,_0x4a5d99,_0x21a346){const _0x14ba52=_0x2171e5;let _0x14bb6a=_0x5c71eb[_0x14ba52(0x18f)][_0x14ba52(0x181)],_0x2581c7=_0x5c71eb[_0x14ba52(0x167)][_0x14bb6a],_0x2fe04d=_0x2581c7[_0x14ba52(0x19b)],_0x36c35c=new Float32Array(_0x2581c7['typedArray'][_0x14ba52(0x178)],_0x2581c7[_0x14ba52(0x192)]['byteOffset'],_0x2581c7[_0x14ba52(0x192)][_0x14ba52(0x196)]/0x4),_0x138820=_0x36c35c['length']/_0x2fe04d;if(_0x4a5d99&&_0x21a346){let _0x1c071d=MeshProcessing[_0x14ba52(0x190)](_0x21a346,_0x138820);return {'faces':_0x21a346,'neighbors':_0x1c071d,'vertices':_0x36c35c,'dim':_0x2fe04d};}let _0x27d91c=_0x2581c7[_0x14ba52(0x192)][_0x14ba52(0x178)],_0x535595;isCompress?_0x535595=_0x36c35c[_0x14ba52(0x178)]:_0x535595=_0x27d91c[_0x14ba52(0x19f)](_0x2581c7[_0x14ba52(0x192)][_0x14ba52(0x16f)],_0x2581c7[_0x14ba52(0x192)][_0x14ba52(0x16f)]+_0x2581c7[_0x14ba52(0x192)][_0x14ba52(0x196)]);let _0x37d68c=MeshProcessing[_0x14ba52(0x197)](_0x535595,_0x2fe04d),_0x27d4ed=S3MEdgeProcessor['selectIndexData'](_0x37d68c[_0x14ba52(0x198)],_0x21a346),_0x467710=MeshProcessing[_0x14ba52(0x190)](_0x27d4ed,_0x37d68c[_0x14ba52(0x184)]),_0x2a1c60=new Float32Array(_0x37d68c[_0x14ba52(0x178)]);return {'faces':_0x27d4ed,'neighbors':_0x467710,'vertices':_0x2a1c60,'dim':_0x2fe04d};},S3MEdgeProcessor[_0x2171e5(0x19c)]=function(_0x35d556,_0x5d4666){const _0x1c9507=_0x2171e5;if(_0x5d4666){_0x5d4666=_0x5d4666[_0x1c9507(0x19f)]();for(let _0x1660d5=0x0;_0x1660d5<_0x5d4666[_0x1c9507(0x182)];_0x1660d5++){_0x5d4666[_0x1660d5]=_0x35d556[_0x5d4666[_0x1660d5]];}return _0x5d4666;}return _0x35d556;};let scratchV0=new Geoworld[(_0x2171e5(0x18a))](),scratchV1=new Geoworld[(_0x2171e5(0x18a))](),scratchV2=new Geoworld['Cartesian3'](),scratchV3=new Geoworld[(_0x2171e5(0x18a))](),scratchN0=new Geoworld[(_0x2171e5(0x18a))](),scratchN1=new Geoworld[(_0x2171e5(0x18a))](),scratchN2=new Geoworld[(_0x2171e5(0x18a))](),scratchN3=new Geoworld[(_0x2171e5(0x18a))]();S3MEdgeProcessor[_0x2171e5(0x17d)]=function(_0xa331ee,_0x9edfbf){const _0x23f5ec=_0x2171e5;let _0x5bcfe9=_0xa331ee['attrLocation'][_0x23f5ec(0x181)],_0xe84e16=_0xa331ee[_0x23f5ec(0x167)][_0x5bcfe9],_0x4c955b=_0xe84e16[_0x23f5ec(0x19b)],_0x24feac=new Float32Array(_0xe84e16[_0x23f5ec(0x192)]['buffer'],_0xe84e16[_0x23f5ec(0x192)][_0x23f5ec(0x16f)],_0xe84e16['typedArray'][_0x23f5ec(0x196)]/0x4);let _0x593bef;_0x9edfbf[_0x23f5ec(0x180)]===0x0?_0x593bef=new Uint16Array(_0x9edfbf[_0x23f5ec(0x187)][_0x23f5ec(0x178)],_0x9edfbf['indicesTypedArray'][_0x23f5ec(0x16f)],_0x9edfbf[_0x23f5ec(0x187)][_0x23f5ec(0x196)]/0x2):_0x593bef=new Uint32Array(_0x9edfbf[_0x23f5ec(0x187)][_0x23f5ec(0x178)],_0x9edfbf[_0x23f5ec(0x187)][_0x23f5ec(0x16f)],_0x9edfbf['indicesTypedArray'][_0x23f5ec(0x196)]/0x4);let _0x195198=[],_0x5eb915=[],_0x174916=_0x593bef[_0x23f5ec(0x182)],_0x47ad72=0x0;for(let _0x1f8fc5=0x0,_0x4567ae=Math['floor'](_0x174916/0x4)*0x4;_0x1f8fc5<_0x4567ae;_0x1f8fc5+=0x4){let _0x37e476=_0x593bef[_0x1f8fc5],_0x250eec=_0x593bef[_0x1f8fc5+0x1],_0x4760ac=_0x593bef[_0x1f8fc5+0x2],_0x189a03=_0x593bef[_0x1f8fc5+0x3];scratchV0['x']=_0x24feac[_0x4c955b*_0x37e476],scratchV0['y']=_0x24feac[_0x4c955b*_0x37e476+0x1],scratchV0['z']=_0x24feac[_0x4c955b*_0x37e476+0x2],scratchV1['x']=_0x24feac[_0x4c955b*_0x250eec],scratchV1['y']=_0x24feac[_0x4c955b*_0x250eec+0x1],scratchV1['z']=_0x24feac[_0x4c955b*_0x250eec+0x2],scratchV2['x']=_0x24feac[_0x4c955b*_0x4760ac],scratchV2['y']=_0x24feac[_0x4c955b*_0x4760ac+0x1],scratchV2['z']=_0x24feac[_0x4c955b*_0x4760ac+0x2],scratchV3['x']=_0x24feac[_0x4c955b*_0x189a03],scratchV3['y']=_0x24feac[_0x4c955b*_0x189a03+0x1],scratchV3['z']=_0x24feac[_0x4c955b*_0x189a03+0x2];if(Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x18c)](scratchV1,scratchV2)||Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x18c)](scratchV1,scratchV3)||Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x18c)](scratchV1,scratchV0)||Geoworld[_0x23f5ec(0x18a)]['equals'](scratchV2,scratchV0)||Geoworld[_0x23f5ec(0x18a)]['equals'](scratchV3,scratchV0))continue;if(_0x4760ac===_0x189a03){Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x16c)](scratchV1,scratchV0,scratchN0),Geoworld['Cartesian3'][_0x23f5ec(0x16c)](scratchV2,scratchV0,scratchN1),Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x186)](scratchN0,scratchN1,scratchN0);if(Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x18c)](scratchN0,Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x175)]))continue;Geoworld[_0x23f5ec(0x18a)]['normalize'](scratchN0,scratchN0),_0x195198[_0x23f5ec(0x195)](scratchV0['x']),_0x195198[_0x23f5ec(0x195)](scratchV0['y']),_0x195198['push'](scratchV0['z']),_0x195198[_0x23f5ec(0x195)](scratchV1['x']),_0x195198['push'](scratchV1['y']),_0x195198[_0x23f5ec(0x195)](scratchV1['z']),_0x195198[_0x23f5ec(0x195)](scratchN0['x']),_0x195198[_0x23f5ec(0x195)](scratchN0['y']),_0x195198[_0x23f5ec(0x195)](scratchN0['z']);}else {Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x16c)](scratchV1,scratchV0,scratchN0),Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x16c)](scratchV2,scratchV0,scratchN1),Geoworld[_0x23f5ec(0x18a)]['cross'](scratchN0,scratchN1,scratchN0);if(Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x18c)](scratchN0,Geoworld['Cartesian3'][_0x23f5ec(0x175)]))continue;Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x163)](scratchN0,scratchN0),Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x16c)](scratchV1,scratchV0,scratchN2),Geoworld['Cartesian3'][_0x23f5ec(0x16c)](scratchV3,scratchV0,scratchN3),Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x186)](scratchN2,scratchN3,scratchN2);if(Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x18c)](scratchN2,Geoworld[_0x23f5ec(0x18a)]['ZERO']))continue;Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x163)](scratchN2,scratchN2),_0x5eb915[_0x23f5ec(0x195)](scratchV0['x']),_0x5eb915['push'](scratchV0['y']),_0x5eb915[_0x23f5ec(0x195)](scratchV0['z']),_0x5eb915['push'](scratchV1['x']),_0x5eb915[_0x23f5ec(0x195)](scratchV1['y']),_0x5eb915[_0x23f5ec(0x195)](scratchV1['z']),_0x5eb915[_0x23f5ec(0x195)](scratchN0['x']),_0x5eb915[_0x23f5ec(0x195)](scratchN0['y']),_0x5eb915[_0x23f5ec(0x195)](scratchN0['z']),_0x5eb915[_0x23f5ec(0x195)](scratchN2['x']),_0x5eb915[_0x23f5ec(0x195)](scratchN2['y']),_0x5eb915[_0x23f5ec(0x195)](scratchN2['z']);}_0x47ad72+=Geoworld[_0x23f5ec(0x18a)][_0x23f5ec(0x176)](scratchV0,scratchV1);}let _0x4b9958=_0x174916/0x4,_0x1768f2=_0x47ad72/_0x4b9958,_0xeea8e5=_0x195198[_0x23f5ec(0x182)]/S3MEdgeProcessor['RegularInstanceStride'],_0x531724=_0x5eb915[_0x23f5ec(0x182)]/0xc;return {'regular':{'instancesData':new Float32Array(_0x195198),'instanceCount':_0xeea8e5,'edgeLength':_0xeea8e5*_0x1768f2},'silhouette':{'instancesData':new Float32Array(_0x5eb915),'instanceCount':_0x531724,'edgeLength':_0x531724},'averageEdgeLength':_0x1768f2};}; const _0x400f=['texCoordCompressConstant','secondary_colour','uv9','primitiveType','instanceCount','slice','getUint16','compressOptions','uv7','aSecondColor','RGB','UNSIGNED_BYTE','red','aTexCoord','string','vertexPackage','blue','verticesCount','parse','uv4','SVC_Vertex','textureCoordIsW','vertexAttributes','green','9978bGKdTl','inflate','unpack','SVC_Normal','getUint8','uv1','getFloat32','instanceBounds','attrLocation','indexOf','129818PJASjx','matrix','geodes','batchId','aColor','instanceIndex','instanceIds','uv2','materials','BYTES_PER_ELEMENT','indicesTypedArray','buffer','rangeMode','9719dMMJKi','aPosition','182959xtrPZg','PixelFormat','minVerticesValue','instanceId','arrayFill','uv5','instanceMode','vertexColorInstance','ComponentDatatype','169330OWZgfb','groupNode','203610xKuyDH','texturePackage','BGR','uv3','indexType','rangeList','aNormal','substring','SVC_TexutreCoord','SHORT','Color','instanceBuffer','12FnCzRN','FLOAT','vertCompressConstant','version','indicesCount','getFloat64','geoPackage','aTexCoordZ','2pDyFvJ','skeletonNames','parseBuffer','minTexCoordValue','uv6','getStringFromTypedArray','bytesOffset','vertexColor','replace','SV_Compressed','getUint32','push','115753tiwTer','length'];const _0x540404=_0x50c1;(function(_0x4ca662,_0x1d8455){const _0x4200b6=_0x50c1;while(!![]){try{const _0x5ec718=parseInt(_0x4200b6(0x1e9))+parseInt(_0x4200b6(0x23a))*-parseInt(_0x4200b6(0x1f5))+-parseInt(_0x4200b6(0x1e7))+-parseInt(_0x4200b6(0x22d))+-parseInt(_0x4200b6(0x1fd))*-parseInt(_0x4200b6(0x223))+parseInt(_0x4200b6(0x209))+parseInt(_0x4200b6(0x1de));if(_0x5ec718===_0x1d8455)break;else _0x4ca662['push'](_0x4ca662['shift']());}catch(_0x12b09f){_0x4ca662['push'](_0x4ca662['shift']());}}}(_0x400f,0x1a006));function S3ModelParser(){}function _0x50c1(_0x5963c0,_0x5c541a){_0x5963c0=_0x5963c0-0x1de;let _0x400fbc=_0x400f[_0x5963c0];return _0x400fbc;}let S3MBVertexTag={'SV_Unkown':0x0,'SV_Standard':0x1,'SV_Compressed':0x2};function unZip(_0x347b33,_0x204659){const _0xe522f5=_0x50c1;let _0x30aa4e=new Uint8Array(_0x347b33,_0x204659);return _0x2de58e[_0xe522f5(0x224)](_0x30aa4e)[_0xe522f5(0x238)];}function parseString(_0x48714f,_0x3b14a9,_0xce0a4a){const _0x346d4f=_0x50c1;let _0x47ed8a=_0x3b14a9[_0x346d4f(0x207)](_0xce0a4a,!![]);_0xce0a4a+=Uint32Array[_0x346d4f(0x236)];let _0x2c161d=new Uint8Array(_0x48714f,_0xce0a4a,_0x47ed8a),_0x10ac56=Geoworld[_0x346d4f(0x202)](_0x2c161d);return _0xce0a4a+=_0x47ed8a,{'string':_0x10ac56,'bytesOffset':_0xce0a4a};}function parseGeode(_0x36a440,_0x8b3361,_0x566586,_0x26629b){const _0x12b570=_0x50c1;let _0x276711={},_0x406b49=[],_0x2fd6d6=new Array(0x10);for(let _0x3f72ac=0x0;_0x3f72ac<0x10;_0x3f72ac++){_0x2fd6d6[_0x3f72ac]=_0x8b3361[_0x12b570(0x1fa)](_0x566586,!![]),_0x566586+=Float64Array[_0x12b570(0x236)];}_0x276711[_0x12b570(0x22e)]=_0x2fd6d6,_0x276711[_0x12b570(0x1fe)]=_0x406b49;let _0x227803=_0x8b3361['getUint32'](_0x566586,!![]);_0x566586+=Uint32Array[_0x12b570(0x236)];for(let _0x54d53b=0x0;_0x54d53b<_0x227803;_0x54d53b++){let _0x22f260=parseString(_0x36a440,_0x8b3361,_0x566586);_0x406b49[_0x12b570(0x208)](_0x22f260[_0x12b570(0x219)]),_0x566586=_0x22f260[_0x12b570(0x203)];}return _0x26629b[_0x12b570(0x208)](_0x276711),_0x566586;}function parsePageLOD(_0x482a9f,_0x328397,_0x31a715,_0x574a42){const _0x5961c3=_0x50c1;let _0x2fd891={};_0x2fd891[_0x5961c3(0x1ee)]=_0x328397['getFloat32'](_0x31a715,!![]),_0x31a715+=Float32Array[_0x5961c3(0x236)],_0x2fd891[_0x5961c3(0x239)]=_0x328397[_0x5961c3(0x211)](_0x31a715,!![]),_0x31a715+=Uint16Array[_0x5961c3(0x236)];let _0x411b40={};_0x411b40['x']=_0x328397[_0x5961c3(0x1fa)](_0x31a715,!![]),_0x31a715+=Float64Array[_0x5961c3(0x236)],_0x411b40['y']=_0x328397[_0x5961c3(0x1fa)](_0x31a715,!![]),_0x31a715+=Float64Array[_0x5961c3(0x236)],_0x411b40['z']=_0x328397[_0x5961c3(0x1fa)](_0x31a715,!![]),_0x31a715+=Float64Array[_0x5961c3(0x236)];let _0x4a1e1a=_0x328397[_0x5961c3(0x1fa)](_0x31a715,!![]);_0x31a715+=Float64Array[_0x5961c3(0x236)],_0x2fd891['boundingSphere']={'center':_0x411b40,'radius':_0x4a1e1a};let _0x29f8f1=parseString(_0x482a9f,_0x328397,_0x31a715),_0x4f2c67=_0x29f8f1[_0x5961c3(0x219)];_0x31a715=_0x29f8f1[_0x5961c3(0x203)];let _0x10949a=_0x4f2c67[_0x5961c3(0x22c)]('Geometry');if(_0x10949a!==-0x1){let _0x13fae2=_0x4f2c67[_0x5961c3(0x1f0)](_0x10949a);_0x4f2c67=_0x4f2c67[_0x5961c3(0x205)](_0x13fae2,'');}_0x2fd891['childTile']=_0x4f2c67,_0x2fd891[_0x5961c3(0x22f)]=[];let _0x150299=_0x328397['getUint32'](_0x31a715,!![]);_0x31a715+=Uint32Array[_0x5961c3(0x236)];for(let _0x33ab39=0x0;_0x33ab39<_0x150299;_0x33ab39++){_0x31a715=parseGeode(_0x482a9f,_0x328397,_0x31a715,_0x2fd891['geodes']);}return _0x574a42[_0x5961c3(0x208)](_0x2fd891),_0x31a715;}function parseGroupNode(_0x14083a,_0x5e5466,_0x351f68,_0x5cee4c){const _0x319161=_0x50c1;let _0x794402={},_0x36b388=[],_0x3a550a=_0x5e5466[_0x319161(0x207)](_0x351f68,!![]);_0x351f68+=Uint32Array[_0x319161(0x236)];let _0x25c28a=_0x5e5466[_0x319161(0x207)](_0x351f68,!![]);_0x351f68+=Uint32Array[_0x319161(0x236)];for(let _0x64873a=0x0;_0x64873a<_0x25c28a;_0x64873a++){_0x351f68=parsePageLOD(_0x14083a,_0x5e5466,_0x351f68,_0x36b388);}_0x794402['pageLods']=_0x36b388;let _0x1491d2=_0x351f68%0x4;return _0x1491d2!==0x0&&(_0x351f68+=0x4-_0x1491d2),_0x5cee4c[_0x319161(0x1e8)]=_0x794402,_0x351f68;}function parseVertex(_0x302770,_0x48bab0,_0x451340,_0xf4f210){const _0x2a1a7e=_0x50c1;let _0x14f98e=_0x48bab0[_0x2a1a7e(0x207)](_0x451340,!![]);_0xf4f210['verticesCount']=_0x14f98e,_0x451340+=Uint32Array[_0x2a1a7e(0x236)];if(_0x451340<=0x0)return _0x451340;let _0xb38f02=_0x48bab0['getUint16'](_0x451340,!![]);_0x451340+=Uint16Array['BYTES_PER_ELEMENT'];let _0x11c3f2=_0x48bab0[_0x2a1a7e(0x211)](_0x451340,!![]);_0x11c3f2=_0xb38f02*Float32Array['BYTES_PER_ELEMENT'],_0x451340+=Uint16Array[_0x2a1a7e(0x236)];let _0x14f761=_0x14f98e*_0xb38f02*Float32Array['BYTES_PER_ELEMENT'],_0x6fed13=new Uint8Array(_0x302770,_0x451340,_0x14f761);_0x451340+=_0x14f761;let _0x290f82=_0xf4f210[_0x2a1a7e(0x221)],_0x49d4ff=_0xf4f210[_0x2a1a7e(0x22b)];return _0x49d4ff['aPosition']=_0x290f82[_0x2a1a7e(0x20a)],_0x290f82['push']({'index':_0x49d4ff[_0x2a1a7e(0x23b)],'typedArray':_0x6fed13,'componentsPerAttribute':_0xb38f02,'componentDatatype':Geoworld[_0x2a1a7e(0x1e6)][_0x2a1a7e(0x1f6)],'offsetInBytes':0x0,'strideInBytes':_0x11c3f2,'normalize':![]}),_0x451340;}function parseNormal(_0x3fd78c,_0x4d7415,_0x8672a4,_0x2459d0){const _0x1b20cc=_0x50c1;let _0x6e2dd2=_0x4d7415['getUint32'](_0x8672a4,!![]);_0x8672a4+=Uint32Array['BYTES_PER_ELEMENT'];if(_0x6e2dd2<=0x0)return _0x8672a4;let _0x236f3d=_0x4d7415[_0x1b20cc(0x211)](_0x8672a4,!![]);_0x8672a4+=Uint16Array[_0x1b20cc(0x236)];let _0x5ec396=_0x4d7415['getUint16'](_0x8672a4,!![]);_0x8672a4+=Uint16Array[_0x1b20cc(0x236)];let _0x32e126=_0x6e2dd2*_0x236f3d*Float32Array['BYTES_PER_ELEMENT'],_0x3e23de=new Uint8Array(_0x3fd78c,_0x8672a4,_0x32e126);_0x8672a4+=_0x32e126;let _0x463a69=_0x2459d0[_0x1b20cc(0x221)],_0x4aeee8=_0x2459d0[_0x1b20cc(0x22b)];return _0x4aeee8['aNormal']=_0x463a69[_0x1b20cc(0x20a)],_0x463a69[_0x1b20cc(0x208)]({'index':_0x4aeee8['aNormal'],'typedArray':_0x3e23de,'componentsPerAttribute':_0x236f3d,'componentDatatype':Geoworld['ComponentDatatype'][_0x1b20cc(0x1f6)],'offsetInBytes':0x0,'strideInBytes':_0x5ec396,'normalize':![]}),_0x8672a4;}function parseVertexColor(_0x39ed0d,_0x558fce,_0x51530b,_0x5bacf7){const _0x23eb14=_0x50c1;let _0xa92651=_0x558fce[_0x23eb14(0x207)](_0x51530b,!![]);_0x51530b+=Uint32Array[_0x23eb14(0x236)];let _0x329e5c=_0x5bacf7[_0x23eb14(0x21c)],_0x53db98;if(_0xa92651>0x0){let _0x49b03e=_0x558fce[_0x23eb14(0x211)](_0x51530b,!![]);_0x51530b+=Uint16Array[_0x23eb14(0x236)],_0x51530b+=Uint8Array[_0x23eb14(0x236)]*0x2;let _0x15f2b5=_0xa92651*Uint8Array['BYTES_PER_ELEMENT']*0x4,_0x1cfd22=new Uint8Array(_0x39ed0d,_0x51530b,_0x15f2b5);_0x53db98=_0x1cfd22['slice'](0x0,_0x15f2b5),_0x51530b+=_0x15f2b5;}else {_0x53db98=new Uint8Array(0x4*_0x329e5c);for(let _0x4b0b70=0x0;_0x4b0b70<_0x329e5c;_0x4b0b70++){_0x53db98[_0x4b0b70*0x4]=0xff,_0x53db98[_0x4b0b70*0x4+0x1]=0xff,_0x53db98[_0x4b0b70*0x4+0x2]=0xff,_0x53db98[_0x4b0b70*0x4+0x3]=0xff;}}let _0x3e37e7=_0x5bacf7[_0x23eb14(0x221)],_0x38ef76=_0x5bacf7[_0x23eb14(0x22b)];return _0x38ef76[_0x23eb14(0x231)]=_0x3e37e7[_0x23eb14(0x20a)],_0x3e37e7[_0x23eb14(0x208)]({'index':_0x38ef76['aColor'],'typedArray':_0x53db98,'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x23eb14(0x1e6)][_0x23eb14(0x216)],'offsetInBytes':0x0,'strideInBytes':0x4,'normalize':!![]}),_0x5bacf7[_0x23eb14(0x204)]=_0x53db98,_0x51530b;}function parseSecondColor(_0x276ee8,_0xf0d29,_0x5629a9,_0xabf887){const _0x194747=_0x50c1;let _0x3fee5e=_0xf0d29[_0x194747(0x207)](_0x5629a9,!![]);_0x5629a9+=Uint32Array[_0x194747(0x236)];if(_0x3fee5e<=0x0)return _0x5629a9;let _0x4cb844=_0xf0d29[_0x194747(0x211)](_0x5629a9,!![]);_0x5629a9+=Uint16Array[_0x194747(0x236)],_0x5629a9+=Uint8Array[_0x194747(0x236)]*0x2;let _0x1f5b2a=_0x3fee5e*Uint8Array['BYTES_PER_ELEMENT']*0x4,_0x886653=new Uint8Array(_0x276ee8,_0x5629a9,_0x1f5b2a);_0x5629a9+=_0x1f5b2a;let _0x4c04c7=_0xabf887['vertexAttributes'],_0x12007f=_0xabf887[_0x194747(0x22b)];return _0x12007f[_0x194747(0x214)]=_0x4c04c7[_0x194747(0x20a)],_0x4c04c7[_0x194747(0x208)]({'index':_0x12007f[_0x194747(0x214)],'typedArray':_0x886653,'componentsPerAttribute':0x4,'componentDatatype':Geoworld['ComponentDatatype'][_0x194747(0x216)],'offsetInBytes':0x0,'strideInBytes':0x4,'normalize':!![]}),_0x5629a9;}function parseTexCoord(_0x50b89a,_0x3c6f4e,_0x4b8ecd,_0x51d34a){const _0x99c104=_0x50c1;let _0x2c9e93=_0x3c6f4e[_0x99c104(0x211)](_0x4b8ecd,!![]);_0x4b8ecd+=Uint16Array[_0x99c104(0x236)],_0x4b8ecd+=Uint16Array[_0x99c104(0x236)];for(let _0x1ffe9c=0x0;_0x1ffe9c<_0x2c9e93;_0x1ffe9c++){let _0x574a19=_0x3c6f4e[_0x99c104(0x207)](_0x4b8ecd,!![]);_0x4b8ecd+=Uint32Array[_0x99c104(0x236)];let _0x10483f=_0x3c6f4e[_0x99c104(0x211)](_0x4b8ecd,!![]);_0x4b8ecd+=Uint16Array[_0x99c104(0x236)];let _0x45cbc3=_0x3c6f4e[_0x99c104(0x211)](_0x4b8ecd,!![]);_0x4b8ecd+=Uint16Array[_0x99c104(0x236)];let _0x2ddd7e=_0x574a19*_0x10483f*Float32Array[_0x99c104(0x236)],_0x2dc7ee=new Uint8Array(_0x50b89a,_0x4b8ecd,_0x2ddd7e);_0x4b8ecd+=_0x2ddd7e;let _0x490e6f=_0x99c104(0x218)+_0x1ffe9c,_0xa86200=_0x51d34a[_0x99c104(0x221)],_0x694668=_0x51d34a[_0x99c104(0x22b)];_0x694668[_0x490e6f]=_0xa86200[_0x99c104(0x20a)],_0xa86200[_0x99c104(0x208)]({'index':_0x694668[_0x490e6f],'typedArray':_0x2dc7ee,'componentsPerAttribute':_0x10483f,'componentDatatype':Geoworld['ComponentDatatype']['FLOAT'],'offsetInBytes':0x0,'strideInBytes':_0x10483f*Float32Array[_0x99c104(0x236)],'normalize':![]});}return _0x4b8ecd;}function parseInstanceInfo(_0x1597dc,_0x515683,_0x175206,_0xd89911){const _0xc01d28=_0x50c1;let _0x55e2d2=_0x515683[_0xc01d28(0x211)](_0x175206,!![]);_0x175206+=Uint16Array[_0xc01d28(0x236)],_0x175206+=Uint16Array['BYTES_PER_ELEMENT'];let _0x3b4817=_0xd89911[_0xc01d28(0x221)],_0xf68540=_0xd89911[_0xc01d28(0x22b)];for(let _0x314c9a=0x0;_0x314c9a<_0x55e2d2;_0x314c9a++){let _0x43a675=_0x515683[_0xc01d28(0x207)](_0x175206,!![]);_0x175206+=Uint32Array[_0xc01d28(0x236)];let _0x3dce46=_0x515683[_0xc01d28(0x211)](_0x175206,!![]);_0x175206+=Uint16Array[_0xc01d28(0x236)];let _0xd7a321=_0x515683[_0xc01d28(0x211)](_0x175206,!![]);_0x175206+=Uint16Array[_0xc01d28(0x236)];let _0x4d9cb5=_0x43a675*_0x3dce46*Float32Array[_0xc01d28(0x236)];if(_0x3dce46===0x11||_0x3dce46===0x1d){let _0x160637=new Uint8Array(_0x1597dc,_0x175206,_0x4d9cb5);_0xd89911[_0xc01d28(0x20f)]=_0x43a675,_0xd89911[_0xc01d28(0x1e4)]=_0x3dce46,_0xd89911[_0xc01d28(0x1f4)]=_0x160637,_0xd89911[_0xc01d28(0x232)]=0x1;let _0x4aae42=_0x3dce46*_0x43a675*0x4,_0xfaaef8=_0x160637[_0xc01d28(0x210)](0x0,_0x4aae42);_0xd89911[_0xc01d28(0x1e5)]=_0xfaaef8;let _0x5a5d93;if(_0x3dce46===0x11)_0x5a5d93=Float32Array[_0xc01d28(0x236)]*0x11,_0xf68540[_0xc01d28(0x234)]=_0x3b4817['length'],_0x3b4817[_0xc01d28(0x208)]({'index':_0xf68540[_0xc01d28(0x234)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0xc01d28(0x1e6)][_0xc01d28(0x1f6)],'normalize':![],'offsetInBytes':0x0,'strideInBytes':_0x5a5d93,'instanceDivisor':0x1}),_0xf68540[_0xc01d28(0x1ec)]=_0x3b4817[_0xc01d28(0x20a)],_0x3b4817[_0xc01d28(0x208)]({'index':_0xf68540[_0xc01d28(0x1ec)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0xc01d28(0x1e6)][_0xc01d28(0x1f6)],'normalize':![],'offsetInBytes':0x4*Float32Array[_0xc01d28(0x236)],'strideInBytes':_0x5a5d93,'instanceDivisor':0x1}),_0xf68540[_0xc01d28(0x21e)]=_0x3b4817[_0xc01d28(0x20a)],_0x3b4817[_0xc01d28(0x208)]({'index':_0xf68540['uv4'],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0xc01d28(0x1e6)]['FLOAT'],'normalize':![],'offsetInBytes':0x8*Float32Array[_0xc01d28(0x236)],'strideInBytes':_0x5a5d93,'instanceDivisor':0x1}),_0xf68540[_0xc01d28(0x20c)]=_0x3b4817[_0xc01d28(0x20a)],_0x3b4817[_0xc01d28(0x208)]({'index':_0xf68540[_0xc01d28(0x20c)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0xc01d28(0x1e6)]['FLOAT'],'normalize':![],'offsetInBytes':0xc*Float32Array[_0xc01d28(0x236)],'strideInBytes':_0x5a5d93,'instanceDivisor':0x1}),_0xf68540[_0xc01d28(0x201)]=_0x3b4817[_0xc01d28(0x20a)],_0x3b4817[_0xc01d28(0x208)]({'index':_0xf68540['uv6'],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0xc01d28(0x1e6)][_0xc01d28(0x216)],'normalize':!![],'offsetInBytes':0x10*Float32Array[_0xc01d28(0x236)],'strideInBytes':_0x5a5d93,'instanceDivisor':0x1});else _0x3dce46===0x1d&&(_0x5a5d93=Float32Array[_0xc01d28(0x236)]*0x1d,_0xf68540['uv1']=_0x3b4817[_0xc01d28(0x20a)],_0x3b4817['push']({'index':_0xf68540[_0xc01d28(0x228)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0xc01d28(0x1e6)]['FLOAT'],'normalize':![],'offsetInBytes':0x0,'strideInBytes':_0x5a5d93,'instanceDivisor':0x1,'byteLength':_0x4d9cb5}),_0xf68540[_0xc01d28(0x234)]=_0x3b4817[_0xc01d28(0x20a)],_0x3b4817[_0xc01d28(0x208)]({'index':_0xf68540[_0xc01d28(0x234)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0xc01d28(0x1e6)][_0xc01d28(0x1f6)],'normalize':![],'offsetInBytes':0x4*Float32Array[_0xc01d28(0x236)],'strideInBytes':_0x5a5d93,'instanceDivisor':0x1}),_0xf68540[_0xc01d28(0x1ec)]=_0x3b4817[_0xc01d28(0x20a)],_0x3b4817['push']({'index':_0xf68540[_0xc01d28(0x1ec)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0xc01d28(0x1e6)]['FLOAT'],'normalize':![],'offsetInBytes':0x8*Float32Array['BYTES_PER_ELEMENT'],'strideInBytes':_0x5a5d93,'instanceDivisor':0x1}),_0xf68540[_0xc01d28(0x21e)]=_0x3b4817[_0xc01d28(0x20a)],_0x3b4817[_0xc01d28(0x208)]({'index':_0xf68540['uv4'],'componentsPerAttribute':0x4,'componentDatatype':Geoworld['ComponentDatatype'][_0xc01d28(0x1f6)],'normalize':![],'offsetInBytes':0xc*Float32Array['BYTES_PER_ELEMENT'],'strideInBytes':_0x5a5d93,'instanceDivisor':0x1}),_0xf68540[_0xc01d28(0x1e3)]=_0x3b4817[_0xc01d28(0x20a)],_0x3b4817[_0xc01d28(0x208)]({'index':_0xf68540[_0xc01d28(0x1e3)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0xc01d28(0x1e6)][_0xc01d28(0x1f6)],'normalize':![],'offsetInBytes':0x10*Float32Array[_0xc01d28(0x236)],'strideInBytes':_0x5a5d93,'instanceDivisor':0x1}),_0xf68540[_0xc01d28(0x201)]=_0x3b4817[_0xc01d28(0x20a)],_0x3b4817[_0xc01d28(0x208)]({'index':_0xf68540[_0xc01d28(0x201)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0xc01d28(0x1e6)][_0xc01d28(0x1f6)],'normalize':![],'offsetInBytes':0x14*Float32Array['BYTES_PER_ELEMENT'],'strideInBytes':_0x5a5d93,'instanceDivisor':0x1}),_0xf68540[_0xc01d28(0x213)]=_0x3b4817['length'],_0x3b4817[_0xc01d28(0x208)]({'index':_0xf68540[_0xc01d28(0x213)],'componentsPerAttribute':0x3,'componentDatatype':Geoworld[_0xc01d28(0x1e6)][_0xc01d28(0x1f6)],'normalize':![],'offsetInBytes':0x18*Float32Array[_0xc01d28(0x236)],'strideInBytes':_0x5a5d93,'instanceDivisor':0x1}),_0xf68540[_0xc01d28(0x20c)]=_0x3b4817['length'],_0x3b4817[_0xc01d28(0x208)]({'index':_0xf68540[_0xc01d28(0x20c)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0xc01d28(0x1e6)][_0xc01d28(0x216)],'normalize':!![],'offsetInBytes':0x1b*Float32Array[_0xc01d28(0x236)],'strideInBytes':_0x5a5d93,'instanceDivisor':0x1}),_0xf68540[_0xc01d28(0x20d)]=_0x3b4817[_0xc01d28(0x20a)],_0x3b4817[_0xc01d28(0x208)]({'index':_0xf68540[_0xc01d28(0x20d)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld['ComponentDatatype']['UNSIGNED_BYTE'],'normalize':!![],'offsetInBytes':0x1c*Float32Array[_0xc01d28(0x236)],'strideInBytes':_0x5a5d93,'instanceDivisor':0x1}));}else {let _0xb567ef=_0x43a675*_0x3dce46;_0xd89911[_0xc01d28(0x22a)]=new Float32Array(_0xb567ef);for(let _0xf90b31=0x0;_0xf90b31<_0xb567ef;_0xf90b31++){_0xd89911[_0xc01d28(0x22a)][_0xf90b31]=_0x515683[_0xc01d28(0x229)](_0x175206+_0xf90b31*Float32Array[_0xc01d28(0x236)],!![]);}}_0x175206+=_0x4d9cb5;}return _0x175206;}function parseCompressVertex(_0x16ed91,_0x1e5639,_0x4dd50e,_0x2c508a){const _0xfe581=_0x50c1;let _0x3afca6=_0x1e5639[_0xfe581(0x207)](_0x4dd50e,!![]);_0x2c508a['verticesCount']=_0x3afca6,_0x4dd50e+=Uint32Array['BYTES_PER_ELEMENT'];if(_0x4dd50e<=0x0)return _0x4dd50e;let _0x45e831=_0x1e5639['getUint16'](_0x4dd50e,!![]);_0x4dd50e+=Uint16Array[_0xfe581(0x236)];let _0x1f5088=_0x1e5639[_0xfe581(0x211)](_0x4dd50e,!![]);_0x1f5088=_0x45e831*Int16Array[_0xfe581(0x236)],_0x4dd50e+=Uint16Array[_0xfe581(0x236)];let _0x57afaf=_0x1e5639[_0xfe581(0x229)](_0x4dd50e,!![]);_0x4dd50e+=Float32Array[_0xfe581(0x236)];let _0x4f2ace={};_0x4f2ace['x']=_0x1e5639[_0xfe581(0x229)](_0x4dd50e,!![]),_0x4dd50e+=Float32Array[_0xfe581(0x236)],_0x4f2ace['y']=_0x1e5639[_0xfe581(0x229)](_0x4dd50e,!![]),_0x4dd50e+=Float32Array[_0xfe581(0x236)],_0x4f2ace['z']=_0x1e5639[_0xfe581(0x229)](_0x4dd50e,!![]),_0x4dd50e+=Float32Array[_0xfe581(0x236)],_0x4f2ace['w']=_0x1e5639[_0xfe581(0x229)](_0x4dd50e,!![]),_0x4dd50e+=Float32Array[_0xfe581(0x236)],_0x2c508a[_0xfe581(0x1f7)]=_0x57afaf,_0x2c508a[_0xfe581(0x1e0)]=_0x4f2ace;let _0x7b9a82=_0x3afca6*_0x45e831*Int16Array[_0xfe581(0x236)],_0xdac8aa=new Uint8Array(_0x16ed91,_0x4dd50e,_0x7b9a82);_0x4dd50e+=_0x7b9a82;let _0x4fb8b2=_0x2c508a[_0xfe581(0x221)],_0x3d6dfe=_0x2c508a[_0xfe581(0x22b)];return _0x3d6dfe[_0xfe581(0x23b)]=_0x4fb8b2[_0xfe581(0x20a)],_0x4fb8b2[_0xfe581(0x208)]({'index':_0x3d6dfe[_0xfe581(0x23b)],'typedArray':_0xdac8aa,'componentsPerAttribute':_0x45e831,'componentDatatype':Geoworld[_0xfe581(0x1e6)][_0xfe581(0x1f2)],'offsetInBytes':0x0,'strideInBytes':_0x1f5088,'normalize':![]}),_0x4dd50e;}function parseCompressNormal(_0x15c398,_0x45c6fd,_0x13c4eb,_0x3449cd){const _0x566165=_0x50c1;let _0x217d3d=_0x45c6fd[_0x566165(0x207)](_0x13c4eb,!![]);_0x13c4eb+=Uint32Array[_0x566165(0x236)];if(_0x217d3d<=0x0)return _0x13c4eb;let _0x1abaa3=_0x45c6fd['getUint16'](_0x13c4eb,!![]);_0x13c4eb+=Uint16Array[_0x566165(0x236)];let _0x1e66ff=_0x45c6fd[_0x566165(0x211)](_0x13c4eb,!![]);_0x13c4eb+=Uint16Array['BYTES_PER_ELEMENT'];let _0x1762bb=_0x217d3d*0x2*Int16Array[_0x566165(0x236)],_0x51dedc=new Uint8Array(_0x15c398,_0x13c4eb,_0x1762bb);_0x13c4eb+=_0x1762bb;let _0x4eb373=_0x3449cd[_0x566165(0x221)],_0x579941=_0x3449cd[_0x566165(0x22b)];return _0x579941[_0x566165(0x1ef)]=_0x4eb373[_0x566165(0x20a)],_0x4eb373[_0x566165(0x208)]({'index':_0x579941[_0x566165(0x1ef)],'typedArray':_0x51dedc,'componentsPerAttribute':0x2,'componentDatatype':Geoworld[_0x566165(0x1e6)][_0x566165(0x1f2)],'offsetInBytes':0x0,'strideInBytes':_0x1e66ff,'normalize':![]}),_0x13c4eb;}function parseCompressTexCoord(_0x12b37c,_0x20c812,_0x3c9751,_0x5dcbaa){const _0x29370c=_0x50c1;_0x5dcbaa[_0x29370c(0x20b)]=[],_0x5dcbaa[_0x29370c(0x200)]=[];let _0x2cfcf8=_0x20c812['getUint16'](_0x3c9751,!![]);_0x3c9751+=Uint16Array[_0x29370c(0x236)],_0x3c9751+=Uint16Array[_0x29370c(0x236)];for(let _0x42f980=0x0;_0x42f980<_0x2cfcf8;_0x42f980++){let _0x177b34=_0x20c812[_0x29370c(0x227)](_0x3c9751,!![]);_0x3c9751+=Uint8Array[_0x29370c(0x236)],_0x3c9751+=Uint8Array['BYTES_PER_ELEMENT']*0x3;let _0x4554df=_0x20c812[_0x29370c(0x207)](_0x3c9751,!![]);_0x3c9751+=Uint32Array[_0x29370c(0x236)];let _0x4f9509=_0x20c812[_0x29370c(0x211)](_0x3c9751,!![]);_0x3c9751+=Uint16Array[_0x29370c(0x236)];let _0x2639d0=_0x20c812[_0x29370c(0x211)](_0x3c9751,!![]);_0x3c9751+=Uint16Array['BYTES_PER_ELEMENT'];let _0x38b9c8=_0x20c812[_0x29370c(0x229)](_0x3c9751,!![]);_0x3c9751+=Float32Array[_0x29370c(0x236)],_0x5dcbaa['texCoordCompressConstant']['push'](_0x38b9c8);let _0x3ab720={};_0x3ab720['x']=_0x20c812['getFloat32'](_0x3c9751,!![]),_0x3c9751+=Float32Array[_0x29370c(0x236)],_0x3ab720['y']=_0x20c812[_0x29370c(0x229)](_0x3c9751,!![]),_0x3c9751+=Float32Array[_0x29370c(0x236)],_0x3ab720['z']=_0x20c812[_0x29370c(0x229)](_0x3c9751,!![]),_0x3c9751+=Float32Array['BYTES_PER_ELEMENT'],_0x3ab720['w']=_0x20c812[_0x29370c(0x229)](_0x3c9751,!![]),_0x3c9751+=Float32Array['BYTES_PER_ELEMENT'],_0x5dcbaa[_0x29370c(0x200)][_0x29370c(0x208)](_0x3ab720);let _0x5e94d3=_0x4554df*_0x4f9509*Int16Array['BYTES_PER_ELEMENT'],_0x272d77=new Uint8Array(_0x12b37c,_0x3c9751,_0x5e94d3);_0x3c9751+=_0x5e94d3;let _0x901528=_0x3c9751%0x4;_0x901528!==0x0&&(_0x3c9751+=0x4-_0x901528);let _0x4236c4='aTexCoord'+_0x42f980,_0x2dad6d=_0x5dcbaa[_0x29370c(0x221)],_0x4000f0=_0x5dcbaa['attrLocation'];_0x4000f0[_0x4236c4]=_0x2dad6d[_0x29370c(0x20a)],_0x2dad6d['push']({'index':_0x4000f0[_0x4236c4],'typedArray':_0x272d77,'componentsPerAttribute':_0x4f9509,'componentDatatype':Geoworld[_0x29370c(0x1e6)][_0x29370c(0x1f2)],'offsetInBytes':0x0,'strideInBytes':_0x4f9509*Int16Array['BYTES_PER_ELEMENT'],'normalize':![]});if(_0x177b34){_0x5e94d3=_0x4554df*Float32Array[_0x29370c(0x236)];let _0xdedfcf=new Uint8Array(_0x12b37c,_0x3c9751,_0x5e94d3);_0x3c9751+=_0x5e94d3,_0x5dcbaa['texCoordZMatrix']=!![],_0x4236c4=_0x29370c(0x1fc)+_0x42f980,_0x4000f0[_0x4236c4]=_0x2dad6d[_0x29370c(0x20a)],_0x2dad6d['push']({'index':_0x4000f0[_0x4236c4],'typedArray':_0xdedfcf,'componentsPerAttribute':0x1,'componentDatatype':Geoworld[_0x29370c(0x1e6)][_0x29370c(0x1f6)],'offsetInBytes':0x0,'strideInBytes':Float32Array[_0x29370c(0x236)],'normalize':![]});}}return _0x3c9751;}function parseStandardSkeleton(_0x1679f7,_0x1a6737,_0x46adc9,_0x45b6f8){return _0x46adc9=parseVertex(_0x1679f7,_0x1a6737,_0x46adc9,_0x45b6f8),_0x46adc9=parseNormal(_0x1679f7,_0x1a6737,_0x46adc9,_0x45b6f8),_0x46adc9=parseVertexColor(_0x1679f7,_0x1a6737,_0x46adc9,_0x45b6f8),_0x46adc9=parseSecondColor(_0x1679f7,_0x1a6737,_0x46adc9,_0x45b6f8),_0x46adc9=parseTexCoord(_0x1679f7,_0x1a6737,_0x46adc9,_0x45b6f8),_0x46adc9=parseInstanceInfo(_0x1679f7,_0x1a6737,_0x46adc9,_0x45b6f8),_0x46adc9;}function parseCompressSkeleton(_0x18e2a1,_0x420cf6,_0x3eb61c,_0x2ff5aa){const _0x5c36b9=_0x50c1;let _0x262c51=_0x420cf6[_0x5c36b9(0x207)](_0x3eb61c,!![]);return _0x2ff5aa[_0x5c36b9(0x212)]=_0x262c51,_0x3eb61c+=Uint32Array[_0x5c36b9(0x236)],(_0x262c51&_0x1d3947[_0x5c36b9(0x21f)])===_0x1d3947[_0x5c36b9(0x21f)]?_0x3eb61c=parseCompressVertex(_0x18e2a1,_0x420cf6,_0x3eb61c,_0x2ff5aa):_0x3eb61c=parseVertex(_0x18e2a1,_0x420cf6,_0x3eb61c,_0x2ff5aa),(_0x262c51&_0x1d3947[_0x5c36b9(0x226)])===_0x1d3947['SVC_Normal']?_0x3eb61c=parseCompressNormal(_0x18e2a1,_0x420cf6,_0x3eb61c,_0x2ff5aa):_0x3eb61c=parseNormal(_0x18e2a1,_0x420cf6,_0x3eb61c,_0x2ff5aa),_0x3eb61c=parseVertexColor(_0x18e2a1,_0x420cf6,_0x3eb61c,_0x2ff5aa),_0x3eb61c=parseSecondColor(_0x18e2a1,_0x420cf6,_0x3eb61c,_0x2ff5aa),(_0x262c51&_0x1d3947[_0x5c36b9(0x1f1)])===_0x1d3947[_0x5c36b9(0x1f1)]?_0x3eb61c=parseCompressTexCoord(_0x18e2a1,_0x420cf6,_0x3eb61c,_0x2ff5aa):_0x3eb61c=parseTexCoord(_0x18e2a1,_0x420cf6,_0x3eb61c,_0x2ff5aa),(_0x262c51&_0x1d3947['SVC_TexutreCoordIsW'])===_0x1d3947['SVC_TexutreCoordIsW']&&(_0x2ff5aa[_0x5c36b9(0x220)]=!![]),_0x3eb61c=parseInstanceInfo(_0x18e2a1,_0x420cf6,_0x3eb61c,_0x2ff5aa),_0x3eb61c;}function parseIndexPackage(_0x5c01d2,_0x3664a8,_0x284590,_0x3bfa97){const _0x1c620e=_0x50c1;let _0x675f46=_0x3664a8[_0x1c620e(0x207)](_0x284590,!![]);_0x284590+=Uint32Array[_0x1c620e(0x236)];for(let _0x1bafd3=0x0;_0x1bafd3<_0x675f46;_0x1bafd3++){let _0xe0d664={},_0x198ed5=_0x3664a8[_0x1c620e(0x207)](_0x284590,!![]);_0x284590+=Uint32Array[_0x1c620e(0x236)];let _0x1f4847=_0x3664a8[_0x1c620e(0x227)](_0x284590,!![]);_0x284590+=Uint8Array[_0x1c620e(0x236)];let _0x4447d3=_0x3664a8[_0x1c620e(0x227)](_0x284590,!![]);_0x284590+=Uint8Array['BYTES_PER_ELEMENT'];let _0x21be6d=_0x3664a8[_0x1c620e(0x227)](_0x284590,!![]);_0x284590+=Uint8Array[_0x1c620e(0x236)],_0x284590+=Uint8Array['BYTES_PER_ELEMENT'];if(_0x198ed5>0x0){let _0x1b0eb0=null,_0x562ca5;_0x1f4847===0x1||_0x1f4847===0x3?(_0x562ca5=_0x198ed5*Uint32Array[_0x1c620e(0x236)],_0x1b0eb0=new Uint8Array(_0x5c01d2,_0x284590,_0x562ca5)):(_0x562ca5=_0x198ed5*Uint16Array[_0x1c620e(0x236)],_0x1b0eb0=new Uint8Array(_0x5c01d2,_0x284590,_0x562ca5),_0x198ed5%0x2!==0x0&&(_0x562ca5+=0x2)),_0xe0d664[_0x1c620e(0x237)]=_0x1b0eb0,_0x284590+=_0x562ca5;}_0xe0d664[_0x1c620e(0x1f9)]=_0x198ed5,_0xe0d664[_0x1c620e(0x1ed)]=_0x1f4847,_0xe0d664[_0x1c620e(0x20e)]=_0x21be6d;let _0x315048=[],_0x351316=_0x3664a8[_0x1c620e(0x207)](_0x284590,!![]);_0x284590+=Uint32Array['BYTES_PER_ELEMENT'];for(let _0x3289a0=0x0;_0x3289a0<_0x351316;_0x3289a0++){let _0x4965e9=parseString(_0x5c01d2,_0x3664a8,_0x284590),_0x10f91f=_0x4965e9['string'];_0x284590=_0x4965e9['bytesOffset'],_0x315048[_0x1c620e(0x208)](_0x10f91f),_0xe0d664['materialCode']=_0x10f91f;}let _0x9a99a=_0x284590%0x4;if(_0x9a99a!==0x0){let _0x411591=0x4-_0x284590%0x4;_0x284590+=_0x411591;}_0x3bfa97[_0x1c620e(0x208)](_0xe0d664);}return _0x284590;}function parseSkeleton(_0x40de53,_0x16c366,_0x448dd2,_0x231153){const _0xc9e2cf=_0x50c1;let _0x1d4e12=_0x16c366[_0xc9e2cf(0x207)](_0x448dd2,!![]);_0x448dd2+=Uint32Array[_0xc9e2cf(0x236)];let _0x25fcb9=_0x16c366[_0xc9e2cf(0x207)](_0x448dd2,!![]);_0x448dd2+=Uint32Array[_0xc9e2cf(0x236)];for(let _0x5d1c8a=0x0;_0x5d1c8a<_0x25fcb9;_0x5d1c8a++){let _0x411925=parseString(_0x40de53,_0x16c366,_0x448dd2),_0x244473=_0x411925[_0xc9e2cf(0x219)];_0x448dd2=_0x411925[_0xc9e2cf(0x203)];let _0x2d1a1e=_0x448dd2%0x4;_0x2d1a1e!==0x0&&(_0x448dd2+=0x4-_0x2d1a1e);let _0x1ef25d=_0x16c366[_0xc9e2cf(0x207)](_0x448dd2,!![]);_0x448dd2+=Int32Array['BYTES_PER_ELEMENT'];let _0x91eb6a={'vertexAttributes':[],'attrLocation':{},'instanceCount':0x0,'instanceMode':0x0,'instanceIndex':-0x1};if(_0x1ef25d===S3MBVertexTag['SV_Standard'])_0x448dd2=parseStandardSkeleton(_0x40de53,_0x16c366,_0x448dd2,_0x91eb6a);else _0x1ef25d===S3MBVertexTag[_0xc9e2cf(0x206)]&&(_0x448dd2=parseCompressSkeleton(_0x40de53,_0x16c366,_0x448dd2,_0x91eb6a));let _0x4995ea=[];_0x448dd2=parseIndexPackage(_0x40de53,_0x16c366,_0x448dd2,_0x4995ea);let _0x4cd49a=undefined;_0x4995ea[_0xc9e2cf(0x20a)]===0x2&&_0x4995ea[0x1][_0xc9e2cf(0x20e)]===0xd&&_0x4995ea[0x1][_0xc9e2cf(0x1f9)]>=0x3&&(_0x4cd49a=S3MEdgeProcessor['createEdgeDataByIndices'](_0x91eb6a,_0x4995ea[0x1])),_0x231153[_0x244473]={'vertexPackage':_0x91eb6a,'arrIndexPackage':_0x4995ea,'edgeGeometry':_0x4cd49a};}let _0x3d40e4=_0x16c366[_0xc9e2cf(0x207)](_0x448dd2,!![]);return _0x448dd2+=_0x3d40e4,_0x448dd2+=Uint32Array[_0xc9e2cf(0x236)],_0x448dd2;}function parseTexturePackage(_0x207411,_0x370c9b,_0x5e1038,_0x470d51){const _0x8ee93f=_0x50c1;let _0x42c1e7=_0x370c9b['getUint32'](_0x5e1038,!![]);_0x5e1038+=Uint32Array[_0x8ee93f(0x236)];let _0x28244b=_0x370c9b['getUint32'](_0x5e1038,!![]);_0x5e1038+=Uint32Array[_0x8ee93f(0x236)];for(let _0x440c60=0x0;_0x440c60<_0x28244b;_0x440c60++){let _0x52ea9d=parseString(_0x207411,_0x370c9b,_0x5e1038),_0x18e107=_0x52ea9d[_0x8ee93f(0x219)];_0x5e1038=_0x52ea9d[_0x8ee93f(0x203)];let _0x408c22=_0x5e1038%0x4;_0x408c22!==0x0&&(_0x5e1038+=0x4-_0x408c22);let _0x16e989=_0x370c9b[_0x8ee93f(0x207)](_0x5e1038,!![]);_0x5e1038+=Uint32Array[_0x8ee93f(0x236)];let _0x178dd4=_0x370c9b[_0x8ee93f(0x207)](_0x5e1038,!![]);_0x5e1038+=Uint32Array['BYTES_PER_ELEMENT'];let _0x170f69=_0x370c9b[_0x8ee93f(0x207)](_0x5e1038,!![]);_0x5e1038+=Uint32Array['BYTES_PER_ELEMENT'];let _0x53cf0a=_0x370c9b[_0x8ee93f(0x207)](_0x5e1038,!![]);_0x5e1038+=Uint32Array[_0x8ee93f(0x236)];let _0x383315=_0x370c9b[_0x8ee93f(0x207)](_0x5e1038,!![]);_0x5e1038+=Uint32Array[_0x8ee93f(0x236)];let _0x3ba771=_0x370c9b[_0x8ee93f(0x207)](_0x5e1038,!![]);_0x5e1038+=Uint32Array[_0x8ee93f(0x236)];let _0x50b518=new Uint8Array(_0x207411,_0x5e1038,_0x383315);_0x5e1038+=_0x383315;let _0x1c7565=_0x3ba771===_0x4b817e[_0x8ee93f(0x215)]||_0x3ba771===_0x4b817e[_0x8ee93f(0x1eb)]?Geoworld['PixelFormat']['RGB_DXT1']:Geoworld[_0x8ee93f(0x1df)]['RGBA_DXT5'];_0x470d51[_0x18e107]={'id':_0x18e107,'width':_0x178dd4,'height':_0x170f69,'compressType':_0x53cf0a,'nFormat':_0x3ba771,'internalFormat':_0x1c7565,'arrayBufferView':_0x50b518};}return _0x5e1038;}function parseMaterial(_0x230ba9,_0x2bf56c,_0x153b04,_0x2361d0){const _0x271f7d=_0x50c1;let _0x570901=_0x2bf56c['getUint32'](_0x153b04,!![]);_0x153b04+=Uint32Array[_0x271f7d(0x236)];let _0x46d433=new Uint8Array(_0x230ba9,_0x153b04,_0x570901),_0x52e393=Geoworld[_0x271f7d(0x202)](_0x46d433);return _0x153b04+=_0x570901,_0x2361d0[_0x271f7d(0x235)]=JSON[_0x271f7d(0x21d)](_0x52e393),_0x153b04;}let colorScratch=new Geoworld[(_0x540404(0x1f3))](),LEFT_16=0x10000;function parsePickInfo(_0x610045,_0x3e0910,_0x5bdb03,_0x2d8864,_0x5850c0,_0x4fc9be){const _0x8d77cf=_0x540404;if((_0x2d8864&0x1)===0x1){let _0x582fa2=_0x3e0910['getUint32'](_0x5bdb03,!![]);_0x5bdb03+=Uint32Array['BYTES_PER_ELEMENT'];let _0x27ccd0=_0x3e0910[_0x8d77cf(0x207)](_0x5bdb03,!![]);_0x5bdb03+=Uint32Array[_0x8d77cf(0x236)];for(let _0x3cb9cb=0x0;_0x3cb9cb<_0x27ccd0;_0x3cb9cb++){let _0x6fefe1=parseString(_0x610045,_0x3e0910,_0x5bdb03),_0x147140=_0x6fefe1[_0x8d77cf(0x219)];_0x5bdb03=_0x6fefe1['bytesOffset'];let _0x5b3665=_0x3e0910['getUint32'](_0x5bdb03,!![]);_0x5bdb03+=Uint32Array[_0x8d77cf(0x236)];let _0x405eb2={};_0x5850c0[_0x147140]['pickInfo']=_0x405eb2;let _0xf11428=_0x5850c0[_0x147140][_0x8d77cf(0x21a)]['instanceIndex'];if(_0xf11428==-0x1){let _0x290e57=new Float32Array(_0x5850c0[_0x147140]['vertexPackage'][_0x8d77cf(0x21c)]);for(let _0x4ca498=0x0;_0x4ca498<_0x5b3665;_0x4ca498++){let _0x207001=_0x3e0910[_0x8d77cf(0x207)](_0x5bdb03,!![]);_0x5bdb03+=Uint32Array[_0x8d77cf(0x236)];let _0x1d43cb=_0x3e0910[_0x8d77cf(0x207)](_0x5bdb03,!![]);_0x5bdb03+=Uint32Array[_0x8d77cf(0x236)];let _0x5a922d=[];for(let _0xbd0022=0x0;_0xbd0022<_0x1d43cb;_0xbd0022++){let _0x2db977=_0x3e0910[_0x8d77cf(0x207)](_0x5bdb03,!![]);_0x5bdb03+=Uint32Array[_0x8d77cf(0x236)];let _0x421c27=_0x3e0910[_0x8d77cf(0x207)](_0x5bdb03,!![]);_0x5bdb03+=Uint32Array['BYTES_PER_ELEMENT'],Geoworld[_0x8d77cf(0x1e2)](_0x290e57,_0x4ca498,_0x2db977,_0x2db977+_0x421c27),_0x5a922d['push']({'vertexColorOffset':_0x2db977,'vertexColorCount':_0x421c27,'batchId':_0x4ca498});}_0x405eb2[_0x207001]=_0x5a922d;}createBatchIdAttribute(_0x5850c0[_0x147140][_0x8d77cf(0x21a)],_0x290e57,undefined);}else {let _0x25c70a=_0x5850c0[_0x147140][_0x8d77cf(0x21a)]['instanceCount'],_0x252f90=_0x5850c0[_0x147140]['vertexPackage'][_0x8d77cf(0x1f4)],_0x804f5f=_0x5850c0[_0x147140]['vertexPackage'][_0x8d77cf(0x1e4)],_0x19d13f=new Float32Array(_0x25c70a),_0x32da4c=[];for(let _0x44afd5=0x0;_0x44afd5<_0x5b3665;_0x44afd5++){let _0x5af072=_0x3e0910['getUint32'](_0x5bdb03,!![]);_0x32da4c[_0x8d77cf(0x208)](_0x5af072),_0x5bdb03+=Uint32Array['BYTES_PER_ELEMENT'];let _0x334ac1=_0x3e0910[_0x8d77cf(0x207)](_0x5bdb03,!![]);_0x5bdb03+=Uint32Array['BYTES_PER_ELEMENT'];for(let _0x4bac18=0x0;_0x4bac18<_0x334ac1;_0x4bac18++){let _0x456845=_0x3e0910[_0x8d77cf(0x207)](_0x5bdb03,!![]);_0x5bdb03+=Uint32Array[_0x8d77cf(0x236)];if(_0x4fc9be==0x2){let _0x5218dd=_0x3e0910['getUint32'](_0x5bdb03,!![]);_0x5bdb03+=Uint32Array[_0x8d77cf(0x236)];}}}let _0x4594d8=_0x804f5f===0x11?0x10:0x1c;_0x4594d8*=Float32Array[_0x8d77cf(0x236)];for(let _0xf98fae=0x0;_0xf98fae<_0x25c70a;_0xf98fae++){_0x19d13f[_0xf98fae]=_0xf98fae;let _0x151fca=_0xf98fae*_0x804f5f*Float32Array['BYTES_PER_ELEMENT']+_0x4594d8;Geoworld[_0x8d77cf(0x1f3)][_0x8d77cf(0x225)](_0x252f90,_0x151fca,colorScratch);let _0x2e67ee=_0x4fc9be===0x2?_0x32da4c[_0xf98fae]:colorScratch[_0x8d77cf(0x217)]+colorScratch[_0x8d77cf(0x222)]*0x100+colorScratch[_0x8d77cf(0x21b)]*LEFT_16;_0x405eb2[_0x2e67ee]===undefined&&(_0x405eb2[_0x2e67ee]={'vertexColorCount':0x1,'instanceIds':[],'vertexColorOffset':_0xf98fae}),_0x405eb2[_0x2e67ee][_0x8d77cf(0x233)][_0x8d77cf(0x208)](_0xf98fae);}createBatchIdAttribute(_0x5850c0[_0x147140][_0x8d77cf(0x21a)],_0x19d13f,0x1);}}}return _0x5bdb03;}function createBatchIdAttribute(_0x17fa13,_0x303160,_0x4a6b70){const _0x3a16ec=_0x540404;let _0x4e42b6=_0x17fa13[_0x3a16ec(0x221)],_0x27623f=_0x17fa13['attrLocation'],_0x289222=_0x4e42b6['length'],_0x50af49=_0x4a6b70===0x1?_0x3a16ec(0x1e1):_0x3a16ec(0x230);_0x27623f[_0x50af49]=_0x289222,_0x4e42b6['push']({'index':_0x289222,'typedArray':_0x303160,'componentsPerAttribute':0x1,'componentDatatype':Geoworld['ComponentDatatype'][_0x3a16ec(0x1f6)],'offsetInBytes':0x0,'strideInBytes':0x0,'instanceDivisor':_0x4a6b70});}S3ModelParser[_0x540404(0x1ff)]=function(_0x4af829){const _0x534328=_0x540404;let _0x1f2e9a=0x0,_0x10509f={'version':undefined,'groupNode':undefined,'geoPackage':{},'matrials':undefined,'texturePackage':{}},_0x5064e0=new DataView(_0x4af829);_0x10509f[_0x534328(0x1f8)]=_0x5064e0[_0x534328(0x229)](_0x1f2e9a,!![]),_0x1f2e9a+=Float32Array['BYTES_PER_ELEMENT'];if(_0x10509f[_0x534328(0x1f8)]>=0x2){let _0x32a65b=_0x5064e0[_0x534328(0x207)](_0x1f2e9a,!![]);_0x1f2e9a+=Uint32Array['BYTES_PER_ELEMENT'];}let _0x14c412=_0x5064e0['getUint32'](_0x1f2e9a,!![]);_0x1f2e9a+=Uint32Array[_0x534328(0x236)];let _0x54859b=unZip(_0x4af829,_0x1f2e9a);_0x5064e0=new DataView(_0x54859b),_0x1f2e9a=0x0;let _0x544dbe=_0x5064e0['getUint32'](_0x1f2e9a,!![]);return _0x1f2e9a+=Uint32Array[_0x534328(0x236)],_0x1f2e9a=parseGroupNode(_0x54859b,_0x5064e0,_0x1f2e9a,_0x10509f),_0x1f2e9a=parseSkeleton(_0x54859b,_0x5064e0,_0x1f2e9a,_0x10509f['geoPackage']),_0x1f2e9a=parseTexturePackage(_0x54859b,_0x5064e0,_0x1f2e9a,_0x10509f[_0x534328(0x1ea)]),_0x1f2e9a=parseMaterial(_0x54859b,_0x5064e0,_0x1f2e9a,_0x10509f),parsePickInfo(_0x54859b,_0x5064e0,_0x1f2e9a,_0x544dbe,_0x10509f[_0x534328(0x1fb)],_0x10509f[_0x534328(0x1f8)]),_0x10509f;}; const _0x160e=['4bOAYgZ','69574tLWsGw','12695RUMkpf','freeze','305155LDnZFn','54648achQRr','207663NRbqeT','172974PBFAnP','387508uQptFg'];function _0x463d(_0x4c07b3,_0x17cfda){_0x4c07b3=_0x4c07b3-0x154;let _0x160e79=_0x160e[_0x4c07b3];return _0x160e79;}const _0x202191=_0x463d;(function(_0x2972a9,_0x5561f9){const _0x411dce=_0x463d;while(!![]){try{const _0x35e44a=parseInt(_0x411dce(0x159))+-parseInt(_0x411dce(0x15c))+parseInt(_0x411dce(0x15b))+-parseInt(_0x411dce(0x157))+-parseInt(_0x411dce(0x15a))+-parseInt(_0x411dce(0x155))*-parseInt(_0x411dce(0x156))+-parseInt(_0x411dce(0x154));if(_0x35e44a===_0x5561f9)break;else _0x2972a9['push'](_0x2972a9['shift']());}catch(_0x396524){_0x2972a9['push'](_0x2972a9['shift']());}}}(_0x160e,0x27dd9));const RangeMode={'Distance':0x0,'Pixel':0x1};var _0x5e8b18 = Object[_0x202191(0x158)](RangeMode); const _0x43f1=['pickInfo','uv9','gbk','subarray','PagedLOD','901wbxAnc','1368268nJXGrA','1AfFEnw','instanceIndex','read','name','batchId','RGBA_DXT5','getUint32','pageLods','instanceBounds','split','materialCode','uv6','buffer','RangeDataList','RangeMode','materials','instanceCount','TexModMatrix','Distance','Material3Ds','firstChild','trim','indicesCount','verticesCount','indexType','primitiveType','AddressMode','queryBooleanValue','FLOAT','queryFirstNode','defaultValue','TransparentSorting','AmbientG','getUint16','aNormal','Shininess','geoPackage','material','2BNClJp','secondary_colour','vertexAttributes','getUint8','shininess','diffuse','addressmode','aPosition','geodes','matrix','parseBuffer','SpecularR','uv1','SpecularG','TextureName','1135507eNFSNy','attrLocation','BoundingSphere','PageLods','SpecularA','AmbientR','namespaceURI','fill','DiffuseA','ComponentDatatype','1418COHdxk','texture','589btrZho','queryNumericValue','758711XLHCNH','instanceIds','772meWlPL','BGR','filteringoption','Diffuse','queryStringValue','PixelFormat','DiffuseB','BYTES_PER_ELEMENT','texturePackage','Pixel','skeletonNames','751zNnquW','aTexCoord','UNSIGNED_BYTE','radius','Specular','instanceBuffer','ambient','url','GeoDeModMatrix','Geode','RGB','textContent','uv2','push','821tncNKr','queryChildNodes','filtermax','TAM_WRAP','uv7','uv4','AmbientB','length','inflate','448028sYWaCV','filtermin','transparentsorting','specular','uv3','texmodmatrix','.s3m','DISTANCE_FROM_EYE_POINT','vertexPackage','instanceMode'];const _0x176dea=_0x4ad0;(function(_0x5d59dc,_0x11194b){const _0xb75726=_0x4ad0;while(!![]){try{const _0x7334d8=-parseInt(_0xb75726(0x10b))*parseInt(_0xb75726(0x152))+parseInt(_0xb75726(0xfc))*parseInt(_0xb75726(0x10d))+-parseInt(_0xb75726(0x15d))*-parseInt(_0xb75726(0x14e))+parseInt(_0xb75726(0x10c))+-parseInt(_0xb75726(0x14c))*parseInt(_0xb75726(0xf3))+-parseInt(_0xb75726(0x142))+-parseInt(_0xb75726(0x150))*-parseInt(_0xb75726(0x133));if(_0x7334d8===_0x11194b)break;else _0x5d59dc['push'](_0x5d59dc['shift']());}catch(_0x530e5f){_0x5d59dc['push'](_0x5d59dc['shift']());}}}(_0x43f1,0xbea00));function parseGeoPackage(_0x647e2e,_0x90ce2c,_0x9e09d3,_0x50fa3c){const _0x11496c=_0x4ad0;let _0x5065b5=_0x9e09d3[_0x11496c(0x113)](_0x50fa3c,!![]);_0x50fa3c+=Uint32Array[_0x11496c(0x159)];let _0x47f4f5=0x0,_0x1bb5dc={},_0x2bf943=_0x1bb5dc[_0x11496c(0x135)]=[],_0x23019f=_0x1bb5dc[_0x11496c(0x143)]={};_0x1bb5dc[_0x11496c(0x11d)]=0x0,_0x1bb5dc[_0x11496c(0x105)]=0x0;let _0x10837d=0x0,_0x5426d6=_0x9e09d3[_0x11496c(0x113)](_0x50fa3c,!![]);_0x50fa3c+=Uint32Array[_0x11496c(0x159)];let _0x3fe35e=_0x9e09d3['getUint16'](_0x50fa3c,!![]);_0x50fa3c+=Uint32Array[_0x11496c(0x159)];let _0x253ddc=_0x3fe35e;_0x3fe35e>0x4&&(_0x253ddc=_0x3fe35e>>0x8,_0x3fe35e=_0x3fe35e&0xf);let _0x354bfc=_0x9e09d3[_0x11496c(0x113)](_0x50fa3c,!![]);_0x50fa3c+=Uint32Array[_0x11496c(0x159)];if(_0x354bfc>0x0){let _0x5856e4=_0x9e09d3['getUint16'](_0x50fa3c,!![]);_0x5856e4=_0x3fe35e*Float32Array['BYTES_PER_ELEMENT'],_0x50fa3c+=Uint32Array[_0x11496c(0x159)],_0x47f4f5=_0x354bfc*_0x5856e4,_0x23019f[_0x11496c(0x13a)]=_0x10837d,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f['aPosition'],'typedArray':_0x90ce2c['subarray'](_0x50fa3c,_0x50fa3c+_0x47f4f5),'componentsPerAttribute':_0x3fe35e,'componentDatatype':Geoworld[_0x11496c(0x14b)][_0x11496c(0x129)],'offsetInBytes':0x0,'strideInBytes':_0x5856e4,'normalize':![]}),_0x10837d++,_0x50fa3c+=_0x47f4f5;}let _0x421e7b=_0x9e09d3['getUint32'](_0x50fa3c,!![]);_0x50fa3c+=Uint32Array[_0x11496c(0x159)];if(_0x421e7b>0x0){let _0x5713c3=_0x9e09d3[_0x11496c(0x12e)](_0x50fa3c,!![]);_0x5713c3=_0x253ddc*Float32Array['BYTES_PER_ELEMENT'],_0x50fa3c+=Uint32Array[_0x11496c(0x159)],_0x47f4f5=_0x421e7b*_0x5713c3,_0x23019f[_0x11496c(0x12f)]=_0x10837d,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f[_0x11496c(0x12f)],'typedArray':_0x90ce2c[_0x11496c(0x109)](_0x50fa3c,_0x50fa3c+_0x47f4f5),'componentsPerAttribute':_0x253ddc,'componentDatatype':Geoworld['ComponentDatatype'][_0x11496c(0x129)],'offsetInBytes':0x0,'strideInBytes':_0x5713c3,'normalize':![]}),_0x10837d++,_0x50fa3c+=_0x47f4f5;}let _0x3ac681=_0x9e09d3[_0x11496c(0x113)](_0x50fa3c,!![]);_0x50fa3c+=Uint32Array['BYTES_PER_ELEMENT'];if(_0x3ac681>0x0){let _0x514d=new Uint8Array(0x4*_0x3ac681),_0x44fcde=_0x9e09d3[_0x11496c(0x113)](_0x50fa3c,!![]);_0x44fcde=0x4*Float32Array[_0x11496c(0x159)],_0x50fa3c+=Uint32Array[_0x11496c(0x159)],_0x47f4f5=_0x3ac681*_0x44fcde;let _0x5a6b03=new Float32Array(_0x90ce2c[_0x11496c(0x119)],_0x50fa3c,_0x354bfc*0x4);for(let _0x5bc94a=0x0;_0x5bc94a<_0x354bfc;_0x5bc94a++){_0x514d[0x4*_0x5bc94a]=_0x5a6b03[0x4*_0x5bc94a]*0xff,_0x514d[0x4*_0x5bc94a+0x1]=_0x5a6b03[0x4*_0x5bc94a+0x1]*0xff,_0x514d[0x4*_0x5bc94a+0x2]=_0x5a6b03[0x4*_0x5bc94a+0x2]*0xff,_0x514d[0x4*_0x5bc94a+0x3]=_0x5a6b03[0x4*_0x5bc94a+0x3]*0xff;}_0x50fa3c+=_0x47f4f5,_0x23019f['aColor']=_0x10837d,_0x2bf943['push']({'index':_0x23019f['aColor'],'typedArray':_0x514d,'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x11496c(0x14b)][_0x11496c(0x15f)],'offsetInBytes':0x0,'strideInBytes':0x4,'normalize':!![]}),_0x10837d++;}let _0x1c5071=_0x9e09d3[_0x11496c(0x113)](_0x50fa3c,!![]);_0x50fa3c+=Uint32Array[_0x11496c(0x159)];_0x1c5071>0x0&&(_0x47f4f5=_0x1c5071*0x10,_0x50fa3c+=_0x47f4f5);let _0x13b027=_0x9e09d3[_0x11496c(0x113)](_0x50fa3c,!![]);_0x50fa3c+=Uint32Array['BYTES_PER_ELEMENT'];let _0x65ad19=-0x1,_0x3ae1b3,_0x5de0cc,_0x597b26;for(let _0x25db85=0x0;_0x25db85<_0x13b027;_0x25db85++){_0x3ae1b3=_0x9e09d3[_0x11496c(0x113)](_0x50fa3c,!![]),_0x50fa3c+=Uint32Array[_0x11496c(0x159)],_0x597b26=_0x9e09d3[_0x11496c(0x12e)](_0x50fa3c,!![]),_0x50fa3c+=Uint16Array[_0x11496c(0x159)],_0x5de0cc=_0x9e09d3[_0x11496c(0x12e)](_0x50fa3c,!![]),_0x50fa3c+=Uint16Array['BYTES_PER_ELEMENT'],_0x47f4f5=_0x3ae1b3*_0x597b26*Float32Array['BYTES_PER_ELEMENT'];let _0x327f1d=_0x90ce2c[_0x11496c(0x109)](_0x50fa3c,_0x50fa3c+_0x47f4f5);if(_0x65ad19===-0x1&&(_0x597b26===0x14||_0x597b26===0x23)){_0x65ad19=_0x25db85,_0x1bb5dc[_0x11496c(0x11d)]=_0x3ae1b3,_0x1bb5dc[_0x11496c(0x105)]=_0x597b26,_0x1bb5dc['instanceBuffer']=_0x327f1d;let _0x264045;if(_0x597b26===0x14)_0x264045=Float32Array[_0x11496c(0x159)]*0x14,_0x23019f[_0x11496c(0xf1)]=_0x10837d++,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f[_0x11496c(0xf1)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x11496c(0x14b)]['FLOAT'],'normalize':![],'offsetInBytes':0x0,'strideInBytes':_0x264045,'instanceDivisor':0x1}),_0x23019f[_0x11496c(0x100)]=_0x10837d++,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f[_0x11496c(0x100)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x11496c(0x14b)]['FLOAT'],'normalize':![],'offsetInBytes':0x4*Float32Array['BYTES_PER_ELEMENT'],'strideInBytes':_0x264045,'instanceDivisor':0x1}),_0x23019f[_0x11496c(0xf8)]=_0x10837d++,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f[_0x11496c(0xf8)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x11496c(0x14b)][_0x11496c(0x129)],'normalize':![],'offsetInBytes':0x8*Float32Array[_0x11496c(0x159)],'strideInBytes':_0x264045,'instanceDivisor':0x1}),_0x23019f[_0x11496c(0x134)]=_0x10837d++,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f[_0x11496c(0x134)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x11496c(0x14b)]['FLOAT'],'normalize':![],'offsetInBytes':0xc*Float32Array['BYTES_PER_ELEMENT'],'strideInBytes':_0x264045,'instanceDivisor':0x1}),_0x23019f[_0x11496c(0x118)]=_0x10837d++,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f[_0x11496c(0x118)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x11496c(0x14b)][_0x11496c(0x129)],'normalize':![],'offsetInBytes':0x10*Float32Array['BYTES_PER_ELEMENT'],'strideInBytes':_0x264045,'instanceDivisor':0x1});else _0x597b26===0x23&&(_0x264045=Float32Array[_0x11496c(0x159)]*0x23,_0x23019f['uv1']=_0x10837d++,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f[_0x11496c(0x13f)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld['ComponentDatatype'][_0x11496c(0x129)],'normalize':![],'offsetInBytes':0x0,'strideInBytes':_0x264045,'instanceDivisor':0x1,'byteLength':_0x47f4f5}),_0x23019f['uv2']=_0x10837d++,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f[_0x11496c(0xf1)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x11496c(0x14b)]['FLOAT'],'normalize':![],'offsetInBytes':0x4*Float32Array[_0x11496c(0x159)],'strideInBytes':_0x264045,'instanceDivisor':0x1}),_0x23019f[_0x11496c(0x100)]=_0x10837d++,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f[_0x11496c(0x100)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld['ComponentDatatype'][_0x11496c(0x129)],'normalize':![],'offsetInBytes':0x8*Float32Array['BYTES_PER_ELEMENT'],'strideInBytes':_0x264045,'instanceDivisor':0x1}),_0x23019f[_0x11496c(0xf8)]=_0x10837d++,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f[_0x11496c(0xf8)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x11496c(0x14b)]['FLOAT'],'normalize':![],'offsetInBytes':0xc*Float32Array['BYTES_PER_ELEMENT'],'strideInBytes':_0x264045,'instanceDivisor':0x1}),_0x23019f['uv5']=_0x10837d++,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f['uv5'],'componentsPerAttribute':0x4,'componentDatatype':Geoworld['ComponentDatatype'][_0x11496c(0x129)],'normalize':![],'offsetInBytes':0x10*Float32Array[_0x11496c(0x159)],'strideInBytes':_0x264045,'instanceDivisor':0x1}),_0x23019f[_0x11496c(0x118)]=_0x10837d++,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f[_0x11496c(0x118)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x11496c(0x14b)][_0x11496c(0x129)],'normalize':![],'offsetInBytes':0x14*Float32Array[_0x11496c(0x159)],'strideInBytes':_0x264045,'instanceDivisor':0x1}),_0x23019f[_0x11496c(0xf7)]=_0x10837d++,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f[_0x11496c(0xf7)],'componentsPerAttribute':0x3,'componentDatatype':Geoworld[_0x11496c(0x14b)][_0x11496c(0x129)],'normalize':![],'offsetInBytes':0x18*Float32Array['BYTES_PER_ELEMENT'],'strideInBytes':_0x264045,'instanceDivisor':0x1}),_0x23019f[_0x11496c(0x134)]=_0x10837d++,_0x2bf943['push']({'index':_0x23019f[_0x11496c(0x134)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x11496c(0x14b)][_0x11496c(0x129)],'normalize':![],'offsetInBytes':0x1b*Float32Array[_0x11496c(0x159)],'strideInBytes':_0x264045,'instanceDivisor':0x1}),_0x23019f[_0x11496c(0x107)]=_0x10837d++,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f[_0x11496c(0x107)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x11496c(0x14b)][_0x11496c(0x129)],'normalize':![],'offsetInBytes':0x1f*Float32Array[_0x11496c(0x159)],'strideInBytes':_0x264045,'instanceDivisor':0x1}));}else {if(_0x65ad19!==-0x1)_0x1bb5dc[_0x11496c(0x115)]=new Float32Array(_0x90ce2c[_0x11496c(0x119)],_0x50fa3c,_0x3ae1b3*_0x597b26);else {let _0x168be2=_0x11496c(0x15e)+_0x25db85;_0x23019f[_0x168be2]=_0x10837d++,_0x2bf943[_0x11496c(0xf2)]({'index':_0x23019f[_0x168be2],'typedArray':_0x327f1d,'componentsPerAttribute':_0x597b26,'componentDatatype':Geoworld[_0x11496c(0x14b)][_0x11496c(0x129)],'offsetInBytes':0x0,'strideInBytes':_0x597b26*Float32Array['BYTES_PER_ELEMENT'],'normalize':![]});}}_0x50fa3c+=_0x47f4f5;}_0x1bb5dc['verticesCount']=_0x354bfc,_0x1bb5dc[_0x11496c(0x10e)]=_0x65ad19;let _0x50e3f6=_0x9e09d3[_0x11496c(0x113)](_0x50fa3c,!![]);_0x50fa3c+=Uint32Array['BYTES_PER_ELEMENT'];let _0x22f904=[];for(let _0x19f8c9=0x0;_0x19f8c9<_0x50e3f6;_0x19f8c9++){let _0x5917e5={},_0x569663=_0x9e09d3[_0x11496c(0x113)](_0x50fa3c,!![]);_0x50fa3c+=Uint32Array[_0x11496c(0x159)];let _0x244016=_0x9e09d3[_0x11496c(0x136)](_0x50fa3c,!![]);_0x50fa3c+=Uint8Array[_0x11496c(0x159)];let _0x455230=_0x9e09d3[_0x11496c(0x136)](_0x50fa3c,!![]);_0x50fa3c+=Uint8Array[_0x11496c(0x159)];let _0x2c08f4=_0x9e09d3[_0x11496c(0x136)](_0x50fa3c,!![]);_0x50fa3c+=Uint8Array[_0x11496c(0x159)],_0x50fa3c+=0x1,_0x5917e5[_0x11496c(0x123)]=_0x569663,_0x5917e5[_0x11496c(0x125)]=_0x244016,_0x5917e5[_0x11496c(0x126)]=_0x2c08f4;let _0x3c01d6=_0x50fa3c;_0x569663>0x0&&(_0x244016===0x0?(_0x47f4f5=_0x569663*Uint16Array['BYTES_PER_ELEMENT'],_0x50fa3c+=_0x47f4f5,_0x569663%0x2===0x1&&(_0x50fa3c+=0x2)):(_0x47f4f5=_0x569663*0x4,_0x50fa3c+=_0x47f4f5));_0x5917e5['indicesTypedArray']=_0x90ce2c['subarray'](_0x3c01d6,_0x3c01d6+_0x47f4f5);let _0xa6e702=_0x9e09d3['getUint32'](_0x50fa3c,!![]);_0x50fa3c+=Uint32Array[_0x11496c(0x159)];let _0x304445=_0x9e09d3[_0x11496c(0x113)](_0x50fa3c,!![]);_0x50fa3c+=Uint32Array['BYTES_PER_ELEMENT']*_0xa6e702,_0x5917e5[_0x11496c(0x117)]=_0x304445,_0x22f904[_0x11496c(0xf2)](_0x5917e5);}return _0x647e2e[_0x5065b5]={'vertexPackage':_0x1bb5dc,'arrIndexPackage':_0x22f904},_0x50fa3c;}function createBatchIdAttribute$1(_0x1f69db,_0x3f1059,_0x3d509e){const _0x130b86=_0x4ad0;let _0x4ccc72=_0x1f69db[_0x130b86(0x135)],_0x50b901=_0x1f69db[_0x130b86(0x143)],_0x501bff=_0x4ccc72[_0x130b86(0xfa)],_0x3dc171=_0x3d509e===0x1?'instanceId':_0x130b86(0x111);_0x50b901[_0x3dc171]=_0x501bff,_0x4ccc72['push']({'index':_0x501bff,'typedArray':_0x3f1059,'componentsPerAttribute':0x1,'componentDatatype':Geoworld[_0x130b86(0x14b)]['FLOAT'],'offsetInBytes':0x0,'strideInBytes':0x0,'instanceDivisor':_0x3d509e});}function _0x4ad0(_0x48d9a7,_0x5ce85f){_0x48d9a7=_0x48d9a7-0xf1;let _0x43f1fd=_0x43f1[_0x48d9a7];return _0x43f1fd;}function createGroupAndMaterialNode(_0x18a088,_0x466d6c,_0x2af5ee){const _0x470886=_0x4ad0;let _0x8ec7f3=XMLParser[_0x470886(0x10f)](_0x18a088),_0x29a0ec=_0x8ec7f3[_0x470886(0x121)],_0x68531f=_0x29a0ec[_0x470886(0x148)];_0x2af5ee['material']=[];let _0x46c48e=XMLParser['queryFirstNode'](_0x29a0ec,_0x470886(0x120),_0x68531f),_0x299e19=XMLParser[_0x470886(0xf4)](_0x46c48e,_0x470886(0x132),_0x68531f);for(let _0x3e2aff=0x0,_0xff9960=_0x299e19['length'];_0x3e2aff<_0xff9960;_0x3e2aff++){let _0x3d0c3d={},_0x3b6d16=_0x299e19[_0x3e2aff];_0x3d0c3d['id']=XMLParser[_0x470886(0x156)](_0x3b6d16,_0x470886(0x110),_0x68531f);let _0x260f72=XMLParser[_0x470886(0x12a)](_0x3b6d16,'Ambient',_0x68531f),_0x10bd81=Geoworld['defaultValue'](XMLParser[_0x470886(0x14f)](_0x260f72,_0x470886(0x147),_0x68531f),0x1),_0x3c35cb=Geoworld['defaultValue'](XMLParser[_0x470886(0x14f)](_0x260f72,_0x470886(0x12d),_0x68531f),0x1),_0x47305c=Geoworld[_0x470886(0x12b)](XMLParser[_0x470886(0x14f)](_0x260f72,_0x470886(0xf9),_0x68531f),0x1),_0x3a4f79=Geoworld[_0x470886(0x12b)](XMLParser['queryNumericValue'](_0x260f72,'AmbientA',_0x68531f),0x1);_0x3d0c3d[_0x470886(0x163)]={'r':_0x10bd81,'g':_0x3c35cb,'b':_0x47305c,'a':_0x3a4f79};let _0x473ea1=XMLParser[_0x470886(0x12a)](_0x3b6d16,_0x470886(0x155),_0x68531f);_0x10bd81=Geoworld[_0x470886(0x12b)](XMLParser[_0x470886(0x14f)](_0x473ea1,'DiffuseR',_0x68531f),0x1),_0x3c35cb=Geoworld[_0x470886(0x12b)](XMLParser[_0x470886(0x14f)](_0x473ea1,'DiffuseG',_0x68531f),0x1),_0x47305c=Geoworld[_0x470886(0x12b)](XMLParser['queryNumericValue'](_0x473ea1,_0x470886(0x158),_0x68531f),0x1),_0x3a4f79=Geoworld['defaultValue'](XMLParser[_0x470886(0x14f)](_0x473ea1,_0x470886(0x14a),_0x68531f),0x1),_0x3d0c3d[_0x470886(0x138)]={'r':_0x10bd81,'g':_0x3c35cb,'b':_0x47305c,'a':_0x3a4f79};let _0x512fd5=XMLParser[_0x470886(0x12a)](_0x3b6d16,_0x470886(0x161),_0x68531f);_0x10bd81=Geoworld[_0x470886(0x12b)](XMLParser[_0x470886(0x14f)](_0x512fd5,_0x470886(0x13e),_0x68531f),0x0),_0x3c35cb=Geoworld['defaultValue'](XMLParser[_0x470886(0x14f)](_0x512fd5,_0x470886(0x140),_0x68531f),0x0),_0x47305c=Geoworld[_0x470886(0x12b)](XMLParser[_0x470886(0x14f)](_0x512fd5,'SpecularB',_0x68531f),0x0),_0x3a4f79=Geoworld['defaultValue'](XMLParser[_0x470886(0x14f)](_0x512fd5,_0x470886(0x146),_0x68531f),0x0),_0x3d0c3d[_0x470886(0xff)]={'r':_0x10bd81,'g':_0x3c35cb,'b':_0x47305c,'a':_0x3a4f79},_0x3d0c3d[_0x470886(0x137)]=XMLParser[_0x470886(0x14f)](_0x3b6d16,_0x470886(0x130),_0x68531f),_0x3d0c3d[_0x470886(0xfe)]=XMLParser[_0x470886(0x128)](_0x3b6d16,_0x470886(0x12c),_0x68531f),_0x3d0c3d['textureunitstates']=[];let _0x178df2=XMLParser['queryChildNodes'](_0x3b6d16,_0x470886(0x14d),_0x68531f);for(let _0x55f759=0x0;_0x55f759<_0x178df2[_0x470886(0xfa)];_0x55f759++){let _0x398cc0={},_0x34797d=_0x178df2[_0x55f759],_0x137266=XMLParser[_0x470886(0x156)](_0x34797d,_0x470886(0x110),_0x68531f),_0x599ef4=XMLParser[_0x470886(0x156)](_0x34797d,_0x470886(0x141),_0x68531f),_0x479dd0=XMLParser[_0x470886(0x12a)](_0x34797d,_0x470886(0x127),_0x68531f),_0x2d54f2=XMLParser[_0x470886(0x156)](_0x479dd0,'u',_0x68531f),_0x5ada44=_0x2d54f2==='TAM_WRAP'?0x0:0x1,_0x212de7=XMLParser[_0x470886(0x156)](_0x479dd0,'v',_0x68531f),_0x38c1f9=_0x212de7===_0x470886(0xf6)?0x0:0x1,_0x9efc12=XMLParser['queryStringValue'](_0x34797d,_0x470886(0x11e),_0x68531f)[_0x470886(0x116)](','),_0x481252=0x10;while(_0x481252--){_0x9efc12[_0x481252]=parseFloat(_0x9efc12[_0x481252]);}_0x398cc0[_0x470886(0x139)]={'u':_0x5ada44,'v':_0x38c1f9,'w':0x0},_0x398cc0[_0x470886(0x154)]=0x20202020,_0x398cc0[_0x470886(0xf5)]=0x2,_0x398cc0[_0x470886(0xfd)]=0x2,_0x398cc0['id']=_0x137266,_0x398cc0[_0x470886(0x101)]=_0x9efc12,_0x398cc0[_0x470886(0x164)]='',_0x3d0c3d['textureunitstates']['push']({'textureunitstate':_0x398cc0});}_0x2af5ee[_0x470886(0x132)][_0x470886(0xf2)]({'material':_0x3d0c3d});}let _0x384253=XMLParser['queryFirstNode'](_0x29a0ec,_0x470886(0x145),_0x68531f),_0xcd86d4=XMLParser[_0x470886(0xf4)](_0x384253,_0x470886(0x10a),_0x68531f);_0x466d6c[_0x470886(0x114)]=[];if(_0xcd86d4['length']>0x0)for(let _0x2d58b2=0x0,_0xd2a335=_0xcd86d4['length'];_0x2d58b2<_0xd2a335;_0x2d58b2++){let _0x15211=_0xcd86d4[_0x2d58b2],_0x5b1028=XMLParser[_0x470886(0x156)](_0x15211,_0x470886(0x11a),_0x68531f);_0x5b1028?_0x5b1028=_0x5b1028['replace'](/.osgb$/,_0x470886(0x102)):_0x5b1028='';let _0x267716=XMLParser[_0x470886(0x156)](_0x15211,_0x470886(0x11b),_0x68531f),_0x249c43=XMLParser['queryNumericValue'](_0x15211,'RangeList',_0x68531f),_0x29ba24=XMLParser[_0x470886(0x12a)](_0x15211,_0x470886(0x144),_0x68531f),_0x44cf65=XMLParser[_0x470886(0x14f)](_0x29ba24,'x',_0x68531f),_0x16770a=XMLParser[_0x470886(0x14f)](_0x29ba24,'y',_0x68531f),_0x40a70d=XMLParser[_0x470886(0x14f)](_0x29ba24,'z',_0x68531f),_0x564388=XMLParser['queryNumericValue'](_0x29ba24,_0x470886(0x160),_0x68531f),_0x48abb2={'boundingSphere':{'center':{'x':_0x44cf65,'y':_0x16770a,'z':_0x40a70d},'radius':_0x564388},'childTile':_0x5b1028,'geodes':[],'rangeList':_0x249c43,'rangeMode':_0x267716===_0x470886(0x103)?_0x5e8b18[_0x470886(0x11f)]:_0x5e8b18[_0x470886(0x15b)]};_0x48abb2['geodes']=[];let _0x297daf=XMLParser[_0x470886(0xf4)](_0x15211,_0x470886(0x166),_0x68531f);for(let _0x105f49=0x0;_0x105f49<_0x297daf['length'];_0x105f49++){let _0x2246f1={},_0x167fed=_0x297daf[_0x105f49],_0x610b6e=XMLParser[_0x470886(0x156)](_0x167fed,_0x470886(0x165),_0x68531f)['split'](',');for(let _0xe2ff0=0x0;_0xe2ff0<0x10;_0xe2ff0++){_0x610b6e[_0xe2ff0]=parseFloat(_0x610b6e[_0xe2ff0]);}_0x2246f1[_0x470886(0x13c)]=_0x610b6e;let _0x15207c=XMLParser['queryChildNodes'](_0x167fed,'GeoName');_0x2246f1['skeletonNames']=[];for(let _0x56f895=0x0;_0x56f895<_0x15207c[_0x470886(0xfa)];_0x56f895++){let _0x1dd0d3=_0x15207c[_0x56f895][_0x470886(0x168)][_0x470886(0x122)]();_0x2246f1[_0x470886(0x15c)][_0x470886(0xf2)](_0x1dd0d3);}_0x48abb2[_0x470886(0x13b)][_0x470886(0xf2)](_0x2246f1);}_0x466d6c[_0x470886(0x114)][_0x470886(0xf2)](_0x48abb2);}else {let _0x125eb5=XMLParser[_0x470886(0xf4)](_0x384253,_0x470886(0x166),_0x68531f);if(_0x125eb5[_0x470886(0xfa)]>0x0){let _0x54d9fb={'boundingSphere':{'center':{'x':0x0,'y':0x0,'z':0x0},'radius':0x615299},'childTile':'','geodes':[],'rangeList':0x0,'rangeMode':_0x5e8b18['Pixel']};for(let _0x7c94d5=0x0,_0x2efda3=_0x125eb5['length'];_0x7c94d5<_0x2efda3;_0x7c94d5++){let _0xefc40a={},_0x21374a=_0x125eb5[_0x7c94d5],_0x5cf711=XMLParser[_0x470886(0x156)](_0x21374a,_0x470886(0x165),_0x68531f)['split'](',');for(let _0xdafe58=0x0;_0xdafe58<0x10;_0xdafe58++){_0x5cf711[_0xdafe58]=parseFloat(_0x5cf711[_0xdafe58]);}_0xefc40a['matrix']=_0x5cf711;let _0x979212=XMLParser[_0x470886(0xf4)](_0x21374a,'GeoName',_0x68531f);_0xefc40a[_0x470886(0x15c)]=[];for(let _0x3d8ca7=0x0;_0x3d8ca7<_0x979212[_0x470886(0xfa)];_0x3d8ca7++){let _0x18a1d9=_0x979212[_0x3d8ca7][_0x470886(0x168)][_0x470886(0x122)]();_0xefc40a[_0x470886(0x15c)][_0x470886(0xf2)](_0x18a1d9);}_0x54d9fb[_0x470886(0x13b)][_0x470886(0xf2)](_0xefc40a);}_0x466d6c['pageLods']['push'](_0x54d9fb);}}return _0x466d6c;}function unZip$1(_0x45cb10,_0x1778db){const _0x23a1bc=_0x4ad0;let _0x273f41=new Uint8Array(_0x45cb10,_0x1778db);return _0x2de58e[_0x23a1bc(0xfb)](_0x273f41)[_0x23a1bc(0x119)];}function S3ModelOldParser(){}S3ModelOldParser[_0x176dea(0x13d)]=function(_0x25d41f){const _0x8da70d=_0x176dea;let _0x3691df=0x0,_0x495191={'groupNode':{},'geoPackage':{},'materials':{},'texturePackage':{}},_0x58e37e=new Uint8Array(_0x25d41f,0x0,0x4);if(_0x58e37e[0x0]!==0x73||_0x58e37e[0x1]!==0x33||_0x58e37e[0x2]!==0x6d)return {'result':![]};_0x3691df+=0x4;let _0x266580=unZip$1(_0x25d41f,_0x3691df),_0x504d81=new Uint8Array(_0x266580),_0x505dec=new DataView(_0x266580);_0x3691df=0x0;let _0x30565c=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];let _0x396f19=new Uint8Array(_0x266580,_0x3691df,_0x30565c),_0x4cf7bd=_0x30565c%0x4;_0x4cf7bd&&(_0x4cf7bd=0x4-_0x4cf7bd);_0x3691df+=_0x30565c+_0x4cf7bd;let _0xbb4b59=Geoworld['getStringFromTypedArray'](_0x396f19,undefined,undefined,_0x8da70d(0x108));createGroupAndMaterialNode(_0xbb4b59,_0x495191['groupNode'],_0x495191[_0x8da70d(0x11c)]);let _0x270148=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];let _0x887264=_0x505dec['getUint32'](_0x3691df,!![]);_0x3691df+=Uint32Array['BYTES_PER_ELEMENT'];let _0x54e6f0=_0x495191[_0x8da70d(0x131)];for(let _0x39c675=0x0;_0x39c675<_0x887264;_0x39c675++){_0x3691df=parseGeoPackage(_0x54e6f0,_0x504d81,_0x505dec,_0x3691df);}let _0x12c54f=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];let _0x38924a=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];for(let _0x4db5f9=0x0;_0x4db5f9<_0x38924a;_0x4db5f9++){let _0x55a0bd=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];let _0x13e75c=_0x505dec['getUint32'](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];let _0x1652aa={},_0x15846d=_0x54e6f0[_0x55a0bd][_0x8da70d(0x104)][_0x8da70d(0x10e)];if(_0x15846d===-0x1){let _0x13505c=new Float32Array(_0x54e6f0[_0x55a0bd][_0x8da70d(0x104)][_0x8da70d(0x124)]);for(let _0x38f3d7=0x0;_0x38f3d7<_0x13e75c;_0x38f3d7++){let _0x52e16b=_0x505dec['getUint32'](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];let _0x3dc654=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];let _0x30c487=0x0,_0x5c3412=0x0;_0x1652aa[_0x52e16b]=[];for(let _0x33b6db=0x0;_0x33b6db<_0x3dc654;_0x33b6db++){_0x5c3412=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]),_0x3691df+=Uint32Array[_0x8da70d(0x159)],_0x30c487=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]),_0x3691df+=Uint32Array[_0x8da70d(0x159)];if(_0x13505c[_0x8da70d(0x149)])_0x13505c[_0x8da70d(0x149)](_0x38f3d7,_0x5c3412,_0x5c3412+_0x30c487);else {let _0x3c3e31=_0x5c3412+_0x5c3412;for(let _0x71db1f=_0x5c3412;_0x71db1f<_0x3c3e31;_0x71db1f++){_0x13505c[_0x71db1f]=_0x38f3d7;}}_0x1652aa[_0x52e16b][_0x8da70d(0xf2)]({'vertexColorOffset':_0x5c3412,'vertexColorCount':_0x30c487,'batchId':_0x38f3d7});}}createBatchIdAttribute$1(_0x54e6f0[_0x55a0bd]['vertexPackage'],_0x13505c,undefined);}else {let _0x120d68=_0x54e6f0[_0x55a0bd][_0x8da70d(0x104)][_0x8da70d(0x11d)],_0x329f15=_0x54e6f0[_0x55a0bd][_0x8da70d(0x104)][_0x8da70d(0x162)],_0xd8bf75=_0x54e6f0[_0x55a0bd]['vertexPackage'][_0x8da70d(0x105)],_0x21e414=new Float32Array(_0x120d68),_0x45e4ce=0x0;for(let _0x3a707a=0x0;_0x3a707a<_0x13e75c;_0x3a707a++){let _0xa13c5d=_0x505dec['getUint32'](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];let _0x3bccdf=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)],_0x1652aa[_0xa13c5d]=[];for(let _0x555c56=0x0;_0x555c56<_0x3bccdf;_0x555c56++){let _0x56096c=_0x505dec['getUint32'](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)],_0x21e414[_0x45e4ce]=_0x45e4ce,_0x1652aa[_0xa13c5d]===undefined&&(_0x1652aa[_0xa13c5d]=[{'vertexColorCount':0x1,'instanceIds':[],'vertexColorOffset':_0x45e4ce}]),_0x1652aa[_0xa13c5d][_0x8da70d(0x151)][_0x8da70d(0xf2)](_0x56096c),_0x45e4ce++;}}createBatchIdAttribute$1(_0x54e6f0[_0x55a0bd][_0x8da70d(0x104)],_0x21e414,0x1);}_0x54e6f0[_0x55a0bd][_0x8da70d(0x106)]=_0x1652aa;}let _0x309fb1=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];let _0x22fa7c=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];let _0x28d156={};for(let _0x1b14e8=0x0;_0x1b14e8<_0x22fa7c;_0x1b14e8++){let _0x1d9574=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];let _0x3a8eeb=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];let _0x2a7582=_0x505dec['getUint32'](_0x3691df,!![]);_0x3691df+=Uint32Array['BYTES_PER_ELEMENT'];let _0x2ef1e5=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];let _0x51b01d=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]);_0x3691df+=Uint32Array[_0x8da70d(0x159)];let _0x8453e0=_0x505dec[_0x8da70d(0x113)](_0x3691df,!![]);_0x3691df+=Uint32Array['BYTES_PER_ELEMENT'];let _0x3e1e4d=_0x8453e0===_0x4b817e[_0x8da70d(0x167)]||_0x8453e0===_0x4b817e[_0x8da70d(0x153)]?Geoworld[_0x8da70d(0x157)]['RGB_DXT1']:Geoworld[_0x8da70d(0x157)][_0x8da70d(0x112)],_0x5699cf=new Uint8Array(_0x266580,_0x3691df,_0x51b01d);_0x28d156[_0x1d9574]={'id':_0x1d9574,'width':_0x3a8eeb,'height':_0x2a7582,'compressType':_0x2ef1e5,'nFormat':_0x8453e0,'arrayBufferView':_0x5699cf,'internalFormat':_0x3e1e4d},_0x3691df+=_0x51b01d;}return _0x495191[_0x8da70d(0x15a)]=_0x28d156,_0x495191;}; const _0xe015=['aPosition','SVC_TexutreCoord','ComponentDatatype','minTexCoordValue','instanceCount','pickInfo','getFloat64','instanceIds','UNSIGNED_BYTE','secondary_colour','instanceBounds','parse','length','geodes','getUint8','indexType','replace','uv2','uv1','1WJmciH','textureCoordIsW','texCoordCompressConstant','getUint16','bytesOffset','ancestorMap','childTile','geoName','uv3','minVerticesValue','vertexAttributes','offset','5137814laDtjV','substring','Color','uv7','matrix','hasOwnProperty','getUint32','781094CIWpAI','uv4','split','arrayFill','attrLocation','blue','texUnitIndex','aTexCoord','compressOptions','verticesCount','subVertexOffsetArr','aNormal','texCoordZMatrix','subName','SV_Compressed','getFloat32','405487gXzjvT','aSecondColor','getStringFromTypedArray','5KRXrKJ','materialCode','rangeMode','61483yXnAUC','unpack','count','851415vpAFEz','SHORT','vertexColor','rootBatchIdMap','indicesCount','parseBuffer','SVC_TexutreCoordIsW','slice','uv5','1NdwoRa','indexOf','instanceIndex','uv9','FLOAT','createEdgeDataByIndices','SVC_Normal','4AwdzKD','string','isRootTile','buffer','vertexPackage','instanceBuffer','inflate','Geometry','BYTES_PER_ELEMENT','uv6','geoPackage','batchId','vertCompressConstant','push','texturePackage','instanceMode','aColor','pageLods','1404297AKSrLU','rangeList','94321RTfYzP','red','materials','SVC_Vertex'];const _0x4ddd50=_0x387e;(function(_0x3fce98,_0x55c479){const _0x505822=_0x387e;while(!![]){try{const _0x2e8aeb=-parseInt(_0x505822(0x8d))+-parseInt(_0x505822(0x9d))*parseInt(_0x505822(0xb6))+-parseInt(_0x505822(0xa6))+parseInt(_0x505822(0xa0))*parseInt(_0x505822(0xca))+-parseInt(_0x505822(0x7a))*parseInt(_0x505822(0xa3))+-parseInt(_0x505822(0xc8))+-parseInt(_0x505822(0xaf))*-parseInt(_0x505822(0x86));if(_0x2e8aeb===_0x55c479)break;else _0x3fce98['push'](_0x3fce98['shift']());}catch(_0x17639d){_0x3fce98['push'](_0x3fce98['shift']());}}}(_0xe015,0xd915e));function S3MBlockParser(){}let S3MBVertexTag$1={'SV_Unkown':0x0,'SV_Standard':0x1,'SV_Compressed':0x2};function parseString$1(_0x1a4e36,_0x16d2f1,_0x433383){const _0x5a0bcf=_0x387e;let _0x423af5=_0x16d2f1[_0x5a0bcf(0x8c)](_0x433383,!![]);_0x433383+=Uint32Array[_0x5a0bcf(0xbe)];let _0x4740c5=new Uint8Array(_0x1a4e36,_0x433383,_0x423af5),_0xaa2365=Geoworld[_0x5a0bcf(0x9f)](_0x4740c5);return _0x433383+=_0x423af5,{'string':_0xaa2365,'bytesOffset':_0x433383};}function parseGeode$1(_0x409342,_0x10b399,_0x31aa55,_0x3d97f7){const _0x1f716e=_0x387e;let _0x338292={},_0x2a760e=[],_0x3aac5c=new Array(0x10);for(let _0x10660c=0x0;_0x10660c<0x10;_0x10660c++){_0x3aac5c[_0x10660c]=_0x10b399[_0x1f716e(0xd4)](_0x31aa55,!![]),_0x31aa55+=Float64Array[_0x1f716e(0xbe)];}_0x338292[_0x1f716e(0x8a)]=_0x3aac5c,_0x338292['skeletonNames']=_0x2a760e;let _0x222a3f=_0x10b399['getUint32'](_0x31aa55,!![]);_0x31aa55+=Uint32Array[_0x1f716e(0xbe)];for(let _0x3be511=0x0;_0x3be511<_0x222a3f;_0x3be511++){let _0x58be0b=parseString$1(_0x409342,_0x10b399,_0x31aa55);_0x2a760e['push'](_0x58be0b[_0x1f716e(0xb7)]),_0x31aa55=_0x58be0b[_0x1f716e(0x7e)];}return _0x3d97f7[_0x1f716e(0xc3)](_0x338292),_0x31aa55;}function parsePageLOD$1(_0x549c4d,_0x74161,_0x1e7363,_0x4af569){const _0x4f5c11=_0x387e;let _0x28f002={};_0x28f002['rangeList']=_0x74161['getFloat32'](_0x1e7363,!![]),_0x1e7363+=Float32Array['BYTES_PER_ELEMENT'],_0x28f002[_0x4f5c11(0xa2)]=_0x74161[_0x4f5c11(0x7d)](_0x1e7363,!![]),_0x1e7363+=Uint16Array[_0x4f5c11(0xbe)];let _0x3397a7={};_0x3397a7['x']=_0x74161[_0x4f5c11(0xd4)](_0x1e7363,!![]),_0x1e7363+=Float64Array[_0x4f5c11(0xbe)],_0x3397a7['y']=_0x74161[_0x4f5c11(0xd4)](_0x1e7363,!![]),_0x1e7363+=Float64Array['BYTES_PER_ELEMENT'],_0x3397a7['z']=_0x74161[_0x4f5c11(0xd4)](_0x1e7363,!![]),_0x1e7363+=Float64Array[_0x4f5c11(0xbe)];let _0x16edce=_0x74161[_0x4f5c11(0xd4)](_0x1e7363,!![]);_0x1e7363+=Float64Array['BYTES_PER_ELEMENT'],_0x28f002['boundingSphere']={'center':_0x3397a7,'radius':_0x16edce};let _0x4e60bc=parseString$1(_0x549c4d,_0x74161,_0x1e7363),_0x55ad8f=_0x4e60bc['string'];_0x1e7363=_0x4e60bc[_0x4f5c11(0x7e)];let _0x3a4f68=_0x55ad8f[_0x4f5c11(0xb0)](_0x4f5c11(0xbd));if(_0x3a4f68!==-0x1){let _0x4d5cd2=_0x55ad8f[_0x4f5c11(0x87)](_0x3a4f68);_0x55ad8f=_0x55ad8f[_0x4f5c11(0xde)](_0x4d5cd2,'');}_0x28f002[_0x4f5c11(0x80)]=_0x55ad8f,_0x28f002['geodes']=[];let _0x330f73=_0x74161[_0x4f5c11(0x8c)](_0x1e7363,!![]);_0x1e7363+=Uint32Array[_0x4f5c11(0xbe)];for(let _0x207a5f=0x0;_0x207a5f<_0x330f73;_0x207a5f++){_0x1e7363=parseGeode$1(_0x549c4d,_0x74161,_0x1e7363,_0x28f002[_0x4f5c11(0xdb)]);}return _0x4af569[_0x4f5c11(0xc3)](_0x28f002),_0x1e7363;}function parseGroupNode$1(_0x50f192,_0x508fe7,_0x13bc4b,_0x4c0fc3){const _0x4b9289=_0x387e;let _0x28d08={},_0x17945d=[],_0x5aecf8=_0x508fe7[_0x4b9289(0x8c)](_0x13bc4b,!![]);_0x13bc4b+=Uint32Array[_0x4b9289(0xbe)];let _0x40a8cf=_0x508fe7[_0x4b9289(0x8c)](_0x13bc4b,!![]);_0x13bc4b+=Uint32Array['BYTES_PER_ELEMENT'];for(let _0x47a9d6=0x0;_0x47a9d6<_0x40a8cf;_0x47a9d6++){_0x13bc4b=parsePageLOD$1(_0x50f192,_0x508fe7,_0x13bc4b,_0x17945d);}_0x28d08[_0x4b9289(0xc7)]=_0x17945d;let _0x369ad2=_0x13bc4b%0x4;return _0x369ad2!==0x0&&(_0x13bc4b+=0x4-_0x369ad2),_0x4c0fc3['groupNode']=_0x28d08,_0x13bc4b;}function parseVertex$1(_0x1bdb5a,_0xa8d67c,_0x1b6260,_0x54510d){const _0x1c9e2d=_0x387e;let _0x2acf7c=_0xa8d67c['getUint32'](_0x1b6260,!![]);_0x54510d['verticesCount']=_0x2acf7c,_0x1b6260+=Uint32Array[_0x1c9e2d(0xbe)];if(_0x1b6260<=0x0)return _0x1b6260;let _0x2462fb=_0xa8d67c[_0x1c9e2d(0x7d)](_0x1b6260,!![]);_0x1b6260+=Uint16Array[_0x1c9e2d(0xbe)];let _0x47d8e5=_0xa8d67c[_0x1c9e2d(0x7d)](_0x1b6260,!![]);_0x47d8e5=_0x2462fb*Float32Array[_0x1c9e2d(0xbe)],_0x1b6260+=Uint16Array['BYTES_PER_ELEMENT'];let _0x93acf=_0x2acf7c*_0x2462fb*Float32Array['BYTES_PER_ELEMENT'],_0x21eaa2=new Uint8Array(_0x1bdb5a,_0x1b6260,_0x93acf);_0x1b6260+=_0x93acf;let _0x10fa8c=_0x54510d[_0x1c9e2d(0x84)],_0x52d32a=_0x54510d[_0x1c9e2d(0x91)];return _0x52d32a[_0x1c9e2d(0xce)]=_0x10fa8c[_0x1c9e2d(0xda)],_0x10fa8c[_0x1c9e2d(0xc3)]({'index':_0x52d32a[_0x1c9e2d(0xce)],'typedArray':_0x21eaa2,'componentsPerAttribute':_0x2462fb,'componentDatatype':Geoworld['ComponentDatatype'][_0x1c9e2d(0xb3)],'offsetInBytes':0x0,'strideInBytes':_0x47d8e5,'normalize':![]}),_0x1b6260;}function parseNormal$1(_0x18e6e4,_0x3f3fa8,_0x1d1648,_0x3e4cf5){const _0x472127=_0x387e;let _0x6b867d=_0x3f3fa8[_0x472127(0x8c)](_0x1d1648,!![]);_0x1d1648+=Uint32Array[_0x472127(0xbe)];if(_0x6b867d<=0x0)return _0x1d1648;let _0x120b54=_0x3f3fa8[_0x472127(0x7d)](_0x1d1648,!![]);_0x1d1648+=Uint16Array['BYTES_PER_ELEMENT'];let _0x5d148f=_0x3f3fa8[_0x472127(0x7d)](_0x1d1648,!![]);_0x1d1648+=Uint16Array['BYTES_PER_ELEMENT'];let _0x1292d7=_0x6b867d*_0x120b54*Float32Array[_0x472127(0xbe)],_0x17eba0=new Uint8Array(_0x18e6e4,_0x1d1648,_0x1292d7);_0x1d1648+=_0x1292d7;let _0x1cec91=_0x3e4cf5[_0x472127(0x84)],_0x292afe=_0x3e4cf5[_0x472127(0x91)];return _0x292afe[_0x472127(0x98)]=_0x1cec91[_0x472127(0xda)],_0x1cec91[_0x472127(0xc3)]({'index':_0x292afe[_0x472127(0x98)],'typedArray':_0x17eba0,'componentsPerAttribute':_0x120b54,'componentDatatype':Geoworld[_0x472127(0xd0)]['FLOAT'],'offsetInBytes':0x0,'strideInBytes':_0x5d148f,'normalize':![]}),_0x1d1648;}function parseVertexColor$1(_0x59d159,_0x150327,_0x46d0b9,_0x2d60f2){const _0x122c82=_0x387e;let _0x4d0363=_0x150327['getUint32'](_0x46d0b9,!![]);_0x46d0b9+=Uint32Array['BYTES_PER_ELEMENT'];let _0x13b569=_0x2d60f2[_0x122c82(0x96)],_0x539ddb;if(_0x4d0363>0x0){let _0x8a94b1=_0x150327[_0x122c82(0x7d)](_0x46d0b9,!![]);_0x46d0b9+=Uint16Array[_0x122c82(0xbe)],_0x46d0b9+=Uint8Array[_0x122c82(0xbe)]*0x2;let _0x2ef3df=_0x4d0363*Uint8Array[_0x122c82(0xbe)]*0x4,_0x2f5f28=new Uint8Array(_0x59d159,_0x46d0b9,_0x2ef3df);_0x539ddb=_0x2f5f28[_0x122c82(0xad)](0x0,_0x2ef3df),_0x46d0b9+=_0x2ef3df;}else {_0x539ddb=new Uint8Array(0x4*_0x13b569);for(let _0x5223e1=0x0;_0x5223e1<_0x13b569;_0x5223e1++){_0x539ddb[_0x5223e1*0x4]=0xff,_0x539ddb[_0x5223e1*0x4+0x1]=0xff,_0x539ddb[_0x5223e1*0x4+0x2]=0xff,_0x539ddb[_0x5223e1*0x4+0x3]=0xff;}}let _0x43570f=_0x2d60f2[_0x122c82(0x84)],_0x1e7116=_0x2d60f2[_0x122c82(0x91)];return _0x1e7116[_0x122c82(0xc6)]=_0x43570f[_0x122c82(0xda)],_0x43570f[_0x122c82(0xc3)]({'index':_0x1e7116['aColor'],'typedArray':_0x539ddb,'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x122c82(0xd0)][_0x122c82(0xd6)],'offsetInBytes':0x0,'strideInBytes':0x4,'normalize':!![]}),_0x2d60f2[_0x122c82(0xa8)]=_0x539ddb,_0x46d0b9;}function parseSecondColor$1(_0x5078f6,_0x4c49a7,_0x562172,_0x2476d2){const _0x4ed2a4=_0x387e;let _0x30edbe=_0x4c49a7[_0x4ed2a4(0x8c)](_0x562172,!![]);_0x562172+=Uint32Array['BYTES_PER_ELEMENT'];if(_0x30edbe<=0x0)return _0x562172;let _0x6cd995=_0x4c49a7['getUint16'](_0x562172,!![]);_0x562172+=Uint16Array[_0x4ed2a4(0xbe)],_0x562172+=Uint8Array['BYTES_PER_ELEMENT']*0x2;let _0x39d5c9=_0x30edbe*Uint8Array[_0x4ed2a4(0xbe)]*0x4,_0x238dd3=new Uint8Array(_0x5078f6,_0x562172,_0x39d5c9);_0x562172+=_0x39d5c9;let _0x5a1f9a=_0x2476d2['vertexAttributes'],_0x5afc28=_0x2476d2[_0x4ed2a4(0x91)];return _0x5afc28[_0x4ed2a4(0x9e)]=_0x5a1f9a[_0x4ed2a4(0xda)],_0x5a1f9a[_0x4ed2a4(0xc3)]({'index':_0x5afc28['aSecondColor'],'typedArray':_0x238dd3,'componentsPerAttribute':0x4,'componentDatatype':Geoworld['ComponentDatatype'][_0x4ed2a4(0xd6)],'offsetInBytes':0x0,'strideInBytes':0x4,'normalize':!![]}),_0x562172;}function _0x387e(_0x268a16,_0x36748e){_0x268a16=_0x268a16-0x7a;let _0xe0156c=_0xe015[_0x268a16];return _0xe0156c;}function parseTexCoord$1(_0xb55693,_0x5e48e7,_0x257dd8,_0x2af819){const _0x55f91f=_0x387e;let _0x15918=_0x5e48e7[_0x55f91f(0x7d)](_0x257dd8,!![]);_0x257dd8+=Uint16Array[_0x55f91f(0xbe)],_0x257dd8+=Uint16Array[_0x55f91f(0xbe)];for(let _0x27627b=0x0;_0x27627b<_0x15918;_0x27627b++){let _0x46412b=_0x5e48e7['getUint32'](_0x257dd8,!![]);_0x257dd8+=Uint32Array[_0x55f91f(0xbe)];let _0x358c5b=_0x5e48e7[_0x55f91f(0x7d)](_0x257dd8,!![]);_0x257dd8+=Uint16Array[_0x55f91f(0xbe)];let _0x3d9ba6=_0x5e48e7['getUint16'](_0x257dd8,!![]);_0x257dd8+=Uint16Array['BYTES_PER_ELEMENT'];let _0xed1443=_0x46412b*_0x358c5b*Float32Array[_0x55f91f(0xbe)],_0x18212c=new Uint8Array(_0xb55693,_0x257dd8,_0xed1443);_0x257dd8+=_0xed1443;let _0x2b4ec2=_0x55f91f(0x94)+_0x27627b,_0x398aba=_0x2af819['vertexAttributes'],_0x4657f7=_0x2af819['attrLocation'];_0x4657f7[_0x2b4ec2]=_0x398aba[_0x55f91f(0xda)],_0x398aba[_0x55f91f(0xc3)]({'index':_0x4657f7[_0x2b4ec2],'typedArray':_0x18212c,'componentsPerAttribute':_0x358c5b,'componentDatatype':Geoworld[_0x55f91f(0xd0)]['FLOAT'],'offsetInBytes':0x0,'strideInBytes':_0x358c5b*Float32Array[_0x55f91f(0xbe)],'normalize':![]});}return _0x257dd8;}function parseInstanceInfo$1(_0x39b4d5,_0x367858,_0x3557da,_0x3cd2c2){const _0x5d18c7=_0x387e;let _0x5cc9d6=_0x367858[_0x5d18c7(0x7d)](_0x3557da,!![]);_0x3557da+=Uint16Array[_0x5d18c7(0xbe)],_0x3557da+=Uint16Array[_0x5d18c7(0xbe)];let _0x5acfaf=_0x3cd2c2['vertexAttributes'],_0x5a68dd=_0x3cd2c2[_0x5d18c7(0x91)];for(let _0x1662e2=0x0;_0x1662e2<_0x5cc9d6;_0x1662e2++){let _0x2532a8=_0x367858[_0x5d18c7(0x8c)](_0x3557da,!![]);_0x3557da+=Uint32Array[_0x5d18c7(0xbe)];let _0xdc6f6c=_0x367858['getUint16'](_0x3557da,!![]);_0x3557da+=Uint16Array['BYTES_PER_ELEMENT'];let _0x18950a=_0x367858[_0x5d18c7(0x7d)](_0x3557da,!![]);_0x3557da+=Uint16Array[_0x5d18c7(0xbe)];let _0x371a88=_0x2532a8*_0xdc6f6c*Float32Array[_0x5d18c7(0xbe)];if(_0xdc6f6c===0x11||_0xdc6f6c===0x1d){let _0x2f57c6=new Uint8Array(_0x39b4d5,_0x3557da,_0x371a88);_0x3cd2c2[_0x5d18c7(0xd2)]=_0x2532a8,_0x3cd2c2[_0x5d18c7(0xc5)]=_0xdc6f6c,_0x3cd2c2[_0x5d18c7(0xbb)]=_0x2f57c6,_0x3cd2c2[_0x5d18c7(0xb1)]=0x1;let _0x492a57=_0xdc6f6c*_0x2532a8*0x4,_0x253469=_0x2f57c6[_0x5d18c7(0xad)](0x0,_0x492a57);_0x3cd2c2['vertexColorInstance']=_0x253469;let _0x3fbeee;if(_0xdc6f6c===0x11)_0x3fbeee=Float32Array[_0x5d18c7(0xbe)]*0x11,_0x5a68dd[_0x5d18c7(0xdf)]=_0x5acfaf[_0x5d18c7(0xda)],_0x5acfaf['push']({'index':_0x5a68dd[_0x5d18c7(0xdf)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x5d18c7(0xd0)][_0x5d18c7(0xb3)],'normalize':![],'offsetInBytes':0x0,'strideInBytes':_0x3fbeee,'instanceDivisor':0x1}),_0x5a68dd[_0x5d18c7(0x82)]=_0x5acfaf[_0x5d18c7(0xda)],_0x5acfaf['push']({'index':_0x5a68dd[_0x5d18c7(0x82)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld['ComponentDatatype'][_0x5d18c7(0xb3)],'normalize':![],'offsetInBytes':0x4*Float32Array[_0x5d18c7(0xbe)],'strideInBytes':_0x3fbeee,'instanceDivisor':0x1}),_0x5a68dd[_0x5d18c7(0x8e)]=_0x5acfaf['length'],_0x5acfaf[_0x5d18c7(0xc3)]({'index':_0x5a68dd[_0x5d18c7(0x8e)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld['ComponentDatatype'][_0x5d18c7(0xb3)],'normalize':![],'offsetInBytes':0x8*Float32Array[_0x5d18c7(0xbe)],'strideInBytes':_0x3fbeee,'instanceDivisor':0x1}),_0x5a68dd[_0x5d18c7(0xd7)]=_0x5acfaf[_0x5d18c7(0xda)],_0x5acfaf[_0x5d18c7(0xc3)]({'index':_0x5a68dd[_0x5d18c7(0xd7)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld['ComponentDatatype'][_0x5d18c7(0xb3)],'normalize':![],'offsetInBytes':0xc*Float32Array[_0x5d18c7(0xbe)],'strideInBytes':_0x3fbeee,'instanceDivisor':0x1}),_0x5a68dd['uv6']=_0x5acfaf['length'],_0x5acfaf[_0x5d18c7(0xc3)]({'index':_0x5a68dd[_0x5d18c7(0xbf)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld['ComponentDatatype'][_0x5d18c7(0xd6)],'normalize':!![],'offsetInBytes':0x10*Float32Array[_0x5d18c7(0xbe)],'strideInBytes':_0x3fbeee,'instanceDivisor':0x1});else _0xdc6f6c===0x1d&&(_0x3fbeee=Float32Array[_0x5d18c7(0xbe)]*0x1d,_0x5a68dd[_0x5d18c7(0xe0)]=_0x5acfaf[_0x5d18c7(0xda)],_0x5acfaf[_0x5d18c7(0xc3)]({'index':_0x5a68dd[_0x5d18c7(0xe0)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld['ComponentDatatype']['FLOAT'],'normalize':![],'offsetInBytes':0x0,'strideInBytes':_0x3fbeee,'instanceDivisor':0x1,'byteLength':_0x371a88}),_0x5a68dd[_0x5d18c7(0xdf)]=_0x5acfaf[_0x5d18c7(0xda)],_0x5acfaf[_0x5d18c7(0xc3)]({'index':_0x5a68dd['uv2'],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x5d18c7(0xd0)][_0x5d18c7(0xb3)],'normalize':![],'offsetInBytes':0x4*Float32Array[_0x5d18c7(0xbe)],'strideInBytes':_0x3fbeee,'instanceDivisor':0x1}),_0x5a68dd[_0x5d18c7(0x82)]=_0x5acfaf[_0x5d18c7(0xda)],_0x5acfaf[_0x5d18c7(0xc3)]({'index':_0x5a68dd[_0x5d18c7(0x82)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x5d18c7(0xd0)][_0x5d18c7(0xb3)],'normalize':![],'offsetInBytes':0x8*Float32Array['BYTES_PER_ELEMENT'],'strideInBytes':_0x3fbeee,'instanceDivisor':0x1}),_0x5a68dd[_0x5d18c7(0x8e)]=_0x5acfaf['length'],_0x5acfaf[_0x5d18c7(0xc3)]({'index':_0x5a68dd[_0x5d18c7(0x8e)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld['ComponentDatatype']['FLOAT'],'normalize':![],'offsetInBytes':0xc*Float32Array[_0x5d18c7(0xbe)],'strideInBytes':_0x3fbeee,'instanceDivisor':0x1}),_0x5a68dd['uv5']=_0x5acfaf[_0x5d18c7(0xda)],_0x5acfaf[_0x5d18c7(0xc3)]({'index':_0x5a68dd[_0x5d18c7(0xae)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x5d18c7(0xd0)][_0x5d18c7(0xb3)],'normalize':![],'offsetInBytes':0x10*Float32Array[_0x5d18c7(0xbe)],'strideInBytes':_0x3fbeee,'instanceDivisor':0x1}),_0x5a68dd['uv6']=_0x5acfaf[_0x5d18c7(0xda)],_0x5acfaf[_0x5d18c7(0xc3)]({'index':_0x5a68dd[_0x5d18c7(0xbf)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x5d18c7(0xd0)][_0x5d18c7(0xb3)],'normalize':![],'offsetInBytes':0x14*Float32Array[_0x5d18c7(0xbe)],'strideInBytes':_0x3fbeee,'instanceDivisor':0x1}),_0x5a68dd['uv7']=_0x5acfaf[_0x5d18c7(0xda)],_0x5acfaf[_0x5d18c7(0xc3)]({'index':_0x5a68dd[_0x5d18c7(0x89)],'componentsPerAttribute':0x3,'componentDatatype':Geoworld[_0x5d18c7(0xd0)][_0x5d18c7(0xb3)],'normalize':![],'offsetInBytes':0x18*Float32Array['BYTES_PER_ELEMENT'],'strideInBytes':_0x3fbeee,'instanceDivisor':0x1}),_0x5a68dd[_0x5d18c7(0xd7)]=_0x5acfaf[_0x5d18c7(0xda)],_0x5acfaf[_0x5d18c7(0xc3)]({'index':_0x5a68dd[_0x5d18c7(0xd7)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x5d18c7(0xd0)][_0x5d18c7(0xd6)],'normalize':!![],'offsetInBytes':0x1b*Float32Array[_0x5d18c7(0xbe)],'strideInBytes':_0x3fbeee,'instanceDivisor':0x1}),_0x5a68dd[_0x5d18c7(0xb2)]=_0x5acfaf[_0x5d18c7(0xda)],_0x5acfaf[_0x5d18c7(0xc3)]({'index':_0x5a68dd[_0x5d18c7(0xb2)],'componentsPerAttribute':0x4,'componentDatatype':Geoworld[_0x5d18c7(0xd0)][_0x5d18c7(0xd6)],'normalize':!![],'offsetInBytes':0x1c*Float32Array[_0x5d18c7(0xbe)],'strideInBytes':_0x3fbeee,'instanceDivisor':0x1}));}else {let _0x50d647=_0x2532a8*_0xdc6f6c;_0x3cd2c2[_0x5d18c7(0xd8)]=new Float32Array(_0x50d647);for(let _0x3923d2=0x0;_0x3923d2<_0x50d647;_0x3923d2++){_0x3cd2c2[_0x5d18c7(0xd8)][_0x3923d2]=_0x367858[_0x5d18c7(0x9c)](_0x3557da+_0x3923d2*Float32Array['BYTES_PER_ELEMENT'],!![]);}}_0x3557da+=_0x371a88;}return _0x3557da;}function parseCompressVertex$1(_0x56350b,_0x482b23,_0x5a1912,_0x99f21b){const _0x1b87f7=_0x387e;let _0xcaf5cd=_0x482b23['getUint32'](_0x5a1912,!![]);_0x99f21b[_0x1b87f7(0x96)]=_0xcaf5cd,_0x5a1912+=Uint32Array[_0x1b87f7(0xbe)];if(_0x5a1912<=0x0)return _0x5a1912;let _0x592488=_0x482b23[_0x1b87f7(0x7d)](_0x5a1912,!![]);_0x5a1912+=Uint16Array[_0x1b87f7(0xbe)];let _0x5551c7=_0x482b23[_0x1b87f7(0x7d)](_0x5a1912,!![]);_0x5551c7=_0x592488*Int16Array['BYTES_PER_ELEMENT'],_0x5a1912+=Uint16Array[_0x1b87f7(0xbe)];let _0x527fa=_0x482b23[_0x1b87f7(0x9c)](_0x5a1912,!![]);_0x5a1912+=Float32Array[_0x1b87f7(0xbe)];let _0x5dcc02={};_0x5dcc02['x']=_0x482b23[_0x1b87f7(0x9c)](_0x5a1912,!![]),_0x5a1912+=Float32Array['BYTES_PER_ELEMENT'],_0x5dcc02['y']=_0x482b23[_0x1b87f7(0x9c)](_0x5a1912,!![]),_0x5a1912+=Float32Array[_0x1b87f7(0xbe)],_0x5dcc02['z']=_0x482b23['getFloat32'](_0x5a1912,!![]),_0x5a1912+=Float32Array[_0x1b87f7(0xbe)],_0x5dcc02['w']=_0x482b23[_0x1b87f7(0x9c)](_0x5a1912,!![]),_0x5a1912+=Float32Array[_0x1b87f7(0xbe)],_0x99f21b[_0x1b87f7(0xc2)]=_0x527fa,_0x99f21b[_0x1b87f7(0x83)]=_0x5dcc02;let _0x26da9b=_0xcaf5cd*_0x592488*Int16Array['BYTES_PER_ELEMENT'],_0x3b334d=new Uint8Array(_0x56350b,_0x5a1912,_0x26da9b);_0x5a1912+=_0x26da9b;let _0x42ef87=_0x99f21b[_0x1b87f7(0x84)],_0x5de14d=_0x99f21b[_0x1b87f7(0x91)];return _0x5de14d[_0x1b87f7(0xce)]=_0x42ef87[_0x1b87f7(0xda)],_0x42ef87[_0x1b87f7(0xc3)]({'index':_0x5de14d[_0x1b87f7(0xce)],'typedArray':_0x3b334d,'componentsPerAttribute':_0x592488,'componentDatatype':Geoworld[_0x1b87f7(0xd0)][_0x1b87f7(0xa7)],'offsetInBytes':0x0,'strideInBytes':_0x5551c7,'normalize':![]}),_0x5a1912;}function parseCompressNormal$1(_0x18744e,_0x599ad6,_0x379460,_0x36ce71){const _0xb4cd55=_0x387e;let _0x4ec0d5=_0x599ad6[_0xb4cd55(0x8c)](_0x379460,!![]);_0x379460+=Uint32Array[_0xb4cd55(0xbe)];if(_0x4ec0d5<=0x0)return _0x379460;let _0x3aa9fe=_0x599ad6['getUint16'](_0x379460,!![]);_0x379460+=Uint16Array[_0xb4cd55(0xbe)];let _0x20b9d5=_0x599ad6[_0xb4cd55(0x7d)](_0x379460,!![]);_0x379460+=Uint16Array[_0xb4cd55(0xbe)];let _0x56ac8f=_0x4ec0d5*0x2*Int16Array[_0xb4cd55(0xbe)],_0x482f2e=new Uint8Array(_0x18744e,_0x379460,_0x56ac8f);_0x379460+=_0x56ac8f;let _0x34290c=_0x36ce71['vertexAttributes'],_0x4dc71b=_0x36ce71[_0xb4cd55(0x91)];return _0x4dc71b[_0xb4cd55(0x98)]=_0x34290c[_0xb4cd55(0xda)],_0x34290c[_0xb4cd55(0xc3)]({'index':_0x4dc71b[_0xb4cd55(0x98)],'typedArray':_0x482f2e,'componentsPerAttribute':0x2,'componentDatatype':Geoworld[_0xb4cd55(0xd0)][_0xb4cd55(0xa7)],'offsetInBytes':0x0,'strideInBytes':_0x20b9d5,'normalize':![]}),_0x379460;}function parseCompressTexCoord$1(_0x25775c,_0x5b04c4,_0x4f5ebb,_0x4c557a){const _0x9fce2b=_0x387e;_0x4c557a['texCoordCompressConstant']=[],_0x4c557a[_0x9fce2b(0xd1)]=[];let _0x81fd7a=_0x5b04c4[_0x9fce2b(0x7d)](_0x4f5ebb,!![]);_0x4f5ebb+=Uint16Array['BYTES_PER_ELEMENT'],_0x4f5ebb+=Uint16Array[_0x9fce2b(0xbe)];for(let _0x37c4f3=0x0;_0x37c4f3<_0x81fd7a;_0x37c4f3++){let _0x16be85=_0x5b04c4[_0x9fce2b(0xdc)](_0x4f5ebb,!![]);_0x4f5ebb+=Uint8Array[_0x9fce2b(0xbe)],_0x4f5ebb+=Uint8Array['BYTES_PER_ELEMENT']*0x3;let _0x362081=_0x5b04c4[_0x9fce2b(0x8c)](_0x4f5ebb,!![]);_0x4f5ebb+=Uint32Array[_0x9fce2b(0xbe)];let _0x423a61=_0x5b04c4[_0x9fce2b(0x7d)](_0x4f5ebb,!![]);_0x4f5ebb+=Uint16Array[_0x9fce2b(0xbe)];let _0x145daa=_0x5b04c4[_0x9fce2b(0x7d)](_0x4f5ebb,!![]);_0x4f5ebb+=Uint16Array[_0x9fce2b(0xbe)];let _0x58018b=_0x5b04c4[_0x9fce2b(0x9c)](_0x4f5ebb,!![]);_0x4f5ebb+=Float32Array['BYTES_PER_ELEMENT'],_0x4c557a[_0x9fce2b(0x7c)]['push'](_0x58018b);let _0x14f257={};_0x14f257['x']=_0x5b04c4[_0x9fce2b(0x9c)](_0x4f5ebb,!![]),_0x4f5ebb+=Float32Array['BYTES_PER_ELEMENT'],_0x14f257['y']=_0x5b04c4[_0x9fce2b(0x9c)](_0x4f5ebb,!![]),_0x4f5ebb+=Float32Array[_0x9fce2b(0xbe)],_0x14f257['z']=_0x5b04c4[_0x9fce2b(0x9c)](_0x4f5ebb,!![]),_0x4f5ebb+=Float32Array[_0x9fce2b(0xbe)],_0x14f257['w']=_0x5b04c4[_0x9fce2b(0x9c)](_0x4f5ebb,!![]),_0x4f5ebb+=Float32Array[_0x9fce2b(0xbe)],_0x4c557a['minTexCoordValue'][_0x9fce2b(0xc3)](_0x14f257);let _0xe2228b=_0x362081*_0x423a61*Int16Array[_0x9fce2b(0xbe)],_0x44f202=new Uint8Array(_0x25775c,_0x4f5ebb,_0xe2228b);_0x4f5ebb+=_0xe2228b;let _0x2bf0d=_0x4f5ebb%0x4;_0x2bf0d!==0x0&&(_0x4f5ebb+=0x4-_0x2bf0d);let _0x9973ff='aTexCoord'+_0x37c4f3,_0x24793b=_0x4c557a[_0x9fce2b(0x84)],_0x2583aa=_0x4c557a['attrLocation'];_0x2583aa[_0x9973ff]=_0x24793b[_0x9fce2b(0xda)],_0x24793b[_0x9fce2b(0xc3)]({'index':_0x2583aa[_0x9973ff],'typedArray':_0x44f202,'componentsPerAttribute':_0x423a61,'componentDatatype':Geoworld[_0x9fce2b(0xd0)][_0x9fce2b(0xa7)],'offsetInBytes':0x0,'strideInBytes':_0x423a61*Int16Array['BYTES_PER_ELEMENT'],'normalize':![]});if(_0x16be85){_0xe2228b=_0x362081*Float32Array[_0x9fce2b(0xbe)];let _0x3c6ab0=new Uint8Array(_0x25775c,_0x4f5ebb,_0xe2228b);_0x4f5ebb+=_0xe2228b,_0x4c557a[_0x9fce2b(0x99)]=!![],_0x9973ff='aTexCoordZ'+_0x37c4f3,_0x2583aa[_0x9973ff]=_0x24793b['length'],_0x24793b[_0x9fce2b(0xc3)]({'index':_0x2583aa[_0x9973ff],'typedArray':_0x3c6ab0,'componentsPerAttribute':0x1,'componentDatatype':Geoworld['ComponentDatatype']['FLOAT'],'offsetInBytes':0x0,'strideInBytes':Float32Array[_0x9fce2b(0xbe)],'normalize':![]});}}return _0x4f5ebb;}function parseStandardSkeleton$1(_0x362db9,_0x5bbd7b,_0x3377f4,_0x534aed){return _0x3377f4=parseVertex$1(_0x362db9,_0x5bbd7b,_0x3377f4,_0x534aed),_0x3377f4=parseNormal$1(_0x362db9,_0x5bbd7b,_0x3377f4,_0x534aed),_0x3377f4=parseVertexColor$1(_0x362db9,_0x5bbd7b,_0x3377f4,_0x534aed),_0x3377f4=parseSecondColor$1(_0x362db9,_0x5bbd7b,_0x3377f4,_0x534aed),_0x3377f4=parseTexCoord$1(_0x362db9,_0x5bbd7b,_0x3377f4,_0x534aed),_0x3377f4=parseInstanceInfo$1(_0x362db9,_0x5bbd7b,_0x3377f4,_0x534aed),_0x3377f4;}function parseCompressSkeleton$1(_0x1d30c0,_0x5677b1,_0x164308,_0x485bbf){const _0x51abf6=_0x387e;let _0xa3b285=_0x5677b1[_0x51abf6(0x8c)](_0x164308,!![]);return _0x485bbf[_0x51abf6(0x95)]=_0xa3b285,_0x164308+=Uint32Array[_0x51abf6(0xbe)],(_0xa3b285&_0x1d3947[_0x51abf6(0xcd)])===_0x1d3947[_0x51abf6(0xcd)]?_0x164308=parseCompressVertex$1(_0x1d30c0,_0x5677b1,_0x164308,_0x485bbf):_0x164308=parseVertex$1(_0x1d30c0,_0x5677b1,_0x164308,_0x485bbf),(_0xa3b285&_0x1d3947[_0x51abf6(0xb5)])===_0x1d3947[_0x51abf6(0xb5)]?_0x164308=parseCompressNormal$1(_0x1d30c0,_0x5677b1,_0x164308,_0x485bbf):_0x164308=parseNormal$1(_0x1d30c0,_0x5677b1,_0x164308,_0x485bbf),_0x164308=parseVertexColor$1(_0x1d30c0,_0x5677b1,_0x164308,_0x485bbf),_0x164308=parseSecondColor$1(_0x1d30c0,_0x5677b1,_0x164308,_0x485bbf),(_0xa3b285&_0x1d3947[_0x51abf6(0xcf)])===_0x1d3947[_0x51abf6(0xcf)]?_0x164308=parseCompressTexCoord$1(_0x1d30c0,_0x5677b1,_0x164308,_0x485bbf):_0x164308=parseTexCoord$1(_0x1d30c0,_0x5677b1,_0x164308,_0x485bbf),(_0xa3b285&_0x1d3947[_0x51abf6(0xac)])===_0x1d3947[_0x51abf6(0xac)]&&(_0x485bbf[_0x51abf6(0x7b)]=!![]),_0x164308=parseInstanceInfo$1(_0x1d30c0,_0x5677b1,_0x164308,_0x485bbf),_0x164308;}function parseIndexPackage$1(_0x48d10f,_0x1a4f5a,_0x4e0633,_0x52995e){const _0x393583=_0x387e;let _0x30a135=_0x1a4f5a[_0x393583(0x8c)](_0x4e0633,!![]);_0x4e0633+=Uint32Array[_0x393583(0xbe)];for(let _0x805a40=0x0;_0x805a40<_0x30a135;_0x805a40++){let _0x4b91c0={},_0x21863b=_0x1a4f5a['getUint32'](_0x4e0633,!![]);_0x4e0633+=Uint32Array['BYTES_PER_ELEMENT'];let _0x10866e=_0x1a4f5a[_0x393583(0xdc)](_0x4e0633,!![]);_0x4e0633+=Uint8Array[_0x393583(0xbe)];let _0x385af3=_0x1a4f5a[_0x393583(0xdc)](_0x4e0633,!![]);_0x4e0633+=Uint8Array['BYTES_PER_ELEMENT'];let _0xeb486c=_0x1a4f5a['getUint8'](_0x4e0633,!![]);_0x4e0633+=Uint8Array['BYTES_PER_ELEMENT'],_0x4e0633+=Uint8Array['BYTES_PER_ELEMENT'];if(_0x21863b>0x0){let _0x4998ed=null,_0x4c9816;_0x10866e===0x1||_0x10866e===0x3?(_0x4c9816=_0x21863b*Uint32Array[_0x393583(0xbe)],_0x4998ed=new Uint8Array(_0x48d10f,_0x4e0633,_0x4c9816)):(_0x4c9816=_0x21863b*Uint16Array[_0x393583(0xbe)],_0x4998ed=new Uint8Array(_0x48d10f,_0x4e0633,_0x4c9816),_0x21863b%0x2!==0x0&&(_0x4c9816+=0x2)),_0x4b91c0['indicesTypedArray']=_0x4998ed,_0x4e0633+=_0x4c9816;}_0x4b91c0[_0x393583(0xaa)]=_0x21863b,_0x4b91c0[_0x393583(0xdd)]=_0x10866e,_0x4b91c0['primitiveType']=_0xeb486c;let _0x302c66=[],_0x3c2e48=_0x1a4f5a[_0x393583(0x8c)](_0x4e0633,!![]);_0x4e0633+=Uint32Array[_0x393583(0xbe)];for(let _0x1626b8=0x0;_0x1626b8<_0x3c2e48;_0x1626b8++){let _0x5bda35=parseString$1(_0x48d10f,_0x1a4f5a,_0x4e0633),_0x43be4a=_0x5bda35[_0x393583(0xb7)];_0x4e0633=_0x5bda35[_0x393583(0x7e)],_0x302c66[_0x393583(0xc3)](_0x43be4a),_0x4b91c0[_0x393583(0xa1)]=_0x43be4a;}let _0x39f296=_0x4e0633%0x4;if(_0x39f296!==0x0){let _0x347cea=0x4-_0x4e0633%0x4;_0x4e0633+=_0x347cea;}_0x52995e['push'](_0x4b91c0);}return _0x4e0633;}function parseSkeleton$1(_0x202f6b,_0x539c9c,_0x39300c,_0x2d33da){const _0x4fe2e7=_0x387e;let _0x385c9a=_0x539c9c[_0x4fe2e7(0x8c)](_0x39300c,!![]);_0x39300c+=Uint32Array[_0x4fe2e7(0xbe)];let _0x12343f=_0x539c9c[_0x4fe2e7(0x8c)](_0x39300c,!![]);_0x39300c+=Uint32Array[_0x4fe2e7(0xbe)];for(let _0x3f738d=0x0;_0x3f738d<_0x12343f;_0x3f738d++){let _0x584263=parseString$1(_0x202f6b,_0x539c9c,_0x39300c),_0x79d70d=_0x584263['string'];_0x39300c=_0x584263[_0x4fe2e7(0x7e)];let _0x55d256=_0x39300c%0x4;_0x55d256!==0x0&&(_0x39300c+=0x4-_0x55d256);let _0x135ec1=_0x539c9c[_0x4fe2e7(0x8c)](_0x39300c,!![]);_0x39300c+=Int32Array[_0x4fe2e7(0xbe)];let _0x10c356={'vertexAttributes':[],'attrLocation':{},'instanceCount':0x0,'instanceMode':0x0,'instanceIndex':-0x1};if(_0x135ec1===S3MBVertexTag$1['SV_Standard'])_0x39300c=parseStandardSkeleton$1(_0x202f6b,_0x539c9c,_0x39300c,_0x10c356);else _0x135ec1===S3MBVertexTag$1[_0x4fe2e7(0x9b)]&&(_0x39300c=parseCompressSkeleton$1(_0x202f6b,_0x539c9c,_0x39300c,_0x10c356));let _0xd3885f=[];_0x39300c=parseIndexPackage$1(_0x202f6b,_0x539c9c,_0x39300c,_0xd3885f);let _0xec26fa=undefined;_0xd3885f[_0x4fe2e7(0xda)]===0x2&&_0xd3885f[0x1]['primitiveType']===0xd&&_0xd3885f[0x1][_0x4fe2e7(0xaa)]>=0x3&&(_0xec26fa=S3MEdgeProcessor[_0x4fe2e7(0xb4)](_0x10c356,_0xd3885f[0x1])),_0x2d33da[_0x79d70d]={'vertexPackage':_0x10c356,'arrIndexPackage':_0xd3885f,'edgeGeometry':_0xec26fa};}let _0x308f40=_0x539c9c['getUint32'](_0x39300c,!![]);return _0x39300c+=_0x308f40,_0x39300c+=Uint32Array['BYTES_PER_ELEMENT'],_0x39300c;}function createTextureBatch(_0x2aaee0,_0x355d9d,_0x267c25,_0xab509b){const _0x330eca=_0x387e;let _0x48788c=_0x267c25[_0x330eca(0xda)];for(let _0x4aa18d=0x0;_0x4aa18d<_0x48788c;_0x4aa18d++){let _0x3f4e7f=_0x267c25[_0x4aa18d],_0x319e10=_0x3f4e7f[_0x330eca(0x9a)][_0x330eca(0x8f)]('_')[0x0],_0x4d4510=_0x3f4e7f[_0x330eca(0x97)];for(let _0x3fdcf1=0x0;_0x3fdcf1<_0x4d4510[_0x330eca(0xda)];_0x3fdcf1++){let _0x2f76a9=_0x4d4510[_0x3fdcf1],_0xc73f88=_0x2f76a9[_0x330eca(0x81)],_0x148d28=_0x2f76a9[_0x330eca(0x85)],_0x34f144=_0x2f76a9[_0x330eca(0xa5)],_0x5cd172=_0x2f76a9[_0x330eca(0x93)],_0x307fe0=_0x355d9d[_0xc73f88][_0x330eca(0xba)],_0x54291b=_0x307fe0['verticesCount'],_0x1c9f6c=_0xab509b[_0xc73f88];!_0x1c9f6c&&(_0x1c9f6c=_0xab509b[_0xc73f88]={});let _0x5cab66=_0x1c9f6c[_0x5cd172];!_0x5cab66&&(_0x5cab66=_0x1c9f6c[_0x5cd172]=new Float32Array(_0x54291b),Geoworld[_0x330eca(0x90)](_0x5cab66,-0x1));let _0x39edca=_0x2aaee0?_0x2aaee0[_0x319e10]:_0x4aa18d;Geoworld['arrayFill'](_0x5cab66,_0x39edca,_0x148d28,_0x148d28+_0x34f144);}}}function createTexBatchIdAttribute(_0x9facc0,_0x1ec5a1,_0xd31ef7){const _0x4597cb=_0x387e;var _0x4da26c=_0x9facc0[_0x4597cb(0x84)],_0x14b1e5=_0x9facc0['attrLocation'],_0x27218b=_0x4da26c[_0x4597cb(0xda)];_0x14b1e5['aTextureBatchId'+_0xd31ef7]=_0x27218b,_0x4da26c[_0x4597cb(0xc3)]({'index':_0x27218b,'typedArray':_0x1ec5a1,'componentsPerAttribute':0x1,'componentDatatype':Geoworld[_0x4597cb(0xd0)][_0x4597cb(0xb3)],'offsetInBytes':0x0,'strideInBytes':0x0});}function parseTexturePackage$1(_0x43944c,_0x558e40,_0x705991,_0x54d2af,_0x392c0b,_0x11876b,_0x8ce378,_0x586c62){const _0xdefbff=_0x387e;let _0x58cae3=_0x705991,_0x3d2986=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)];let _0x938806=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)];let _0x3fa47d={};for(let _0x5f2cd0=0x0;_0x5f2cd0<_0x938806;_0x5f2cd0++){let _0x4a83d3=parseString$1(_0x43944c,_0x558e40,_0x58cae3),_0x3820c1=_0x4a83d3[_0xdefbff(0xb7)];_0x58cae3=_0x4a83d3[_0xdefbff(0x7e)];let _0x2a38c2=_0x58cae3%0x4;_0x2a38c2!==0x0&&(_0x58cae3+=0x4-_0x2a38c2);let _0x283c5e=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)];let _0x761e36=_0x558e40['getUint8'](_0x58cae3,!![]);_0x58cae3+=Uint8Array['BYTES_PER_ELEMENT'];let _0x3d57b5=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)];let _0x71e81f=_0x558e40['getUint32'](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)];let _0x2c7573=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)];let _0x1bca52=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array['BYTES_PER_ELEMENT'];let _0x5071fb=_0x558e40['getUint32'](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)];let _0x575def;_0x586c62&&(_0x575def=new Uint8Array(_0x43944c,_0x58cae3,_0x1bca52),_0x58cae3+=_0x1bca52);let _0x57152d=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array['BYTES_PER_ELEMENT'];let _0x548650=[];for(let _0xa75988=0x0;_0xa75988<_0x57152d;_0xa75988++){let _0x2841b6=parseString$1(_0x43944c,_0x558e40,_0x58cae3),_0xf17b3=_0x2841b6[_0xdefbff(0xb7)];_0x58cae3=_0x2841b6[_0xdefbff(0x7e)],_0x548650[_0xdefbff(0xc3)](_0xf17b3),_0x8ce378[_0xf17b3]=_0x3820c1;}let _0x454dad=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)];let _0x164379=[];for(let _0x4b7750=0x0;_0x4b7750<_0x454dad;_0x4b7750++){let _0x1df732=parseString$1(_0x43944c,_0x558e40,_0x58cae3);_0x58cae3=_0x1df732[_0xdefbff(0x7e)],_0x164379[_0xdefbff(0xc3)](_0x1df732['string']);}let _0xc3874c=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array['BYTES_PER_ELEMENT'];let _0x3ac838=[],_0x48bd2c=undefined,_0x1ca172=_0x3820c1;if(_0x586c62)_0x48bd2c=_0x11876b[_0x3820c1]={};else {let _0xdd67d6=_0x8ce378[_0x3820c1];_0x1ca172=_0xdd67d6;while(_0xdd67d6){_0x1ca172=_0xdd67d6,_0xdd67d6=_0x8ce378[_0xdd67d6];}_0x1ca172&&(_0x48bd2c=_0x11876b[_0x1ca172]);}let _0xc2c784=0x0;for(let _0x16c74e=0x0;_0x16c74e<_0xc3874c;_0x16c74e++){let _0x2ed069=parseString$1(_0x43944c,_0x558e40,_0x58cae3),_0x5f42fe=_0x2ed069[_0xdefbff(0xb7)];_0x58cae3=_0x2ed069[_0xdefbff(0x7e)];if(_0x586c62){let _0x40eec1=_0x5f42fe[_0xdefbff(0x8f)]('_')[0x0];!_0x48bd2c[_0x40eec1]?_0x48bd2c[_0x40eec1]=_0x16c74e-_0xc2c784:_0xc2c784++;}let _0x47b511=_0x558e40['getUint32'](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)];let _0xe82486=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)];let _0x122e1a=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)];let _0x3a4b24=_0x558e40['getUint32'](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)];let _0x308416=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)];let _0x58eada=[];for(let _0x46832b=0x0;_0x46832b<_0x308416;_0x46832b++){let _0x58e17=parseString$1(_0x43944c,_0x558e40,_0x58cae3),_0x1a8211=_0x58e17[_0xdefbff(0xb7)];_0x58cae3=_0x58e17[_0xdefbff(0x7e)];let _0xa93996=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array['BYTES_PER_ELEMENT'];let _0x583e5a=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)];let _0x282c4b=_0x558e40[_0xdefbff(0x8c)](_0x58cae3,!![]);_0x58cae3+=Uint32Array[_0xdefbff(0xbe)],_0x58eada[_0xdefbff(0xc3)]({'geoName':_0x1a8211,'offset':_0xa93996,'count':_0x583e5a,'texUnitIndex':_0x282c4b});}_0x3ac838[_0xdefbff(0xc3)]({'subName':_0x5f42fe,'offsetX':_0x47b511,'offsetY':_0xe82486,'width':_0x122e1a,'height':_0x3a4b24,'subVertexOffsetArr':_0x58eada});}createTextureBatch(_0x48bd2c,_0x392c0b,_0x3ac838,_0x3fa47d),_0x54d2af[_0x3820c1]={'id':_0x3820c1,'rootTextureName':_0x1ca172,'width':_0x3d57b5,'height':_0x71e81f,'compressType':_0x2c7573,'size':_0x1bca52,'format':_0x5071fb,'textureData':_0x575def,'subTexInfos':_0x3ac838,'requestNames':_0x164379};}for(let _0x1609a3 in _0x3fa47d){if(_0x3fa47d[_0xdefbff(0x8b)](_0x1609a3)){let _0xbfeb18=_0x392c0b[_0x1609a3][_0xdefbff(0xba)],_0x46fda6=_0x3fa47d[_0x1609a3];for(let _0x2801b6 in _0x46fda6){if(_0x46fda6['hasOwnProperty'](_0x2801b6)){let _0x576506=_0x46fda6[_0x2801b6];createTexBatchIdAttribute(_0xbfeb18,_0x576506,_0x2801b6);}}}}return _0x58cae3;}function parseMaterial$1(_0x230682,_0x4de823,_0x3fa3a6,_0xacf3cb){const _0x16141e=_0x387e;let _0x3485c4=_0x4de823[_0x16141e(0x8c)](_0x3fa3a6,!![]);_0x3fa3a6+=Uint32Array['BYTES_PER_ELEMENT'];let _0x3016aa=new Uint8Array(_0x230682,_0x3fa3a6,_0x3485c4),_0x1b87fe=Geoworld[_0x16141e(0x9f)](_0x3016aa);return _0x3fa3a6+=_0x3485c4,_0xacf3cb[_0x16141e(0xcc)]=JSON[_0x16141e(0xd9)](_0x1b87fe),_0x3fa3a6;}let colorScratch$1=new Geoworld[(_0x4ddd50(0x88))](),LEFT_16$1=0x10000;function parsePickInfo$1(_0x2dd7ed,_0x3e1905,_0x2eb2bd,_0x5cb618,_0x13ffd0,_0x1d307e){const _0x14daa2=_0x4ddd50;if((_0x5cb618&0x1)===0x1){let _0x177a2d=_0x3e1905[_0x14daa2(0x8c)](_0x2eb2bd,!![]);_0x2eb2bd+=Uint32Array[_0x14daa2(0xbe)];let _0x2edb4a=_0x3e1905[_0x14daa2(0x8c)](_0x2eb2bd,!![]);_0x2eb2bd+=Uint32Array[_0x14daa2(0xbe)];for(let _0x78cfdf=0x0;_0x78cfdf<_0x2edb4a;_0x78cfdf++){let _0x448680=parseString$1(_0x2dd7ed,_0x3e1905,_0x2eb2bd),_0x3ab750=_0x448680[_0x14daa2(0xb7)];_0x2eb2bd=_0x448680[_0x14daa2(0x7e)];let _0x345bdf=_0x3e1905[_0x14daa2(0x8c)](_0x2eb2bd,!![]);_0x2eb2bd+=Uint32Array[_0x14daa2(0xbe)];let _0x11d9c6={};_0x13ffd0[_0x3ab750][_0x14daa2(0xd3)]=_0x11d9c6;let _0x1335b5=_0x13ffd0[_0x3ab750][_0x14daa2(0xba)][_0x14daa2(0xb1)];if(_0x1335b5==-0x1){let _0x1c0202=new Float32Array(_0x13ffd0[_0x3ab750][_0x14daa2(0xba)][_0x14daa2(0x96)]);for(let _0xf4f565=0x0;_0xf4f565<_0x345bdf;_0xf4f565++){let _0x3a0d20=_0x3e1905['getUint32'](_0x2eb2bd,!![]);_0x2eb2bd+=Uint32Array[_0x14daa2(0xbe)];let _0x102b12=_0x3e1905[_0x14daa2(0x8c)](_0x2eb2bd,!![]);_0x2eb2bd+=Uint32Array[_0x14daa2(0xbe)];let _0x1e66e9=[];for(let _0x54109c=0x0;_0x54109c<_0x102b12;_0x54109c++){let _0x567375=_0x3e1905[_0x14daa2(0x8c)](_0x2eb2bd,!![]);_0x2eb2bd+=Uint32Array[_0x14daa2(0xbe)];let _0x2dd982=_0x3e1905[_0x14daa2(0x8c)](_0x2eb2bd,!![]);_0x2eb2bd+=Uint32Array[_0x14daa2(0xbe)],Geoworld[_0x14daa2(0x90)](_0x1c0202,_0xf4f565,_0x567375,_0x567375+_0x2dd982),_0x1e66e9[_0x14daa2(0xc3)]({'vertexColorOffset':_0x567375,'vertexColorCount':_0x2dd982,'batchId':_0xf4f565});}_0x11d9c6[_0x3a0d20]=_0x1e66e9;}createBatchIdAttribute$2(_0x13ffd0[_0x3ab750][_0x14daa2(0xba)],_0x1c0202,undefined);}else {let _0x128a76=_0x13ffd0[_0x3ab750][_0x14daa2(0xba)][_0x14daa2(0xd2)],_0x1e2cce=_0x13ffd0[_0x3ab750]['vertexPackage'][_0x14daa2(0xbb)],_0xd577e1=_0x13ffd0[_0x3ab750][_0x14daa2(0xba)][_0x14daa2(0xc5)],_0x1f7bf1=new Float32Array(_0x128a76),_0x1f2d8c=[];for(let _0x33ea99=0x0;_0x33ea99<_0x345bdf;_0x33ea99++){let _0x1032f4=_0x3e1905[_0x14daa2(0x8c)](_0x2eb2bd,!![]);_0x1f2d8c[_0x14daa2(0xc3)](_0x1032f4),_0x2eb2bd+=Uint32Array[_0x14daa2(0xbe)];let _0x53ba45=_0x3e1905[_0x14daa2(0x8c)](_0x2eb2bd,!![]);_0x2eb2bd+=Uint32Array[_0x14daa2(0xbe)];for(let _0x231289=0x0;_0x231289<_0x53ba45;_0x231289++){let _0x4fb0ef=_0x3e1905[_0x14daa2(0x8c)](_0x2eb2bd,!![]);_0x2eb2bd+=Uint32Array[_0x14daa2(0xbe)];if(_0x1d307e==0x2){let _0x58d110=_0x3e1905[_0x14daa2(0x8c)](_0x2eb2bd,!![]);_0x2eb2bd+=Uint32Array[_0x14daa2(0xbe)];}}}let _0x1d6b51=_0xd577e1===0x11?0x10:0x1c;_0x1d6b51*=Float32Array['BYTES_PER_ELEMENT'];for(let _0x300214=0x0;_0x300214<_0x128a76;_0x300214++){_0x1f7bf1[_0x300214]=_0x300214;let _0x203866=_0x300214*_0xd577e1*Float32Array[_0x14daa2(0xbe)]+_0x1d6b51;Geoworld[_0x14daa2(0x88)][_0x14daa2(0xa4)](_0x1e2cce,_0x203866,colorScratch$1);let _0x1139f2=_0x1d307e===0x2?_0x1f2d8c[_0x300214]:colorScratch$1[_0x14daa2(0xcb)]+colorScratch$1['green']*0x100+colorScratch$1[_0x14daa2(0x92)]*LEFT_16$1;_0x11d9c6[_0x1139f2]===undefined&&(_0x11d9c6[_0x1139f2]={'vertexColorCount':0x1,'instanceIds':[],'vertexColorOffset':_0x300214}),_0x11d9c6[_0x1139f2][_0x14daa2(0xd5)][_0x14daa2(0xc3)](_0x300214);}createBatchIdAttribute$2(_0x13ffd0[_0x3ab750][_0x14daa2(0xba)],_0x1f7bf1,0x1);}}}return _0x2eb2bd;}function createBatchIdAttribute$2(_0x2d89e0,_0x4337b1,_0x33808a){const _0x3e184f=_0x4ddd50;let _0x299bec=_0x2d89e0[_0x3e184f(0x84)],_0x7c8ad3=_0x2d89e0[_0x3e184f(0x91)],_0x4e40ca=_0x299bec[_0x3e184f(0xda)],_0x19547d=_0x33808a===0x1?'instanceId':_0x3e184f(0xc1);_0x7c8ad3[_0x19547d]=_0x4e40ca,_0x299bec[_0x3e184f(0xc3)]({'index':_0x4e40ca,'typedArray':_0x4337b1,'componentsPerAttribute':0x1,'componentDatatype':Geoworld['ComponentDatatype']['FLOAT'],'offsetInBytes':0x0,'strideInBytes':0x0,'instanceDivisor':_0x33808a});}function removeUnusedStringTileName(_0x4622e7){const _0x1244e7=_0x4ddd50;let _0x5e8662=_0x4622e7[_0x1244e7(0xb0)]('Geometry');if(_0x5e8662===-0x1)return _0x4622e7;let _0x1612dc=_0x4622e7[_0x1244e7(0x87)](_0x5e8662,_0x4622e7[_0x1244e7(0xda)]);return _0x4622e7[_0x1244e7(0xde)](_0x1612dc,'');}S3MBlockParser[_0x4ddd50(0xab)]=function(_0x588238,_0x5495a6){const _0x1b024f=_0x4ddd50;let _0x216ff6=_0x5495a6[_0x1b024f(0xa9)],_0x616ed4=_0x5495a6[_0x1b024f(0x7f)],_0x2ebce5=0x0,_0x4d916f=new DataView(_0x588238),_0x59c01e=_0x4d916f[_0x1b024f(0x9c)](_0x2ebce5,!![]);_0x2ebce5+=Float32Array[_0x1b024f(0xbe)];let _0x89bf9a=_0x4d916f[_0x1b024f(0x8c)](_0x2ebce5,!![]);_0x2ebce5+=Uint32Array[_0x1b024f(0xbe)];let _0x5c0cc2={};while(_0x89bf9a--){_0x4d916f=new DataView(_0x588238);let _0x281faf=parseString$1(_0x588238,_0x4d916f,_0x2ebce5),_0x29543f=_0x281faf[_0x1b024f(0xb7)],_0x1bff2c=_0x5c0cc2[_0x29543f]={'groupNode':undefined,'geoPackage':{},'texturePackage':{},'materials':{},'rootBatchIdMap':_0x216ff6,'ancestorMap':_0x616ed4};_0x2ebce5=_0x281faf[_0x1b024f(0x7e)];let _0x5e5291=_0x4d916f['getUint32'](_0x2ebce5,!![]);_0x2ebce5+=Uint32Array[_0x1b024f(0xbe)];let _0x39af31=[];for(let _0x3ef551=0x0;_0x3ef551<_0x5e5291;_0x3ef551++){let _0x11b1c5={},_0x260a29=_0x4d916f[_0x1b024f(0x9c)](_0x2ebce5,!![]);_0x2ebce5+=Float32Array[_0x1b024f(0xbe)];let _0x437d92=_0x4d916f[_0x1b024f(0x7d)](_0x2ebce5,!![]);_0x2ebce5+=Uint16Array[_0x1b024f(0xbe)],_0x11b1c5[_0x1b024f(0xa2)]=_0x437d92,_0x11b1c5[_0x1b024f(0xc9)]=_0x260a29;let _0x5baca7={};_0x5baca7['x']=_0x4d916f[_0x1b024f(0xd4)](_0x2ebce5,!![]),_0x2ebce5+=Float64Array['BYTES_PER_ELEMENT'],_0x5baca7['y']=_0x4d916f[_0x1b024f(0xd4)](_0x2ebce5,!![]),_0x2ebce5+=Float64Array[_0x1b024f(0xbe)],_0x5baca7['z']=_0x4d916f[_0x1b024f(0xd4)](_0x2ebce5,!![]),_0x2ebce5+=Float64Array['BYTES_PER_ELEMENT'];let _0x579a37=_0x4d916f['getFloat64'](_0x2ebce5,!![]);_0x2ebce5+=Float64Array[_0x1b024f(0xbe)],_0x11b1c5['boundingSphere']={'center':_0x5baca7,'radius':_0x579a37};let _0x3e100a=parseString$1(_0x588238,_0x4d916f,_0x2ebce5),_0x32c8be=_0x3e100a[_0x1b024f(0xb7)];_0x2ebce5=_0x3e100a[_0x1b024f(0x7e)],_0x32c8be=_0x32c8be[_0x1b024f(0xde)](/(\.s3mblock)|(\.s3mbz)|(\.s3mb)/gi,''),_0x32c8be=removeUnusedStringTileName(_0x32c8be),_0x11b1c5['childTile']=_0x32c8be,_0x39af31[_0x1b024f(0xc3)](_0x11b1c5);}let _0xa76cf2=_0x4d916f[_0x1b024f(0x9c)](_0x2ebce5,!![]);_0x2ebce5+=Float32Array['BYTES_PER_ELEMENT'];let _0x53982e=_0x4d916f[_0x1b024f(0x8c)](_0x2ebce5,!![]);_0x2ebce5+=Uint32Array[_0x1b024f(0xbe)];let _0x262cdb=_0x4d916f['getUint32'](_0x2ebce5,!![]);_0x2ebce5+=Uint32Array[_0x1b024f(0xbe)];let _0x4d66d7=new Uint8Array(_0x588238,_0x2ebce5,_0x262cdb),_0x191872=_0x2ebce5+_0x262cdb,_0x96d88b=_0x2de58e[_0x1b024f(0xbc)](_0x4d66d7)[_0x1b024f(0xb9)];_0x4d916f=new DataView(_0x96d88b),_0x2ebce5=0x0;let _0x2004d3=_0x4d916f[_0x1b024f(0x8c)](_0x2ebce5,!![]);_0x2ebce5+=Uint32Array[_0x1b024f(0xbe)],_0x2ebce5=parseGroupNode$1(_0x96d88b,_0x4d916f,_0x2ebce5,_0x1bff2c),_0x2ebce5=parseSkeleton$1(_0x96d88b,_0x4d916f,_0x2ebce5,_0x1bff2c[_0x1b024f(0xc0)]),_0x2ebce5=parseTexturePackage$1(_0x96d88b,_0x4d916f,_0x2ebce5,_0x1bff2c[_0x1b024f(0xc4)],_0x1bff2c[_0x1b024f(0xc0)],_0x216ff6,_0x616ed4,_0x5495a6[_0x1b024f(0xb8)]),_0x2ebce5=parseMaterial$1(_0x96d88b,_0x4d916f,_0x2ebce5,_0x1bff2c),_0x2ebce5=parsePickInfo$1(_0x96d88b,_0x4d916f,_0x2ebce5,_0x2004d3,_0x1bff2c[_0x1b024f(0xc0)],_0xa76cf2),_0x2ebce5=_0x191872;}return _0x5c0cc2;}; const _0x3b38=['copyFrom','destroy','buffer','_target','LINEAR_MIPMAP_LINEAR','pixelStorei','UNSIGNED_BYTE','CLAMP_TO_EDGE','TEXTURE0','update','PixelFormat','1NCRRmz','1FsWXhV','UNPACK_FLIP_Y_WEBGL','TextureWrap','bindTexture','activeTexture','isTexBlock','width','textureId','init','contextId','byteOffset','max','ready','deleteTexture','TEXTURE_2D','TEXTURE_MIN_FILTER','compressedTexImage2D','194305TJlGQj','71403DvGqGA','TEXTURE_MAG_FILTER','UNPACK_PREMULTIPLY_ALPHA_WEBGL','TEXTURE_MAX_ANISOTROPY_EXT','layerId','prototype','_textureFilterAnisotropic','isDestroyed','TEXTURE_WRAP_S','defaultValue','arrayBufferView','927154JkQIPb','compressedTextureSizeInBytes','RGBA','566269nDrsaQ','refCount','texImage2D','xOffset','height','1QDuFYq','33VxAoFv','pixelFormat','texParameteri','context','593nVIPgt','wrapT','3662UAFYbz','rootName','internalFormat','80163SAyZgh','_gl','compressType','byteLength','wrapS','_texture'];const _0xc59913=_0x2386;function _0x2386(_0x433d33,_0x3ac8f8){_0x433d33=_0x433d33-0x162;let _0x3b38e1=_0x3b38[_0x433d33];return _0x3b38e1;}(function(_0x17964f,_0x45013d){const _0x4f5b4e=_0x2386;while(!![]){try{const _0x2223ad=-parseInt(_0x4f5b4e(0x16e))*parseInt(_0x4f5b4e(0x18f))+-parseInt(_0x4f5b4e(0x1a0))+-parseInt(_0x4f5b4e(0x174))*parseInt(_0x4f5b4e(0x178))+-parseInt(_0x4f5b4e(0x18e))*-parseInt(_0x4f5b4e(0x17d))+parseInt(_0x4f5b4e(0x173))*parseInt(_0x4f5b4e(0x1a1))+parseInt(_0x4f5b4e(0x17a))+parseInt(_0x4f5b4e(0x16b));if(_0x2223ad===_0x45013d)break;else _0x17964f['push'](_0x17964f['shift']());}catch(_0x1c357c){_0x17964f['push'](_0x17964f['shift']());}}}(_0x3b38,0x49c9f));const NOCOMPRESSED_RGBA=0x1111,NOCOMPRESSED_LA=0x190a;function DDSTexture(_0x47512f,_0x1ceeae,_0x352403){const _0x25cbc0=_0x2386;let _0x4d7337=_0x47512f[_0x25cbc0(0x17e)];this[_0x25cbc0(0x198)]=_0x47512f['id'],this[_0x25cbc0(0x196)]=_0x1ceeae,this[_0x25cbc0(0x164)]=_0x352403['layerId'],this['rootName']=_0x352403['rootName'],this[_0x25cbc0(0x177)]=_0x47512f,this[_0x25cbc0(0x195)]=_0x352403[_0x25cbc0(0x195)],this[_0x25cbc0(0x172)]=_0x352403[_0x25cbc0(0x172)],this[_0x25cbc0(0x17f)]=_0x352403[_0x25cbc0(0x17f)],this[_0x25cbc0(0x17c)]=_0x352403[_0x25cbc0(0x17c)],this['pixelFormat']=_0x352403[_0x25cbc0(0x175)],this[_0x25cbc0(0x16a)]=_0x352403[_0x25cbc0(0x16a)],this[_0x25cbc0(0x181)]=Geoworld[_0x25cbc0(0x169)](_0x352403[_0x25cbc0(0x181)],Geoworld[_0x25cbc0(0x191)][_0x25cbc0(0x18a)]),this[_0x25cbc0(0x179)]=Geoworld['defaultValue'](_0x352403[_0x25cbc0(0x179)],Geoworld[_0x25cbc0(0x191)]['CLAMP_TO_EDGE']),this[_0x25cbc0(0x186)]=_0x4d7337[_0x25cbc0(0x19d)],this[_0x25cbc0(0x182)]=undefined,this[_0x25cbc0(0x16f)]=0x1,this[_0x25cbc0(0x19b)]=!_0x352403['isTexBlock'],this['renderable']=!_0x352403[_0x25cbc0(0x194)],this[_0x25cbc0(0x194)]=_0x352403[_0x25cbc0(0x194)],this[_0x25cbc0(0x16a)]&&this[_0x25cbc0(0x197)]();}DDSTexture[_0xc59913(0x165)][_0xc59913(0x197)]=function(){const _0x51f0c0=_0xc59913;let _0x38837d=this[_0x51f0c0(0x177)][_0x51f0c0(0x17e)];!this[_0x51f0c0(0x182)]&&(this[_0x51f0c0(0x182)]=_0x38837d['createTexture']());_0x38837d[_0x51f0c0(0x192)](_0x38837d[_0x51f0c0(0x19d)],this[_0x51f0c0(0x182)]);let _0x2a787c=this[_0x51f0c0(0x17c)];(_0x2a787c===NOCOMPRESSED_LA||_0x2a787c===NOCOMPRESSED_RGBA)&&_0x38837d[_0x51f0c0(0x188)](_0x38837d['UNPACK_FLIP_Y_WEBGL'],!![]);let _0x134c87=0x0;if(this[_0x51f0c0(0x16a)]){let _0x724c1c=0x0,_0x597f53=this[_0x51f0c0(0x195)],_0x4175fc=this[_0x51f0c0(0x172)],_0x2953f3=validateMipmap(this['arrayBufferView'],_0x2a787c,_0x597f53,_0x4175fc);do{let _0x59fe12=Geoworld[_0x51f0c0(0x18d)][_0x51f0c0(0x16c)](_0x2a787c,_0x597f53,_0x4175fc),_0x464f4b=new Uint8Array(this[_0x51f0c0(0x16a)][_0x51f0c0(0x185)],this[_0x51f0c0(0x16a)][_0x51f0c0(0x199)]+_0x724c1c,_0x59fe12);_0x2a787c===NOCOMPRESSED_RGBA?_0x38837d[_0x51f0c0(0x170)](_0x38837d['TEXTURE_2D'],_0x134c87++,_0x38837d[_0x51f0c0(0x16d)],_0x597f53,_0x4175fc,0x0,_0x38837d[_0x51f0c0(0x16d)],_0x38837d[_0x51f0c0(0x189)],_0x464f4b):_0x38837d[_0x51f0c0(0x19f)](_0x38837d[_0x51f0c0(0x19d)],_0x134c87++,_0x2a787c,_0x597f53,_0x4175fc,0x0,_0x464f4b),_0x597f53=Math[_0x51f0c0(0x19a)](_0x597f53>>0x1,0x1),_0x4175fc=Math['max'](_0x4175fc>>0x1,0x1),_0x724c1c+=_0x59fe12;}while(_0x724c1c0x1?(_0x38837d[_0x51f0c0(0x176)](_0x38837d[_0x51f0c0(0x19d)],_0x38837d[_0x51f0c0(0x1a2)],_0x38837d['LINEAR']),_0x38837d[_0x51f0c0(0x176)](_0x38837d[_0x51f0c0(0x19d)],_0x38837d[_0x51f0c0(0x19e)],_0x38837d[_0x51f0c0(0x187)])):(_0x38837d[_0x51f0c0(0x176)](_0x38837d[_0x51f0c0(0x19d)],_0x38837d[_0x51f0c0(0x1a2)],_0x38837d['LINEAR']),_0x38837d['texParameteri'](_0x38837d['TEXTURE_2D'],_0x38837d[_0x51f0c0(0x19e)],_0x38837d['LINEAR'])),_0x38837d[_0x51f0c0(0x176)](_0x38837d['TEXTURE_2D'],_0x38837d[_0x51f0c0(0x168)],this['wrapS']),_0x38837d[_0x51f0c0(0x176)](_0x38837d['TEXTURE_2D'],_0x38837d['TEXTURE_WRAP_T'],this[_0x51f0c0(0x179)]),_0x38837d[_0x51f0c0(0x176)](this['_target'],this[_0x51f0c0(0x177)][_0x51f0c0(0x166)][_0x51f0c0(0x163)],0x1),_0x38837d[_0x51f0c0(0x192)](_0x38837d[_0x51f0c0(0x19d)],null),this[_0x51f0c0(0x16a)]=undefined,this[_0x51f0c0(0x19b)]=!![];};function validateMipmap(_0x1c1016,_0x1ef4e0,_0x5e5e7,_0x464e53){const _0x100d9e=_0xc59913;let _0x3ea72a=_0x1c1016['length'],_0xfbfce1=_0x5e5e7,_0x3d28d0=_0x464e53,_0xf0c0f1=0x0;while(0x1){let _0x879782=Geoworld['PixelFormat'][_0x100d9e(0x16c)](_0x1ef4e0,_0xfbfce1,_0x3d28d0);_0xf0c0f1+=_0x879782,_0xfbfce1=_0xfbfce1>>0x1,_0x3d28d0=_0x3d28d0>>0x1;if(_0xfbfce1===0x0&&_0x3d28d0===0x0)break;_0xfbfce1=Math[_0x100d9e(0x19a)](_0xfbfce1,0x1),_0x3d28d0=Math[_0x100d9e(0x19a)](_0x3d28d0,0x1);}return _0xf0c0f1===_0x3ea72a;}DDSTexture['prototype'][_0xc59913(0x183)]=function(_0x5f2f2e){const _0x105b7a=_0xc59913;let _0x2b9fe6=this[_0x105b7a(0x177)][_0x105b7a(0x17e)],_0xf6dc60=this[_0x105b7a(0x186)];_0x2b9fe6[_0x105b7a(0x193)](_0x2b9fe6[_0x105b7a(0x18b)]),_0x2b9fe6[_0x105b7a(0x192)](_0xf6dc60,this[_0x105b7a(0x182)]);let _0x834104=_0x5f2f2e[_0x105b7a(0x171)],_0x1af94b=_0x5f2f2e['yOffset'],_0x3b43c=_0x5f2f2e['width'],_0xb9057e=_0x5f2f2e['height'],_0x2e4271=_0x5f2f2e[_0x105b7a(0x16a)],_0x182740=this['internalFormat'],_0x14c819=_0x2b9fe6[_0x105b7a(0x189)];_0x2b9fe6[_0x105b7a(0x188)](_0x2b9fe6[_0x105b7a(0x162)],![]),_0x2b9fe6['pixelStorei'](_0x2b9fe6[_0x105b7a(0x190)],![]),_0x2b9fe6['compressedTexSubImage2D'](_0xf6dc60,0x0,_0x834104,_0x1af94b,_0x3b43c,_0xb9057e,_0x182740,_0x2e4271),_0x2b9fe6['bindTexture'](_0xf6dc60,null);},DDSTexture[_0xc59913(0x165)][_0xc59913(0x18c)]=function(_0x1d9b5b){const _0x499245=_0xc59913;this[_0x499245(0x177)]=_0x1d9b5b[_0x499245(0x177)],this[_0x499245(0x198)]=_0x1d9b5b[_0x499245(0x177)]['id'],this[_0x499245(0x164)]=_0x1d9b5b[_0x499245(0x164)],this[_0x499245(0x17b)]=_0x1d9b5b[_0x499245(0x17b)],this['textureId']=_0x1d9b5b['textureId'],this['width']=_0x1d9b5b[_0x499245(0x195)],this[_0x499245(0x172)]=_0x1d9b5b[_0x499245(0x172)],this[_0x499245(0x17c)]=_0x1d9b5b[_0x499245(0x17c)],this['arrayBufferView']=_0x1d9b5b[_0x499245(0x16a)],this[_0x499245(0x16f)]=0x1,this['ready']=![],this['renderable']=![],defined(this[_0x499245(0x16a)])&&this[_0x499245(0x197)]();},DDSTexture['prototype'][_0xc59913(0x167)]=function(){return ![];},DDSTexture['prototype'][_0xc59913(0x184)]=function(){const _0x5f3b6c=_0xc59913;let _0x293e7a=this[_0x5f3b6c(0x177)][_0x5f3b6c(0x17e)];_0x293e7a[_0x5f3b6c(0x19c)](this[_0x5f3b6c(0x182)]),this[_0x5f3b6c(0x182)]=null,this['id']=0x0,Geoworld['destroyObject'](this);}; const _0x1f85=['1301908FbfavF','87892OMoPiU','bTransparentSorting','textures','destroy','1460331SxMGtM','ambientColor','358769ETcgMB','specularColor','34723JOSkOl','shininess','706606ApDYwY','length','1063225WsMlYq','Color'];function _0x59be(_0x32fcab,_0x19e05c){_0x32fcab=_0x32fcab-0xdb;let _0x1f850d=_0x1f85[_0x32fcab];return _0x1f850d;}(function(_0x562ed3,_0x38ed70){const _0x3b643d=_0x59be;while(!![]){try{const _0x14521f=-parseInt(_0x3b643d(0xde))+-parseInt(_0x3b643d(0xe0))+parseInt(_0x3b643d(0xe3))+parseInt(_0x3b643d(0xdc))+parseInt(_0x3b643d(0xe7))+parseInt(_0x3b643d(0xe2))+-parseInt(_0x3b643d(0xe9));if(_0x14521f===_0x38ed70)break;else _0x562ed3['push'](_0x562ed3['shift']());}catch(_0x3c3502){_0x562ed3['push'](_0x562ed3['shift']());}}}(_0x1f85,0xb8a1e));function MaterialPass(){const _0x48b730=_0x59be;this[_0x48b730(0xe8)]=new Geoworld[(_0x48b730(0xe1))](),this['diffuseColor']=new Geoworld['Color'](),this['specularColor']=new Geoworld[(_0x48b730(0xe1))](0x0,0x0,0x0,0x0),this[_0x48b730(0xdd)]=0x32,this[_0x48b730(0xe4)]=![],this[_0x48b730(0xe5)]=[];}MaterialPass['prototype']['isDestroyed']=function(){return ![];},MaterialPass['prototype']['destroy']=function(){const _0xa6fa17=_0x59be;let _0x20ffb2=this[_0xa6fa17(0xe5)][_0xa6fa17(0xdf)];for(let _0x457f51=0x0;_0x457f51<_0x20ffb2;_0x457f51++){let _0x23beed=this[_0xa6fa17(0xe5)][_0x457f51];_0x23beed[_0xa6fa17(0xe6)]();}return this['textures'][_0xa6fa17(0xdf)]=0x0,this[_0xa6fa17(0xe8)]=undefined,this['diffuseColor']=undefined,this[_0xa6fa17(0xdb)]=undefined,Geoworld['destroyObject'](this);}; var _0xc6ba=['667449VAodsp','201100puXaZN','1ZGgqrE','\x0a\x20\x20\x20\x20attribute\x20vec4\x20aPosition;\x0a\x20\x20\x20\x20attribute\x20vec4\x20aColor;\x0a\x20\x20\x20\x20attribute\x20vec3\x20aNormal;\x0a#ifdef\x20TexCoord\x0a\x20\x20\x20\x20attribute\x20vec4\x20aTexCoord0;\x0a\x20\x20\x20\x20uniform\x20float\x20uTexture0Width;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexCoord;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexMatrix;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexCoordTransform;\x0a#endif\x0a#ifdef\x20HYPSOMETRIC\x0a\x20\x20\x20\x20varying\x20float\x20wValue;\x20\x20\x20\x20\x0a#endif\x0a#ifdef\x20FLATTEN\x0a\x20\x20\x20\x20uniform\x20mat4\x20uGeoMatrix;\x0a\x20\x20\x20\x20uniform\x20mat4\x20uInverseGeoMatrix;\x0a\x20\x20\x20\x20uniform\x20sampler2D\x20uFlattenTexture;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uFlattenRect;\x0a#endif\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20uniform\x20vec4\x20uSelectedColor;\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20varying\x20vec4\x20vSecondColor;\x0a\x20\x20\x20\x20varying\x20vec4\x20vPositionMC;\x0a\x20\x20\x20\x20varying\x20vec3\x20vPositionEC;\x0a#ifdef\x20VertexColor\x0a\x20\x20\x20\x20varying\x20vec4\x20vColor;\x0a#endif\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20const\x20float\x20SHIFT_LEFT8\x20=\x20256.0;\x0a\x20\x20\x20\x20const\x20float\x20SHIFT_RIGHT8\x20=\x201.0\x20/\x20256.0;\x0a\x20\x20\x20\x20const\x20float\x20SHIFT_RIGHT4\x20=\x201.0\x20/\x2016.0;\x0a\x20\x20\x20\x20const\x20float\x20SHIFT_LEFT4\x20=\x2016.0;\x0a\x20\x20\x20\x20void\x20getTextureMatrixFromZValue(in\x20float\x20nZ,\x20inout\x20float\x20XTran,\x20inout\x20float\x20YTran,\x20inout\x20float\x20scale)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(nZ\x20<=\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20nDel8\x20=\x20floor(nZ\x20*\x20SHIFT_RIGHT8);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20nDel16\x20=\x20floor(nDel8\x20*\x20SHIFT_RIGHT8);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20nDel20\x20=\x20floor(nDel16\x20*\x20SHIFT_RIGHT4);\x0a\x20\x20\x20\x20\x20\x20\x20\x20YTran\x20=\x20nZ\x20-\x20nDel8\x20*\x20SHIFT_LEFT8;\x0a\x20\x20\x20\x20\x20\x20\x20\x20XTran\x20=\x20nDel8\x20-\x20nDel16\x20*\x20SHIFT_LEFT8;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20nLevel\x20=\x20nDel16\x20-\x20nDel20\x20*\x20SHIFT_LEFT4;\x0a\x20\x20\x20\x20\x20\x20\x20\x20scale\x20=\x201.0\x20/\x20pow(2.0,\x20nLevel);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a#ifdef\x20FLATTEN\x0a\x20\x20\x20\x20float\x20unpackValue(vec4\x20packedValue)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20SHIFT_LEFT16\x20=\x2065536.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20SHIFT_LEFT8\x20=\x20256.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20value\x20=\x20packedValue\x20*\x20255.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20value.r\x20*\x20SHIFT_LEFT16\x20+\x20value.g\x20*\x20SHIFT_LEFT8\x20+\x20value.b\x20-\x209000.0;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20vec4\x20calculateHeight(vec4\x20vertexPos)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20vecPos\x20=\x20uGeoMatrix\x20*\x20vec4(vertexPos.xyz,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20vecRatio\x20=\x20vec2(uFlattenRect.z\x20-\x20uFlattenRect.x,\x20uFlattenRect.w\x20-\x20uFlattenRect.y);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20vecTexCoord\x20=\x20vec2(vecPos.x\x20-\x20uFlattenRect.x,\x20vecPos.y\x20-\x20uFlattenRect.y);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vecTexCoord.x\x20=\x20vecTexCoord.x\x20/\x20vecRatio.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vecTexCoord.y\x20=\x20vecTexCoord.y\x20/\x20vecRatio.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(vecTexCoord.x\x20>\x201.0\x20||\x20vecTexCoord.x\x20<\x200.0\x20||\x20vecTexCoord.y\x20>\x201.0\x20||\x20vecTexCoord.y\x20<\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vertexPos;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20fHeight\x20=\x20unpackValue(texture2D(uFlattenTexture,\x20vecTexCoord.xy));\x0a\x20\x20\x20\x20\x20\x20\x20\x20fHeight\x20=\x20fHeight;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(vecPos.z\x20>\x20fHeight)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vecPos.z\x20=\x20fHeight;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vecPos.w\x20=\x20vecPos.z;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20uInverseGeoMatrix\x20*\x20vec4(vecPos.xyz,\x201.0);\x0a\x20\x20\x20\x20}\x0a#endif\x0a\x20\x20\x20\x20void\x20main()\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20#ifdef\x20TexCoord\x0a\x20\x20\x20\x20\x20\x20\x20\x20vTexCoord.xy\x20=\x20aTexCoord0.xy;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vTexMatrix\x20=\x20vec4(0.0,0.0,1.0,0.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vTexCoordTransform.x\x20=\x20aTexCoord0.z;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(vTexCoordTransform.x\x20<\x20-90000.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vTexMatrix.z\x20=\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20getTextureMatrixFromZValue(floor(vTexCoordTransform.x),\x20vTexMatrix.x,\x20vTexMatrix.y,\x20vTexMatrix.z);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vTexMatrix.w\x20=\x20log2(uTexture0Width\x20*\x20vTexMatrix.z);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20vec4\x20vertexPos\x20=\x20aPosition;\x0a#ifdef\x20FLATTEN\x0a\x20\x20\x20\x20vertexPos\x20=\x20calculateHeight(vertexPos);\x0a#endif\x0a\x0a\x20\x20\x20\x20#ifdef\x20HYPSOMETRIC\x0a\x20\x20\x20\x20\x20\x20\x20\x20wValue\x20=\x20vertexPos.w;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20positionMC\x20=\x20vec4(vertexPos.xyz,\x201.0);\x0a#ifdef\x20VertexColor\x0a\x20\x20\x20\x20\x20\x20\x20\x20vColor\x20=\x20aColor;\x0a#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20vPositionMC\x20=\x20positionMC;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vPositionEC\x20=\x20(czm_modelView\x20*\x20positionMC).xyz;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20czm_modelViewProjection\x20*\x20vec4(vertexPos.xyz,\x201.0);\x0a\x20\x20\x20\x20}\x0a','41NNaAZB','915886nayURN','3WtSptu','1Lpxrcf','620513xGCdyK','1OoEJVt','17351FEqAfa','70oeCoIA','281485kxqPGW','40790hRtJWq'];var _0x23ba59=_0x19a5;(function(_0x232c41,_0x540715){var _0x46b346=_0x19a5;while(!![]){try{var _0x4b0db6=-parseInt(_0x46b346(0x1b2))+parseInt(_0x46b346(0x1b3))*-parseInt(_0x46b346(0x1ae))+parseInt(_0x46b346(0x1a9))*parseInt(_0x46b346(0x1b1))+-parseInt(_0x46b346(0x1a8))*parseInt(_0x46b346(0x1a7))+-parseInt(_0x46b346(0x1af))*parseInt(_0x46b346(0x1ad))+-parseInt(_0x46b346(0x1a6))*parseInt(_0x46b346(0x1ab))+-parseInt(_0x46b346(0x1ac))*-parseInt(_0x46b346(0x1aa));if(_0x4b0db6===_0x540715)break;else _0x232c41['push'](_0x232c41['shift']());}catch(_0x1276db){_0x232c41['push'](_0x232c41['shift']());}}}(_0xc6ba,0x74b6a));function _0x19a5(_0x46930b,_0x5d3bb5){_0x46930b=_0x46930b-0x1a6;var _0xc6bae1=_0xc6ba[_0x46930b];return _0xc6bae1;}var _0x11429b = _0x23ba59(0x1b0); var _0x6c45=['3000615IlYsZj','541Rncnsd','365416qMrnhP','123ivBbdC','594261zrqCHx','4513lkRKCW','229NyfEdm','2GGSPim','\x0a#ifdef\x20GL_OES_standard_derivatives\x0a#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0a#endif\x0a#ifdef\x20GL_EXT_shader_texture_lod\x0a#extension\x20GL_EXT_shader_texture_lod\x20:\x20enable\x0a#endif\x0a\x20\x20\x20\x20uniform\x20vec4\x20uDiffuseColor;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uAmbientColor;\x0a#ifdef\x20TexCoord\x0a\x20\x20\x20\x20uniform\x20sampler2D\x20uTexture;\x0a\x20\x20\x20\x20uniform\x20float\x20uTexture0Width;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexCoord;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexCoordTransform;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexMatrix;\x0a#endif\x0a#ifdef\x20VertexColor\x0a\x20\x20\x20\x20varying\x20vec4\x20vColor;\x0a#endif\x0a\x20\x20\x20\x20varying\x20vec4\x20vSecondColor;\x0a\x20\x20\x20\x20varying\x20vec4\x20vPositionMC;\x0a\x20\x20\x20\x20varying\x20vec3\x20vPositionEC;\x0a\x20\x20\x20\x20void\x20calculateMipLevel(in\x20vec2\x20inTexCoord,\x20in\x20float\x20vecTile,\x20in\x20float\x20fMaxMip,\x20inout\x20float\x20mipLevel)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20dx\x20=\x20dFdx(inTexCoord\x20*\x20vecTile);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20dy\x20=\x20dFdy(inTexCoord\x20*\x20vecTile);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dotX\x20=\x20dot(dx,\x20dx);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dotY\x20=\x20dot(dy,\x20dy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dMax\x20=\x20max(dotX,\x20dotY);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dMin\x20=\x20min(dotX,\x20dotY);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20offset\x20=\x20(dMax\x20-\x20dMin)\x20/\x20(dMax\x20+\x20dMin);\x0a\x20\x20\x20\x20\x20\x20\x20\x20offset\x20=\x20clamp(offset,\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20d\x20=\x20dMax\x20*\x20(1.0\x20-\x20offset)\x20+\x20dMin\x20*\x20offset;\x0a\x20\x20\x20\x20\x20\x20\x20\x20mipLevel\x20=\x200.5\x20*\x20log2(d);\x0a\x20\x20\x20\x20\x20\x20\x20\x20mipLevel\x20=\x20clamp(mipLevel,\x200.0,\x20fMaxMip\x20-\x201.62);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20void\x20calculateMipLevel(in\x20vec2\x20inTexCoord,\x20in\x20vec2\x20vecTile,\x20in\x20float\x20fMaxMip,\x20inout\x20float\x20mipLevel)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20dx\x20=\x20dFdx(inTexCoord\x20*\x20vecTile.x);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20dy\x20=\x20dFdy(inTexCoord\x20*\x20vecTile.y);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dotX\x20=\x20dot(dx,\x20dx);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dotY\x20=\x20dot(dy,\x20dy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dMax\x20=\x20max(dotX,\x20dotY);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dMin\x20=\x20min(dotX,\x20dotY);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20offset\x20=\x20(dMax\x20-\x20dMin)\x20/\x20(dMax\x20+\x20dMin);\x0a\x20\x20\x20\x20\x20\x20\x20\x20offset\x20=\x20clamp(offset,\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20d\x20=\x20dMax\x20*\x20(1.0\x20-\x20offset)\x20+\x20dMin\x20*\x20offset;\x0a\x20\x20\x20\x20\x20\x20\x20\x20mipLevel\x20=\x200.5\x20*\x20log2(d);\x0a\x20\x20\x20\x20\x20\x20\x20\x20mipLevel\x20=\x20clamp(mipLevel,\x200.0,\x20fMaxMip\x20-\x201.62);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20void\x20calculateTexCoord(in\x20vec3\x20inTexCoord,\x20in\x20float\x20scale,\x20in\x20float\x20XTran,\x20in\x20float\x20YTran,\x20in\x20float\x20fTile,\x20in\x20float\x20mipLevel,\x20inout\x20vec2\x20outTexCoord)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(inTexCoord.z\x20<\x20-9000.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20outTexCoord\x20=\x20inTexCoord.xy;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20fTexCoord\x20=\x20fract(inTexCoord.xy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20offset\x20=\x201.0\x20*\x20pow(2.0,\x20mipLevel)\x20/\x20fTile;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fTexCoord\x20=\x20clamp(fTexCoord,\x20offset,\x201.0\x20-\x20offset);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20outTexCoord.x\x20=\x20(fTexCoord.x\x20+\x20XTran)\x20*\x20scale;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20outTexCoord.y\x20=\x20(fTexCoord.y\x20+\x20YTran)\x20*\x20scale;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20vec4\x20getTexColorForS3M(sampler2D\x20curTexture,\x20vec3\x20oriTexCoord,\x20float\x20texTileWidth,\x20float\x20fMaxMipLev,\x20float\x20fTexCoordScale,\x20vec2\x20vecTexCoordTranslate)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20color\x20=\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20mipLevel\x20=\x200.0;\x0a\x20\x20\x20\x20#ifdef\x20GL_OES_standard_derivatives\x0a\x20\x20\x20\x20\x20\x20\x20\x20calculateMipLevel(oriTexCoord.xy,\x20texTileWidth,\x20fMaxMipLev,\x20mipLevel);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20realTexCoord;\x0a\x20\x20\x20\x20\x20\x20\x20\x20calculateTexCoord(oriTexCoord,\x20fTexCoordScale,\x20vecTexCoordTranslate.x,\x20vecTexCoordTranslate.y,\x20texTileWidth,\x20mipLevel,\x20realTexCoord);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(oriTexCoord.z\x20<\x20-9000.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color\x20=\x20texture2D(curTexture,\x20realTexCoord.xy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20GL_EXT_shader_texture_lod\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color\x20=\x20texture2DLodEXT(curTexture,\x20realTexCoord.xy,\x20mipLevel);\x0a\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\x20color\x20=\x20texture2D(curTexture,\x20realTexCoord.xy,\x20mipLevel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20color;\x0a\x20\x20\x20\x20}\x0a#ifdef\x20TexCoord\x0a\x20\x20\x20\x20vec4\x20getTextureColor()\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(vTexMatrix.z\x20<\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20texTileWidth0\x20=\x20vTexMatrix.z\x20*\x20uTexture0Width;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20realTexCoord\x20=\x20vec3(vTexCoord.xy,\x20vTexCoordTransform.x);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20FColor\x20=\x20getTexColorForS3M(uTexture,\x20realTexCoord,\x20texTileWidth0,\x20vTexMatrix.w,\x20vTexMatrix.z,\x20vTexMatrix.xy);\x0a\x20\x20\x20\x20#ifdef\x20TexCoord2\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20texTileWidth1\x20=\x20vTexMatrix2.z\x20*\x20uTexture1Width;\x0a\x20\x20\x20\x20\x20\x20\x20\x20realTexCoord\x20=\x20vec3(vTexCoord.zw,\x20vTexCoordTransform.y);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20SColor\x20=\x20getTexColorForS3M(uTexture2,\x20realTexCoord,\x20texTileWidth1,\x20vTexMatrix2.w,\x20vTexMatrix2.z,\x20vTexMatrix2.xy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20SColor.r\x20=\x20clamp(SColor.r,\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20SColor.g\x20=\x20clamp(SColor.g,\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20SColor.b\x20=\x20clamp(SColor.b,\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20FColor\x20*\x20SColor;\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20FColor;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20}\x0a#endif\x0a\x20\x20\x20\x20\x0a#ifdef\x20CLIP\x0a\x20\x20\x20\x20uniform\x20float\x20uClipMode;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uClipPlanes[6];\x0a\x20\x20\x20\x20float\x20getClipDistance(vec3\x20pos,\x20vec3\x20planeNormal,\x20float\x20disToOrigin)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20dot(planeNormal,\x20pos)\x20+\x20disToOrigin;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20clipBehindAllPlane(float\x20fBorderWidth,\x20vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20distance\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20result\x20=\x20-1.0;\x0a\x20\x20\x20\x20#ifdef\x20CLIPPLANE\x0a\x20\x20\x20\x20\x20\x20\x20\x20distance\x20=\x20getClipDistance(vertex.xyz,\x20uClipPlanes[0].xyz,\x20uClipPlanes[0].w);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(distance\x20<\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if\x20(distance\x20<\x20fBorderWidth)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20for(int\x20i\x20=\x200;\x20i\x20<\x206;\x20i++)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20distance\x20=\x20getClipDistance(vertex.xyz,\x20uClipPlanes[i].xyz,\x20uClipPlanes[i].w);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if(distance\x20<\x200.0)\x0a\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\x20\x20\x20\x20return\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(distance\x20<\x20fBorderWidth)\x0a\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\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20result;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20clipBehindAnyPlane(float\x20fBorderWidth,\x20vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20result\x20=\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20for(int\x20i\x20=\x200;\x20i\x20<\x206;\x20i++)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20distance\x20=\x20getClipDistance(vertex.xyz,\x20uClipPlanes[i].xyz,\x20uClipPlanes[i].w);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if((distance\x20+\x20fBorderWidth)\x20<\x200.0)\x0a\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\x20\x20\x20\x20return\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(distance\x20<\x200.0)\x0a\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\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20result;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20float\x20clipAnythingButLine(float\x20fBorderWidth,\x20vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20result\x20=\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20for(int\x20i\x20=\x200;\x20i\x20<\x206;\x20i++)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20distance\x20=\x20getClipDistance(vertex.xyz,\x20uClipPlanes[i].xyz,\x20uClipPlanes[i].w);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if(distance\x20<\x200.0)\x0a\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\x20\x20\x20\x20return\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(distance\x20<\x20fBorderWidth)\x0a\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\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20result;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20vec4\x20clip(vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(uClipMode\x20<\x200.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#ifdef\x20GL_OES_standard_derivatives\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dxc\x20=\x20abs(dFdx(vertex.x));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dyc\x20=\x20abs(dFdy(vertex.y));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20fBorderWidth\x20=\x20max(dxc,\x20dyc);\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20fBorderWidth\x20=\x201.0;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20clipResult\x20=\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(uClipMode\x20<\x201.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clipResult\x20=\x20clipBehindAnyPlane(fBorderWidth,\x20vertex);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(uClipMode\x20<\x202.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clipResult\x20=\x20clipBehindAllPlane(fBorderWidth,\x20vertex);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(uClipMode\x20<\x203.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clipResult\x20=\x20clipAnythingButLine(fBorderWidth,\x20vertex);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(clipResult\x20<\x20-0.5)\x0a\x20\x20\x20\x20\x20\x20\x20\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\x20else\x20if(clipResult\x20<\x200.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20}\x0a#endif\x0a\x0a#ifdef\x20HYPSOMETRIC\x0a\x20\x20\x20\x20uniform\x20sampler2D\x20uHypsometricTexture;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uMinMaxValue;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uOpacityIntervalFillMode;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uHypLineColor;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uNoValueColor;\x0a\x20\x20\x20\x20varying\x20float\x20wValue;\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20float\x20computeMixCon(float\x20fValue)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20distanceToContour;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20minVisibleValue\x20=\x20uMinMaxValue.z;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20maxVisibleValue\x20=\x20uMinMaxValue.w;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20interval\x20=\x20uOpacityIntervalFillMode.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(abs(maxVisibleValue\x20-\x20minVisibleValue)\x20>\x200.1)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if(fValue\x20<\x200.5)\x0a\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\x20\x20\x20\x20distanceToContour\x20=\x20mod(fValue\x20-\x200.0002,\x20interval);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\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\x20\x20\x20\x20float\x20t\x20=\x20floor(fValue\x20/\x20interval);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20distanceToContour\x20=\x20abs(fValue\x20-\x20(t\x20*\x20interval)\x20-\x200.1);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20distanceToContour\x20=\x20abs(fValue\x20-\x20maxVisibleValue);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dxc\x20=\x20abs(dFdx(fValue));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dyc\x20=\x20abs(dFdy(fValue));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dF\x20=\x20max(dxc,\x20dyc);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20distanceToContour\x20<\x20dF\x20?\x201.0\x20:\x200.0;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20vec4\x20computeContourMapColor(float\x20fValue)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20floorValue\x20=\x20uMinMaxValue.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20ceilValue\x20=\x20uMinMaxValue.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20threshold\x20=\x20abs(ceilValue\x20-\x20floorValue);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20contourRate\x20=\x20(fValue\x20-\x20floorValue)\x20/\x20threshold;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20finalCoord\x20=\x20clamp(contourRate,\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20count\x20=\x20floor(finalCoord\x20*\x2016.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20y\x20=\x20(count*2.0\x20+\x201.0)/32.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20x\x20=\x20fract(finalCoord*16.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(y\x20>\x201.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20x\x20=\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20contourCoord\x20=\x20vec2(x,\x20y);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20texture2D(uHypsometricTexture,\x20contourCoord);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20vec4\x20getContourMapColor(vec4\x20oriColor,\x20float\x20fValue)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20contourMapColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20finalOpacity\x20=\x20uOpacityIntervalFillMode.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20minVisibleValue\x20=\x20uMinMaxValue.z;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20maxVisibleValue\x20=\x20uMinMaxValue.w;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20fillMode\x20=\x20uOpacityIntervalFillMode.z;\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(fValue\x20>\x20maxVisibleValue\x20+\x204.0\x20||\x20fValue\x20<\x20minVisibleValue\x20-\x204.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20uNoValueColor\x20*\x20oriColor;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(fillMode\x20>\x202.9)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20mix_con\x20=\x20computeMixCon(fValue);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20contourMapColor\x20=\x20mix(computeContourMapColor(fValue),\x20uHypLineColor,\x20mix_con);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(fillMode\x20>\x201.9)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20finalOpacity\x20=\x20computeMixCon(fValue);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20contourMapColor\x20=\x20uHypLineColor;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(fillMode\x20>\x200.9)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20contourMapColor\x20=\x20computeContourMapColor(fValue);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20finalOpacity\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20finalColor\x20=\x20mix(oriColor,\x20contourMapColor,\x20finalOpacity);\x0a\x20\x20\x20\x20#ifdef\x20PT_CLOUD\x0a\x20\x20\x20\x20\x20\x20\x20\x20finalColor\x20=\x20mix(vec4(1.0,1.0,1.0,1.0),\x20contourMapColor,\x20finalOpacity);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20finalColor;\x0a\x20\x20\x20\x20}\x0a#endif\x0a\x20\x20\x0a#ifdef\x20APPLY_SWIPE\x0a\x20\x20\x20\x20uniform\x20vec4\x20uSwipeRegion;\x0a\x20\x20\x20\x20void\x20rollerShutter(vec2\x20coord,\x20vec4\x20region)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20f\x20=\x20step(region.xw,\x20coord);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20s\x20=\x20step(coord,\x20region.zy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(f.x\x20*\x20f.y\x20*\x20s.x\x20*\x20s.y\x20<\x201.0)\x0a\x20\x20\x20\x20\x20\x20\x20\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}\x0a#endif\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20void\x20main()\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20#ifdef\x20APPLY_SWIPE\x0a\x20\x20\x20\x20\x20\x20\x20\x20rollerShutter(gl_FragCoord.xy,\x20uSwipeRegion);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20vec4\x20baseColorWithAlpha\x20=\x20vec4(1.0);\x0a\x20\x20\x20\x20#ifdef\x20VertexColor\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20baseColorWithAlpha\x20=\x20vColor;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20#ifdef\x20TexCoord\x0a\x20\x20\x20\x20\x20\x20\x20\x20baseColorWithAlpha\x20*=\x20getTextureColor();\x0a\x20\x20\x20\x20#endif\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20outColor\x20=\x20baseColorWithAlpha;\x0a\x20\x20\x20\x20#ifdef\x20HYPSOMETRIC\x0a\x20\x20\x20\x20\x20\x20\x20\x20outColor\x20=\x20getContourMapColor(outColor,\x20wValue);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20#ifdef\x20CLIP\x0a\x20\x20\x20\x20\x20\x20\x20\x20outColor\x20*=\x20clip(vec4(vPositionEC,\x201.0));\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20outColor;\x0a\x20\x20\x20\x20}\x0a','488kzaXxk','209891JIGLfV','1331LxfIWB'];var _0x5c04bd=_0x51e7;(function(_0x4b7b8b,_0x305a8f){var _0x15352d=_0x51e7;while(!![]){try{var _0x14acfa=-parseInt(_0x15352d(0xbc))+-parseInt(_0x15352d(0xc4))*parseInt(_0x15352d(0xc1))+-parseInt(_0x15352d(0xbb))*parseInt(_0x15352d(0xc3))+-parseInt(_0x15352d(0xc0))*parseInt(_0x15352d(0xc5))+parseInt(_0x15352d(0xbf))*-parseInt(_0x15352d(0xbd))+-parseInt(_0x15352d(0xbe))+parseInt(_0x15352d(0xba));if(_0x14acfa===_0x305a8f)break;else _0x4b7b8b['push'](_0x4b7b8b['shift']());}catch(_0x559e7c){_0x4b7b8b['push'](_0x4b7b8b['shift']());}}}(_0x6c45,0x79662));function _0x51e7(_0x5df356,_0xc3b438){_0x5df356=_0x5df356-0xba;var _0x6c4543=_0x6c45[_0x5df356];return _0x6c4543;}var _0x26c7a5 = _0x5c04bd(0xc2); const _0x36c4=['model','defined','DeveloperError','71331eVRtYr','121707VZXKag','27AqIrMu','18871yrautz','1213ZqKEeo','7MvTIno','instance\x20buffer\x20is\x20null','set','Buffer','463295qOXIln','5zOFVKa','vertexBuffer','BufferUsage','8SeWpUJ','context','instanceDivisor','typedArray','prototype','execute','attribute\x20is\x20null','331513QvBGRf','createVertexBuffer','instanceIndex','STATIC_DRAW','vertexAttributes','37165VRdeMM','index','instanceBuffer'];const _0x589ec4=_0x5631;(function(_0x1111d2,_0x2fbfd8){const _0x365678=_0x5631;while(!![]){try{const _0x43b7bb=parseInt(_0x365678(0x1fd))+parseInt(_0x365678(0x1f1))+parseInt(_0x365678(0x1ff))*-parseInt(_0x365678(0x206))+-parseInt(_0x365678(0x200))*parseInt(_0x365678(0x201))+parseInt(_0x365678(0x209))*-parseInt(_0x365678(0x1fc))+-parseInt(_0x365678(0x205))+-parseInt(_0x365678(0x1f6))*-parseInt(_0x365678(0x1fe));if(_0x43b7bb===_0x2fbfd8)break;else _0x1111d2['push'](_0x1111d2['shift']());}catch(_0x100e83){_0x1111d2['push'](_0x1111d2['shift']());}}}(_0x36c4,0x4e18e));function S3MCreateVertexJob(){const _0x20cf62=_0x5631;this[_0x20cf62(0x20a)]=undefined,this[_0x20cf62(0x1f9)]=undefined,this[_0x20cf62(0x1f7)]=undefined;}S3MCreateVertexJob[_0x589ec4(0x1ee)][_0x589ec4(0x203)]=function(_0xacd06d,_0x4d6966,_0xeb2e61){const _0xd49d1b=_0x589ec4;this[_0xd49d1b(0x20a)]=_0xacd06d,this[_0xd49d1b(0x1f9)]=_0x4d6966,this[_0xd49d1b(0x1f7)]=_0xeb2e61;},S3MCreateVertexJob[_0x589ec4(0x1ee)][_0x589ec4(0x1ef)]=function(){const _0x341766=_0x589ec4;let _0x5d1737=this[_0x341766(0x20a)],_0x3bde4d=this[_0x341766(0x1f7)],_0x238c71=this['model']['vertexPackage'],_0x485541=_0x238c71[_0x341766(0x1f5)][_0x3bde4d];if(!Geoworld[_0x341766(0x1fa)](_0x485541))throw new Geoworld[(_0x341766(0x1fb))](_0x341766(0x1f0));if(_0x238c71[_0x341766(0x1f3)]!==-0x1&&!Geoworld[_0x341766(0x1fa)](this[_0x341766(0x1f9)][_0x341766(0x1f8)])){if(!Geoworld[_0x341766(0x1fa)](_0x238c71[_0x341766(0x1f8)]))throw new Geoworld[(_0x341766(0x1fb))](_0x341766(0x202));this[_0x341766(0x1f9)][_0x341766(0x1f8)]=Geoworld[_0x341766(0x204)][_0x341766(0x1f2)]({'context':_0x5d1737,'typedArray':_0x238c71['instanceBuffer'],'usage':Geoworld['BufferUsage'][_0x341766(0x1f4)]});}if(_0x485541[_0x341766(0x1ec)]===0x1&&!Geoworld[_0x341766(0x1fa)](_0x485541[_0x341766(0x1ed)])){_0x485541['vertexBuffer']=this[_0x341766(0x1f9)][_0x341766(0x1f8)];return;}!Geoworld['defined'](_0x485541[_0x341766(0x207)])&&(_0x485541[_0x341766(0x207)]=Geoworld['Buffer'][_0x341766(0x1f2)]({'context':_0x5d1737,'typedArray':_0x485541[_0x341766(0x1ed)],'usage':Geoworld[_0x341766(0x208)][_0x341766(0x1f4)]}),_0x485541[_0x341766(0x1ed)]=null,delete _0x485541['typedArray']);};function _0x5631(_0x5d7a71,_0x26c217){_0x5d7a71=_0x5d7a71-0x1ec;let _0x36c493=_0x36c4[_0x5d7a71];return _0x36c493;} const _0x2e08=['indexBuffer','1118903PZGIli','defined','model','SIXTY_FOUR_KILOBYTES','UNSIGNED_INT','elementIndexUint','33eshcRI','30161putlZQ','verticesCount','STATIC_DRAW','DeveloperError','UNSIGNED_SHORT','index\x20package\x20is\x20null','indicesTypedArray','983706ZTSXxV','context','3142584rPAidl','arrIndexPackage','execute','index','43273gThzkx','BufferUsage','1359511cTYfVS','IndexDatatype','prototype','1WJRFpp','519401QOtCgx','set','vertexPackage'];const _0x254667=_0x5465;(function(_0x1a9702,_0x1731a4){const _0x309cc4=_0x5465;while(!![]){try{const _0x264c8c=-parseInt(_0x309cc4(0xdf))*-parseInt(_0x309cc4(0xe0))+parseInt(_0x309cc4(0xef))+-parseInt(_0x309cc4(0xed))*parseInt(_0x309cc4(0xf2))+-parseInt(_0x309cc4(0xf3))+parseInt(_0x309cc4(0xf7))+parseInt(_0x309cc4(0xe7))+-parseInt(_0x309cc4(0xe9));if(_0x264c8c===_0x1731a4)break;else _0x1a9702['push'](_0x1a9702['shift']());}catch(_0xa8edba){_0x1a9702['push'](_0x1a9702['shift']());}}}(_0x2e08,0xb7a2f));function _0x5465(_0x30258b,_0x159a4d){_0x30258b=_0x30258b-0xdd;let _0x2e0887=_0x2e08[_0x30258b];return _0x2e0887;}function S3MCreateIndexBufferJob(){const _0x7aaa78=_0x5465;this[_0x7aaa78(0xf9)]=undefined,this[_0x7aaa78(0xe8)]=undefined,this[_0x7aaa78(0xec)]=0x0;}S3MCreateIndexBufferJob[_0x254667(0xf1)][_0x254667(0xf4)]=function(_0x552e3d,_0x3cfa21,_0x2d2a30){const _0x5b3305=_0x254667;this[_0x5b3305(0xf9)]=_0x3cfa21,this[_0x5b3305(0xe8)]=_0x552e3d,this[_0x5b3305(0xec)]=_0x2d2a30;},S3MCreateIndexBufferJob[_0x254667(0xf1)][_0x254667(0xeb)]=function(){const _0x1a1859=_0x254667;let _0x4f0b28=this[_0x1a1859(0xe8)],_0x3e83ab=this[_0x1a1859(0xf9)][_0x1a1859(0xea)][this[_0x1a1859(0xec)]],_0x41d730=this['model'][_0x1a1859(0xf5)][_0x1a1859(0xe1)];if(!Geoworld[_0x1a1859(0xf8)](_0x3e83ab))throw new Geoworld['DeveloperError'](_0x1a1859(0xe5));if(Geoworld[_0x1a1859(0xf8)](_0x3e83ab[_0x1a1859(0xf6)]))return;if(!Geoworld['defined'](_0x3e83ab['indicesTypedArray']))throw new Geoworld[(_0x1a1859(0xe3))]('index\x20buffer\x20is\x20null');let _0x4209eb=Geoworld[_0x1a1859(0xf0)][_0x1a1859(0xe4)];(_0x3e83ab['indexType']===0x1||_0x41d730>=Geoworld['Math'][_0x1a1859(0xfa)])&&_0x4f0b28[_0x1a1859(0xde)]&&(_0x4209eb=Geoworld[_0x1a1859(0xf0)][_0x1a1859(0xdd)]),!Geoworld[_0x1a1859(0xf8)](_0x3e83ab[_0x1a1859(0xf6)])&&(_0x3e83ab[_0x1a1859(0xf6)]=Geoworld['Buffer']['createIndexBuffer']({'context':_0x4f0b28,'typedArray':_0x3e83ab[_0x1a1859(0xe6)],'usage':Geoworld[_0x1a1859(0xee)][_0x1a1859(0xe2)],'indexDatatype':_0x4209eb})),_0x3e83ab[_0x1a1859(0xe6)]=null,delete _0x3e83ab[_0x1a1859(0xe6)];}; const _0x448f=['181711yLAcIw','BRDF','787128ZsMOEn','TextureAtlas','CLIPPLANE','HAS_SKELETONSELECTED','COMPRESS_VERTEX','INVALID_OBLIQUE','EXCAVATION','COMPUTE_TEXCOORD','APPLY_SPLIT','4719nKELkB','FALTTEN','TRANSPARENT_BACK_COLOR','PBR','2wuCzlA','REPLACE_SELECT_TYPE','CLIP_FILT_BY_ID','TEXTURE_COORD_ONE_IS_W','ADJUST_COLOR','47cHFbib','Volume','DIR_LIGHTS\x20','COMPRESS_NORMAL','UseInstanceSkeletonMatrix','IGNORE_NORMAL','TexCoord2','VOL_AND_HYP','783056vuIWsY','PT_CLOUD','POINT_LIGHTS\x20','170502CDHgUE','REPLACE_COLOR_TYPE','SPOT_LIGHTS\x20','EMISSION_TEXTURE_COUNT\x20','freeze','HORIZONTAL_LINE','IBL','953524ixrKhg','Translation','HAS_LIGHT','435603PcxaDa','TRIANGLE_FILTRATE','SEC_TEX_EMISSION','NORMAL_AND_DEPTH','HYPSOMETRIC','Volume2','W_VISIBLE','EMISSION_TEXTURE','CLIP','1PLqvdq','4lPqaey','HAS_NORMAL','TexCoord','VERTEX_CAPTURE'];const _0x5af081=_0x21e8;(function(_0x286f61,_0x361d7d){const _0x4d8147=_0x21e8;while(!![]){try{const _0x488ca6=-parseInt(_0x4d8147(0x206))+parseInt(_0x4d8147(0x217))*-parseInt(_0x4d8147(0x212))+parseInt(_0x4d8147(0x1f4))*parseInt(_0x4d8147(0x222))+-parseInt(_0x4d8147(0x1fc))+-parseInt(_0x4d8147(0x1ff))*parseInt(_0x4d8147(0x1ef))+parseInt(_0x4d8147(0x219))+-parseInt(_0x4d8147(0x213))*-parseInt(_0x4d8147(0x209));if(_0x488ca6===_0x361d7d)break;else _0x286f61['push'](_0x286f61['shift']());}catch(_0x59f277){_0x286f61['push'](_0x286f61['shift']());}}}(_0x448f,0x78206));const ProgramDefines$1={'EXCAVATION':_0x5af081(0x21f),'FALTTEN':_0x5af081(0x223),'OVERLAY':'OVERLAY','HYPSOMETRIC':_0x5af081(0x20d),'ADJUST_COLOR':_0x5af081(0x1f3),'TRANSPARENT_BACK_COLOR':_0x5af081(0x1ed),'HORIZONTAL_LINE':_0x5af081(0x204),'COMPUTE_W_VALUE':'COMPUTE_W_VALUE','COMPUTE_TEXCOORD':_0x5af081(0x220),'HAS_LIGHT':_0x5af081(0x208),'HAS_NORMAL':_0x5af081(0x214),'REPLACE_SELECT_TYPE':_0x5af081(0x1f0),'SILHOUETTE_SELECT_TYPE':'SILHOUETTE_SELECT_TYPE','MULTI_TEX':'MULTI_TEX','APPLY_SPLIT':_0x5af081(0x221),'APPLY_SWIPE':'APPLY_SWIPE','TEXCOORD':_0x5af081(0x215),'TEXCOORD2':_0x5af081(0x1fa),'COMPRESS_VERTEX':_0x5af081(0x21d),'COMPRESS_NORMAL':_0x5af081(0x1f7),'COMPRESS_COLOR':'COMPRESS_COLOR','COMPRESS_TEXCOORD':'COMPRESS_TEXCOORD','SKETCH_MODE':'SKETCH_MODE','NORMAL_AND_DEPTH':_0x5af081(0x20c),'POST_EFFECT':'POST_EFFECT','CLIP_FILT_BY_ID':_0x5af081(0x1f1),'CLIP':_0x5af081(0x211),'CLIPPLANE':_0x5af081(0x21b),'PBR':_0x5af081(0x1ee),'PT_CLOUD':_0x5af081(0x1fd),'DIR_LIGHTS':_0x5af081(0x1f6),'POINT_LIGHTS':_0x5af081(0x1fe),'SPOT_LIGHTS':_0x5af081(0x201),'W_VISIBLE':_0x5af081(0x20f),'EMISSION_TEXTURE':_0x5af081(0x210),'EMISSION_TEXTURE_COUNT':_0x5af081(0x202),'TEXTURE_MOVE':'TEXTURE_MOVE','VOLUME':_0x5af081(0x1f5),'VOLUME2':_0x5af081(0x20e),'TEXTURE_COORD_ONE_IS_W':_0x5af081(0x1f2),'TRIANGLE_FILTRATE':_0x5af081(0x20a),'UseInstanceSkeletonMatrix':_0x5af081(0x1f8),'WEBP':'WEBP','HAS_SKELETONSELECTED':_0x5af081(0x21c),'SKELETONSELECT_ENABLE':'SKELETONSELECT_ENABLE','REPLACE_COLOR_TYPE':_0x5af081(0x200),'INVALID_OBLIQUE':_0x5af081(0x21e),'IGNORE_NORMAL':_0x5af081(0x1f9),'TextureAtlas':_0x5af081(0x21a),'TextureAtlasSec':'TextureAtlasSec','Translation':_0x5af081(0x207),'VOL_AND_HYP':_0x5af081(0x1fb),'VERTEX_CAPTURE':_0x5af081(0x216),'SEC_TEX_EMISSION':_0x5af081(0x20b),'BRDF':_0x5af081(0x218),'PBR_THEME':'PBR_THEME','IBL':_0x5af081(0x205),'FLATTEN':'FLATTEN'};function _0x21e8(_0x57683e,_0x37c762){_0x57683e=_0x57683e-0x1ed;let _0x448f24=_0x448f[_0x57683e];return _0x448f24;}var _0x4c53e0 = Object[_0x5af081(0x203)](ProgramDefines$1); const _0x55cd=['getVertexShaderCallback','SVC_Vertex','72966blYbln','model','COMPRESS_TEXCOORD','15pQhfgU','TEXTURE_COORD_ONE_IS_W','73495dTKPfb','vertexPackage','swipeEnabled','prototype','CLIP','7XxKuNK','TextureAtlasSec','VertexNormal','ShaderSource','context','texturelod','shaderProgram','Instance','aColor','ShaderProgram','getExtension','595629zHRkSk','CLIPPLANE','SVC_VertexColor','COMPRESS_VERTEX','isUseHypColorTable','COMPRESS_COLOR','defaultValue','batchTableBake','COMPRESS_NORMAL','flattening','223NKsyfC','execute','SVC_TexutreCoord','_gl','batchTable','25287hRucKI','FLATTEN','compressOptions','SVC_Normal','4967eWWrMW','length','textureCoordIsW','instanceIndex','defines','fromCache','_enableClip','attributeLocations','60vMmEFD','APPLY_SWIPE','defined','set','_flattenPar','textures','material','layer','_hypsometric','871047DifelW','1oNxLfx','HYPSOMETRIC','85hGqSeV','5998SUKSiL','TextureAtlas','TexCoord2','push','TexCoord'];function _0x1b83(_0x4bb4a3,_0x2cd1f8){_0x4bb4a3=_0x4bb4a3-0x117;let _0x55cdbc=_0x55cd[_0x4bb4a3];return _0x55cdbc;}const _0x2d6803=_0x1b83;(function(_0x33a99b,_0x11ebec){const _0x42ad8f=_0x1b83;while(!![]){try{const _0x55a59c=-parseInt(_0x42ad8f(0x132))*-parseInt(_0x42ad8f(0x146))+-parseInt(_0x42ad8f(0x143))+-parseInt(_0x42ad8f(0x11f))*-parseInt(_0x42ad8f(0x144))+-parseInt(_0x42ad8f(0x12e))*-parseInt(_0x42ad8f(0x13a))+parseInt(_0x42ad8f(0x153))*parseInt(_0x42ad8f(0x151))+parseInt(_0x42ad8f(0x14e))*-parseInt(_0x42ad8f(0x158))+-parseInt(_0x42ad8f(0x129))*parseInt(_0x42ad8f(0x147));if(_0x55a59c===_0x11ebec)break;else _0x33a99b['push'](_0x33a99b['shift']());}catch(_0x365a93){_0x33a99b['push'](_0x33a99b['shift']());}}}(_0x55cd,0xe025a));function S3MCreateShaderProgramJob(){const _0x3e38b0=_0x1b83;this[_0x3e38b0(0x14f)]=undefined,this[_0x3e38b0(0x118)]=undefined;}S3MCreateShaderProgramJob[_0x2d6803(0x156)][_0x2d6803(0x13d)]=function(_0x9de22e,_0x31f519){const _0x9c3278=_0x2d6803;this[_0x9c3278(0x14f)]=_0x31f519,this['context']=_0x9de22e;};function getExtension(_0x464f54,_0x2ea251){const _0x3a7c4c=_0x2d6803;let _0x1b7c46=_0x2ea251[_0x3a7c4c(0x133)];for(let _0x1b4ed1=0x0;_0x1b4ed1<_0x1b7c46;++_0x1b4ed1){let _0x24647d=_0x464f54[_0x3a7c4c(0x11e)](_0x2ea251[_0x1b4ed1]);if(_0x24647d)return _0x24647d;}return undefined;}S3MCreateShaderProgramJob[_0x2d6803(0x156)][_0x2d6803(0x12a)]=function(){const _0x4497f0=_0x2d6803,_0x503e59=this[_0x4497f0(0x118)],_0x744d46=this[_0x4497f0(0x14f)],_0x553adb=_0x744d46[_0x4497f0(0x141)],_0x2ccdf6=_0x744d46['vs'],_0x17ba67=_0x744d46['fs'],_0x43cf33=_0x744d46[_0x4497f0(0x139)],_0x5111d4=_0x744d46[_0x4497f0(0x140)],_0x535f73=_0x744d46[_0x4497f0(0x154)];let _0x4a504c=_0x744d46[_0x4497f0(0x12d)]?_0x744d46['batchTable'][_0x4497f0(0x14c)]()(_0x2ccdf6):_0x2ccdf6;_0x503e59['texturelod']===undefined&&(_0x503e59[_0x4497f0(0x119)]=Geoworld[_0x4497f0(0x125)](getExtension(_0x503e59[_0x4497f0(0x12c)],['EXT_shader_texture_lod']),![]));let _0x5ea866=new Geoworld[(_0x4497f0(0x117))]({'sources':[_0x4a504c]}),_0x34aade=new Geoworld['ShaderSource']({'sources':[_0x17ba67]});Geoworld[_0x4497f0(0x13c)](_0x43cf33['aNormal'])&&(_0x5ea866[_0x4497f0(0x136)][_0x4497f0(0x14a)](_0x4497f0(0x15a)),_0x34aade['defines'][_0x4497f0(0x14a)](_0x4497f0(0x15a)));Geoworld[_0x4497f0(0x13c)](_0x43cf33[_0x4497f0(0x11c)])&&_0x5ea866[_0x4497f0(0x136)][_0x4497f0(0x14a)]('VertexColor');_0x5111d4&&_0x5111d4[_0x4497f0(0x13f)][_0x4497f0(0x133)]>0x0&&(_0x5ea866['defines']['push'](_0x4497f0(0x14b)),_0x34aade[_0x4497f0(0x136)][_0x4497f0(0x14a)](_0x4497f0(0x14b)));_0x5111d4&&_0x5111d4['textures'][_0x4497f0(0x133)]===0x2&&(_0x5ea866['defines']['push'](_0x4497f0(0x149)),_0x34aade['defines'][_0x4497f0(0x14a)](_0x4497f0(0x149)));_0x535f73[_0x4497f0(0x135)]>-0x1&&_0x5ea866[_0x4497f0(0x136)][_0x4497f0(0x14a)](_0x4497f0(0x11b));if(Geoworld[_0x4497f0(0x13c)](_0x535f73[_0x4497f0(0x130)])){let _0x3b776f=_0x535f73[_0x4497f0(0x130)];(_0x3b776f&_0x1d3947[_0x4497f0(0x14d)])===_0x1d3947[_0x4497f0(0x14d)]&&_0x5ea866[_0x4497f0(0x136)][_0x4497f0(0x14a)](_0x4c53e0[_0x4497f0(0x122)]),(_0x3b776f&_0x1d3947['SVC_Normal'])===_0x1d3947[_0x4497f0(0x131)]&&_0x5ea866[_0x4497f0(0x136)][_0x4497f0(0x14a)](_0x4c53e0[_0x4497f0(0x127)]),(_0x3b776f&_0x1d3947[_0x4497f0(0x121)])===_0x1d3947['SVC_VertexColor']&&_0x5ea866[_0x4497f0(0x136)]['push'](_0x4c53e0[_0x4497f0(0x124)]),(_0x3b776f&_0x1d3947['SVC_TexutreCoord'])===_0x1d3947[_0x4497f0(0x12b)]&&_0x5ea866[_0x4497f0(0x136)][_0x4497f0(0x14a)](_0x4c53e0[_0x4497f0(0x150)]);}_0x535f73['textureCoordIsW']&&_0x43cf33[_0x4497f0(0x14b)]&&_0x5ea866[_0x4497f0(0x136)]['push'](_0x4c53e0[_0x4497f0(0x152)]),_0x553adb[_0x4497f0(0x138)]&&_0x34aade['defines'][_0x4497f0(0x14a)](_0x4c53e0[_0x4497f0(0x157)]),_0x553adb['_enableClipPlane']&&_0x34aade[_0x4497f0(0x136)][_0x4497f0(0x14a)](_0x4c53e0[_0x4497f0(0x120)]),_0x553adb[_0x4497f0(0x142)][_0x4497f0(0x123)]&&(_0x5ea866[_0x4497f0(0x136)][_0x4497f0(0x14a)](_0x4c53e0['HYPSOMETRIC']),_0x34aade[_0x4497f0(0x136)][_0x4497f0(0x14a)](_0x4c53e0[_0x4497f0(0x145)])),_0x553adb[_0x4497f0(0x13e)][_0x4497f0(0x128)]&&_0x5ea866['defines'][_0x4497f0(0x14a)](_0x4c53e0[_0x4497f0(0x12f)]),_0x553adb[_0x4497f0(0x155)]&&_0x34aade[_0x4497f0(0x136)][_0x4497f0(0x14a)](_0x4c53e0[_0x4497f0(0x13b)]),_0x535f73[_0x4497f0(0x134)]&&_0x43cf33['aTexCoord0']&&_0x5ea866[_0x4497f0(0x136)][_0x4497f0(0x14a)](_0x4c53e0['TEXTURE_COORD_ONE_IS_W']),_0x5111d4[_0x4497f0(0x12d)]&&(_0x5ea866['defines']['push'](_0x4c53e0[_0x4497f0(0x148)]),_0x34aade[_0x4497f0(0x136)]['push'](_0x4c53e0[_0x4497f0(0x148)])),_0x5111d4[_0x4497f0(0x126)]&&(_0x5ea866[_0x4497f0(0x136)][_0x4497f0(0x14a)](_0x4c53e0[_0x4497f0(0x159)]),_0x34aade[_0x4497f0(0x136)][_0x4497f0(0x14a)](_0x4c53e0[_0x4497f0(0x159)])),_0x744d46[_0x4497f0(0x11a)]=Geoworld[_0x4497f0(0x11d)][_0x4497f0(0x137)]({'context':_0x503e59,'vertexShaderSource':_0x5ea866,'fragmentShaderSource':_0x34aade,'attributeLocations':_0x43cf33});}; const _0x2460=['1165960biBICW','639025fSpvlW','310571pfRSjO','1131430oZmAUl','41784zFtEnU','23OAMVoI','357109AZioAL','217109OhJwir'];(function(_0x101a55,_0x1372d2){const _0xa4003a=_0x4b25;while(!![]){try{const _0x32c78a=-parseInt(_0xa4003a(0x71))+-parseInt(_0xa4003a(0x6b))+parseInt(_0xa4003a(0x70))+parseInt(_0xa4003a(0x6c))+parseInt(_0xa4003a(0x6d))+-parseInt(_0xa4003a(0x6a))+parseInt(_0xa4003a(0x6e))*parseInt(_0xa4003a(0x6f));if(_0x32c78a===_0x1372d2)break;else _0x101a55['push'](_0x101a55['shift']());}catch(_0x25eb33){_0x101a55['push'](_0x101a55['shift']());}}}(_0x2460,0xb4300));const OperationType={'RESET':0x0,'SetColor':0x1,'SELECTED':0x2,'HIDE':0x4,'OFFSET':0x8,'CLIP':0x10,'BLOOM':0x20,'ALL':0xff};function _0x4b25(_0x194a5c,_0x3dddfd){_0x194a5c=_0x194a5c-0x6a;let _0x246030=_0x2460[_0x194a5c];return _0x246030;}var _0x183314 = Object['freeze'](OperationType); const _0x12cb=['red','initLayerSetting','_objsHideList','peek','CLIPPLANE','1llBDbE','Matrix4','RESET','366418UTdBKM','clip','geoName','operationValue','vSecondColor','dirty','selectionInfoMap','defaultValue','732706KhqDpD','push','AssociativeArray','2SnErdS','destroy','s3m_batchTable_pickColor','HIDE','instanceIndex','updateObjsOperation','2tQUfEl','layer','boundingVolume','idsColorMap','163640ZURMad','jobScheduler','hasOwnProperty','context','blue','143205qZKGsk','floatToByte','colorCommand','pickColorIdentifier','prototype','s3m_batchTable_operation','set','edgeGeometry','dequeue','2lFFrSn','_hash','256283BDdmNU','execute','material','setBatchedAttribute','isArray','clone','alpha','length','25XJVanm','createPickIds','update','_enableClipPlane','createPickId','attrLocation','swipe','ComponentDatatype','pickInfo','BUFFER','throwInstantiationError','defines','_objsColorList','vertexShaderSource','values','invGeoMatrix','get','_objsOperationList','toBytes','defined','_allObjsHide','arrIndexPackage','vertexPackage','map','center','indexOf','modelMatrix','radius','46253iGVaob','idsOperationMap','fragmentShaderSource','Cartesian4','BatchTable','instanceCount','batchTableDirty','Queue','createShaderProgram','fromCache','CLIP','18251ysxCWK','Color','TRANSPARENT','instanceIds','enqueue','flatten','HYPSOMETRIC','batchId','FLATTEN','multiplyByPoint','updateObjsColor','vertexBufferToCreate','batchTable','ready','isDestroyed','shaderProgram','Cartesian3','vertexArray','lerp','2PAxUqV','JobType','indexBufferToCreate','UNSIGNED_BYTE','APPLY_SWIPE','ShaderProgram','keys','DeveloperError','vertexAttributes','color','instanceBounds','attributeLocations','contains','green','updateAllObjsVisible','geoMatrix','enable','createBoundingBoxForInstance','createBatchTable'];const _0x41f3e4=_0x2e7a;(function(_0x5e4e5d,_0x344888){const _0x4496a8=_0x2e7a;while(!![]){try{const _0x529a1e=parseInt(_0x4496a8(0x24d))*parseInt(_0x4496a8(0x24a))+parseInt(_0x4496a8(0x1f8))*-parseInt(_0x4496a8(0x21f))+-parseInt(_0x4496a8(0x1e5))*-parseInt(_0x4496a8(0x258))+parseInt(_0x4496a8(0x232))*parseInt(_0x4496a8(0x1f0))+-parseInt(_0x4496a8(0x1e0))*-parseInt(_0x4496a8(0x1dc))+-parseInt(_0x4496a8(0x255))+-parseInt(_0x4496a8(0x1ee))*-parseInt(_0x4496a8(0x214));if(_0x529a1e===_0x344888)break;else _0x5e4e5d['push'](_0x5e4e5d['shift']());}catch(_0x11bcaf){_0x5e4e5d['push'](_0x5e4e5d['shift']());}}}(_0x12cb,0x60ba7));function RenderEntity(_0x2a785f){const _0x223c10=_0x2e7a;this[_0x223c10(0x1dd)]=_0x2a785f['layer'],this[_0x223c10(0x20e)]=_0x2a785f[_0x223c10(0x20e)],this['arrIndexPackage']=_0x2a785f[_0x223c10(0x20d)],this[_0x223c10(0x22a)]=new Geoworld[(_0x223c10(0x21b))](),this[_0x223c10(0x234)]=new Geoworld['Queue'](),this['shaderProgramToCreate']=new Geoworld['Queue']();let _0x1e47bc,_0x277d98;for(_0x1e47bc=0x0,_0x277d98=this[_0x223c10(0x20e)][_0x223c10(0x23a)][_0x223c10(0x1f7)];_0x1e47bc<_0x277d98;_0x1e47bc++){this[_0x223c10(0x22a)][_0x223c10(0x223)](_0x1e47bc);}for(_0x1e47bc=0x0,_0x277d98=this[_0x223c10(0x20d)]['length'];_0x1e47bc<_0x277d98;_0x1e47bc++){this[_0x223c10(0x234)][_0x223c10(0x223)](_0x1e47bc);}this['shaderProgramToCreate'][_0x223c10(0x223)](0x0),this[_0x223c10(0x1de)]=_0x2a785f[_0x223c10(0x1de)],this[_0x223c10(0x1f2)]=Geoworld[_0x223c10(0x254)](_0x2a785f[_0x223c10(0x1f2)],new MaterialPass()),this[_0x223c10(0x24f)]=_0x2a785f[_0x223c10(0x24f)],this['modelMatrix']=_0x2a785f[_0x223c10(0x212)],this[_0x223c10(0x241)]=_0x2a785f[_0x223c10(0x241)],this[_0x223c10(0x207)]=Geoworld[_0x223c10(0x24b)]['inverse'](this[_0x223c10(0x241)],new Geoworld[(_0x223c10(0x24b))]()),this['instanceCount']=_0x2a785f[_0x223c10(0x20e)][_0x223c10(0x219)],this['attributeLocations']=_0x2a785f[_0x223c10(0x20e)][_0x223c10(0x1fd)],this[_0x223c10(0x22e)]=undefined,this[_0x223c10(0x230)]=undefined,this['colorCommand']=undefined,this[_0x223c10(0x200)]=_0x2a785f['pickInfo'],this[_0x223c10(0x253)]=new Geoworld[(_0x223c10(0x257))](),this['batchTable']=undefined,this[_0x223c10(0x21a)]=![],this[_0x223c10(0x1e8)]=_0x223c10(0x251),this[_0x223c10(0x215)]=new Geoworld[(_0x223c10(0x257))](),this[_0x223c10(0x1df)]=new Geoworld[(_0x223c10(0x257))](),this['useWValue']=_0x2a785f[_0x223c10(0x20e)][_0x223c10(0x23a)][0x0]['componentsPerAttribute']===0x4,this[_0x223c10(0x1ec)]=_0x2a785f[_0x223c10(0x1ec)],this[_0x223c10(0x243)](),this[_0x223c10(0x22c)]=![];}const _vertexBufferJob=new S3MCreateVertexJob(),_indexBufferJob=new S3MCreateIndexBufferJob(),_shaderProgramJob=new S3MCreateShaderProgramJob();function createVertexBuffers(_0x2fd66f,_0x32c341){const _0x556fdc=_0x2e7a;let _0x43087c=_0x2fd66f[_0x556fdc(0x1dd)][_0x556fdc(0x1e3)],_0x5659f8=_0x2fd66f[_0x556fdc(0x22a)];while(_0x5659f8[_0x556fdc(0x1f7)]){let _0x3b8910=_0x5659f8['peek']();_vertexBufferJob['set'](_0x43087c,_0x2fd66f,_0x3b8910);if(!_0x32c341['jobScheduler'][_0x556fdc(0x1f1)](_vertexBufferJob,Geoworld[_0x556fdc(0x233)][_0x556fdc(0x201)]))break;_0x5659f8['dequeue']();}}function createIndexBuffers(_0xe98b1,_0x17de5f){const _0x5e863a=_0x2e7a;let _0x254c5a=_0xe98b1['layer'][_0x5e863a(0x1e3)],_0x5d77fe=_0xe98b1[_0x5e863a(0x234)];while(_0x5d77fe[_0x5e863a(0x1f7)]){let _0x2643af=_0x5d77fe['peek']();_indexBufferJob['set'](_0x254c5a,_0xe98b1,_0x2643af);if(!_0x17de5f[_0x5e863a(0x1e1)][_0x5e863a(0x1f1)](_indexBufferJob,Geoworld['JobType'][_0x5e863a(0x201)]))break;_0x5d77fe[_0x5e863a(0x1ed)]();}}function createShaderProgram(_0x51194c,_0x197b21){const _0xf432ae=_0x2e7a;let _0x2cc77e=_0x51194c['layer'][_0xf432ae(0x1e3)],_0x40a934=_0x51194c['shaderProgramToCreate'];while(_0x40a934[_0xf432ae(0x1f7)]){let _0xa1abce=_0x40a934[_0xf432ae(0x248)]();_shaderProgramJob[_0xf432ae(0x1eb)](_0x2cc77e,_0x51194c);if(!_0x197b21['jobScheduler'][_0xf432ae(0x1f1)](_shaderProgramJob,Geoworld[_0xf432ae(0x233)]['PROGRAM']))break;_0x40a934['dequeue']();}}function createBatchTable(_0x20558d,_0x3901f9){const _0x26ce0b=_0x2e7a;if(Geoworld['defined'](_0x20558d[_0x26ce0b(0x22b)])||!_0x20558d['pickInfo'])return;const _0x4fb0fb=_0x20558d['layer'][_0x26ce0b(0x1e3)];let _0x5da400=[];_0x5da400[_0x26ce0b(0x256)]({'functionName':'s3m_batchTable_color','componentDatatype':Geoworld[_0x26ce0b(0x1ff)][_0x26ce0b(0x235)],'componentsPerAttribute':0x4,'normalize':!![]},{'functionName':_0x26ce0b(0x1ea),'componentDatatype':Geoworld[_0x26ce0b(0x1ff)][_0x26ce0b(0x235)],'componentsPerAttribute':0x4},{'functionName':_0x26ce0b(0x25a),'componentDatatype':Geoworld['ComponentDatatype']['UNSIGNED_BYTE'],'componentsPerAttribute':0x4,'normalize':!![]});let _0x371e16=_0x20558d[_0x26ce0b(0x200)],_0x3878e2=Object[_0x26ce0b(0x238)](_0x371e16),_0x3606c5=_0x20558d[_0x26ce0b(0x219)]>0x0?_0x20558d[_0x26ce0b(0x219)]:_0x3878e2[_0x26ce0b(0x1f7)];_0x20558d['batchTable']=new Geoworld[(_0x26ce0b(0x218))](_0x4fb0fb,_0x5da400,_0x3606c5);}RenderEntity[_0x41f3e4(0x1e9)]['createBuffers']=function(_0xffb2a2){createVertexBuffers(this,_0xffb2a2),createIndexBuffers(this,_0xffb2a2);},RenderEntity['prototype'][_0x41f3e4(0x21c)]=function(_0x45b764){createShaderProgram(this,_0x45b764);},RenderEntity[_0x41f3e4(0x1e9)][_0x41f3e4(0x244)]=function(_0xdcb08b){createBatchTable(this);};let scratchPntCenter=new Geoworld[(_0x41f3e4(0x22f))]();RenderEntity[_0x41f3e4(0x1e9)][_0x41f3e4(0x243)]=function(){const _0x1e24a9=_0x41f3e4,_0x4981f4=this[_0x1e24a9(0x20e)];if(!Geoworld[_0x1e24a9(0x20b)](_0x4981f4)||_0x4981f4[_0x1e24a9(0x1da)]===-0x1||!Geoworld[_0x1e24a9(0x20b)](_0x4981f4[_0x1e24a9(0x23c)]))return;let _0x422722=_0x4981f4['instanceBounds'],_0x1e1faa=new Geoworld[(_0x1e24a9(0x22f))](_0x422722[0x0],_0x422722[0x1],_0x422722[0x2]),_0x365702=new Geoworld[(_0x1e24a9(0x22f))](_0x422722[0x3],_0x422722[0x4],_0x422722[0x5]),_0x2cd942=Geoworld[_0x1e24a9(0x22f)][_0x1e24a9(0x231)](_0x1e1faa,_0x365702,0.5,scratchPntCenter),_0x457936=Geoworld[_0x1e24a9(0x22f)]['distance'](_0x2cd942,_0x1e1faa),_0x40cf5e=new Geoworld[(_0x1e24a9(0x22f))]();Geoworld['Matrix4'][_0x1e24a9(0x228)](this[_0x1e24a9(0x212)],_0x2cd942,_0x40cf5e),this['boundingVolume'][_0x1e24a9(0x210)]=_0x40cf5e,this[_0x1e24a9(0x1de)][_0x1e24a9(0x213)]=_0x457936,_0x4981f4[_0x1e24a9(0x23c)]=undefined;};let cartesian4Scratch=new Geoworld['Cartesian4']();RenderEntity['prototype'][_0x41f3e4(0x1f9)]=function(){const _0x41811f=_0x41f3e4,_0x14b413=this[_0x41811f(0x1dd)],_0x177e4a=_0x14b413['context'],_0x361ae6=this[_0x41811f(0x200)];if(!Geoworld[_0x41811f(0x20b)](_0x361ae6))return;for(let _0x139ab0 in _0x361ae6){if(!_0x361ae6[_0x41811f(0x1e2)](_0x139ab0))continue;this[_0x41811f(0x253)]['set'](_0x139ab0,_0x361ae6[_0x139ab0]);}let _0x3a796e=this[_0x41811f(0x22b)],_0x5cac3b=this['selectionInfoMap'],_0x163c88=_0x5cac3b[_0x41811f(0x1ef)];for(let _0x50a47d in _0x163c88){if(_0x163c88['hasOwnProperty'](_0x50a47d)){let _0x276e86=_0x5cac3b[_0x41811f(0x208)](_0x50a47d),_0x450492;!Geoworld['defined'](_0x450492)&&(_0x450492=_0x177e4a[_0x41811f(0x1fc)]({'primitive':_0x14b413,'id':_0x50a47d}));let _0x445b1d=_0x450492['color'];cartesian4Scratch['x']=Geoworld['Color'][_0x41811f(0x1e6)](_0x445b1d[_0x41811f(0x245)]),cartesian4Scratch['y']=Geoworld['Color'][_0x41811f(0x1e6)](_0x445b1d[_0x41811f(0x23f)]),cartesian4Scratch['z']=Geoworld[_0x41811f(0x220)][_0x41811f(0x1e6)](_0x445b1d[_0x41811f(0x1e4)]),cartesian4Scratch['w']=Geoworld[_0x41811f(0x220)][_0x41811f(0x1e6)](_0x445b1d[_0x41811f(0x1f6)]);let _0xfdc938=_0x276e86['instanceIds'];if(this[_0x41811f(0x219)]>0x0)_0xfdc938[_0x41811f(0x20f)](function(_0x136979){const _0x2f09e2=_0x41811f;_0x3a796e[_0x2f09e2(0x1f3)](_0x136979,0x2,cartesian4Scratch);});else {let _0x40bdf4=_0x276e86[0x0][_0x41811f(0x226)];_0x3a796e[_0x41811f(0x1f3)](_0x40bdf4,0x2,cartesian4Scratch);}}}this[_0x41811f(0x200)]=undefined;},RenderEntity[_0x41f3e4(0x1e9)][_0x41f3e4(0x246)]=function(_0x3ddaf1){const _0x7af05f=_0x41f3e4;_0x3ddaf1['_allObjsHide']&&this[_0x7af05f(0x240)](!_0x3ddaf1[_0x7af05f(0x20c)]),Object[_0x7af05f(0x238)](_0x3ddaf1['_objsColorList'])[_0x7af05f(0x1f7)]>0x0&&this[_0x7af05f(0x229)](_0x3ddaf1[_0x7af05f(0x204)]),_0x3ddaf1[_0x7af05f(0x209)]['length']>0x0&&this[_0x7af05f(0x1db)](_0x3ddaf1['_objsOperationList']);},RenderEntity[_0x41f3e4(0x1e9)]['updateBatchTableAttributes']=function(){const _0x29a727=_0x41f3e4;let _0x2f8264=this,_0x2dbe9b=this[_0x29a727(0x1df)],_0x168477=[];for(let _0x411204=0x0,_0x5496e9=_0x2dbe9b[_0x29a727(0x1f7)];_0x411204<_0x5496e9;_0x411204++){let _0x3ed295=_0x2dbe9b[_0x29a727(0x206)][_0x411204];if(!_0x3ed295['dirty'])continue;_0x3ed295[_0x29a727(0x252)]=![],_0x168477=_0x3ed295[_0x29a727(0x23b)][_0x29a727(0x20a)](),cartesian4Scratch['x']=_0x168477[0x0],cartesian4Scratch['y']=_0x168477[0x1],cartesian4Scratch['z']=_0x168477[0x2],cartesian4Scratch['w']=_0x168477[0x3];if(Geoworld[_0x29a727(0x20b)](_0x3ed295[_0x29a727(0x226)]))this['batchTable'][_0x29a727(0x1f3)](_0x3ed295[_0x29a727(0x226)],0x0,cartesian4Scratch);else Array[_0x29a727(0x1f4)](_0x3ed295['instanceIds'])&&_0x3ed295[_0x29a727(0x222)][_0x29a727(0x20f)](function(_0x1fc3e3){const _0xfc6c0f=_0x29a727;_0x2f8264['batchTable'][_0xfc6c0f(0x1f3)](_0x1fc3e3,0x0,cartesian4Scratch);});}let _0x25b387=this[_0x29a727(0x215)];for(let _0x38fefe=0x0,_0x3e7a2d=_0x25b387['length'];_0x38fefe<_0x3e7a2d;_0x38fefe++){let _0x3cced6=_0x25b387[_0x29a727(0x206)][_0x38fefe];if(!_0x3cced6[_0x29a727(0x252)])continue;_0x3cced6[_0x29a727(0x252)]=![],this[_0x29a727(0x219)]>0x0?Array['isArray'](_0x3cced6['instanceIds'])&&_0x3cced6['instanceIds'][_0x29a727(0x20f)](function(_0x31afa9){const _0x448ea8=_0x29a727;_0x2f8264[_0x448ea8(0x22b)][_0x448ea8(0x1f3)](_0x31afa9,0x1,_0x3cced6['operationValue']);}):Geoworld['defined'](_0x3cced6[_0x29a727(0x226)])&&this['batchTable'][_0x29a727(0x1f3)](_0x3cced6[_0x29a727(0x226)],0x1,_0x3cced6[_0x29a727(0x250)]);}},RenderEntity['prototype'][_0x41f3e4(0x229)]=function(_0x2a3178){const _0x33378e=_0x41f3e4;if(!this[_0x33378e(0x22c)]||this['selectionInfoMap'][_0x33378e(0x1f7)]<0x1)return;let _0x12a8e2=this['selectionInfoMap']['_hash'];for(let _0x3afa7b in _0x12a8e2){if(!_0x12a8e2[_0x33378e(0x1e2)](_0x3afa7b))continue;let _0x1cf9df=_0x2a3178[_0x3afa7b];if(!Geoworld[_0x33378e(0x20b)](_0x1cf9df))continue;let _0x374f77=_0x12a8e2[_0x3afa7b][0x0];const _0x368e30=_0x374f77[_0x33378e(0x226)],_0x312375=_0x374f77[_0x33378e(0x222)];this[_0x33378e(0x1df)][_0x33378e(0x1eb)](_0x3afa7b,{'batchId':_0x368e30,'instanceIds':_0x312375,'color':_0x1cf9df,'dirty':!![]});let _0x4af0b6=this[_0x33378e(0x215)][_0x33378e(0x208)](_0x3afa7b);!Geoworld[_0x33378e(0x20b)](_0x4af0b6)&&(_0x4af0b6={'batchId':_0x368e30,'instanceIds':_0x312375,'operationValue':new Geoworld[(_0x33378e(0x217))](),'dirty':!![]}),_0x4af0b6[_0x33378e(0x252)]=!![],_0x4af0b6[_0x33378e(0x250)]['x']=_0x1cf9df===Geoworld[_0x33378e(0x220)][_0x33378e(0x221)]?_0x4af0b6['operationValue']['x']&0xfe:_0x4af0b6[_0x33378e(0x250)]['x']|0x1,this[_0x33378e(0x215)][_0x33378e(0x1eb)](_0x3afa7b,_0x4af0b6),this[_0x33378e(0x21a)]=!![];}},RenderEntity[_0x41f3e4(0x1e9)]['updateObjsOperation']=function(_0x2cceb7){const _0xaab72b=_0x41f3e4;if(!this[_0xaab72b(0x22c)]||this[_0xaab72b(0x253)][_0xaab72b(0x1f7)]<0x1)return;let _0x5b5532=this[_0xaab72b(0x253)]['_hash'];for(let _0xd4fbaf in _0x5b5532){if(!_0x5b5532[_0xaab72b(0x1e2)](_0xd4fbaf))continue;if(!_0x2cceb7[_0xaab72b(0x23e)](_0xd4fbaf))continue;let _0x41a65b=_0x5b5532[_0xd4fbaf][0x0],_0x159aa8=_0x41a65b[_0xaab72b(0x226)],_0x5b1748=_0x41a65b[_0xaab72b(0x222)],_0x1a878a=_0x2cceb7['get'](_0xd4fbaf),_0x44a074=this['idsOperationMap'][_0xaab72b(0x208)](_0xd4fbaf);!Geoworld['defined'](_0x44a074)&&(_0x44a074={'batchId':_0x159aa8,'instanceIds':_0x5b1748,'operationValue':new Geoworld['Cartesian4'](),'dirty':!![]}),_0x44a074[_0xaab72b(0x252)]=!![],_0x44a074[_0xaab72b(0x250)]['x']=_0x44a074['operationValue']['x']&0x1|_0x1a878a,this[_0xaab72b(0x215)][_0xaab72b(0x1eb)](_0xd4fbaf,_0x44a074),this['batchTableDirty']=!![];}},RenderEntity[_0x41f3e4(0x1e9)]['updateAllObjsVisible']=function(_0x5cc58f){const _0x38d4b3=_0x41f3e4;if(!this['ready']||this[_0x38d4b3(0x253)]['length']<0x1)return;let _0x50dc64=this[_0x38d4b3(0x1dd)],_0x32b8e2=this[_0x38d4b3(0x253)][_0x38d4b3(0x1ef)];for(let _0x391707 in _0x32b8e2){if(!_0x32b8e2[_0x38d4b3(0x1e2)](_0x391707))continue;if(_0x50dc64['_objsVisibleList'][_0x38d4b3(0x23e)](_0x391707))continue;let _0x440c64=_0x32b8e2[_0x391707][0x0],_0x41cefd=_0x440c64[_0x38d4b3(0x226)],_0x4b61ba=_0x440c64[_0x38d4b3(0x222)],_0x39bde1=this[_0x38d4b3(0x215)]['get'](_0x391707);!Geoworld[_0x38d4b3(0x20b)](_0x39bde1)&&(_0x39bde1={'batchId':_0x41cefd,'instanceIds':_0x4b61ba,'operationValue':new Geoworld[(_0x38d4b3(0x217))](),'dirty':!![]}),_0x39bde1[_0x38d4b3(0x252)]=!![],_0x5cc58f?_0x39bde1['operationValue']['x']=_0x39bde1[_0x38d4b3(0x250)]['x']&(_0x183314['ALL']^_0x183314[_0x38d4b3(0x25b)]):_0x39bde1[_0x38d4b3(0x250)]['x']=_0x39bde1[_0x38d4b3(0x250)]['x']|_0x183314[_0x38d4b3(0x25b)],this['idsOperationMap']['set'](_0x391707,_0x39bde1),_0x39bde1[_0x38d4b3(0x250)]['x']===_0x183314[_0x38d4b3(0x24c)]?_0x50dc64[_0x38d4b3(0x209)]['remove'](_0x391707):(_0x50dc64[_0x38d4b3(0x209)][_0x38d4b3(0x1eb)](_0x391707,_0x39bde1[_0x38d4b3(0x250)]['x']),_0x50dc64[_0x38d4b3(0x247)][_0x38d4b3(0x1eb)](_0x391707,!![])),this['batchTableDirty']=!![];}};function _0x2e7a(_0x15e9e7,_0x36c472){_0x15e9e7=_0x15e9e7-0x1da;let _0x12cb25=_0x12cb[_0x15e9e7];return _0x12cb25;}function removeDefine(_0x2f193d,_0x39ef9e){const _0x433bef=_0x41f3e4;let _0xb89ee0=_0x2f193d[_0x433bef(0x203)][_0x433bef(0x211)](_0x39ef9e);_0xb89ee0>=0x0&&_0x2f193d['defines']['splice'](_0xb89ee0,0x1);}RenderEntity[_0x41f3e4(0x1e9)][_0x41f3e4(0x24e)]=function(_0x3cd002){const _0x16e1a5=_0x41f3e4;if(!this[_0x16e1a5(0x22c)])return;let _0x5c12f8=this[_0x16e1a5(0x22e)][_0x16e1a5(0x205)][_0x16e1a5(0x1f5)](),_0x36c733=this[_0x16e1a5(0x22e)][_0x16e1a5(0x216)][_0x16e1a5(0x1f5)](),_0x1c0e86=this[_0x16e1a5(0x23d)];_0x3cd002[_0x16e1a5(0x242)]?_0x36c733[_0x16e1a5(0x203)][_0x16e1a5(0x211)](_0x4c53e0[_0x16e1a5(0x21e)])===-0x1&&_0x36c733[_0x16e1a5(0x203)][_0x16e1a5(0x256)](_0x4c53e0['CLIP']):removeDefine(_0x36c733,_0x4c53e0[_0x16e1a5(0x21e)]),this[_0x16e1a5(0x1dd)][_0x16e1a5(0x1fb)]?_0x36c733[_0x16e1a5(0x203)][_0x16e1a5(0x211)](_0x4c53e0[_0x16e1a5(0x249)])===-0x1&&_0x36c733[_0x16e1a5(0x203)][_0x16e1a5(0x256)](_0x4c53e0[_0x16e1a5(0x249)]):removeDefine(_0x36c733,_0x4c53e0[_0x16e1a5(0x249)]),this['shaderProgram']['destroy'](),this['shaderProgram']=Geoworld[_0x16e1a5(0x237)]['fromCache']({'context':this[_0x16e1a5(0x1dd)][_0x16e1a5(0x1e3)],'vertexShaderSource':_0x5c12f8,'fragmentShaderSource':_0x36c733,'attributeLocations':_0x1c0e86}),this['colorCommand'][_0x16e1a5(0x22e)]=this[_0x16e1a5(0x22e)];},RenderEntity[_0x41f3e4(0x1e9)]['hypsometric']=function(_0x19123b){const _0x24e54a=_0x41f3e4;if(!this[_0x24e54a(0x22c)])return;let _0x2657c8=this['shaderProgram'][_0x24e54a(0x205)][_0x24e54a(0x1f5)](),_0x18beac=this['shaderProgram'][_0x24e54a(0x216)]['clone'](),_0x281cf1=this[_0x24e54a(0x23d)];_0x19123b[_0x24e54a(0x242)]?(_0x2657c8[_0x24e54a(0x203)][_0x24e54a(0x211)](_0x4c53e0[_0x24e54a(0x225)])===-0x1&&_0x2657c8[_0x24e54a(0x203)]['push'](_0x4c53e0[_0x24e54a(0x225)]),_0x18beac[_0x24e54a(0x203)][_0x24e54a(0x211)](_0x4c53e0['HYPSOMETRIC'])===-0x1&&_0x18beac['defines'][_0x24e54a(0x256)](_0x4c53e0[_0x24e54a(0x225)])):removeDefine(_0x18beac,_0x4c53e0[_0x24e54a(0x225)]),this['shaderProgram'][_0x24e54a(0x259)](),this[_0x24e54a(0x22e)]=Geoworld[_0x24e54a(0x237)][_0x24e54a(0x21d)]({'context':this[_0x24e54a(0x1dd)][_0x24e54a(0x1e3)],'vertexShaderSource':_0x2657c8,'fragmentShaderSource':_0x18beac,'attributeLocations':_0x281cf1}),this['colorCommand'][_0x24e54a(0x22e)]=this['shaderProgram'];},RenderEntity[_0x41f3e4(0x1e9)][_0x41f3e4(0x1fe)]=function(_0x5055c7){const _0x15ed7e=_0x41f3e4;if(!this[_0x15ed7e(0x22c)])return;let _0x3270af=this['shaderProgram'][_0x15ed7e(0x205)][_0x15ed7e(0x1f5)](),_0x3df51f=this[_0x15ed7e(0x22e)][_0x15ed7e(0x216)][_0x15ed7e(0x1f5)](),_0x42103a=this[_0x15ed7e(0x23d)];_0x5055c7[_0x15ed7e(0x242)]?_0x3df51f[_0x15ed7e(0x203)][_0x15ed7e(0x211)](_0x4c53e0[_0x15ed7e(0x236)])===-0x1&&_0x3df51f[_0x15ed7e(0x203)][_0x15ed7e(0x256)](_0x4c53e0[_0x15ed7e(0x236)]):removeDefine(_0x3df51f,_0x4c53e0[_0x15ed7e(0x236)]),this[_0x15ed7e(0x22e)][_0x15ed7e(0x259)](),this[_0x15ed7e(0x22e)]=Geoworld[_0x15ed7e(0x237)][_0x15ed7e(0x21d)]({'context':this[_0x15ed7e(0x1dd)][_0x15ed7e(0x1e3)],'vertexShaderSource':_0x3270af,'fragmentShaderSource':_0x3df51f,'attributeLocations':_0x42103a}),this['colorCommand'][_0x15ed7e(0x22e)]=this[_0x15ed7e(0x22e)];},RenderEntity['prototype'][_0x41f3e4(0x224)]=function(_0x1f2a58){const _0x5d0c11=_0x41f3e4;if(!this[_0x5d0c11(0x22c)])return;let _0x536caa=this[_0x5d0c11(0x22e)][_0x5d0c11(0x205)][_0x5d0c11(0x1f5)](),_0x47bf69=this[_0x5d0c11(0x22e)][_0x5d0c11(0x216)][_0x5d0c11(0x1f5)](),_0x3aacf8=this[_0x5d0c11(0x23d)];_0x1f2a58[_0x5d0c11(0x242)]?_0x536caa[_0x5d0c11(0x203)][_0x5d0c11(0x211)](_0x4c53e0[_0x5d0c11(0x227)])===-0x1&&_0x536caa[_0x5d0c11(0x203)][_0x5d0c11(0x256)](_0x4c53e0[_0x5d0c11(0x227)]):removeDefine(_0x536caa,_0x4c53e0[_0x5d0c11(0x227)]),this['shaderProgram'][_0x5d0c11(0x259)](),this[_0x5d0c11(0x22e)]=Geoworld[_0x5d0c11(0x237)]['fromCache']({'context':this[_0x5d0c11(0x1dd)][_0x5d0c11(0x1e3)],'vertexShaderSource':_0x536caa,'fragmentShaderSource':_0x47bf69,'attributeLocations':_0x3aacf8}),this[_0x5d0c11(0x1e7)]['shaderProgram']=this[_0x5d0c11(0x22e)];},RenderEntity['prototype']['createCommand']=Geoworld['DeveloperError']['throwInstantiationError'],RenderEntity['prototype'][_0x41f3e4(0x1fa)]=Geoworld[_0x41f3e4(0x239)][_0x41f3e4(0x202)],RenderEntity[_0x41f3e4(0x1e9)][_0x41f3e4(0x22d)]=Geoworld[_0x41f3e4(0x239)][_0x41f3e4(0x202)],RenderEntity[_0x41f3e4(0x1e9)]['destroy']=Geoworld[_0x41f3e4(0x239)][_0x41f3e4(0x202)]; const _0x40fa=['destroy','context','boundingVolume','shaderProgram','vertexBufferToCreate','MaxVisibleValue','arrIndexPackage','geoMatrix','uniformMap','setting','prototype','60RLxknN','1160458TuFlON','LineInterval','commandList','LineColor','createBuffers','update','vertexAttributes','noValueColor','createShaderProgram','DisplayMode','clone','26084KIXROE','create','1069111birXuU','_swipeRegion','length','colorCommand','BlendingState','material','drawingBufferWidth','pickInfo','TRANSLUCENT','indexBuffer','_hypsometric','22rMYlqL','shaderProgramToCreate','BoundingSphere','Opacity','layer','ready','Pass','vertexPackage','46653aZXhOZ','LESS_OR_EQUAL','createCommand','MinVisibleValue','650241kEBayI','width','ALPHA_BLEND','textures','call','1FHErFz','DepthFunction','VertexArray','vertexArray','drawingBufferHeight','isDestroyed','fromCache','initLayerSetting','Cartesian4','destroyObject','_flattenPar','_clipMode','invGeoMatrix','push','978092YSiaYH','constructor','ColorTableMaxKey','_clipPlane','texture','ColorTableMinKey','949955MsilsA','DrawCommand'];const _0x3fae7f=_0x4aa3;(function(_0x1d823f,_0xbe5969){const _0xbd5f48=_0x4aa3;while(!![]){try{const _0x4af124=-parseInt(_0xbd5f48(0x1d9))+-parseInt(_0xbd5f48(0x211))+-parseInt(_0xbd5f48(0x205))*-parseInt(_0xbd5f48(0x1f8))+-parseInt(_0xbd5f48(0x1ed))+-parseInt(_0xbd5f48(0x216))*parseInt(_0xbd5f48(0x1df))+parseInt(_0xbd5f48(0x1fa))+-parseInt(_0xbd5f48(0x20d))*-parseInt(_0xbd5f48(0x1ec));if(_0x4af124===_0xbe5969)break;else _0x1d823f['push'](_0x1d823f['shift']());}catch(_0x38de65){_0x1d823f['push'](_0x1d823f['shift']());}}}(_0x40fa,0xabba1));function _0x4aa3(_0x568ab6,_0x4e2e8a){_0x568ab6=_0x568ab6-0x1d5;let _0x40faaf=_0x40fa[_0x568ab6];return _0x40faaf;}function S3MObliqueRenderEntity(_0x940cfc){const _0x2b4469=_0x4aa3;RenderEntity[_0x2b4469(0x215)](this,_0x940cfc),this['vs']=_0x11429b,this['fs']=_0x26c7a5;}S3MObliqueRenderEntity[_0x3fae7f(0x1eb)]=Object[_0x3fae7f(0x1f9)](RenderEntity[_0x3fae7f(0x1eb)]),S3MObliqueRenderEntity['prototype'][_0x3fae7f(0x1da)]=RenderEntity;function getOpaqueRenderState(){const _0x2848b0=_0x3fae7f;return Geoworld['RenderState'][_0x2848b0(0x21c)]({'cull':{'enabled':!![]},'depthTest':{'enabled':!![],'func':Geoworld[_0x2848b0(0x217)][_0x2848b0(0x20e)]},'blending':Geoworld[_0x2848b0(0x1fe)][_0x2848b0(0x213)]});}let hypMinMaxValueScratch=new Geoworld[(_0x3fae7f(0x21e))](),hypOpacityIntervalFillModeScratch=new Geoworld[(_0x3fae7f(0x21e))](),swipRegionScratch=new Geoworld[(_0x3fae7f(0x21e))]();function getUniformMap(_0x109151,_0x41e5c0,_0xd524ed){return {'uGeoMatrix':function(){const _0x4df7b4=_0x4aa3;return _0xd524ed[_0x4df7b4(0x1e8)];},'uInverseGeoMatrix':function(){const _0x14ab5b=_0x4aa3;return _0xd524ed[_0x14ab5b(0x1d7)];},'uTexture':function(){const _0x5f02b8=_0x4aa3;return _0x109151[_0x5f02b8(0x214)][0x0];},'uTexture0Width':function(){const _0x564606=_0x4aa3;return _0x109151[_0x564606(0x214)][0x0][_0x564606(0x212)];},'uClipMode':function(){const _0x4d97c4=_0x4aa3;return _0x41e5c0[_0x4d97c4(0x1d6)];},'uClipPlanes':function(){const _0x204c79=_0x4aa3;return _0x41e5c0[_0x204c79(0x1dc)];},'uHypsometricTexture':function(){const _0x368d44=_0x4aa3;return _0x41e5c0[_0x368d44(0x204)][_0x368d44(0x1dd)];},'uHypLineColor':function(){const _0x4b90d5=_0x4aa3;return _0x41e5c0[_0x4b90d5(0x204)]['setting'][_0x4b90d5(0x1f0)];},'uNoValueColor':function(){const _0x3d1146=_0x4aa3;return _0x41e5c0[_0x3d1146(0x204)][_0x3d1146(0x1ea)][_0x3d1146(0x1f4)];},'uMinMaxValue':function(){const _0x129a8e=_0x4aa3;let _0xf8ce51=_0x41e5c0['_hypsometric'][_0x129a8e(0x1ea)];return hypMinMaxValueScratch['x']=_0xf8ce51[_0x129a8e(0x1de)],hypMinMaxValueScratch['y']=_0xf8ce51[_0x129a8e(0x1db)],hypMinMaxValueScratch['z']=_0xf8ce51[_0x129a8e(0x210)],hypMinMaxValueScratch['w']=_0xf8ce51[_0x129a8e(0x1e6)],hypMinMaxValueScratch;},'uOpacityIntervalFillMode':function(){const _0x36afd4=_0x4aa3;let _0x989c31=_0x41e5c0[_0x36afd4(0x204)][_0x36afd4(0x1ea)];return hypOpacityIntervalFillModeScratch['x']=_0x989c31[_0x36afd4(0x208)],hypOpacityIntervalFillModeScratch['y']=_0x989c31[_0x36afd4(0x1ee)],hypOpacityIntervalFillModeScratch['z']=_0x989c31[_0x36afd4(0x1f6)],hypOpacityIntervalFillModeScratch;},'uFlattenRect':function(){const _0x5c1aeb=_0x4aa3;return _0x41e5c0[_0x5c1aeb(0x1d5)]['bounds'];},'uFlattenTexture':function(){const _0xdae37=_0x4aa3;return _0x41e5c0[_0xdae37(0x1d5)][_0xdae37(0x1dd)];},'uSwipeRegion':function(){const _0x10626f=_0x4aa3,_0x5c2545=_0x41e5c0[_0x10626f(0x1e2)];return swipRegionScratch['x']=_0x41e5c0[_0x10626f(0x1fb)]['x']*_0x5c2545[_0x10626f(0x200)],swipRegionScratch['y']=(0x1-_0x41e5c0[_0x10626f(0x1fb)]['y'])*_0x5c2545[_0x10626f(0x21a)],swipRegionScratch['z']=_0x41e5c0[_0x10626f(0x1fb)]['z']*_0x5c2545[_0x10626f(0x200)],swipRegionScratch['w']=(0x1-_0x41e5c0['_swipeRegion']['w'])*_0x5c2545[_0x10626f(0x21a)],swipRegionScratch;}};}S3MObliqueRenderEntity[_0x3fae7f(0x1eb)][_0x3fae7f(0x20f)]=function(){const _0x1983ba=_0x3fae7f;if(Geoworld['defined'](this[_0x1983ba(0x1fd)])||this[_0x1983ba(0x1e5)][_0x1983ba(0x1fc)]!==0x0||this['indexBufferToCreate']['length']!==0x0||this[_0x1983ba(0x206)][_0x1983ba(0x1fc)]!==0x0)return;let _0x173835=this[_0x1983ba(0x209)],_0xbda341=_0x173835[_0x1983ba(0x1e2)],_0xcc1dc0=this[_0x1983ba(0x20c)],_0x3f05a0=this[_0x1983ba(0x1e7)],_0x5ad850=_0xcc1dc0[_0x1983ba(0x1f3)];if(_0x3f05a0['length']<0x1)return;let _0x575466=_0x3f05a0[0x0],_0x128e1b=this[_0x1983ba(0x1ff)];this['vertexArray']=new Geoworld[(_0x1983ba(0x218))]({'context':_0xbda341,'attributes':_0x5ad850,'indexBuffer':_0x575466[_0x1983ba(0x203)]}),this[_0x1983ba(0x1fd)]=new Geoworld[(_0x1983ba(0x1e0))]({'primitiveType':_0x575466['primitiveType'],'modelMatrix':this['modelMatrix'],'boundingVolume':Geoworld[_0x1983ba(0x207)][_0x1983ba(0x1f7)](this[_0x1983ba(0x1e3)]),'vertexArray':this[_0x1983ba(0x219)],'shaderProgram':this['shaderProgram'],'pass':_0x128e1b['bTransparentSorting']?Geoworld[_0x1983ba(0x20b)][_0x1983ba(0x202)]:Geoworld[_0x1983ba(0x20b)]['OPAQUE'],'renderState':getOpaqueRenderState(),'instanceCount':_0xcc1dc0['instanceCount']}),this[_0x1983ba(0x1fd)][_0x1983ba(0x1e9)]=getUniformMap(_0x128e1b,_0x173835,this),this[_0x1983ba(0x20c)]=undefined,this[_0x1983ba(0x1e7)]=undefined,this['vs']=undefined,this['fs']=undefined,this['ready']=!![];},S3MObliqueRenderEntity[_0x3fae7f(0x1eb)][_0x3fae7f(0x1f2)]=function(_0x11be68,_0x276e6d){const _0x55585e=_0x3fae7f;if(!this[_0x55585e(0x20a)]){this[_0x55585e(0x1f1)](_0x11be68),this[_0x55585e(0x1f5)](_0x11be68),this[_0x55585e(0x20f)](_0x11be68),this[_0x55585e(0x21d)](_0x276e6d);return;}_0x11be68[_0x55585e(0x1ef)][_0x55585e(0x1d8)](this[_0x55585e(0x1fd)]);},S3MObliqueRenderEntity[_0x3fae7f(0x1eb)][_0x3fae7f(0x21b)]=function(){return ![];},S3MObliqueRenderEntity[_0x3fae7f(0x1eb)][_0x3fae7f(0x1e1)]=function(){const _0x3e85ac=_0x3fae7f;return this[_0x3e85ac(0x1e4)]=this[_0x3e85ac(0x1e4)]&&!this[_0x3e85ac(0x1e4)][_0x3e85ac(0x21b)]()&&this[_0x3e85ac(0x1e4)][_0x3e85ac(0x1e1)](),this[_0x3e85ac(0x219)]=this[_0x3e85ac(0x219)]&&!this[_0x3e85ac(0x219)][_0x3e85ac(0x21b)]()&&this[_0x3e85ac(0x219)][_0x3e85ac(0x1e1)](),this[_0x3e85ac(0x1ff)]=this[_0x3e85ac(0x1ff)]&&!this[_0x3e85ac(0x1ff)]['isDestroyed']()&&this['material'][_0x3e85ac(0x1e1)](),this[_0x3e85ac(0x1fd)]=undefined,this[_0x3e85ac(0x20c)]=null,this[_0x3e85ac(0x1e7)]=null,this['modelMatrix']=undefined,this[_0x3e85ac(0x201)]=undefined,this['selectionInfoMap']=undefined,this['vs']=undefined,this['fs']=undefined,Geoworld[_0x3e85ac(0x21f)](this);}; var _0x4c4c=['13RtQavy','458WlClhu','3iTTXna','831422SoxGZL','566vrvZuu','1TOcoPv','100tQipBO','39437BTDjTh','775741xDxMbX','\x0a\x20\x20\x20\x20attribute\x20vec4\x20aPosition;\x0a\x20\x20\x20\x20attribute\x20vec4\x20aColor;\x0a\x20\x20\x20\x20attribute\x20vec3\x20aNormal;\x0a#ifdef\x20Instance\x0a\x20\x20\x20\x20attribute\x20float\x20instanceId;\x0a#else\x0a\x20\x20\x20\x20attribute\x20float\x20batchId;\x0a#endif\x20\x0a\x0a#ifdef\x20TextureAtlas\x0a\x20\x20\x20\x20attribute\x20float\x20aTextureBatchId0;\x0a#endif\x0a\x0a#ifdef\x20TexCoord\x0a\x20\x20\x20\x20attribute\x20vec4\x20aTexCoord0;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexCoord;\x0a#ifdef\x20TextureAtlas\x0a\x20\x20\x20\x20uniform\x20vec4\x20uTexAtlasDim;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexAtlasTran;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexAtlasScale;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexAtlasSize;\x0a\x20\x20\x20\x20varying\x20vec2\x20vMaxMipLevel;\x0a#else\x0a\x20\x20\x20\x20uniform\x20float\x20uTexture0Width;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexMatrix;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexCoordTransform;\x0a#endif\x0a#endif\x0a\x0a#ifdef\x20TexCoord2\x0a\x20\x20\x20\x20attribute\x20vec4\x20aTexCoord1;\x0a\x20\x20\x20\x20uniform\x20float\x20uTexture1Width;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexMatrix2;\x0a#endif\x0a#ifdef\x20Instance\x0a\x20\x20\x20\x20attribute\x20vec4\x20uv2;\x0a\x20\x20\x20\x20attribute\x20vec4\x20uv3;\x0a\x20\x20\x20\x20attribute\x20vec4\x20uv4;\x0a\x20\x20\x20\x20attribute\x20vec4\x20secondary_colour;\x0a\x20\x20\x20\x20attribute\x20vec4\x20uv6;\x20\x20\x20\x0a#endif\x0a#ifdef\x20HYPSOMETRIC\x0a\x20\x20\x20\x20varying\x20float\x20wValue;\x20\x20\x20\x20\x0a#endif\x0a#ifdef\x20FLATTEN\x0a\x20\x20\x20\x20uniform\x20mat4\x20uGeoMatrix;\x0a\x20\x20\x20\x20uniform\x20mat4\x20uInverseGeoMatrix;\x0a\x20\x20\x20\x20uniform\x20sampler2D\x20uFlattenTexture;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uFlattenRect;\x0a#endif\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20uniform\x20vec4\x20uSelectedColor;\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20varying\x20vec4\x20vSecondColor;\x0a\x20\x20\x20\x20varying\x20vec4\x20vPositionMC;\x0a\x20\x20\x20\x20varying\x20vec3\x20vPositionEC;\x0a\x20\x20\x20\x20varying\x20vec3\x20vNormalEC;\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20varying\x20vec4\x20vColor;\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20const\x20float\x20SHIFT_LEFT8\x20=\x20256.0;\x0a\x20\x20\x20\x20const\x20float\x20SHIFT_RIGHT8\x20=\x201.0\x20/\x20256.0;\x0a\x20\x20\x20\x20const\x20float\x20SHIFT_RIGHT4\x20=\x201.0\x20/\x2016.0;\x0a\x20\x20\x20\x20const\x20float\x20SHIFT_LEFT4\x20=\x2016.0;\x0a\x20\x20\x20\x20void\x20getTextureMatrixFromZValue(in\x20float\x20nZ,\x20inout\x20float\x20XTran,\x20inout\x20float\x20YTran,\x20inout\x20float\x20scale)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(nZ\x20<=\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20nDel8\x20=\x20floor(nZ\x20*\x20SHIFT_RIGHT8);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20nDel16\x20=\x20floor(nDel8\x20*\x20SHIFT_RIGHT8);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20nDel20\x20=\x20floor(nDel16\x20*\x20SHIFT_RIGHT4);\x0a\x20\x20\x20\x20\x20\x20\x20\x20YTran\x20=\x20nZ\x20-\x20nDel8\x20*\x20SHIFT_LEFT8;\x0a\x20\x20\x20\x20\x20\x20\x20\x20XTran\x20=\x20nDel8\x20-\x20nDel16\x20*\x20SHIFT_LEFT8;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20nLevel\x20=\x20nDel16\x20-\x20nDel20\x20*\x20SHIFT_LEFT4;\x0a\x20\x20\x20\x20\x20\x20\x20\x20scale\x20=\x201.0\x20/\x20pow(2.0,\x20nLevel);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20void\x20operation(vec4\x20operationType,\x20vec4\x20color,\x20vec4\x20selectedColor,\x20inout\x20vec4\x20vertexColor)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20right_2\x20=\x20operationType.x\x20*\x200.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20right_4\x20=\x20right_2\x20*\x200.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20right_8\x20=\x20right_4\x20*\x200.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20right_16\x20=\x20right_8\x20*\x200.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20isSetColor\x20=\x20fract(right_2);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(isSetColor\x20>\x200.1)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vertexColor\x20*=\x20color;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20isPicked\x20=\x20fract(floor(right_2)*\x200.5);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(isPicked\x20>\x200.1)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vertexColor\x20*=\x20selectedColor;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20isHide\x20=\x20fract(floor(right_4)*\x200.5);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(isHide\x20>\x200.1)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vertexColor.a\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a#ifdef\x20FLATTEN\x0a\x20\x20\x20\x20float\x20unpackValue(vec4\x20packedValue)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20SHIFT_LEFT16\x20=\x2065536.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20SHIFT_LEFT8\x20=\x20256.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20value\x20=\x20packedValue\x20*\x20255.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20value.r\x20*\x20SHIFT_LEFT16\x20+\x20value.g\x20*\x20SHIFT_LEFT8\x20+\x20value.b\x20-\x209000.0;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20vec4\x20calculateHeight(vec4\x20vertexPos)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20vecPos\x20=\x20uGeoMatrix\x20*\x20vec4(vertexPos.xyz,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20vecRatio\x20=\x20vec2(uFlattenRect.z\x20-\x20uFlattenRect.x,\x20uFlattenRect.w\x20-\x20uFlattenRect.y);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20vecTexCoord\x20=\x20vec2(vecPos.x\x20-\x20uFlattenRect.x,\x20vecPos.y\x20-\x20uFlattenRect.y);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vecTexCoord.x\x20=\x20vecTexCoord.x\x20/\x20vecRatio.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vecTexCoord.y\x20=\x20vecTexCoord.y\x20/\x20vecRatio.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(vecTexCoord.x\x20>\x201.0\x20||\x20vecTexCoord.x\x20<\x200.0\x20||\x20vecTexCoord.y\x20>\x201.0\x20||\x20vecTexCoord.y\x20<\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vertexPos;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20fHeight\x20=\x20unpackValue(texture2D(uFlattenTexture,\x20vecTexCoord.xy));\x0a\x20\x20\x20\x20\x20\x20\x20\x20fHeight\x20=\x20fHeight;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(vecPos.z\x20>\x20fHeight)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vecPos.z\x20=\x20fHeight;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vecPos.w\x20=\x20vecPos.z;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20uInverseGeoMatrix\x20*\x20vec4(vecPos.xyz,\x201.0);\x0a\x20\x20\x20\x20}\x0a#endif\x0a#ifdef\x20TextureAtlas\x0a\x20\x20\x20\x20uniform\x20highp\x20sampler2D\x20batchTextureAtlas;\x20\x0a\x20\x20\x20\x20uniform\x20vec4\x20batchTextureAtlasStep;\x20\x0a#ifdef\x20SecTextureAtlas\x0a\x20\x20\x20\x20uniform\x20highp\x20sampler2D\x20batchTextureAtlasSec;\x20\x0a\x20\x20\x20\x20uniform\x20vec4\x20batchTextureAtlasStepSec;\x20\x0a#endif\x0a\x20\x20\x20\x20vec2\x20computeAtlasSt(float\x20batchId,\x20vec4\x20step)\x20\x0a\x20\x20\x20\x20{\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20stepX\x20=\x20step.x;\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20centerX\x20=\x20step.y;\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20numberOfAttributes\x20=\x20float(1);\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec2(centerX\x20+\x20(batchId\x20*\x20numberOfAttributes\x20*\x20stepX),\x200.5);\x20\x0a\x20\x20\x20\x20}\x20\x0a\x20\x20\x20\x20vec4\x20atlas_batchTable_xywh(float\x20batchId,\x20sampler2D\x20texture,\x20vec4\x20step)\x20\x0a\x20\x20\x20\x20{\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20st\x20=\x20computeAtlasSt(batchId,\x20step);\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20st.x\x20+=\x20step.x\x20*\x20float(0);\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20textureValue\x20=\x20texture2D(texture,\x20st);\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20value\x20=\x20textureValue;\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20value;\x20\x0a\x20\x20\x20\x20}\x20\x0a\x20\x20\x20\x20void\x20getTexAtlasParameter(in\x20vec4\x20xywh,\x20in\x20vec2\x20textureDim,\x20inout\x20vec2\x20translate,\x20inout\x20vec2\x20scale,\x20inout\x20vec2\x20texSize,\x20inout\x20float\x20maxMipLevel)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20width\x20=\x20xywh.z;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20height\x20\x20=\x20xywh.w;\x0a\x20\x20\x20\x20\x20\x20\x20\x20width\x20*=\x202.0\x20/\x203.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20maxMipLevel\x20=\x20log2(min(width,\x20height));\x0a\x20\x20\x20\x20\x20\x20\x20\x20scale.x\x20=\x20width\x20/\x20textureDim.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20scale.y\x20=\x20height\x20/\x20textureDim.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20translate.x\x20=\x20xywh.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20translate.y\x20\x20=\x20xywh.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20translate\x20/=\x20textureDim;\x0a\x20\x20\x20\x20\x20\x20\x20\x20texSize.x\x20=\x20width;\x0a\x20\x20\x20\x20\x20\x20\x20\x20texSize.y\x20=\x20height;\x0a\x20\x20\x20\x20}\x0a#endif\x0a\x20\x20\x20\x20void\x20main()\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20#ifdef\x20TexCoord\x0a\x20\x20\x20\x20\x20\x20\x20\x20vTexCoord.xy\x20=\x20aTexCoord0.xy;\x0a\x20\x20\x20\x20#ifdef\x20TextureAtlas\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(aTextureBatchId0\x20<\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vMaxMipLevel.x\x20=\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20xywh\x20=\x20atlas_batchTable_xywh(aTextureBatchId0,\x20batchTextureAtlas,\x20batchTextureAtlasStep);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20getTexAtlasParameter(xywh,\x20uTexAtlasDim.xy,\x20vTexAtlasTran.xy,\x20vTexAtlasScale.xy,\x20vTexAtlasSize.xy,\x20vMaxMipLevel.x);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20vTexMatrix\x20=\x20vec4(0.0,0.0,1.0,0.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vTexCoordTransform.x\x20=\x20aTexCoord0.z;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(vTexCoordTransform.x\x20<\x20-90000.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vTexMatrix.z\x20=\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20getTextureMatrixFromZValue(floor(vTexCoordTransform.x),\x20vTexMatrix.x,\x20vTexMatrix.y,\x20vTexMatrix.z);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vTexMatrix.w\x20=\x20log2(uTexture0Width\x20*\x20vTexMatrix.z);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20#ifdef\x20TexCoord2\x0a\x20\x20\x20\x20#ifdef\x20TextureAtlas\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(aTextureBatchIdSec\x20<\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vMaxMipLevel.y\x20=\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20xywh2\x20=\x20atlas_batchTable_xywh(aTextureBatchIdSec,\x20batchTextureAtlasSec,\x20batchTextureAtlasStepSec);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20getTexAtlasParameter(xywh2,\x20uTexAtlasDim.zw,\x20vTexAtlasTran.zw,\x20vTexAtlasScale.zw,\x20vTexAtlasSize.zw,\x20vMaxMipLevel.y);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20vTexCoord.zw\x20=\x20aTexCoord1.xy;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vTexMatrix2\x20=\x20vec4(0.0,0.0,1.0,0.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vTexCoordTransform.y\x20=\x20aTexCoord1.z;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(vTexCoordTransform.y\x20<\x20-90000.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vTexMatrix2.z\x20=\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20getTextureMatrixFromZValue(floor(vTexCoordTransform.y),\x20vTexMatrix2.x,\x20vTexMatrix2.y,\x20vTexMatrix2.z);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vTexMatrix2.w\x20=\x20log2(uTexture1Width\x20*\x20vTexMatrix.z);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20vec4\x20vertexPos\x20=\x20aPosition;\x0a#ifdef\x20FLATTEN\x0a\x20\x20\x20\x20vertexPos\x20=\x20calculateHeight(vertexPos);\x0a#endif\x0a\x20\x20\x20\x20vec4\x20vertexColor\x20=\x20vec4(1.0);\x0a#ifdef\x20VertexColor\x0a\x20\x20\x20\x20vertexColor\x20=\x20aColor;\x0a#endif\x0a\x20\x20\x20\x20#ifdef\x20Instance\x0a\x20\x20\x20\x20\x20\x20\x20\x20mat4\x20worldMatrix;\x0a\x20\x20\x20\x20\x20\x20\x20\x20worldMatrix[0]\x20=\x20uv2;\x0a\x20\x20\x20\x20\x20\x20\x20\x20worldMatrix[1]\x20=\x20uv3;\x0a\x20\x20\x20\x20\x20\x20\x20\x20worldMatrix[2]\x20=\x20uv4;\x0a\x20\x20\x20\x20\x20\x20\x20\x20worldMatrix[3]\x20=\x20vec4(0,\x200,\x200,\x201);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vertexPos\x20=\x20vec4(vertexPos.xyz,1.0)\x20*\x20worldMatrix;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vertexColor\x20*=\x20secondary_colour;\x20\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20#ifdef\x20Instance\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20index\x20=\x20instanceId;\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20index\x20=\x20batchId;\x0a\x20\x20\x20\x20#endif\x20\x20\x0a\x20\x20\x20\x20#ifdef\x20HYPSOMETRIC\x0a\x20\x20\x20\x20\x20\x20\x20\x20wValue\x20=\x20vertexPos.w;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20operationType\x20=\x20s3m_batchTable_operation(index);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20objsColor\x20=\x20s3m_batchTable_color(index);\x0a\x20\x20\x20\x20\x20\x20\x20\x20operation(operationType,\x20objsColor,\x20uSelectedColor,\x20vertexColor);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vSecondColor\x20=\x20s3m_batchTable_pickColor(index);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20positionMC\x20=\x20vec4(vertexPos.xyz,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vColor\x20=\x20vertexColor;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vNormalEC\x20=\x20czm_normal\x20*\x20aNormal;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vPositionMC\x20=\x20positionMC;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vPositionEC\x20=\x20(czm_modelView\x20*\x20positionMC).xyz;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20czm_modelViewProjection\x20*\x20vec4(vertexPos.xyz,\x201.0);\x0a\x20\x20\x20\x20}\x0a','1697VIaETP','103393XJBhjS','260639OViMVj'];function _0x24c0(_0x40c967,_0x50bf61){_0x40c967=_0x40c967-0x142;var _0x4c4cc3=_0x4c4c[_0x40c967];return _0x4c4cc3;}var _0x3c1597=_0x24c0;(function(_0x2f60d6,_0x7f7cd9){var _0xc303e9=_0x24c0;while(!![]){try{var _0x231efd=-parseInt(_0xc303e9(0x145))+-parseInt(_0xc303e9(0x14b))*-parseInt(_0xc303e9(0x14e))+-parseInt(_0xc303e9(0x149))+parseInt(_0xc303e9(0x14c))*parseInt(_0xc303e9(0x143))+parseInt(_0xc303e9(0x146))*parseInt(_0xc303e9(0x14d))+parseInt(_0xc303e9(0x144))*parseInt(_0xc303e9(0x148))+parseInt(_0xc303e9(0x14a))*-parseInt(_0xc303e9(0x147));if(_0x231efd===_0x7f7cd9)break;else _0x2f60d6['push'](_0x2f60d6['shift']());}catch(_0x2d3fc1){_0x2f60d6['push'](_0x2f60d6['shift']());}}}(_0x4c4c,0x65cf4));var _0x422e4c = _0x3c1597(0x142); var _0x4912=['56xymyad','7952pSbAfq','84431kzUWjj','1uQEGpB','70379EtbHod','62826lmDFMp','225937BIzADp','\x0a#ifdef\x20GL_OES_standard_derivatives\x0a#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0a#endif\x0a#ifdef\x20GL_EXT_shader_texture_lod\x0a#extension\x20GL_EXT_shader_texture_lod\x20:\x20enable\x0a#endif\x0a\x20\x20\x20\x20uniform\x20vec4\x20uDiffuseColor;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uAmbientColor;\x0a#ifdef\x20TexCoord\x0a\x20\x20\x20\x20uniform\x20sampler2D\x20uTexture;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexCoord;\x0a#ifdef\x20TextureAtlas\x0a\x20\x20\x20\x20uniform\x20vec4\x20uTexAtlasDim;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexAtlasTran;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexAtlasScale;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexAtlasSize;\x0a\x20\x20\x20\x20varying\x20vec2\x20vMaxMipLevel;\x0a#else\x0a\x20\x20\x20\x20uniform\x20float\x20uTexture0Width;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexCoordTransform;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexMatrix;\x0a#endif\x0a#endif\x0a\x0a\x20\x20\x20\x20varying\x20vec4\x20vColor;\x0a\x20\x20\x20\x20varying\x20vec4\x20vSecondColor;\x0a\x20\x20\x20\x20varying\x20vec4\x20vPositionMC;\x0a\x20\x20\x20\x20varying\x20vec3\x20vPositionEC;\x0a\x20\x20\x20\x20varying\x20vec3\x20vNormalEC;\x0a#ifdef\x20TexCoord2\x0a\x20\x20\x20\x20uniform\x20sampler2D\x20uTexture2;\x0a\x20\x20\x20\x20uniform\x20float\x20uTexture1Width;\x0a\x20\x20\x20\x20varying\x20vec4\x20vTexMatrix2;\x0a#endif\x20\x0a\x20\x20\x20\x20void\x20calculateMipLevel(in\x20vec2\x20inTexCoord,\x20in\x20float\x20vecTile,\x20in\x20float\x20fMaxMip,\x20inout\x20float\x20mipLevel)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20dx\x20=\x20dFdx(inTexCoord\x20*\x20vecTile);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20dy\x20=\x20dFdy(inTexCoord\x20*\x20vecTile);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dotX\x20=\x20dot(dx,\x20dx);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dotY\x20=\x20dot(dy,\x20dy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dMax\x20=\x20max(dotX,\x20dotY);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dMin\x20=\x20min(dotX,\x20dotY);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20offset\x20=\x20(dMax\x20-\x20dMin)\x20/\x20(dMax\x20+\x20dMin);\x0a\x20\x20\x20\x20\x20\x20\x20\x20offset\x20=\x20clamp(offset,\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20d\x20=\x20dMax\x20*\x20(1.0\x20-\x20offset)\x20+\x20dMin\x20*\x20offset;\x0a\x20\x20\x20\x20\x20\x20\x20\x20mipLevel\x20=\x200.5\x20*\x20log2(d);\x0a\x20\x20\x20\x20\x20\x20\x20\x20mipLevel\x20=\x20clamp(mipLevel,\x200.0,\x20fMaxMip\x20-\x201.62);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20void\x20calculateMipLevel(in\x20vec2\x20inTexCoord,\x20in\x20vec2\x20vecTile,\x20in\x20float\x20fMaxMip,\x20inout\x20float\x20mipLevel)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20dx\x20=\x20dFdx(inTexCoord\x20*\x20vecTile.x);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20dy\x20=\x20dFdy(inTexCoord\x20*\x20vecTile.y);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dotX\x20=\x20dot(dx,\x20dx);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dotY\x20=\x20dot(dy,\x20dy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dMax\x20=\x20max(dotX,\x20dotY);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dMin\x20=\x20min(dotX,\x20dotY);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20offset\x20=\x20(dMax\x20-\x20dMin)\x20/\x20(dMax\x20+\x20dMin);\x0a\x20\x20\x20\x20\x20\x20\x20\x20offset\x20=\x20clamp(offset,\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20d\x20=\x20dMax\x20*\x20(1.0\x20-\x20offset)\x20+\x20dMin\x20*\x20offset;\x0a\x20\x20\x20\x20\x20\x20\x20\x20mipLevel\x20=\x200.5\x20*\x20log2(d);\x0a\x20\x20\x20\x20\x20\x20\x20\x20mipLevel\x20=\x20clamp(mipLevel,\x200.0,\x20fMaxMip\x20-\x201.62);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20void\x20calculateTexCoord(in\x20vec3\x20inTexCoord,\x20in\x20float\x20scale,\x20in\x20float\x20XTran,\x20in\x20float\x20YTran,\x20in\x20float\x20fTile,\x20in\x20float\x20mipLevel,\x20inout\x20vec2\x20outTexCoord)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(inTexCoord.z\x20<\x20-9000.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20outTexCoord\x20=\x20inTexCoord.xy;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20fTexCoord\x20=\x20fract(inTexCoord.xy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20offset\x20=\x201.0\x20*\x20pow(2.0,\x20mipLevel)\x20/\x20fTile;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fTexCoord\x20=\x20clamp(fTexCoord,\x20offset,\x201.0\x20-\x20offset);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20outTexCoord.x\x20=\x20(fTexCoord.x\x20+\x20XTran)\x20*\x20scale;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20outTexCoord.y\x20=\x20(fTexCoord.y\x20+\x20YTran)\x20*\x20scale;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20vec4\x20getTexColorForS3M(sampler2D\x20curTexture,\x20vec3\x20oriTexCoord,\x20float\x20texTileWidth,\x20float\x20fMaxMipLev,\x20float\x20fTexCoordScale,\x20vec2\x20vecTexCoordTranslate)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20color\x20=\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20mipLevel\x20=\x200.0;\x0a\x20\x20\x20\x20#ifdef\x20GL_OES_standard_derivatives\x0a\x20\x20\x20\x20\x20\x20\x20\x20calculateMipLevel(oriTexCoord.xy,\x20texTileWidth,\x20fMaxMipLev,\x20mipLevel);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20realTexCoord;\x0a\x20\x20\x20\x20\x20\x20\x20\x20calculateTexCoord(oriTexCoord,\x20fTexCoordScale,\x20vecTexCoordTranslate.x,\x20vecTexCoordTranslate.y,\x20texTileWidth,\x20mipLevel,\x20realTexCoord);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(oriTexCoord.z\x20<\x20-9000.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color\x20=\x20texture2D(curTexture,\x20realTexCoord.xy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20GL_EXT_shader_texture_lod\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color\x20=\x20texture2DLodEXT(curTexture,\x20realTexCoord.xy,\x20mipLevel);\x0a\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\x20color\x20=\x20texture2D(curTexture,\x20realTexCoord.xy,\x20mipLevel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20color;\x0a\x20\x20\x20\x20}\x0a#ifdef\x20TexCoord\x0a#ifdef\x20TextureAtlas\x0a\x20\x20\x20\x20vec4\x20getTextureAtlasColor(sampler2D\x20texture,\x20vec2\x20uv,\x20vec2\x20texDim,\x20vec2\x20texTran,\x20vec2\x20texScale,\x20float\x20maxMipLevel)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(maxMipLevel\x20<\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20colorCeil\x20=\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20mipLevel\x20=\x200.0;\x0a\x20\x20\x20\x20#ifdef\x20GL_OES_standard_derivatives\x0a\x20\x20\x20\x20\x20\x20\x20\x20calculateMipLevel(uv,\x20texDim,\x20maxMipLevel,\x20mipLevel);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20ceilMipLevel\x20=\x20ceil(mipLevel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20translate\x20=\x20vec2(texTran.x,\x20texTran.y);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20temp;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(ceilMipLevel\x20>\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20translate.x\x20=\x20texTran.x\x20+\x20texScale.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20temp\x20=\x20pow(2.0,\x20ceilMipLevel\x20-\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20translate.y\x20=\x20texTran.y\x20+\x20texScale.y\x20*\x20(temp\x20-\x201.0)\x20/\x20temp;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20scale\x20=\x201.0\x20/\x20pow(2.0,\x20ceilMipLevel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20texcoord\x20=\x20fract(uv);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20offsetX\x20=\x20pow(2.0,\x20ceilMipLevel)\x20/\x20texDim.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20offsetY\x20=\x20pow(2.0,\x20ceilMipLevel)\x20/\x20texDim.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20texcoord.x\x20=\x20clamp(texcoord.x,\x200.0\x20+\x20offsetX,\x201.0\x20-\x20offsetX);\x0a\x20\x20\x20\x20\x20\x20\x20\x20texcoord.y\x20=\x20clamp(texcoord.y,\x200.0\x20+\x20offsetY,\x201.0\x20-\x20offsetY);\x0a\x20\x20\x20\x20\x20\x20\x20\x20texcoord.x\x20=\x20texcoord.x\x20*\x20texScale.x\x20*\x20scale\x20+\x20translate.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20texcoord.y\x20=\x20texcoord.y\x20*\x20texScale.y\x20*\x20scale\x20+\x20translate.y;\x0a\x20\x20\x20\x20#ifdef\x20GL_EXT_shader_texture_lod\x0a\x20\x20\x20\x20\x20\x20\x20\x20colorCeil\x20=\x20texture2DLodEXT(texture,\x20texcoord.xy,\x200.0);\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20colorCeil\x20=\x20texture2D(texture,\x20texcoord.xy,\x200.0);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20colorFloor\x20=\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20floorMipLevel\x20=\x20floor(mipLevel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20translate\x20=\x20vec2(texTran.x,\x20texTran.y);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(floorMipLevel\x20>\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20translate.x\x20=\x20texTran.x\x20+\x20texScale.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20temp\x20=\x20pow(2.0,\x20floorMipLevel\x20-\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20translate.y\x20=\x20texTran.y\x20+\x20texScale.y\x20*\x20(temp\x20-\x201.0)\x20/\x20temp;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20scale\x20=\x201.0\x20/\x20pow(2.0,\x20floorMipLevel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20texcoord\x20=\x20fract(uv);\x0a\x20\x20\x20\x20\x20\x20\x20\x20offsetX\x20=\x20pow(2.0,\x20floorMipLevel)\x20/\x20texDim.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20offsetY\x20=\x20pow(2.0,\x20floorMipLevel)\x20/\x20texDim.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20texcoord.x\x20=\x20clamp(texcoord.x,\x200.0\x20+\x20offsetX,\x201.0\x20-\x20offsetX);\x0a\x20\x20\x20\x20\x20\x20\x20\x20texcoord.y\x20=\x20clamp(texcoord.y,\x200.0\x20+\x20offsetY,\x201.0\x20-\x20offsetY);\x0a\x20\x20\x20\x20\x20\x20\x20\x20texcoord.x\x20=\x20texcoord.x\x20*\x20texScale.x\x20*\x20scale\x20+\x20translate.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20texcoord.y\x20=\x20texcoord.y\x20*\x20texScale.y\x20*\x20scale\x20+\x20translate.y;\x0a\x20\x20\x20\x20#ifdef\x20GL_EXT_shader_texture_lod\x0a\x20\x20\x20\x20\x20\x20\x20\x20colorFloor\x20=\x20texture2DLodEXT(texture,\x20texcoord.xy,\x200.0);\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20colorFloor\x20=\x20texture2D(texture,\x20texcoord.xy,\x200.0);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20color\x20=\x20colorCeil\x20*\x200.5\x20+\x20colorFloor\x20*\x200.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20color;\x0a\x20\x20\x20\x20}\x0a#else\x0a\x20\x20\x20\x20vec4\x20getTextureColor()\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(vTexMatrix.z\x20<\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20texTileWidth0\x20=\x20vTexMatrix.z\x20*\x20uTexture0Width;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20realTexCoord\x20=\x20vec3(vTexCoord.xy,\x20vTexCoordTransform.x);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20FColor\x20=\x20getTexColorForS3M(uTexture,\x20realTexCoord,\x20texTileWidth0,\x20vTexMatrix.w,\x20vTexMatrix.z,\x20vTexMatrix.xy);\x0a\x20\x20\x20\x20#ifdef\x20TexCoord2\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20texTileWidth1\x20=\x20vTexMatrix2.z\x20*\x20uTexture1Width;\x0a\x20\x20\x20\x20\x20\x20\x20\x20realTexCoord\x20=\x20vec3(vTexCoord.zw,\x20vTexCoordTransform.y);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20SColor\x20=\x20getTexColorForS3M(uTexture2,\x20realTexCoord,\x20texTileWidth1,\x20vTexMatrix2.w,\x20vTexMatrix2.z,\x20vTexMatrix2.xy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20SColor.r\x20=\x20clamp(SColor.r,\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20SColor.g\x20=\x20clamp(SColor.g,\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20SColor.b\x20=\x20clamp(SColor.b,\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20FColor\x20*\x20SColor;\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20FColor;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20}\x0a#endif\x0a#endif\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20const\x20float\x20M_PI\x20=\x203.141592653589793;\x0a\x20\x20\x20\x20vec3\x20SRGBtoLINEAR3(vec3\x20srgbIn)\x20\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20pow(srgbIn,\x20vec3(2.2));\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20vec4\x20SRGBtoLINEAR4(vec4\x20srgbIn)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20srgbIn\x20=\x20srgbIn\x20;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20linearOut\x20=\x20pow(srgbIn.rgb,\x20vec3(2.2));\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(linearOut,\x20srgbIn.a);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20vec3\x20LINEARtoSRGB(vec3\x20linearIn)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20#ifndef\x20HDR\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20pow(linearIn,\x20vec3(1.0/2.2));\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20linearIn;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20vec3\x20lambertianDiffuse(vec3\x20diffuseColor)\x20\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20diffuseColor\x20/\x20M_PI;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20vec3\x20fresnelSchlick2(vec3\x20f0,\x20vec3\x20f90,\x20float\x20VdotH)\x20\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20f0\x20+\x20(f90\x20-\x20f0)\x20*\x20pow(clamp(1.0\x20-\x20VdotH,\x200.0,\x201.0),\x205.0);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20float\x20smithVisibilityG1(float\x20NdotV,\x20float\x20roughness)\x20\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20k\x20=\x20(roughness\x20+\x201.0)\x20*\x20(roughness\x20+\x201.0)\x20/\x208.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20NdotV\x20/\x20(NdotV\x20*\x20(1.0\x20-\x20k)\x20+\x20k);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20float\x20smithVisibilityGGX(float\x20roughness,\x20float\x20NdotL,\x20float\x20NdotV)\x20\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20smithVisibilityG1(NdotL,\x20roughness)\x20*\x20smithVisibilityG1(NdotV,\x20roughness);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20float\x20GGX(float\x20roughness,\x20float\x20NdotH)\x20\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20roughnessSquared\x20=\x20roughness\x20*\x20roughness;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20f\x20=\x20(NdotH\x20*\x20roughnessSquared\x20-\x20NdotH)\x20*\x20NdotH\x20+\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20roughnessSquared\x20/\x20(M_PI\x20*\x20f\x20*\x20f);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20vec3\x20applyTonemapping(vec3\x20linearIn)\x20\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20#ifndef\x20HDR\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20czm_acesTonemapping(linearIn);\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20linearIn;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20}\x0a#ifdef\x20CLIP\x0a\x20\x20\x20\x20uniform\x20float\x20uClipMode;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uClipPlanes[6];\x0a\x20\x20\x20\x20float\x20clipBehindAllPlane(float\x20fBorderWidth,\x20vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20distance\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20result\x20=\x20-1.0;\x0a\x20\x20\x20\x20#ifdef\x20CLIPPLANE\x0a\x20\x20\x20\x20\x20\x20\x20\x20distance\x20=\x20czm_planeDistance(uClipPlanes[0].xyz,\x20uClipPlanes[0].w,\x20vertex.xyz);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(distance\x20<\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if\x20(distance\x20<\x20fBorderWidth)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20for(int\x20i\x20=\x200;\x20i\x20<\x206;\x20i++)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20distance\x20=\x20czm_planeDistance(uClipPlanes[i].xyz,\x20uClipPlanes[i].w,\x20vertex.xyz);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if(distance\x20<\x200.0)\x0a\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\x20\x20\x20\x20return\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(distance\x20<\x20fBorderWidth)\x0a\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\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20result;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20clipBehindAnyPlane(float\x20fBorderWidth,\x20vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20result\x20=\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20for(int\x20i\x20=\x200;\x20i\x20<\x206;\x20i++)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20distance\x20=\x20czm_planeDistance(uClipPlanes[i].xyz,\x20uClipPlanes[i].w,\x20vertex.xyz);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if((distance\x20+\x20fBorderWidth)\x20<\x200.0)\x0a\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\x20\x20\x20\x20return\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(distance\x20<\x200.0)\x0a\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\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20result;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20float\x20clipAnythingButLine(float\x20fBorderWidth,\x20vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20result\x20=\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20for(int\x20i\x20=\x200;\x20i\x20<\x206;\x20i++)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20distance\x20=\x20czm_planeDistance(uClipPlanes[i].xyz,\x20uClipPlanes[i].w,\x20vertex.xyz);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if(distance\x20<\x200.0)\x0a\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\x20\x20\x20\x20return\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(distance\x20<\x20fBorderWidth)\x0a\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\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20result;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20vec4\x20clip(vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(uClipMode\x20<\x200.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#ifdef\x20GL_OES_standard_derivatives\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dxc\x20=\x20abs(dFdx(vertex.x));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dyc\x20=\x20abs(dFdy(vertex.y));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20fBorderWidth\x20=\x20max(dxc,\x20dyc);\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20fBorderWidth\x20=\x201.0;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20clipResult\x20=\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(uClipMode\x20<\x201.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clipResult\x20=\x20clipBehindAnyPlane(fBorderWidth,\x20vertex);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(uClipMode\x20<\x202.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clipResult\x20=\x20clipBehindAllPlane(fBorderWidth,\x20vertex);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(uClipMode\x20<\x203.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clipResult\x20=\x20clipAnythingButLine(fBorderWidth,\x20vertex);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(clipResult\x20<\x20-0.5)\x0a\x20\x20\x20\x20\x20\x20\x20\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\x20else\x20if(clipResult\x20<\x200.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20}\x0a#endif\x0a\x0a#ifdef\x20HYPSOMETRIC\x0a\x20\x20\x20\x20uniform\x20sampler2D\x20uHypsometricTexture;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uMinMaxValue;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uOpacityIntervalFillMode;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uHypLineColor;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uNoValueColor;\x0a\x20\x20\x20\x20varying\x20float\x20wValue;\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20float\x20computeMixCon(float\x20fValue)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20distanceToContour;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20minVisibleValue\x20=\x20uMinMaxValue.z;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20maxVisibleValue\x20=\x20uMinMaxValue.w;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20interval\x20=\x20uOpacityIntervalFillMode.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(abs(maxVisibleValue\x20-\x20minVisibleValue)\x20>\x200.1)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if(fValue\x20<\x200.5)\x0a\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\x20\x20\x20\x20distanceToContour\x20=\x20mod(fValue\x20-\x200.0002,\x20interval);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\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\x20\x20\x20\x20float\x20t\x20=\x20floor(fValue\x20/\x20interval);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20distanceToContour\x20=\x20abs(fValue\x20-\x20(t\x20*\x20interval)\x20-\x200.1);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20distanceToContour\x20=\x20abs(fValue\x20-\x20maxVisibleValue);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dxc\x20=\x20abs(dFdx(fValue));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dyc\x20=\x20abs(dFdy(fValue));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dF\x20=\x20max(dxc,\x20dyc);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20distanceToContour\x20<\x20dF\x20?\x201.0\x20:\x200.0;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20vec4\x20computeContourMapColor(float\x20fValue)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20floorValue\x20=\x20uMinMaxValue.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20ceilValue\x20=\x20uMinMaxValue.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20threshold\x20=\x20abs(ceilValue\x20-\x20floorValue);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20contourRate\x20=\x20(fValue\x20-\x20floorValue)\x20/\x20threshold;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20finalCoord\x20=\x20clamp(contourRate,\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20count\x20=\x20floor(finalCoord\x20*\x2016.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20y\x20=\x20(count*2.0\x20+\x201.0)/32.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20x\x20=\x20fract(finalCoord*16.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(y\x20>\x201.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20x\x20=\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20contourCoord\x20=\x20vec2(x,\x20y);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20texture2D(uHypsometricTexture,\x20contourCoord);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20vec4\x20getContourMapColor(vec4\x20oriColor,\x20float\x20fValue)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20contourMapColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20finalOpacity\x20=\x20uOpacityIntervalFillMode.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20minVisibleValue\x20=\x20uMinMaxValue.z;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20maxVisibleValue\x20=\x20uMinMaxValue.w;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20fillMode\x20=\x20uOpacityIntervalFillMode.z;\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(fValue\x20>\x20maxVisibleValue\x20+\x204.0\x20||\x20fValue\x20<\x20minVisibleValue\x20-\x204.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20uNoValueColor\x20*\x20oriColor;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(fillMode\x20>\x202.9)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20mix_con\x20=\x20computeMixCon(fValue);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20contourMapColor\x20=\x20mix(computeContourMapColor(fValue),\x20uHypLineColor,\x20mix_con);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(fillMode\x20>\x201.9)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20finalOpacity\x20=\x20computeMixCon(fValue);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20contourMapColor\x20=\x20uHypLineColor;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(fillMode\x20>\x200.9)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20contourMapColor\x20=\x20computeContourMapColor(fValue);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20finalOpacity\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20finalColor\x20=\x20mix(oriColor,\x20contourMapColor,\x20finalOpacity);\x0a\x20\x20\x20\x20#ifdef\x20PT_CLOUD\x0a\x20\x20\x20\x20\x20\x20\x20\x20finalColor\x20=\x20mix(vec4(1.0,1.0,1.0,1.0),\x20contourMapColor,\x20finalOpacity);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20finalColor;\x0a\x20\x20\x20\x20}\x0a#endif\x0a\x20\x20\x0a#ifdef\x20APPLY_SWIPE\x0a\x20\x20\x20\x20uniform\x20vec4\x20uSwipeRegion;\x0a\x20\x20\x20\x20void\x20rollerShutter(vec2\x20coord,\x20vec4\x20region)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20f\x20=\x20step(region.xw,\x20coord);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20s\x20=\x20step(coord,\x20region.zy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(f.x\x20*\x20f.y\x20*\x20s.x\x20*\x20s.y\x20<\x201.0)\x0a\x20\x20\x20\x20\x20\x20\x20\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}\x0a#endif\x0a\x20\x20\x20\x20vec3\x20computeNormal(in\x20vec3\x20oriVertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20normal\x20=\x20cross(vec3(dFdx(oriVertex.x),\x20dFdx(oriVertex.y),\x20dFdx(oriVertex.z)),\x20vec3(dFdy(oriVertex.x),\x20dFdy(oriVertex.y),\x20dFdy(oriVertex.z)));\x0a\x20\x20\x20\x20\x20\x20\x20\x20normal\x20=\x20normalize(normal);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20normal;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20void\x20main()\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20if(vColor.a\x20<\x200.1)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20discard;\x0a\x20\x20\x20\x20}\x20\x0a\x20\x20\x20\x20#ifdef\x20APPLY_SWIPE\x0a\x20\x20\x20\x20\x20\x20\x20\x20rollerShutter(gl_FragCoord.xy,\x20uSwipeRegion);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20baseColorWithAlpha\x20=\x20vColor;\x0a\x20\x20\x20\x20#ifdef\x20TexCoord\x0a\x20\x20\x20\x20#ifdef\x20TextureAtlas\x0a\x20\x20\x20\x20\x20\x20\x20\x20baseColorWithAlpha\x20*=\x20getTextureAtlasColor(uTexture,\x20vTexCoord.xy,\x20vTexAtlasSize.xy,\x20vTexAtlasTran.xy,\x20vTexAtlasScale.xy,\x20vMaxMipLevel.x);\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20baseColorWithAlpha\x20*=\x20getTextureColor();\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(baseColorWithAlpha.a\x20<\x200.1)\x0a\x20\x20\x20\x20\x20\x20\x20\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\x20baseColorWithAlpha\x20=\x20SRGBtoLINEAR4(baseColorWithAlpha);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20ng\x20=\x20normalize(vNormalEC);\x0a\x20\x20\x20\x20\x20\x20\x20\x20ng\x20=\x20length(ng)\x20>\x200.1\x20?\x20ng\x20:\x20computeNormal(vPositionMC.xyz);\x0a\x20\x20\x20\x20#ifdef\x20HAS_NORMAL_TEXTURE\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20pos_dx\x20=\x20dFdx(vPositionEC);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20pos_dy\x20=\x20dFdy(vPositionEC);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20tex_dx\x20=\x20dFdx(vec3(vTexCoord.xy,\x200.0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20tex_dy\x20=\x20dFdy(vec3(vTexCoord.xy,\x200.0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20t\x20=\x20(tex_dy.t\x20*\x20pos_dx\x20-\x20tex_dx.t\x20*\x20pos_dy)\x20/\x20(tex_dx.s\x20*\x20tex_dy.t\x20-\x20tex_dy.s\x20*\x20tex_dx.t);\x0a\x20\x20\x20\x20\x20\x20\x20\x20t\x20=\x20normalize(t\x20-\x20ng\x20*\x20dot(ng,\x20t));\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20b\x20=\x20normalize(cross(ng,\x20t));\x0a\x20\x20\x20\x20\x20\x20\x20\x20mat3\x20tbn\x20=\x20mat3(t,\x20b,\x20ng);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20n\x20=\x20texture2D(uNormalTexture,\x20vTexCoord.xy).rgb;\x0a\x20\x20\x20\x20\x20\x20\x20\x20n\x20=\x20normalize(tbn\x20*\x20(2.0\x20*\x20n\x20-\x201.0));\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20n\x20=\x20ng;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20baseColor\x20=\x20baseColorWithAlpha.rgb;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20roughness\x20=\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20metalness\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20v\x20=\x20-normalize(vPositionEC);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20lightColorHdr\x20=\x20vec3(5.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20l\x20=\x20normalize(czm_lightDirectionEC);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20h\x20=\x20normalize(v\x20+\x20l);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20NdotL\x20=\x20clamp(dot(n,\x20l),\x200.001,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20NdotV\x20=\x20abs(dot(n,\x20v))\x20+\x200.001;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20NdotH\x20=\x20clamp(dot(n,\x20h),\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20LdotH\x20=\x20clamp(dot(l,\x20h),\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20VdotH\x20=\x20clamp(dot(v,\x20h),\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20f0\x20=\x20vec3(0.04);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20diffuseColor\x20=\x20baseColor\x20*\x20(1.0\x20-\x20metalness)\x20*\x20(1.0\x20-\x20f0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20specularColor\x20=\x20mix(f0,\x20baseColor,\x20metalness);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20alpha\x20=\x20roughness\x20*\x20roughness;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20reflectance\x20=\x20max(max(specularColor.r,\x20specularColor.g),\x20specularColor.b);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20r90\x20=\x20vec3(clamp(reflectance\x20*\x2025.0,\x200.0,\x201.0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20r0\x20=\x20specularColor.rgb;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20F\x20=\x20fresnelSchlick2(r0,\x20r90,\x20VdotH);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20G\x20=\x20smithVisibilityGGX(alpha,\x20NdotL,\x20NdotV);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20D\x20=\x20GGX(alpha,\x20NdotH);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20diffuseContribution\x20=\x20(1.0\x20-\x20F)\x20*\x20lambertianDiffuse(diffuseColor);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20specularContribution\x20=\x20F\x20*\x20G\x20*\x20D\x20/\x20(4.0\x20*\x20NdotL\x20*\x20NdotV);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20color\x20=\x20NdotL\x20*\x20lightColorHdr\x20*\x20(diffuseContribution\x20+\x20specularContribution);\x0a\x20\x20\x20\x20#ifndef\x20IBL\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20positionWC\x20=\x20vec3(czm_inverseView\x20*\x20vec4(vPositionEC,\x201.0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20r\x20=\x20normalize(czm_inverseViewRotation\x20*\x20normalize(reflect(v,\x20n)));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20vertexRadius\x20=\x20length(positionWC);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20horizonDotNadir\x20=\x201.0\x20-\x20min(1.0,\x20czm_ellipsoidRadii.x\x20/\x20vertexRadius);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20reflectionDotNadir\x20=\x20dot(r,\x20normalize(positionWC));\x0a\x20\x20\x20\x20\x20\x20\x20\x20r.x\x20=\x20-r.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20r\x20=\x20-normalize(czm_temeToPseudoFixed\x20*\x20r);\x0a\x20\x20\x20\x20\x20\x20\x20\x20r.x\x20=\x20-r.x;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20inverseRoughness\x20=\x201.04\x20-\x20roughness;\x0a\x20\x20\x20\x20\x20\x20\x20\x20inverseRoughness\x20*=\x20inverseRoughness;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20sceneSkyBox\x20=\x20textureCube(czm_environmentMap,\x20r).rgb\x20*\x20inverseRoughness;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20atmosphereHeight\x20=\x200.05;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20blendRegionSize\x20=\x200.1\x20*\x20((1.0\x20-\x20inverseRoughness)\x20*\x208.0\x20+\x201.1\x20-\x20horizonDotNadir);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20blendRegionOffset\x20=\x20roughness\x20*\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20farAboveHorizon\x20=\x20clamp(horizonDotNadir\x20-\x20blendRegionSize\x20*\x200.5\x20+\x20blendRegionOffset,\x201.0e-10\x20-\x20blendRegionSize,\x200.99999);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20aroundHorizon\x20=\x20clamp(horizonDotNadir\x20+\x20blendRegionSize\x20*\x200.5,\x201.0e-10\x20-\x20blendRegionSize,\x200.99999);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20farBelowHorizon\x20=\x20clamp(horizonDotNadir\x20+\x20blendRegionSize\x20*\x201.5,\x201.0e-10\x20-\x20blendRegionSize,\x200.99999);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20smoothstepHeight\x20=\x20smoothstep(0.0,\x20atmosphereHeight,\x20horizonDotNadir);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20belowHorizonColor\x20=\x20mix(vec3(0.1,\x200.15,\x200.25),\x20vec3(0.4,\x200.7,\x200.9),\x20smoothstepHeight);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20nadirColor\x20=\x20belowHorizonColor\x20*\x200.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20aboveHorizonColor\x20=\x20mix(vec3(0.9,\x201.0,\x201.2),\x20belowHorizonColor,\x20roughness\x20*\x200.5);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20blueSkyColor\x20=\x20mix(vec3(0.18,\x200.26,\x200.48),\x20aboveHorizonColor,\x20reflectionDotNadir\x20*\x20inverseRoughness\x20*\x200.5\x20+\x200.75);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20zenithColor\x20=\x20mix(blueSkyColor,\x20sceneSkyBox,\x20smoothstepHeight);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20blueSkyDiffuseColor\x20=\x20vec3(0.7,\x200.85,\x200.9);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20diffuseIrradianceFromEarth\x20=\x20(1.0\x20-\x20horizonDotNadir)\x20*\x20(reflectionDotNadir\x20*\x200.25\x20+\x200.75)\x20*\x20smoothstepHeight;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20diffuseIrradianceFromSky\x20=\x20(1.0\x20-\x20smoothstepHeight)\x20*\x20(1.0\x20-\x20(reflectionDotNadir\x20*\x200.25\x20+\x200.25));\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20diffuseIrradiance\x20=\x20blueSkyDiffuseColor\x20*\x20clamp(diffuseIrradianceFromEarth\x20+\x20diffuseIrradianceFromSky,\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20notDistantRough\x20=\x20(1.0\x20-\x20horizonDotNadir\x20*\x20roughness\x20*\x200.8);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20specularIrradiance\x20=\x20mix(zenithColor,\x20aboveHorizonColor,\x20smoothstep(farAboveHorizon,\x20aroundHorizon,\x20reflectionDotNadir)\x20*\x20notDistantRough);\x0a\x20\x20\x20\x20\x20\x20\x20\x20specularIrradiance\x20=\x20mix(specularIrradiance,\x20belowHorizonColor,\x20smoothstep(aroundHorizon,\x20farBelowHorizon,\x20reflectionDotNadir)\x20*\x20inverseRoughness);\x0a\x20\x20\x20\x20\x20\x20\x20\x20specularIrradiance\x20=\x20mix(specularIrradiance,\x20nadirColor,\x20smoothstep(farBelowHorizon,\x201.0,\x20reflectionDotNadir)\x20*\x20inverseRoughness);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20LdotZenith\x20=\x20clamp(dot(normalize(czm_inverseViewRotation\x20*\x20l),\x20normalize(positionWC\x20*\x20-1.0)),\x200.001,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20S\x20=\x20acos(LdotZenith);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20NdotZenith\x20=\x20clamp(dot(normalize(czm_inverseViewRotation\x20*\x20n),\x20normalize(positionWC\x20*\x20-1.0)),\x200.001,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20gamma\x20=\x20acos(NdotL);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20numerator\x20=\x20((0.91\x20+\x2010.0\x20*\x20exp(-3.0\x20*\x20gamma)\x20+\x200.45\x20*\x20pow(NdotL,\x202.0))\x20*\x20(1.0\x20-\x20exp(-0.32\x20/\x20NdotZenith)));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20denominator\x20=\x20(0.91\x20+\x2010.0\x20*\x20exp(-3.0\x20*\x20S)\x20+\x200.45\x20*\x20pow(LdotZenith,2.0))\x20*\x20(1.0\x20-\x20exp(-0.32));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20luminance\x20=\x200.2\x20*\x20(numerator\x20/\x20denominator);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20brdfLut\x20=\x20texture2D(czm_brdfLut,\x20vec2(NdotV,\x20roughness)).rg;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20IBLColor\x20=\x20(diffuseIrradiance\x20*\x20diffuseColor\x20*\x201.0)\x20+\x20(specularIrradiance\x20*\x20SRGBtoLINEAR3(specularColor\x20*\x20brdfLut.x\x20+\x20brdfLut.y)\x20*\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20maximumComponent\x20=\x20max(max(lightColorHdr.x,\x20lightColorHdr.y),\x20lightColorHdr.z);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20lightColor\x20=\x20lightColorHdr\x20/\x20max(maximumComponent,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20IBLColor\x20*=\x20lightColor;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color\x20+=\x20IBLColor\x20*\x20luminance;\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20mat3\x20fixedToENU\x20=\x20mat3(czm_modelView[0][0],\x20czm_modelView[1][0],\x20czm_modelView[2][0],\x20czm_modelView[0][1],\x20czm_modelView[1][1],\x20czm_modelView[2][1],\x20czm_modelView[0][2],\x20czm_modelView[1][2],\x20czm_modelView[2][2]);\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20mat3\x20yUpToZUp\x20=\x20mat3(-1.0,\x200.0,\x200.0,\x200.0,\x200.0,\x20-1.0,\x200.0,\x201.0,\x200.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20cubeDir\x20=\x20normalize(yUpToZUp\x20*\x20fixedToENU\x20*\x20reflect(-v,\x20n));\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20diffuseIrradiance\x20=\x20czm_sphericalHarmonics(cubeDir,\x20czm_sphericalHarmonicCoefficients);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20brdfLut\x20=\x20texture2D(czm_brdfLut,\x20vec2(NdotV,\x20roughness)).rg;\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20specularIBL\x20=\x20czm_sampleOctahedralProjection(czm_specularEnvironmentMaps,\x20czm_specularEnvironmentMapSize,\x20cubeDir,\x20\x20roughness\x20*\x20czm_specularEnvironmentMapsMaximumLOD,\x20czm_specularEnvironmentMapsMaximumLOD);\x0a\x20\x20\x20\x20\x20\x20\x20\x20specularIBL\x20*=\x20F\x20*\x20brdfLut.x\x20+\x20brdfLut.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color\x20+=\x20diffuseIrradiance\x20*\x20diffuseColor\x20+\x20specularColor\x20*\x20specularIBL;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20color\x20=\x20applyTonemapping(color);\x0a\x20\x20\x20\x20\x20\x20\x20\x20color\x20=\x20LINEARtoSRGB(color);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20outColor\x20=\x20vec4(color,\x20baseColorWithAlpha.a);\x0a\x20\x20\x20\x20#ifdef\x20HYPSOMETRIC\x0a\x20\x20\x20\x20\x20\x20\x20\x20outColor\x20=\x20getContourMapColor(outColor,\x20wValue);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20#ifdef\x20CLIP\x0a\x20\x20\x20\x20\x20\x20\x20\x20outColor\x20*=\x20clip(vec4(vPositionEC,\x201.0));\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20outColor;\x0a\x20\x20\x20\x20}\x0a','7202BOlZPe','45whKEkN','4GPROpj','440020irPiul'];var _0x479117=_0x180a;(function(_0x457fa5,_0x22a22f){var _0x1630bc=_0x180a;while(!![]){try{var _0x56c068=-parseInt(_0x1630bc(0xff))*-parseInt(_0x1630bc(0xf9))+-parseInt(_0x1630bc(0xfc))*-parseInt(_0x1630bc(0xfb))+-parseInt(_0x1630bc(0xfe))*parseInt(_0x1630bc(0xfd))+-parseInt(_0x1630bc(0xfa))+-parseInt(_0x1630bc(0xf5))+-parseInt(_0x1630bc(0xf4))+parseInt(_0x1630bc(0xf8))*parseInt(_0x1630bc(0xf7));if(_0x56c068===_0x22a22f)break;else _0x457fa5['push'](_0x457fa5['shift']());}catch(_0x31ab18){_0x457fa5['push'](_0x457fa5['shift']());}}}(_0x4912,0x3a088));function _0x180a(_0x5c9626,_0x1bcc82){_0x5c9626=_0x5c9626-0xf4;var _0x491250=_0x4912[_0x5c9626];return _0x491250;}var _0x5a5406 = _0x479117(0xf6); var _0x38a6=['37759MAXAUs','117979QvqlCR','1021956aVUgGx','1pnGYKh','precision\x20highp\x20float;\x0aconst\x20float\x20uPixelRatio\x20=\x201.0;\x0a//\x20Inputs\x0aattribute\x20vec3\x20aPosition0;\x0aattribute\x20vec3\x20aPosition1;\x0a//attribute\x20float\x20aVariantOffset;\x0a//attribute\x20float\x20aVariantStroke;\x0a//attribute\x20float\x20aVariantExtension;\x0a\x0a#ifdef\x20SILHOUETTE\x0aattribute\x20vec3\x20aNormalA;\x0aattribute\x20vec3\x20aNormalB;\x0a#else\x20/*\x20SILHOUETTE\x20*/\x0aattribute\x20vec3\x20aNormal;\x0a#endif\x20/*\x20SILHOUETTE\x20*/\x0a\x0aattribute\x20vec2\x20aSideness;\x0a//attribute\x20vec2\x20aPackedAttributes;\x0a\x0astruct\x20UnpackedAttributes\x0a{\x0a\x20\x20\x20\x20vec2\x20sideness;\x0a\x20\x20\x20\x20vec2\x20sidenessNorm;\x0a\x20\x20\x20\x20float\x20lineWidthPixels;\x0a\x20\x20\x20\x20float\x20extensionLengthPixels;\x0a#if\x20(MODE\x20==\x202)\x0a\x20\x20\x20\x20float\x20type;\x0a#endif\x0a};\x0a\x0a//\x20Output\x20required\x20to\x20compute\x20color\x0avarying\x20vec4\x20vColor;\x0a//\x20Output\x20required\x20to\x20compute\x20distance\x20to\x20line/caps\x0avarying\x20vec3\x20vPosition;\x20\x0avarying\x20vec3\x20vViewPosition;\x0avarying\x20float\x20vRadius;\x0avarying\x20float\x20vLineLengthPixels;\x0avarying\x20float\x20vSizeFalloffFactor;\x0avarying\x20float\x20vDistanceFromEye;\x0a\x0auniform\x20float\x20uLineWidth;\x0auniform\x20vec4\x20uLineColor;\x0aconst\x20vec2\x20uDepthBias\x20=\x20vec2(0.5,\x20-4e-4);\x0a\x0a//\x20Utility\x20function\x20to\x20check\x20for\x20NaN\x20values\x0abool\x20isNaN(float\x20val)\x0a{\x0a\x20\x20\x20\x20return\x20(\x20val\x20<\x200.0\x20||\x200.0\x20<\x20val\x20||\x20val\x20==\x200.0\x20)\x20?\x20false\x20:\x20true;\x0a\x20\x20\x20\x20//\x20important:\x20some\x20nVidias\x20failed\x20to\x20cope\x20with\x20version\x20below.\x0a\x20\x20\x20\x20//\x20Probably\x20wrong\x20optimization.\x0a\x20\x20\x20\x20/*return\x20(\x20val\x20<=\x200.0\x20||\x200.0\x20<=\x20val\x20)\x20?\x20false\x20:\x20true;*/\x0a}\x0a\x0avec2\x20calculateProjectedBiasXY(vec4\x20projPos,\x20vec3\x20worldNormal)\x0a{\x0a\x20\x20\x20\x20float\x20offsetXY\x20=\x20uDepthBias.x;\x0a\x20\x20\x20\x20float\x20offsetZ\x20\x20=\x20uDepthBias.y;\x0a\x20\x20\x20\x20vec4\x20projNormal\x20=\x20czm_projection\x20*\x20czm_view\x20*\x20vec4(worldNormal,\x200.0);\x0a\x20\x20\x20\x20return\x20offsetXY\x20*\x20projPos.w\x20*\x202.0\x20/\x20czm_viewport.zw\x20*\x20normalize(projNormal.xyz).xy;\x0a}\x0a\x0a//\x20A\x20z-offset,\x20using\x20a\x20depth\x20based\x20heuristic.\x0afloat\x20calculateProjectedBiasZ(vec4\x20projPos)\x0a{\x0a\x20\x20\x20\x20float\x20fProjZ\x20=\x20projPos.z\x20/\x20projPos.w;\x0a\x20\x20\x20\x20if(fProjZ\x20<\x200.1)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x200.0;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20float\x20offsetZ\x20=\x20uDepthBias.y;\x0a\x20\x20\x20\x20return\x20sqrt(projPos.z)\x20*\x20offsetZ;\x0a}\x0a\x0avec4\x20adjustProjectedPosition(vec4\x20projPos,\x20vec3\x20worldNormal,\x20float\x20lineWidth)\x0a{\x0a\x20\x20\x20\x20vec2\x20offsetXY\x20=\x20calculateProjectedBiasXY(projPos,\x20worldNormal);\x0a\x20\x20\x20\x20//\x20we\x20currently\x20have\x20to\x20do\x20this\x20check\x20because\x20some\x20geometries\x20come\x20with\x200\x20length\x20edge\x20normals.\x0a\x20\x20\x20\x20if\x20(!isNaN(offsetXY.x)\x20&&\x20!isNaN(offsetXY.y))\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20projPos.xy\x20+=\x20offsetXY;\x0a\x20\x20\x20\x20}\x0a#ifdef\x20LOG_DEPTH\x0a\x20\x20\x20\x20vDistanceFromEye\x20=\x20projPos.w;\x0a#else\x0a\x20\x20\x20\x20projPos.z\x20+=\x20calculateProjectedBiasZ(projPos);\x0a#endif\x0a\x20\x20\x20\x20return\x20projPos;\x0a}\x0a\x0a#if\x20(MODE\x20==\x202\x20||\x20MODE\x20==\x201)\x0auniform\x20vec2\x20uStrokesTextureScale;\x0auniform\x20float\x20uStrokesLog2Resolution;\x0auniform\x20float\x20uStrokeVariants;\x0avarying\x20vec2\x20vStrokeUV;\x0avarying\x20float\x20vLineIndex;\x0avoid\x20calculateStyleOutputsSketch(float\x20lineLength,\x20UnpackedAttributes\x20unpackedAttributes)\x0a{\x0a\x20\x20\x20\x20vec2\x20sidenessNorm\x20=\x20unpackedAttributes.sidenessNorm;\x0a\x20\x20\x20\x20float\x20lineIndex\x20=\x20clamp(ceil(log2(lineLength)),\x200.0,\x20uStrokesLog2Resolution);\x0a\x20\x20\x20\x20vStrokeUV\x20=\x20vec2(exp2(lineIndex)\x20*\x20sidenessNorm.y,\x20lineIndex\x20*\x20uStrokeVariants\x20+\x20aVariantStroke\x20+\x200.5)\x20*\x20uStrokesTextureScale;\x0a\x20\x20\x20\x20vStrokeUV.x\x20+=\x20aVariantOffset;\x0a\x20\x20\x20\x20vLineIndex\x20=\x20lineIndex;\x0a}\x0a#endif\x0a\x0a#if\x20(MODE\x20==\x200)\x0avoid\x20calculateStyleOutputs(vec4\x20viewPosV0,\x20vec4\x20viewPosV1,\x20vec4\x20worldPosV0,\x20vec4\x20worldPosV1,\x20vec4\x20projPos,\x20vec3\x20worldNormal,\x20UnpackedAttributes\x20unpackedAttributes)\x0a{}\x0a#elif\x20(MODE\x20==\x201)\x0avoid\x20calculateStyleOutputs(vec4\x20viewPosV0,\x20vec4\x20viewPosV1,\x20vec4\x20worldPosV0,\x20vec4\x20worldPosV1,\x20vec4\x20projPos,\x20vec3\x20worldNormal,\x20UnpackedAttributes\x20unpackedAttributes)\x0a{\x0a\x20\x20\x20\x20calculateStyleOutputsSketch(vLineLengthPixels,\x20unpackedAttributes);\x0a}\x0a#elif\x20(MODE\x20==\x202)\x0avarying\x20float\x20vType;\x0avoid\x20calculateStyleOutputs(vec4\x20viewPosV0,\x20vec4\x20viewPosV1,\x20vec4\x20worldPosV0,\x20vec4\x20worldPosV1,\x20vec4\x20projPos,\x20vec3\x20worldNormal,\x20UnpackedAttributes\x20unpackedAttributes)\x0a{\x0a\x20\x20\x20\x20vType\x20=\x20unpackedAttributes.type;\x0a\x20\x20\x20\x20if\x20(unpackedAttributes.type\x20<=\x200.0)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20calculateStyleOutputsSketch(vLineLengthPixels,\x20unpackedAttributes);\x0a\x20\x20\x20\x20}\x0a}\x0a#endif\x0a\x0a\x0a//\x20Solid\x0a#if\x20(MODE\x20==\x202\x20||\x20MODE\x20==\x200)\x0afloat\x20calculateLineAmplitudeSolid()\x0a{\x0a\x20\x20\x20\x20return\x200.0;\x0a}\x0a#endif\x0a#if\x20(MODE\x20==\x200)\x0afloat\x20calculateLineAmplitude(UnpackedAttributes\x20unpackedAttributes)\x0a{\x0a\x20\x20\x20\x20return\x20calculateLineAmplitudeSolid();\x0a}\x0a#endif\x0a//\x20Sketch\x0a#if\x20(MODE\x20==\x202\x20||\x20MODE\x20==\x201)\x0a\x20\x20\x20\x20uniform\x20float\x20uStrokesAmplitude;\x0afloat\x20calculateLineAmplitudeSketch()\x0a{\x0a\x20\x20\x20\x20return\x20uStrokesAmplitude;\x0a}\x0a#endif\x0a#if\x20(MODE\x20==\x201)\x0afloat\x20calculateLineAmplitude(UnpackedAttributes\x20unpackedAttributes)\x0a{\x0a\x20\x20\x20\x20return\x20calculateLineAmplitudeSketch();\x0a}\x0a#endif\x0a//\x20Uber\x0a#if\x20(MODE\x20==\x202)\x0afloat\x20calculateLineAmplitude(UnpackedAttributes\x20unpackedAttributes)\x0a{\x0a\x20\x20\x20\x20float\x20type\x20=\x20unpackedAttributes.type;\x0a\x20\x20\x20\x20if\x20(type\x20<=\x200.0)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20calculateLineAmplitudeSketch();\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20else\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20calculateLineAmplitudeSolid();\x0a\x20\x20\x20\x20}\x0a}\x0a#endif\x0a\x0a\x0auniform\x20float\x20uDistanceFalloffFactor;\x0afloat\x20distanceBasedPerspectiveFactor(float\x20distance)\x0a{\x0a\x20\x20\x20\x20return\x20clamp(sqrt(uDistanceFalloffFactor\x20/\x20distance),\x200.0,\x201.0);\x0a}\x0a\x0a#define\x20COMPONENT_COLOR_FIELD_OFFSET\x200.0\x0a#define\x20COMPONENT_OTHER_FIELDS_OFFSET\x201.0\x0a#define\x20COMPONENT_FIELD_COUNT\x202.0\x0a#define\x20LINE_WIDTH_FRACTION_FACTOR\x208.0\x0a#define\x20EXTENSION_LENGTH_OFFSET\x20128.0\x0a#define\x20COMPONENT_TEX_WIDTH\x204096.0\x0a\x0astruct\x20ComponentData\x0a{\x0a\x20\x20\x20\x20float\x20lineWidth;\x0a\x20\x20\x20\x20float\x20extensionLength;\x0a\x20\x20\x20\x20float\x20type;\x0a};\x0a\x0a\x0aComponentData\x20readComponentData()\x0a{\x0a\x20\x20\x20\x20return\x20ComponentData(uLineWidth,\x200.0,\x200.0);\x0a}\x0a\x0avec3\x20modelToWorldNormal(vec3\x20normal)\x0a{\x0a\x20\x20\x20\x20return\x20(czm_model\x20*\x20vec4(normal,\x200.0)).xyz;\x0a}\x0a\x0avec3\x20silhouetteWorldNormal(vec3\x20normalA,\x20vec3\x20normalB)\x0a{\x0a\x20\x20\x20\x20return\x20modelToWorldNormal(normalize(normalA\x20+\x20normalB));\x0a}\x0a\x0a//\x20Fall-off\x20extension\x20length\x20for\x20shorter\x20strokes,\x20starting\x20from\x20strokes\x20that\x20are\x20256\x20size,\x0a//\x20fall-off\x20exponentially\x0afloat\x20calculateExtensionLength(float\x20extensionLength,\x20float\x20lineLength)\x0a{\x0a\x20\x20\x20\x20return\x20extensionLength\x20/\x20(log2(max(1.0,\x20256.0\x20/\x20lineLength))\x20*\x200.2\x20+\x201.0);\x0a}\x0a\x0a#ifdef\x20SILHOUETTE\x0a//\x20#uniforms:\x20czm_view,\x20czm_model\x0abool\x20isSilhouetteEdge(vec4\x20viewPos,\x20vec3\x20normalA,\x20vec3\x20normalB)\x0a{\x0a//\x20transform\x20the\x20two\x20face\x20normals\x0a\x20\x20\x20\x20vec3\x20viewNormalA\x20=\x20(czm_view\x20*\x20czm_model\x20*\x20vec4(normalA,\x200.0)).xyz;\x0a\x20\x20\x20\x20vec3\x20viewNormalB\x20=\x20(czm_view\x20*\x20czm_model\x20*\x20vec4(normalB,\x200.0)).xyz;\x0a//\x20compute\x20the\x20direction\x20from\x20the\x20edge\x20to\x20the\x20camera\x0a\x20\x20\x20\x20vec3\x20viewDir\x20=\x20-viewPos.xyz;\x0a//\x20check\x20which\x20of\x20the\x20two\x20faces\x20are\x20visible\x0a//\x20display\x20the\x20edge\x20if\x20exactly\x20one\x20of\x20the\x20two\x20is\x20visible\x0a\x20\x20\x20\x20float\x20faceAVisible\x20=\x20dot(viewDir,\x20viewNormalA);\x0a//\x20positive\x20if\x20visible\x0a\x20\x20\x20\x20float\x20faceBVisible\x20=\x20dot(viewDir,\x20viewNormalB);\x0a//\x20positive\x20if\x20visible\x0a//\x201\x20if\x20exactly\x20one\x20face\x20visible,\x200\x20otherwise\x0a\x20\x20\x20\x20return\x20faceAVisible\x20*\x20faceBVisible\x20<\x200.0;\x0a}\x0a#endif\x20/*\x20SILHOUETTE\x20*/\x0a\x0avoid\x20clipLineSegmentToNearPlane(vec3\x20p0,vec3\x20p1,out\x20bool\x20clipped,out\x20bool\x20culledByNearPlane,out\x20vec4\x20clippedPositionEC)\x0a{\x0a\x20\x20\x20\x20culledByNearPlane\x20=\x20false;\x0a\x20\x20\x20\x20clipped\x20=\x20false;\x0a\x20\x20\x20\x20vec3\x20p0ToP1\x20=\x20p1\x20-\x20p0;\x0a\x20\x20\x20\x20float\x20magnitude\x20=\x20length(p0ToP1);\x0a\x20\x20\x20\x20vec3\x20direction\x20=\x20normalize(p0ToP1);\x0a\x20\x20\x20\x20float\x20endPoint0Distance\x20=\x20\x20czm_currentFrustum.x\x20+\x20p0.z;\x0a\x20\x20\x20\x20float\x20denominator\x20=\x20-direction.z;\x0a\x20\x20\x20\x20if\x20(endPoint0Distance\x20>\x200.0\x20&&\x20abs(denominator)\x20<\x20czm_epsilon7)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20culledByNearPlane\x20=\x20true;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20else\x20if\x20(endPoint0Distance\x20>\x200.0)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20t\x20=\x20endPoint0Distance\x20/\x20denominator;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(t\x20<\x200.0\x20||\x20t\x20>\x20magnitude)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20culledByNearPlane\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20p0\x20=\x20p0\x20+\x20t\x20*\x20direction;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20p0.z\x20=\x20min(p0.z,\x20-czm_currentFrustum.x);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clipped\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20clippedPositionEC\x20=\x20vec4(p0,\x201.0);\x0a}\x0a\x0afloat\x20writeNonPerspective(float\x20value,\x20float\x20w)\x20{\x0a\x20\x20\x20\x20return\x20value\x20*\x20w;\x0a}\x0a\x0avec2\x20writeNonPerspective(vec2\x20value,\x20float\x20w)\x20{\x0a\x20\x20\x20\x20return\x20value\x20*\x20w;\x0a}\x0a\x0avec3\x20writeNonPerspective(vec3\x20value,\x20float\x20w)\x20{\x0a\x20\x20\x20\x20return\x20value\x20*\x20w;\x0a}\x0a\x0avec4\x20writeNonPerspective(vec4\x20value,\x20float\x20w)\x20{\x0a\x20\x20\x20\x20return\x20value\x20*\x20w;\x0a}\x0a\x0avec4\x20calculateGeometricOutputs(vec4\x20viewPosV0,\x20vec4\x20viewPosV1,\x20vec4\x20worldPosV0,\x20vec4\x20worldPosV1,\x20vec3\x20worldNormal,\x20UnpackedAttributes\x20unpackedAttributes)\x0a{\x0a\x20\x20\x20\x20vec2\x20sideness\x20=\x20unpackedAttributes.sideness;\x0a\x20\x20\x20\x20vec2\x20sidenessNorm\x20=\x20unpackedAttributes.sidenessNorm;\x0a\x20\x20\x20\x20vec4\x20clippedViewPosV0;\x20\x20\x20\x20bool\x20clippedV0,culledV0;\x20\x20\x20\x20clipLineSegmentToNearPlane(viewPosV0.xyz,\x20viewPosV1.xyz,\x20clippedV0,\x20culledV0,\x20clippedViewPosV0);\x20\x20\x20\x20vec4\x20clippedViewPosV1;\x20\x20\x20\x20bool\x20clippedV1,\x20culledV1;\x20\x20\x20\x20clipLineSegmentToNearPlane(viewPosV1.xyz,\x20viewPosV0.xyz,\x20clippedV1,\x20culledV1,\x20clippedViewPosV1);\x20\x20\x20\x20vec4\x20viewPos\x20=\x20mix(clippedViewPosV0,\x20clippedViewPosV1,\x20sidenessNorm.y);\x0a\x20\x20\x20\x20vViewPosition\x20=\x20viewPos.xyz\x20/\x20viewPos.w;\x0a\x20\x20\x20\x20vec4\x20projPosV0\x20=\x20czm_projection\x20*\x20clippedViewPosV0;\x0a\x20\x20\x20\x20vec4\x20projPosV1\x20=\x20czm_projection\x20*\x20clippedViewPosV1;\x0a\x20\x20\x20\x20vec4\x20projPos\x20=\x20czm_projection\x20*\x20viewPos;\x0a\x20\x20\x20\x20vec3\x20screenSpaceLineNDC\x20=\x20(projPosV1.xyz\x20/\x20projPosV1.w\x20-\x20projPosV0.xyz\x20/\x20projPosV0.w);\x0a\x20\x20\x20\x20vec2\x20uNDCToPixel\x20=\x20vec2(czm_viewport.z\x20/\x202.0,\x20czm_viewport.w\x20/\x202.0);\x0a\x20\x20\x20\x20vec2\x20screenSpaceLinePixels\x20=\x20screenSpaceLineNDC.xy\x20*\x20uNDCToPixel;\x0a\x20\x20\x20\x20float\x20lineLengthPixels\x20=\x20length(screenSpaceLinePixels);\x0a\x20\x20\x20\x20float\x20dzPerPixel\x20=\x20screenSpaceLineNDC.z\x20/\x20lineLengthPixels;\x0a\x20\x20\x20\x20vec2\x20screenSpaceDirection\x20=\x20screenSpaceLinePixels\x20/\x20lineLengthPixels;\x0a\x20\x20\x20\x20vec2\x20perpendicularScreenSpaceDirection\x20=\x20vec2(screenSpaceDirection.y,\x20-screenSpaceDirection.x)\x20*\x20sideness.x;\x0a\x20\x20\x20\x20float\x20falloffFactor\x20=\x20distanceBasedPerspectiveFactor(-viewPos.z)\x20*\x20uPixelRatio;\x0a\x20\x20\x20\x20float\x20lineWidthPixels\x20=\x20unpackedAttributes.lineWidthPixels\x20*\x20falloffFactor;\x0a\x20\x20\x20\x20float\x20extensionLengthPixels\x20=\x20calculateExtensionLength(unpackedAttributes.extensionLengthPixels,\x20lineLengthPixels)\x20*\x20falloffFactor;\x0a\x20\x20\x20\x20float\x20lineAmplitudePixels\x20=\x20calculateLineAmplitude(unpackedAttributes)\x20*\x20uPixelRatio;\x0a\x20\x20\x20\x20vSizeFalloffFactor\x20=\x20falloffFactor;\x0a\x20\x20\x20\x20float\x20lineWidthAndAmplitudePixels\x20=\x20lineWidthPixels\x20+\x20lineAmplitudePixels\x20+\x20lineAmplitudePixels;\x0a\x20\x20\x20\x20float\x20extendedLineLengthPixels\x20=\x20lineLengthPixels\x20+\x20extensionLengthPixels\x20+\x20extensionLengthPixels;\x0a#ifdef\x20ANTIALIASING\x0a\x20\x20\x20\x20const\x20float\x20aaPaddingPixels\x20=\x201.0;\x0a\x20\x20\x20\x20//\x20Line\x20size\x20with\x20padding\x0a\x20\x20\x20\x20float\x20halfAAPaddedLineWidthAndAmplitudePixels\x20=\x20lineWidthAndAmplitudePixels\x20*\x200.5\x20+\x20aaPaddingPixels;\x0a\x20\x20\x20\x20float\x20aaPaddedRoundedCapSizePixels\x20=\x20lineWidthPixels\x20*\x200.5\x20+\x20aaPaddingPixels;\x0a\x20\x20\x20\x20//\x20Line\x20length\x20with\x20padding\x0a\x20\x20\x20\x20float\x20aaPaddedLineLengthPixels\x20=\x20extendedLineLengthPixels\x20+\x20aaPaddingPixels\x20+\x20aaPaddingPixels;\x0a\x20\x20\x20\x20float\x20halfAAPaddedLineLengthPixels\x20=\x20aaPaddedLineLengthPixels\x20*\x200.5;\x0a#else\x20/*\x20ANTIALIASING\x20*/\x0a\x20\x20\x20\x20//\x20Even\x20if\x20there\x20is\x20no\x20AA,\x20we\x20still\x20want\x20to\x20do\x20proper\x20<1px\x20rendering,\x0a\x20\x20\x20\x20//\x20so\x20we\x20effectively\x20clamp\x20the\x20pixel\x20sizes\x20to\x20minimum\x20of\x201px\x20and\x20compute\x0a\x20\x20\x20\x20//\x20coverage\x20in\x20the\x20fragment\x20shader\x20\x20\x20\x0a\x20\x20\x20\x20float\x20halfAAPaddedLineWidthAndAmplitudePixels\x20=\x20max(lineWidthAndAmplitudePixels,\x201.0)\x20*\x200.5;\x0a\x20\x20\x20\x20float\x20aaPaddedRoundedCapSizePixels\x20=\x20max(lineWidthPixels,\x201.0)\x20*\x200.5;\x0a\x20\x20\x20\x20float\x20halfAAPaddedLineLengthPixels\x20=\x20max(extendedLineLengthPixels,\x201.0)\x20*\x200.5;\x0a#endif\x20/*\x20ANTIALIASING\x20*/\x0a\x20\x20\x20\x20//\x20Half\x20line\x20width\x20in\x20NDC\x20including\x20padding\x20for\x20anti\x20aliasing\x0a\x20\x20\x20\x20vec2\x20uPixelToNDC\x20=\x20vec2(2.0\x20/\x20czm_viewport.z,\x202.0\x20/\x20czm_viewport.w);\x0a\x20\x20\x20\x20vec2\x20halfAAPaddedLineWidthAndAmplitudeNDC\x20=\x20halfAAPaddedLineWidthAndAmplitudePixels\x20*\x20uPixelToNDC;\x0a\x20\x20\x20\x20vec2\x20aaPaddedRoundedCapSizeNDC\x20=\x20aaPaddedRoundedCapSizePixels\x20*\x20uPixelToNDC;\x0a\x20\x20\x20\x20vec2\x20extensionLengthNDC\x20=\x20extensionLengthPixels\x20*\x20uPixelToNDC;\x0a\x20\x20\x20\x20//\x20Compute\x20screen\x20space\x20position\x20of\x20vertex,\x20offsetting\x20for\x20line\x20size\x20and\x20end\x20caps\x0a\x20\x20\x20\x20vec2\x20ndcOffset\x20=\x20(screenSpaceDirection\x20*\x20sideness.y\x20*\x20(aaPaddedRoundedCapSizeNDC\x20+\x20extensionLengthNDC)\x20+\x20perpendicularScreenSpaceDirection\x20*\x20halfAAPaddedLineWidthAndAmplitudeNDC);\x0a\x20\x20\x20\x20projPos.xy\x20+=\x20ndcOffset\x20*\x20projPos.w;\x0a\x20\x20\x20\x20projPos.z\x20+=\x20(dzPerPixel\x20*\x20(aaPaddedRoundedCapSizePixels\x20+\x20extensionLengthPixels))\x20*\x20sideness.y\x20*\x20projPos.w;\x0a\x20\x20\x20\x20projPos\x20=\x20adjustProjectedPosition(projPos,\x20worldNormal,\x201.0\x20+\x20max((lineWidthAndAmplitudePixels\x20-\x201.0)\x20*\x200.5,\x200.0));\x0a\x20\x20\x20\x20//\x20Line\x20length\x20with\x20end\x20caps\x0a\x20\x20\x20\x20float\x20aaPaddedLineWithCapsLengthPixels\x20=\x20extendedLineLengthPixels\x20+\x20aaPaddedRoundedCapSizePixels\x20+\x20aaPaddedRoundedCapSizePixels;\x0a\x20\x20\x20\x20float\x20pixelPositionAlongLine\x20=\x20aaPaddedLineWithCapsLengthPixels\x20*\x20sidenessNorm.y\x20-\x20aaPaddedRoundedCapSizePixels;\x0a\x20\x20\x20\x20//\x20Position\x20in\x20pixels\x20with\x20origin\x20at\x20first\x20vertex\x20of\x20line\x20segment\x0a\x20\x20\x20\x20//\x20The\x20line\x20width\x20radius\x20in\x20pixels\x0a\x20\x20\x20\x20vRadius\x20=\x20lineWidthPixels\x20*\x200.5;\x0a\x20\x20\x20\x20vLineLengthPixels\x20=\x20extendedLineLengthPixels;\x0a\x20\x20\x20\x20vPosition\x20=\x20writeNonPerspective(vec3(halfAAPaddedLineWidthAndAmplitudePixels\x20*\x20sideness.x,\x20pixelPositionAlongLine,\x20pixelPositionAlongLine\x20/\x20extendedLineLengthPixels),\x20projPos.w);\x0a#ifdef\x20SILHOUETTE\x0a\x20\x20\x20\x20gl_Position\x20=\x20isSilhouetteEdge(viewPosV0,\x20aNormalA,\x20aNormalB)\x20?\x20projPos\x20:\x20vec4(10.0,\x2010.0,\x2010.0,\x201.0);\x0a#else\x20/*\x20SILHOUETTE\x20*/\x0a\x20\x20\x20\x20gl_Position\x20=\x20projPos;\x0a#endif\x20/*\x20SILHOUETTE\x20*/\x0a\x0a#if\x20(MODE\x20==\x202)\x0a\x20\x20\x20\x20if\x20(unpackedAttributes.type\x20<=\x200.0\x20&&\x20lineLengthPixels\x20<=\x203.0)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20vec4(10.0,\x2010.0,\x2010.0,\x201.0);\x0a\x20\x20\x20\x20}\x0a#elif\x20(MODE\x20==\x201)\x0a\x20\x20\x20\x20if\x20(lineLengthPixels\x20<=\x203.0)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20vec4(10.0,\x2010.0,\x2010.0,\x201.0);\x20\x0a\x20\x20\x20\x20}\x0a#endif\x0a\x20\x20\x20\x20return\x20projPos;\x0a}\x0a\x0a\x0a#if\x20(MODE\x20==\x202)\x0aUnpackedAttributes\x20unpackAttributes(ComponentData\x20component)\x0a{\x0a\x20\x20\x20\x20vec2\x20sidenessNorm\x20=\x20aSideness;\x0a\x20\x20\x20\x20vec2\x20sideness\x20=\x20sidenessNorm\x20*\x202.0\x20-\x201.0;\x0a\x20\x20\x20\x20float\x20fType\x20=\x20component.type;\x0a\x20\x20\x20\x20float\x20extensionLengthPixels\x20=\x20component.extensionLength;\x0a\x20\x20\x20\x20float\x20lineWidth\x20=\x20component.lineWidth;\x0a\x20\x20\x20\x20if\x20(fType\x20<=\x200.0)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20extensionLengthPixels\x20*=\x20aVariantExtension\x20*\x202.0\x20-\x201.0;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20return\x20UnpackedAttributes(sideness,\x20sidenessNorm,\x20lineWidth,\x20extensionLengthPixels,\x20fType);\x0a}\x0a#else\x20/*\x20(MODE\x20==\x202)\x20*/\x0aUnpackedAttributes\x20unpackAttributes(ComponentData\x20component)\x0a{\x0a\x20\x20\x20\x20vec2\x20sidenessNorm\x20=\x20aSideness;\x0a\x20\x20\x20\x20vec2\x20sideness\x20=\x20sidenessNorm\x20*\x202.0\x20-\x201.0;\x0a\x20\x20\x20\x20float\x20extensionLengthPixels\x20=\x20component.extensionLength;\x0a#if\x20(MODE\x20==\x201)\x0a\x20\x20\x20\x20extensionLengthPixels\x20*=\x20aVariantExtension\x20*\x202.0\x20-\x201.0;\x0a#endif\x0a\x20\x20\x20\x20float\x20lineWidth\x20=\x20component.lineWidth;\x0a\x20\x20\x20\x20return\x20UnpackedAttributes(sideness,\x20sidenessNorm,\x20lineWidth,\x20extensionLengthPixels);\x0a}\x0a#endif\x20/*\x20(MODE\x20==\x202)\x20*/\x0a\x0avarying\x20float\x20fSelected;\x0avoid\x20main()\x0a{\x0a\x20\x20\x20\x20fSelected\x20=\x200.0;\x0a\x20\x20\x20\x20ComponentData\x20component\x20=\x20readComponentData();\x0a\x20\x20\x20\x20UnpackedAttributes\x20unpackedAttributes\x20=\x20unpackAttributes(component);\x0a\x20\x20\x20\x20vec4\x20worldPosV0\x20=\x20czm_model\x20*\x20vec4(aPosition0,\x201.0);\x0a\x20\x20\x20\x20vec4\x20worldPosV1\x20=\x20czm_model\x20*\x20vec4(aPosition1,\x201.0);\x0a\x20\x20\x20\x20vec4\x20viewPosV0\x20=\x20czm_modelView\x20*\x20vec4(aPosition0,\x201.0);\x0a\x20\x20\x20\x20vec4\x20viewPosV1\x20=\x20czm_modelView\x20*\x20vec4(aPosition1,\x201.0);\x0a#ifdef\x20SILHOUETTE\x0a\x20\x20\x20\x20vec3\x20worldNormal\x20=\x20silhouetteWorldNormal(aNormalA,\x20aNormalB);\x0a#else\x20/*\x20SILHOUETTE\x20*/\x0a\x20\x20\x20\x20vec3\x20worldNormal\x20=\x20modelToWorldNormal(aNormal);\x0a#endif\x20/*\x20SILHOUETTE\x20*/\x0a\x20\x20\x20\x20//\x20General\x20geometric\x20computation\x20for\x20all\x20types\x20of\x20edges\x0a\x20\x20\x20\x20vec4\x20projPos\x20=\x20calculateGeometricOutputs(viewPosV0,\x20viewPosV1,\x20worldPosV0,\x20worldPosV1,\x20worldNormal,\x20unpackedAttributes);\x0a\x20\x20\x20\x20vColor\x20=\x20uLineColor;\x0a}','173909uFDDhh','1261681sadVtf','29rhyEIr','1mBTiXo','1wBEdWz','10171EMoSoU','3pMBrki','803722QTlinK','6rqsiZc'];var _0x2ee064=_0x2971;(function(_0x93b0e7,_0x570919){var _0x19ce1d=_0x2971;while(!![]){try{var _0x3de508=-parseInt(_0x19ce1d(0x92))*-parseInt(_0x19ce1d(0x95))+parseInt(_0x19ce1d(0x94))*parseInt(_0x19ce1d(0x8b))+parseInt(_0x19ce1d(0x8a))*parseInt(_0x19ce1d(0x8c))+parseInt(_0x19ce1d(0x8d))+parseInt(_0x19ce1d(0x88))*parseInt(_0x19ce1d(0x90))+-parseInt(_0x19ce1d(0x93))*parseInt(_0x19ce1d(0x89))+parseInt(_0x19ce1d(0x91))*-parseInt(_0x19ce1d(0x8e));if(_0x3de508===_0x570919)break;else _0x93b0e7['push'](_0x93b0e7['shift']());}catch(_0x4eec39){_0x93b0e7['push'](_0x93b0e7['shift']());}}}(_0x38a6,0x7ead8));function _0x2971(_0x193c09,_0x346677){_0x193c09=_0x193c09-0x88;var _0x38a662=_0x38a6[_0x193c09];return _0x38a662;}var _0x2489cc = _0x2ee064(0x8f); var _0x244d=['435735hXhhLk','819241EXmyLu','12707rbFDzK','39LaBnQA','2fQDOXt','757246WdfCcl','205139kFCuRl','308772vivliZ','1lGcRoO','156221yJUYmM'];function _0x1def(_0xaa87dc,_0x399b30){_0xaa87dc=_0xaa87dc-0xac;var _0x244dc2=_0x244d[_0xaa87dc];return _0x244dc2;}(function(_0x251a4e,_0x418644){var _0x3c1f10=_0x1def;while(!![]){try{var _0x2f05c4=parseInt(_0x3c1f10(0xb5))+parseInt(_0x3c1f10(0xae))+-parseInt(_0x3c1f10(0xb4))+-parseInt(_0x3c1f10(0xad))*-parseInt(_0x3c1f10(0xb2))+parseInt(_0x3c1f10(0xac))*parseInt(_0x3c1f10(0xaf))+parseInt(_0x3c1f10(0xb1))*-parseInt(_0x3c1f10(0xb0))+-parseInt(_0x3c1f10(0xb3));if(_0x2f05c4===_0x418644)break;else _0x251a4e['push'](_0x251a4e['shift']());}catch(_0xe645f4){_0x251a4e['push'](_0x251a4e['shift']());}}}(_0x244d,0x661b8));var _0x2ba8f2 = '\x0a#ifdef\x20GL_OES_standard_derivatives\x0a#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0a#endif\x0aprecision\x20highp\x20float;\x0avarying\x20vec4\x20vColor;\x0avarying\x20float\x20vRadius;\x0avarying\x20vec3\x20vPosition;\x0avarying\x20vec3\x20vViewPosition;\x0avarying\x20float\x20vLineLengthPixels;\x0avarying\x20float\x20vSizeFalloffFactor;\x0avarying\x20float\x20vLineIndex;\x0avarying\x20float\x20vDistanceFromEye;\x0a\x0a//\x20At\x20which\x20coverage\x20threshold\x20we\x20discard\x20a\x20fragment\x20completely\x0a#define\x20COVERAGE_TEST_THRESHOLD\x200.01\x0aconst\x20float\x20nearRange\x20=\x201000.0;\x0aconst\x20float\x20farRange\x20=\x2020000.0;\x0a\x0a//\x20Sketch\x0a#if\x20(MODE\x20==\x202\x20||\x20MODE\x20==\x201)\x0a//uniform\x20sampler2D\x20uStrokesTexture;\x0a//uniform\x20float\x20uStrokesNormalizationScale;\x0avarying\x20vec2\x20vStrokeUV;\x0a\x0afloat\x20calculateLineOffsetSketch()\x0a{\x0a\x20\x20\x20\x20//float\x20offsetNorm\x20=\x20rgba2float(texture2D(uStrokesTexture,\x20vStrokeUV));\x0a\x20\x20\x20\x20//return\x20(offsetNorm\x20-\x200.5)\x20*\x20uStrokesNormalizationScale;\x0a\x20\x20\x20\x20return\x201.0;\x0a}\x0a\x0afloat\x20calculateLinePressureSketch()\x0a{\x0a\x20\x20\x20\x20//return\x20rgba2float(texture2D(uStrokesTexture,\x20vStrokeUV\x20+\x20vec2(0.0,\x200.5)));\x0a\x20\x20\x20\x20return\x201.0;\x0a}\x0a#endif\x0a\x0a#if\x20(MODE\x20==\x201)\x0afloat\x20calculateLineOffset()\x0a{\x0a\x20\x20\x20\x20return\x20calculateLineOffsetSketch();\x0a}\x0afloat\x20calculateLinePressure()\x0a{\x0a\x20\x20\x20\x20return\x20calculateLinePressureSketch();\x0a}\x0a#endif\x0a\x0a//\x20Solid\x0a#if\x20(MODE\x20==\x202\x20||\x20MODE\x20==\x200)\x0afloat\x20calculateLineOffsetSolid()\x0a{\x0a\x20\x20\x20\x20return\x200.0;\x0a}\x0afloat\x20calculateLinePressureSolid()\x0a{\x0a\x20\x20\x20\x20return\x201.0;\x0a}\x0a#endif\x0a\x0a#if\x20(MODE\x20==\x200)\x0afloat\x20calculateLineOffset()\x0a{\x0a\x20\x20\x20\x20return\x20calculateLineOffsetSolid();\x0a}\x0afloat\x20calculateLinePressure()\x0a{\x0a\x20\x20\x20\x20return\x20calculateLinePressureSolid();\x0a}\x0a#endif\x0a\x0a//\x20Uber\x0a#if\x20(MODE\x20==\x202)\x0avarying\x20float\x20vType;\x0afloat\x20calculateLineOffset()\x0a{\x0a\x20\x20\x20\x20if\x20(vType\x20<=\x200.0)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20calculateLineOffsetSketch();\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20else\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20calculateLineOffsetSolid();\x0a\x20\x20\x20\x20}\x0a}\x0a\x0afloat\x20calculateLinePressure()\x0a{\x0a\x20\x20\x20\x20if\x20(vType\x20<=\x200.0)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20calculateLinePressureSketch();\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20else\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20calculateLinePressureSolid();\x0a\x20\x20\x20\x20}\x0a}\x0a#endif\x0a\x0avec2\x20lineWithCapsDistance(float\x20radius,\x20vec2\x20position,\x20float\x20lineLength)\x0a{\x0a\x20\x20\x20\x20float\x20lineOffset\x20=\x20calculateLineOffset();\x0a\x20\x20\x20\x20float\x20positionX\x20=\x20position.x\x20-\x20lineOffset;\x0a\x20\x20\x20\x20if\x20(radius\x20<\x201.0)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20coverageX\x20=\x20clamp(min(radius,\x20positionX\x20+\x200.5)\x20-\x20max(-radius,\x20positionX\x20-\x200.5),\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20coverageY\x20=\x20clamp(min(lineLength,\x20position.y\x20+\x200.5)\x20-\x20max(0.0,\x20position.y\x20-\x200.5),\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20coverage\x20=\x20min(coverageX,\x20coverageY);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec2(0.5\x20-\x20coverage,\x200.0);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20else\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Between\x20-radius\x20->\x200\x20for\x20start\x20cap,\x200\x20for\x20line,\x200\x20->\x20radius\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20positionOnCap\x20=\x20position.y\x20-\x20clamp(position.y,\x200.0,\x20lineLength);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20lineToPosition\x20=\x20vec2(positionX,\x20positionOnCap);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec2(length(lineToPosition)\x20-\x20radius,\x20positionOnCap\x20/\x20radius);\x0a\x20\x20\x20\x20}\x0a}\x0a\x0a#ifdef\x20CLIP\x0a\x20\x20\x20\x20uniform\x20float\x20uClipMode;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uClipPlanes[6];\x0a\x20\x20\x20\x20float\x20getClipDistance(vec3\x20pos,\x20vec3\x20planeNormal,\x20float\x20disToOrigin)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20dot(planeNormal,\x20pos)\x20+\x20disToOrigin;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20clipBehindAllPlane(float\x20fBorderWidth,\x20vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20distance\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20result\x20=\x20-1.0;\x0a\x20\x20\x20\x20#ifdef\x20CLIPPLANE\x0a\x20\x20\x20\x20\x20\x20\x20\x20distance\x20=\x20getClipDistance(vertex.xyz,\x20uClipPlanes[0].xyz,\x20uClipPlanes[0].w);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(distance\x20<\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if\x20(distance\x20<\x20fBorderWidth)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20for(int\x20i\x20=\x200;\x20i\x20<\x206;\x20i++)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20distance\x20=\x20getClipDistance(vertex.xyz,\x20uClipPlanes[i].xyz,\x20uClipPlanes[i].w);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if(distance\x20<\x200.0)\x0a\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\x20\x20\x20\x20return\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(distance\x20<\x20fBorderWidth)\x0a\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\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20result;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20clipBehindAnyPlane(float\x20fBorderWidth,\x20vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20result\x20=\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20for(int\x20i\x20=\x200;\x20i\x20<\x206;\x20i++)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20distance\x20=\x20getClipDistance(vertex.xyz,\x20uClipPlanes[i].xyz,\x20uClipPlanes[i].w);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if((distance\x20+\x20fBorderWidth)\x20<\x200.0)\x0a\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\x20\x20\x20\x20return\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(distance\x20<\x200.0)\x0a\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\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20result;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20float\x20clipAnythingButLine(float\x20fBorderWidth,\x20vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20result\x20=\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20for(int\x20i\x20=\x200;\x20i\x20<\x206;\x20i++)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20distance\x20=\x20getClipDistance(vertex.xyz,\x20uClipPlanes[i].xyz,\x20uClipPlanes[i].w);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if(distance\x20<\x200.0)\x0a\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\x20\x20\x20\x20return\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(distance\x20<\x20fBorderWidth)\x0a\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\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20result;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20vec4\x20clip(vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(uClipMode\x20<\x200.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#ifdef\x20GL_OES_standard_derivatives\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dxc\x20=\x20abs(dFdx(vertex.x));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dyc\x20=\x20abs(dFdy(vertex.y));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20fBorderWidth\x20=\x20max(dxc,\x20dyc);\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20fBorderWidth\x20=\x201.0;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20clipResult\x20=\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(uClipMode\x20<\x201.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clipResult\x20=\x20clipBehindAnyPlane(fBorderWidth,\x20vertex);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(uClipMode\x20<\x202.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clipResult\x20=\x20clipBehindAllPlane(fBorderWidth,\x20vertex);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(uClipMode\x20<\x203.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clipResult\x20=\x20clipAnythingButLine(fBorderWidth,\x20vertex);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(clipResult\x20<\x20-0.5)\x0a\x20\x20\x20\x20\x20\x20\x20\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\x20else\x20if(clipResult\x20<\x200.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20}\x0a#endif\x0a\x0a#ifdef\x20APPLY_SWIPE\x0a\x20\x20\x20\x20uniform\x20vec4\x20uSwipeRegion;\x0a\x20\x20\x20\x20void\x20rollerShutter(vec2\x20coord,\x20vec4\x20region)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20f\x20=\x20step(region.xw,\x20coord);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20s\x20=\x20step(coord,\x20region.zy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(f.x\x20*\x20f.y\x20*\x20s.x\x20*\x20s.y\x20<\x201.0)\x0a\x20\x20\x20\x20\x20\x20\x20\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}\x0a#endif\x0a\x0afloat\x20readNonPerspective(float\x20value,\x20float\x20oneOverW)\x20{\x0a\x20\x20\x20\x20return\x20value\x20*\x20oneOverW;\x0a}\x0a\x0avec2\x20readNonPerspective(vec2\x20value,\x20float\x20oneOverW)\x20{\x0a\x20\x20\x20\x20return\x20value\x20*\x20oneOverW;\x0a}\x0a\x0avec3\x20readNonPerspective(vec3\x20value,\x20float\x20oneOverW)\x20{\x0a\x20\x20\x20\x20return\x20value\x20*\x20oneOverW;\x0a}\x0a\x0avec4\x20readNonPerspective(vec4\x20value,\x20float\x20oneOverW)\x20{\x0a\x20\x20\x20\x20return\x20value\x20*\x20oneOverW;\x0a}\x0a\x0avoid\x20main()\x0a{\x0a\x20\x20\x20\x20vec3\x20realPosition\x20=\x20readNonPerspective(vPosition,\x20gl_FragCoord.w);\x0a\x20\x20\x20\x20float\x20radius\x20=\x20vRadius\x20*\x20calculateLinePressure();\x0a\x20\x20\x20\x20vec2\x20distance\x20=\x20lineWithCapsDistance(radius,\x20realPosition.xy,\x20vLineLengthPixels);\x0a\x20\x20\x20\x20float\x20coverage\x20=\x20clamp(0.5\x20-\x20distance.x,\x200.0,\x201.0);\x0a#ifdef\x20ANTIALIASING\x0a\x20\x20\x20\x20const\x20float\x20coverageLimit\x20=\x20COVERAGE_TEST_THRESHOLD;\x0a#else\x0a\x20\x20\x20\x20/*\x20ANTIALIASING\x20*/\x0a\x20\x20\x20\x20//\x20Use\x20subpixel\x20coverage\x20computation\x20when\x20lines\x20get\x20subpixel\x20widths\x0a\x20\x20\x20\x20//\x20so\x20we\x20still\x20render\x20them\x20appropriately.\x20Otherwise\x20discard\x20anything\x0a\x20\x20\x20\x20//\x20that\x20is\x20not\x20fully\x20within\x20the\x20line\x0a\x20\x20\x20\x20float\x20coverageLimit\x20=\x20radius\x20<=\x200.5\x20?\x20COVERAGE_TEST_THRESHOLD\x20:\x200.75;\x0a#endif\x20/*\x20ANTIALIASING\x20*/\x0a\x20\x20\x20\x20if\x20(coverage\x20<\x20coverageLimit)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20discard;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20vColor.a\x20*\x20coverage;\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(vColor.rgb,\x20alpha);\x0a#ifdef\x20APPLY_SWIPE\x0a\x20\x20\x20\x20\x20rollerShutter(gl_FragCoord.xy,\x20uSwipeRegion);\x0a#endif\x0a\x0a#ifdef\x20CLIP\x0a\x20\x20\x20\x20\x20gl_FragColor\x20*=\x20clip(vec4(vViewPosition,\x201.0),\x201.0);\x0a#endif\x0a\x0a\x20\x20\x20\x20\x20float\x20attenuation\x20=\x201.0\x20-\x20smoothstep(nearRange,\x20farRange,\x20vDistanceFromEye);\x0a\x20\x20\x20\x20\x20gl_FragColor.a\x20*=\x20attenuation;\x0a\x20\x20\x20\x20\x20czm_writeLogDepth();\x0a}'; const _0x3cbc=['subTextureInfo','2MzVEIm','model','614346hQyMJO','prototype','ready','arrayBufferView','width','context','348222lTtLLE','1anwyJG','159374gvNoMI','height','xOffset','1NzqnaU','495745AEPecE','26884JsgFAl','copyFrom','1qxalss','yOffset','texture','457775BWXZFF','1720189aDQqLQ','init'];const _0x3d3b09=_0x37a3;(function(_0x1d6145,_0x16d664){const _0x2498cd=_0x37a3;while(!![]){try{const _0x4e2786=parseInt(_0x2498cd(0x1a9))*-parseInt(_0x2498cd(0x1b3))+parseInt(_0x2498cd(0x1a4))*parseInt(_0x2498cd(0x1a3))+-parseInt(_0x2498cd(0x1a5))*parseInt(_0x2498cd(0x1ac))+-parseInt(_0x2498cd(0x1b5))+parseInt(_0x2498cd(0x1af))+-parseInt(_0x2498cd(0x1aa))+-parseInt(_0x2498cd(0x1b0))*-parseInt(_0x2498cd(0x1a8));if(_0x4e2786===_0x16d664)break;else _0x1d6145['push'](_0x1d6145['shift']());}catch(_0x1396ff){_0x1d6145['push'](_0x1d6145['shift']());}}}(_0x3cbc,0xb338c));function _0x37a3(_0x1a20f2,_0x4b1ebb){_0x1a20f2=_0x1a20f2-0x1a0;let _0x3cbc58=_0x3cbc[_0x1a20f2];return _0x3cbc58;}function SubTextureUploadJob(){const _0x2fe52f=_0x37a3;this[_0x2fe52f(0x1b4)]=undefined,this[_0x2fe52f(0x1a2)]=undefined,this['texture']=undefined,this[_0x2fe52f(0x1b2)]=undefined;}SubTextureUploadJob[_0x3d3b09(0x1b6)]['set']=function(_0x5ba877,_0x4531e4,_0x3b94d6,_0x57917a){const _0x2754fe=_0x3d3b09;this['model']=_0x4531e4,this[_0x2754fe(0x1a2)]=_0x5ba877,this[_0x2754fe(0x1ae)]=_0x3b94d6,this['subTextureInfo']=_0x57917a;},SubTextureUploadJob['prototype']['execute']=function(){const _0x347d42=_0x3d3b09;let _0x1061c3=this[_0x347d42(0x1b2)];!this[_0x347d42(0x1ae)][_0x347d42(0x1b7)]&&this['texture'][_0x347d42(0x1b1)](),this['texture'][_0x347d42(0x1ab)]({'xOffset':_0x1061c3[_0x347d42(0x1a7)],'yOffset':_0x1061c3[_0x347d42(0x1ad)],'width':_0x1061c3[_0x347d42(0x1a1)],'height':_0x1061c3[_0x347d42(0x1a6)],'arrayBufferView':_0x1061c3[_0x347d42(0x1a0)]});}; const _0x4090=['28755SPQJMz','_texture','ShaderProgram','initLayerSetting','DepthFunction','attributes','createShaderProgram','push','boundingVolume','defines','style3D','selectionInfoMap','batchTable','setting','VertexArray','createOneEdgeCommand','set','Cartesian4','selectedColor','regularEdgeCommand','58285OTTSgN','context','fillStyle','silhouetteEdgeCommand','destroy','493gWirLE','isTexBlock','ready','BoundingSphere','isDestroyed','OPAQUE','initTexture','createIndexBuffer','edgeCount','fromCache','edgeVA','enableTextureRenderable','colorCommand','LESS_OR_EQUAL','JobType','6fZtyrk','textures','3saFuXP','layer','modelMatrix','defined','createCommand','drawingBufferWidth','renderState','createPickIds','ALPHA_BLEND','_edgeDistanceFalloffFactor','getUniformMapCallback','_textureStep','execute','vertexPackage','edgeTotalLength','ColorTableMaxKey','prototype','width','createWireFrame','drawingBufferHeight','updateMaterialBatchTable','edgeGeometry','BlendingState','indexBufferToCreate','_flattenPar','geoMatrix','shaderProgram','RenderState','uniformMap','noValueColor','silhouette','clone','combine','LineColor','batchTableBake','ColorTableMinKey','339mVdLyH','lineColor','MinVisibleValue','regular','vertexArray','219478fdeZvA','edgeLength','material','jobScheduler','_clipMode','peek','length','Fill','TRANSLUCENT','Pass','subTextureInfo','destroyObject','6qIKRPE','SILHOUETTE','bTransparentSorting','LineInterval','dequeue','pickColorIdentifier','98333EwKVSL','batchTableDirty','instanceCount','vertexAttributes','arrIndexPackage','MODE\x20','createBatchTable','_addRenderedEdge','POLYGON_OFFSET','edgeSP','TRIANGLES','vertexBufferToCreate','ShaderSource','TEXTURE','renderable','texture','update','updateBatchTableAttributes','DisplayMode','primitiveType','MaxVisibleValue','ancestorTextureBake','137810EIGhhO','commandList','createSilhouetteEdgeAttributes','_enableClip','ANTIALIASING','_hypsometric','CLIPPLANE','_swipeRegion','height','ancestorTexture','call','567697aaDrJH'];function _0x2f3d(_0x409220,_0x21ba9d){_0x409220=_0x409220-0xe4;let _0x40906f=_0x4090[_0x409220];return _0x40906f;}const _0x2e701c=_0x2f3d;(function(_0x27f38a,_0x417d71){const _0x2437ad=_0x2f3d;while(!![]){try{const _0x355c05=parseInt(_0x2437ad(0x11e))*parseInt(_0x2437ad(0xe8))+-parseInt(_0x2437ad(0xf4))+-parseInt(_0x2437ad(0xf3))+parseInt(_0x2437ad(0x153))*-parseInt(_0x2437ad(0x159))+parseInt(_0x2437ad(0x142))*-parseInt(_0x2437ad(0x10d))+-parseInt(_0x2437ad(0x108))+-parseInt(_0x2437ad(0x11c))*-parseInt(_0x2437ad(0x147));if(_0x355c05===_0x417d71)break;else _0x27f38a['push'](_0x27f38a['shift']());}catch(_0x4899f8){_0x27f38a['push'](_0x27f38a['shift']());}}}(_0x4090,0x4dbe4));function S3MCacheFileRenderEntity(_0xb5ae9f){const _0x397591=_0x2f3d;RenderEntity[_0x397591(0xf2)](this,_0xb5ae9f),this['vs']=_0x422e4c,this['fs']=_0x5a5406,this[_0x397591(0x117)]=undefined,this[_0x397591(0x162)]=undefined,this[_0x397591(0x107)]=undefined,this[_0x397591(0x10b)]=undefined;}S3MCacheFileRenderEntity[_0x2e701c(0x12e)]=Object['create'](RenderEntity[_0x2e701c(0x12e)]),S3MCacheFileRenderEntity['prototype']['constructor']=RenderEntity;function getOpaqueRenderState$1(){const _0x2bb07e=_0x2e701c;return Geoworld[_0x2bb07e(0x139)][_0x2bb07e(0x116)]({'cull':{'enabled':!![]},'depthTest':{'enabled':!![],'func':Geoworld[_0x2bb07e(0xf8)][_0x2bb07e(0x11a)]},'blending':Geoworld[_0x2bb07e(0x134)][_0x2bb07e(0x126)]});}function getTransparentRenderState$1(){const _0x43cbcf=_0x2e701c;return Geoworld['RenderState'][_0x43cbcf(0x116)]({'cull':{'enabled':!![]},'depthTest':{'enabled':!![],'func':Geoworld['DepthFunction'][_0x43cbcf(0x11a)]},'blending':Geoworld[_0x43cbcf(0x134)]['ALPHA_BLEND']});}let hypMinMaxValueScratch$1=new Geoworld[(_0x2e701c(0x105))](),hypOpacityIntervalFillModeScratch$1=new Geoworld[(_0x2e701c(0x105))](),swipRegionScratch$1=new Geoworld[(_0x2e701c(0x105))](),texDimScratch=new Geoworld[(_0x2e701c(0x105))]();function getUniformMap$1(_0x3801b2,_0x4a6b3f,_0x5511f5){return {'uGeoMatrix':function(){const _0x4852e5=_0x2f3d;return _0x5511f5[_0x4852e5(0x137)];},'uInverseGeoMatrix':function(){return _0x5511f5['invGeoMatrix'];},'uTexture':function(){const _0x2b8405=_0x2f3d;let _0x4e70c1=_0x3801b2[_0x2b8405(0x11d)][0x0];if(_0x4e70c1[_0x2b8405(0x10e)])return _0x4e70c1[_0x2b8405(0x167)]&&_0x4e70c1[_0x2b8405(0x10f)]?_0x4e70c1:_0x3801b2[_0x2b8405(0xf1)]?_0x3801b2['ancestorTexture']:_0x4e70c1;return _0x3801b2[_0x2b8405(0x11d)][0x0];},'uTexture2':function(){return _0x3801b2['textures'][0x1];},'uTexAtlasDim':function(){const _0x1df14d=_0x2f3d;let _0x9cac5f=_0x3801b2['textures'][0x0][_0x1df14d(0x167)]?_0x3801b2[_0x1df14d(0x11d)][0x0]:_0x3801b2[_0x1df14d(0xf1)]?_0x3801b2[_0x1df14d(0xf1)]:_0x3801b2[_0x1df14d(0x11d)][0x0];texDimScratch['x']=_0x9cac5f['width'],texDimScratch['y']=_0x9cac5f[_0x1df14d(0xf0)];if(_0x3801b2[_0x1df14d(0x11d)][0x1]){let _0x4e2580=_0x3801b2[_0x1df14d(0x11d)][0x1]['renderable']?_0x3801b2['textures'][0x1]:_0x3801b2[_0x1df14d(0xe7)]?_0x3801b2[_0x1df14d(0xe7)]:_0x3801b2[_0x1df14d(0x11d)][0x1];texDimScratch['z']=_0x4e2580['width'],texDimScratch['w']=_0x4e2580[_0x1df14d(0xf0)];}return texDimScratch;},'batchTextureAtlas':function(){const _0x43bdb3=_0x2f3d;return _0x3801b2[_0x43bdb3(0x100)][_0x43bdb3(0xf5)];},'batchTextureAtlasStep':function(){const _0x54d9f7=_0x2f3d;return _0x3801b2[_0x54d9f7(0x100)][_0x54d9f7(0x129)];},'batchTextureAtlasSec':function(){const _0x5ad894=_0x2f3d;return _0x3801b2[_0x5ad894(0x140)][_0x5ad894(0xf5)];},'batchTextureAtlasStepSec':function(){const _0x4bcbe8=_0x2f3d;return _0x3801b2[_0x4bcbe8(0x140)]['_textureStep'];},'uTexture0Width':function(){const _0x310635=_0x2f3d;return _0x3801b2[_0x310635(0x11d)][0x0][_0x310635(0x12f)];},'uTexture1Width':function(){const _0x31b91e=_0x2f3d;return _0x3801b2[_0x31b91e(0x11d)][0x1]['width'];},'uSelectedColor':function(){const _0xfdb7ab=_0x2f3d;return _0x4a6b3f[_0xfdb7ab(0x106)];},'uClipMode':function(){const _0xdc09f6=_0x2f3d;return _0x4a6b3f[_0xdc09f6(0x14b)];},'uClipPlanes':function(){return _0x4a6b3f['_clipPlane'];},'uHypsometricTexture':function(){const _0xa934b6=_0x2f3d;return _0x4a6b3f[_0xa934b6(0xed)]['texture'];},'uHypLineColor':function(){const _0x5c0872=_0x2f3d;return _0x4a6b3f['_hypsometric']['setting'][_0x5c0872(0x13f)];},'uNoValueColor':function(){const _0x2a9a54=_0x2f3d;return _0x4a6b3f[_0x2a9a54(0xed)][_0x2a9a54(0x101)][_0x2a9a54(0x13b)];},'uMinMaxValue':function(){const _0x269b7d=_0x2f3d;let _0x5d94ad=_0x4a6b3f[_0x269b7d(0xed)][_0x269b7d(0x101)];return hypMinMaxValueScratch$1['x']=_0x5d94ad[_0x269b7d(0x141)],hypMinMaxValueScratch$1['y']=_0x5d94ad[_0x269b7d(0x12d)],hypMinMaxValueScratch$1['z']=_0x5d94ad[_0x269b7d(0x144)],hypMinMaxValueScratch$1['w']=_0x5d94ad[_0x269b7d(0xe6)],hypMinMaxValueScratch$1;},'uOpacityIntervalFillMode':function(){const _0x51095d=_0x2f3d;let _0x208f2c=_0x4a6b3f[_0x51095d(0xed)]['setting'];return hypOpacityIntervalFillModeScratch$1['x']=_0x208f2c['Opacity'],hypOpacityIntervalFillModeScratch$1['y']=_0x208f2c[_0x51095d(0x156)],hypOpacityIntervalFillModeScratch$1['z']=_0x208f2c[_0x51095d(0xe4)],hypOpacityIntervalFillModeScratch$1;},'uFlattenRect':function(){const _0x1ac318=_0x2f3d;return _0x4a6b3f[_0x1ac318(0x136)]['bounds'];},'uFlattenTexture':function(){const _0xeb550d=_0x2f3d;return _0x4a6b3f[_0xeb550d(0x136)]['texture'];},'uSwipeRegion':function(){const _0x3f179a=_0x2f3d,_0x14206f=_0x4a6b3f['context'];return swipRegionScratch$1['x']=_0x4a6b3f[_0x3f179a(0xef)]['x']*_0x14206f[_0x3f179a(0x123)],swipRegionScratch$1['y']=(0x1-_0x4a6b3f['_swipeRegion']['y'])*_0x14206f[_0x3f179a(0x131)],swipRegionScratch$1['z']=_0x4a6b3f[_0x3f179a(0xef)]['z']*_0x14206f[_0x3f179a(0x123)],swipRegionScratch$1['w']=(0x1-_0x4a6b3f['_swipeRegion']['w'])*_0x14206f[_0x3f179a(0x131)],swipRegionScratch$1;}};}S3MCacheFileRenderEntity[_0x2e701c(0x12e)][_0x2e701c(0x103)]=function(_0x8ecf6f,_0x126ded,_0x42d3e3,_0x492530,_0x5d8894){const _0x1520f6=_0x2e701c;if(!_0x42d3e3['attributes']||_0x42d3e3[_0x1520f6(0xf9)][_0x1520f6(0x14d)]==0x0||!_0x42d3e3[_0x1520f6(0x15b)]||_0x42d3e3[_0x1520f6(0x15b)]===0x0)return null;let _0x2b9da8=new Geoworld['DrawCommand']({'primitiveType':Geoworld['PrimitiveType'][_0x1520f6(0x163)],'modelMatrix':this['modelMatrix'],'boundingVolume':this[_0x1520f6(0xfc)],'pass':Geoworld[_0x1520f6(0x150)][_0x1520f6(0x112)],'owner':this,'cull':!![]});this['edgeVA']=new Geoworld[(_0x1520f6(0x102))]({'context':_0x8ecf6f,'attributes':_0x42d3e3['attributes'],'indexBuffer':_0x492530}),_0x2b9da8[_0x1520f6(0x146)]=this['edgeVA'],_0x2b9da8[_0x1520f6(0x15b)]=_0x42d3e3[_0x1520f6(0x15b)];let _0x4cca65,_0x52e9c9;_0x4cca65=new Geoworld[(_0x1520f6(0x165))]({'sources':[_0x2489cc]}),_0x52e9c9=new Geoworld[(_0x1520f6(0x165))]({'sources':[_0x2ba8f2]});!_0x5d8894&&(_0x4cca65[_0x1520f6(0xfd)][_0x1520f6(0xfb)](_0x1520f6(0x154)),_0x52e9c9['defines'][_0x1520f6(0xfb)](_0x1520f6(0x154)));_0x4cca65[_0x1520f6(0xfd)]['push'](_0x1520f6(0xec)),_0x52e9c9[_0x1520f6(0xfd)]['push'](_0x1520f6(0xec)),_0x4cca65['defines'][_0x1520f6(0xfb)](_0x1520f6(0x161)),_0x52e9c9['defines'][_0x1520f6(0xfb)]('POLYGON_OFFSET');_0x126ded['swipeEnabled']&&_0x52e9c9['defines'][_0x1520f6(0xfb)](ProgramDefines['APPLY_SWIPE']);_0x126ded[_0x1520f6(0xeb)]&&_0x52e9c9[_0x1520f6(0xfd)][_0x1520f6(0xfb)]('CLIP');_0x126ded['_enableClipPlane']&&_0x52e9c9[_0x1520f6(0xfd)][_0x1520f6(0xfb)](_0x1520f6(0xee));let _0x479285=0x0;_0x4cca65[_0x1520f6(0xfd)][_0x1520f6(0xfb)](_0x1520f6(0x15e)+_0x479285),_0x52e9c9[_0x1520f6(0xfd)][_0x1520f6(0xfb)](_0x1520f6(0x15e)+_0x479285),this['edgeSP']=Geoworld[_0x1520f6(0xf6)][_0x1520f6(0x116)]({'context':_0x8ecf6f,'vertexShaderSource':_0x4cca65,'fragmentShaderSource':_0x52e9c9,'attributeLocations':_0x42d3e3['attributeLocations']}),_0x2b9da8[_0x1520f6(0x138)]=this[_0x1520f6(0x162)],_0x2b9da8[_0x1520f6(0x124)]=Geoworld[_0x1520f6(0x139)]['fromCache']({'depthTest':{'enabled':!![],'func':Geoworld[_0x1520f6(0xf8)][_0x1520f6(0x11a)]},'cull':{'enabled':!![]},'blending':Geoworld[_0x1520f6(0x134)]['ALPHA_BLEND']});let _0x5bd182={'uLineColor':function(){const _0xf2ca13=_0x1520f6;return _0x126ded[_0xf2ca13(0xfe)][_0xf2ca13(0x143)];},'uLineWidth':function(){const _0x4eadbb=_0x1520f6;return _0x126ded[_0x4eadbb(0xfe)]['lineWidth'];},'uDistanceFalloffFactor':function(){const _0x5ec78d=_0x1520f6;return _0x126ded[_0x5ec78d(0x127)];},'u_polygonOffset':function(){return new Geoworld['Cartesian2'](-0x5,-0x5);}};return _0x2b9da8[_0x1520f6(0x13a)]=Geoworld[_0x1520f6(0x13e)](_0x5bd182,this[_0x1520f6(0x119)][_0x1520f6(0x13a)]),_0x2b9da8[_0x1520f6(0x12c)]=_0x42d3e3[_0x1520f6(0x148)],_0x2b9da8[_0x1520f6(0x115)]=_0x42d3e3['instanceCount'],_0x2b9da8;},S3MCacheFileRenderEntity['prototype'][_0x2e701c(0x122)]=function(){const _0xd2690b=_0x2e701c;if(Geoworld[_0xd2690b(0x121)](this[_0xd2690b(0x119)])||this[_0xd2690b(0x164)][_0xd2690b(0x14d)]!==0x0||this[_0xd2690b(0x135)][_0xd2690b(0x14d)]!==0x0||this['shaderProgramToCreate']['length']!==0x0)return;let _0x23113c=this[_0xd2690b(0x11f)],_0x1926c3=_0x23113c[_0xd2690b(0x109)],_0x4e34a8=this[_0xd2690b(0x12b)],_0x2f3e3b=this['arrIndexPackage'],_0x2bd57f=_0x4e34a8[_0xd2690b(0x15c)];if(_0x2f3e3b[_0xd2690b(0x14d)]<0x1)return;let _0x2319ca=_0x2f3e3b[0x0],_0x5640e3=this[_0xd2690b(0x149)];this[_0xd2690b(0x146)]=new Geoworld[(_0xd2690b(0x102))]({'context':_0x1926c3,'attributes':_0x2bd57f,'indexBuffer':_0x2319ca['indexBuffer']}),this['colorCommand']=new Geoworld['DrawCommand']({'primitiveType':_0x2319ca[_0xd2690b(0xe5)],'modelMatrix':this[_0xd2690b(0x120)],'boundingVolume':Geoworld[_0xd2690b(0x110)][_0xd2690b(0x13d)](this[_0xd2690b(0xfc)]),'pickId':this[_0xd2690b(0x158)],'vertexArray':this['vertexArray'],'shaderProgram':this[_0xd2690b(0x138)],'pass':_0x5640e3[_0xd2690b(0x155)]?Geoworld[_0xd2690b(0x150)][_0xd2690b(0x14f)]:Geoworld[_0xd2690b(0x150)][_0xd2690b(0x112)],'renderState':_0x5640e3['bTransparentSorting']?getTransparentRenderState$1():getOpaqueRenderState$1(),'instanceCount':_0x4e34a8[_0xd2690b(0x15b)]});let _0x454065=getUniformMap$1(_0x5640e3,_0x23113c,this);this[_0xd2690b(0x100)]&&(_0x454065=this[_0xd2690b(0x100)][_0xd2690b(0x128)]()(_0x454065)),_0x5640e3['batchTable']&&(_0x454065=_0x5640e3[_0xd2690b(0x100)][_0xd2690b(0x128)]()(_0x454065)),this[_0xd2690b(0x119)][_0xd2690b(0x13a)]=_0x454065,this[_0xd2690b(0x12b)]=undefined,this['arrIndexPackage']=undefined,this['vs']=undefined,this['fs']=undefined,this['ready']=!![];},S3MCacheFileRenderEntity[_0x2e701c(0x12e)]['createWireFrame']=function(_0x25c18a){const _0x1d2fc6=_0x2e701c;if(!this['colorCommand']||!this[_0x1d2fc6(0x133)]||this[_0x1d2fc6(0x107)])return;let _0x2a7cab=this[_0x1d2fc6(0x11f)][_0x1d2fc6(0x109)],_0x253890=this[_0x1d2fc6(0x133)];S3MEdgeProcessor['createRegularEdgeAttributes'](_0x2a7cab,_0x253890[_0x1d2fc6(0x145)]),S3MEdgeProcessor[_0x1d2fc6(0xea)](_0x2a7cab,_0x253890[_0x1d2fc6(0x13c)]);let _0x150f5f=S3MEdgeProcessor[_0x1d2fc6(0x114)](_0x2a7cab);this['regularEdgeCommand']=this[_0x1d2fc6(0x103)](_0x2a7cab,this[_0x1d2fc6(0x11f)],_0x253890['regular'],_0x150f5f,!![]),this[_0x1d2fc6(0x10b)]=this[_0x1d2fc6(0x103)](_0x2a7cab,this[_0x1d2fc6(0x11f)],_0x253890['silhouette'],_0x150f5f,![]);};let scratchSubTextureUploadJob=new SubTextureUploadJob();S3MCacheFileRenderEntity[_0x2e701c(0x12e)][_0x2e701c(0x132)]=function(_0x550c27){const _0xa1688b=_0x2e701c;this[_0xa1688b(0x149)][_0xa1688b(0x113)](),this['material']['requestSubTextures'](_0x550c27,this[_0xa1688b(0x11f)]);let _0x1d5078=this[_0xa1688b(0x149)]['subTexturesToUpload'];while(_0x1d5078[_0xa1688b(0x14d)]){let _0x258fc2=_0x1d5078[_0xa1688b(0x14c)](),_0x312078=_0x258fc2[_0xa1688b(0x168)],_0x7c8732=_0x258fc2[_0xa1688b(0x151)];scratchSubTextureUploadJob[_0xa1688b(0x104)](_0x550c27[_0xa1688b(0x109)],this,_0x312078,_0x7c8732);if(!_0x550c27[_0xa1688b(0x14a)][_0xa1688b(0x12a)](scratchSubTextureUploadJob,Geoworld[_0xa1688b(0x11b)][_0xa1688b(0x166)]))break;_0x1d5078[_0xa1688b(0x157)]();}_0x1d5078[_0xa1688b(0x14d)]===0x0&&this[_0xa1688b(0x149)][_0xa1688b(0x118)](),this[_0xa1688b(0x149)][_0xa1688b(0x100)][_0xa1688b(0x169)](_0x550c27);},S3MCacheFileRenderEntity[_0x2e701c(0x12e)][_0x2e701c(0x169)]=function(_0x4fa722,_0x47f981){const _0xefa27b=_0x2e701c;if(!this[_0xefa27b(0x10f)]){this[_0xefa27b(0x15f)](_0x4fa722),this[_0xefa27b(0x125)](),this['createBuffers'](_0x4fa722),this[_0xefa27b(0xfa)](_0x4fa722),this[_0xefa27b(0x122)](_0x4fa722),this[_0xefa27b(0x130)](_0x4fa722),this[_0xefa27b(0xf7)](_0x47f981);return;}this[_0xefa27b(0x15a)]&&(this[_0xefa27b(0x16a)](),this['batchTableDirty']=![]),this[_0xefa27b(0x100)]&&this[_0xefa27b(0x100)]['update'](_0x4fa722),this[_0xefa27b(0x149)][_0xefa27b(0x100)]&&this[_0xefa27b(0x132)](_0x4fa722),_0x47f981[_0xefa27b(0xfe)][_0xefa27b(0x10a)]!==_0x58394d['WireFrame']&&_0x4fa722[_0xefa27b(0xe9)]['push'](this[_0xefa27b(0x119)]),_0x47f981[_0xefa27b(0xfe)][_0xefa27b(0x10a)]!==_0x58394d[_0xefa27b(0x14e)]&&(this[_0xefa27b(0x107)]&&(_0x4fa722[_0xefa27b(0xe9)][_0xefa27b(0xfb)](this[_0xefa27b(0x107)]),_0x47f981[_0xefa27b(0x160)](this['regularEdgeCommand'][_0xefa27b(0x12c)],this[_0xefa27b(0x107)][_0xefa27b(0x115)])),this[_0xefa27b(0x10b)]&&(_0x4fa722[_0xefa27b(0xe9)][_0xefa27b(0xfb)](this[_0xefa27b(0x10b)]),_0x47f981['_addRenderedEdge'](this['silhouetteEdgeCommand'][_0xefa27b(0x12c)],this['silhouetteEdgeCommand'][_0xefa27b(0x115)])));},S3MCacheFileRenderEntity['prototype'][_0x2e701c(0x111)]=function(){return ![];},S3MCacheFileRenderEntity[_0x2e701c(0x12e)][_0x2e701c(0x10c)]=function(){const _0x52f529=_0x2e701c;return this['shaderProgram']=this[_0x52f529(0x138)]&&!this[_0x52f529(0x138)][_0x52f529(0x111)]()&&this['shaderProgram'][_0x52f529(0x10c)](),this[_0x52f529(0x146)]=this[_0x52f529(0x146)]&&!this[_0x52f529(0x146)][_0x52f529(0x111)]()&&this['vertexArray']['destroy'](),this[_0x52f529(0x149)]=this[_0x52f529(0x149)]&&!this['material'][_0x52f529(0x111)]()&&this[_0x52f529(0x149)]['destroy'](),this['batchTable']=this['batchTable']&&!this[_0x52f529(0x100)][_0x52f529(0x111)]()&&this['batchTable'][_0x52f529(0x10c)](),this[_0x52f529(0x117)]=this[_0x52f529(0x117)]&&!this['edgeVA'][_0x52f529(0x111)]()&&this[_0x52f529(0x117)][_0x52f529(0x10c)](),this[_0x52f529(0x162)]=this['edgeSP']&&!this['edgeSP'][_0x52f529(0x111)]()&&this[_0x52f529(0x162)][_0x52f529(0x10c)](),this['colorCommand']=undefined,this[_0x52f529(0x12b)]=null,this[_0x52f529(0x15d)]=null,this[_0x52f529(0x120)]=undefined,this['pickInfo']=undefined,this[_0x52f529(0xff)]=undefined,this['vs']=undefined,this['fs']=undefined,Geoworld[_0x52f529(0x152)](this);}; var _0x5d12=['3RebsGt','705450nbkazX','484557yOTPGH','209523VCUdMH','47tOZFgk','156493CdTros','593849pqjOno','attribute\x20vec4\x20aPosition;\x0aattribute\x20vec4\x20aColor;\x0auniform\x20float\x20uPointCloudSize;\x0avarying\x20float\x20vPixelDistance;\x0a#ifdef\x20COMPRESS_VERTEX\x0a\x20\x20\x20\x20uniform\x20vec4\x20decode_position_min;\x0a\x20\x20\x20\x20uniform\x20float\x20decode_position_normConstant;\x0a#endif\x0a#ifdef\x20HYPSOMETRIC\x0a\x20\x20\x20\x20uniform\x20sampler2D\x20uHypsometricTexture;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uMinMaxValue;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uOpacityIntervalFillMode;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uHypLineColor;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uNoValueColor;\x0a\x20\x20\x20\x20uniform\x20float\x20uUseWValue;\x0a\x20\x20\x20\x20uniform\x20float\x20uBottom;\x0a#endif\x0a\x20\x20\x20\x20uniform\x20vec4\x20uFillForeColor;\x0a\x20\x20\x20\x20varying\x20vec4\x20vColor;\x0a\x20\x20\x20\x20varying\x20vec4\x20vPositionMC;\x0a\x0a#ifdef\x20HYPSOMETRIC\x0a\x0afloat\x20computeWValue(vec4\x20vertexPos){\x0a\x20\x20\x20\x20float\x20realWValue\x20=\x20vertexPos.w;\x0a#ifdef\x20TEXTURE_COORD_ONE_IS_W\x0a\x20\x20\x20\x20realWValue\x20=\x20aTexCoord0.x;\x0a#endif\x0a\x20\x20\x20\x20if(uUseWValue\x20>\x200.1)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20realWValue\x20+\x20uBottom;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20return\x20vertexPos.z\x20+\x20uBottom;\x0a}\x0a\x0avec4\x20computeContourMapColor(float\x20fValue)\x0a{\x0a\x20\x20\x20\x20float\x20floorValue\x20=\x20uMinMaxValue.x;\x0a\x20\x20\x20\x20float\x20ceilValue\x20=\x20uMinMaxValue.y;\x0a\x20\x20\x20\x20float\x20threshold\x20=\x20clamp(abs(ceilValue\x20-\x20floorValue),\x200.000001,\x2020000.0);\x0a\x20\x20\x20\x20float\x20contourRate\x20=\x20(fValue\x20-\x20floorValue)\x20/\x20threshold;\x0a\x20\x20\x20\x20float\x20finalCoord\x20=\x20clamp(contourRate,\x200.0,\x201.0);\x0a\x20\x20\x20\x20float\x20count\x20=\x20floor(finalCoord\x20*\x2016.0);\x0a\x20\x20\x20\x20float\x20y\x20=\x20(count*2.0\x20+\x201.0)/32.0;\x0a\x20\x20\x20\x20float\x20x\x20=\x20fract(finalCoord*16.0);\x0a\x20\x20\x20\x20if(y\x20>\x201.0)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20x\x20=\x201.0;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20return\x20texture2D(uHypsometricTexture,\x20vec2(x,\x20y)).rgba;\x0a}\x0avec4\x20getHypsometricColor(vec4\x20oriColor,\x20float\x20fValue)\x0a{\x0a\x20\x20\x20\x20vec4\x20contourMapColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20float\x20finalOpacity\x20=\x20uOpacityIntervalFillMode.x;\x0a\x20\x20\x20\x20float\x20fillMode\x20=\x20uOpacityIntervalFillMode.z;\x0a\x20\x20\x20\x20float\x20minVisibleValue\x20=\x20uMinMaxValue.z;\x0a\x20\x20\x20\x20float\x20maxVisibleValue\x20=\x20uMinMaxValue.w;\x0a\x20\x20\x20\x20if(fValue\x20>\x20maxVisibleValue\x20||\x20fValue\x20<\x20minVisibleValue)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20uNoValueColor\x20*\x20oriColor;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20contourMapColor\x20=\x20computeContourMapColor(fValue);\x0a\x20\x20\x20\x20finalOpacity\x20*=\x20sign(fillMode);\x0a\x20\x20\x20\x20vec4\x20mixColor\x20=\x20mix(vec4(1.0,1.0,1.0,1.0),\x20contourMapColor,\x20finalOpacity);\x0a\x20\x20\x20\x20return\x20mixColor;\x0a}\x0a#endif\x0a\x0avoid\x20main()\x0a{\x0a#ifdef\x20COMPRESS_VERTEX\x0a\x20\x20\x20\x20vec4\x20vertexPos\x20=\x20vec4(1.0);\x0a\x20\x20\x20\x20vertexPos\x20=\x20decode_position_min\x20+\x20aPosition\x20*\x20decode_position_normConstant;\x0a#else\x0a\x20\x20\x20\x20vec4\x20vertexPos\x20=\x20aPosition;\x0a#endif\x0a\x20\x20\x20\x20vertexPos.w\x20=\x201.0;\x0a\x20\x20\x20\x20vec4\x20vertexColor\x20=\x20aColor;\x0a\x20\x20\x20\x20vColor\x20=\x20vertexColor\x20*\x20uFillForeColor;\x0a\x20\x20\x20\x20vPositionMC.xyz\x20=\x20vertexPos.xyz;\x0a\x20\x20\x20\x20vPositionMC.w\x20=\x200.0;\x0a\x20\x20\x20\x20gl_Position\x20=\x20czm_modelViewProjection\x20*\x20vertexPos;\x0a#ifdef\x20HYPSOMETRIC\x0a\x20\x20\x20\x20float\x20wValue\x20=\x20computeWValue(vertexPos);\x0a\x20\x20\x20\x20vColor\x20=\x20getHypsometricColor(vColor,\x20wValue);\x0a#endif\x0a\x20\x20\x20\x20vPixelDistance\x20=\x202.0\x20/\x20uPointCloudSize;\x0a\x20\x20\x20\x20gl_PointSize\x20=\x20uPointCloudSize;\x0a}','858670DQQTwZ','7321CaHhlL'];function _0x21a6(_0x41534e,_0x1387b0){_0x41534e=_0x41534e-0x18a;var _0x5d1243=_0x5d12[_0x41534e];return _0x5d1243;}var _0x5ad027=_0x21a6;(function(_0x3f07b5,_0x4dde61){var _0x11c4e0=_0x21a6;while(!![]){try{var _0x15d9ac=-parseInt(_0x11c4e0(0x18f))+parseInt(_0x11c4e0(0x18a))*-parseInt(_0x11c4e0(0x18d))+-parseInt(_0x11c4e0(0x192))+parseInt(_0x11c4e0(0x18b))+parseInt(_0x11c4e0(0x18c))+-parseInt(_0x11c4e0(0x18e))*-parseInt(_0x11c4e0(0x193))+parseInt(_0x11c4e0(0x190));if(_0x15d9ac===_0x4dde61)break;else _0x3f07b5['push'](_0x3f07b5['shift']());}catch(_0x39de9d){_0x3f07b5['push'](_0x3f07b5['shift']());}}}(_0x5d12,0x76373));var _0x1124d8 = _0x5ad027(0x191); var _0x1bd9=['13QNBsuq','#ifdef\x20GL_OES_standard_derivatives\x0a#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0a#endif\x0a\x20\x20\x20\x20varying\x20vec4\x20vColor;\x0a\x20\x20\x20\x20varying\x20vec4\x20vPositionMC;\x0a\x20\x20\x20\x20varying\x20float\x20vPixelDistance;\x0a#ifdef\x20APPLY_SWIPE\x0a\x20\x20\x20\x20uniform\x20vec4\x20uSwipeRegion;\x0a\x20\x20\x20\x20void\x20rollerShutter(vec2\x20coord,\x20vec4\x20region)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20f\x20=\x20step(region.xw,\x20coord);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20s\x20=\x20step(coord,\x20region.zy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(f.x\x20*\x20f.y\x20*\x20s.x\x20*\x20s.y\x20<\x201.0)\x0a\x20\x20\x20\x20\x20\x20\x20\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}\x0a#endif\x0avoid\x20main()\x0a{\x0a#ifdef\x20APPLY_SWIPE\x20\x0a\x20\x20\x20\x20rollerShutter(gl_FragCoord.xy,\x20uSwipeRegion);\x0a#endif\x0a\x09if(vColor.a\x20<\x200.1)\x0a\x09{\x0a\x09\x09discard;\x0a\x09}\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vColor;\x0a\x20\x20\x20\x20float\x20distanceToCenter\x20=\x20length(gl_PointCoord\x20-\x20vec2(0.5));\x0a\x20\x20\x20\x20float\x20maxDistance\x20=\x20max(0.0,\x200.5\x20-\x20vPixelDistance);\x0a\x20\x20\x20\x20float\x20wholeAlpha\x20=\x201.0\x20-\x20smoothstep(maxDistance,\x200.5,\x20distanceToCenter);\x0a\x20\x20\x20\x20gl_FragColor.a\x20*=\x20wholeAlpha;\x0a\x09if(gl_FragColor.a\x20<\x200.1)\x0a\x09{\x0a\x09\x09discard;\x0a\x09}\x0a#ifdef\x20CLIP\x0a\x20\x20\x20\x20gl_FragColor\x20*=\x20czm_clip(czm_modelView\x20*\x20vec4(vPositionMC.xyz,\x201.0),\x201.0);\x0a#endif\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20czm_gammaCorrect(gl_FragColor);\x0a}','47914RlbCQo','14116pZUnAZ','1447811HgAsBq','1103kkyGpg','163597wCEPSz','1MSORHi','361xGhZlb','297141fvzXMZ','3gXEPxU','363867AKzogy'];function _0x851c(_0x22f692,_0x2d5856){_0x22f692=_0x22f692-0x18a;var _0x1bd97d=_0x1bd9[_0x22f692];return _0x1bd97d;}var _0x4c648a=_0x851c;(function(_0x393a06,_0x4f912a){var _0x2e6b75=_0x851c;while(!![]){try{var _0x84b641=-parseInt(_0x2e6b75(0x190))+-parseInt(_0x2e6b75(0x193))+parseInt(_0x2e6b75(0x18a))*parseInt(_0x2e6b75(0x18d))+-parseInt(_0x2e6b75(0x18f))*parseInt(_0x2e6b75(0x192))+-parseInt(_0x2e6b75(0x194))*parseInt(_0x2e6b75(0x18c))+-parseInt(_0x2e6b75(0x191))*parseInt(_0x2e6b75(0x195))+parseInt(_0x2e6b75(0x18e));if(_0x84b641===_0x4f912a)break;else _0x393a06['push'](_0x393a06['shift']());}catch(_0x4b351d){_0x393a06['push'](_0x393a06['shift']());}}}(_0x1bd9,0x40a55));var _0x5f159e = _0x4c648a(0x18b); const _0x7fe5=['635595qDNodt','shaderProgramToCreate','decode_texCoord3_min','minTexCoordValue','RenderState','VertexArray','createShaderProgram','decode_texCoord0_normConstant','destroy','_hypsometric','49471rSKpQF','modelMatrix','vertexPackage','_swipeRegion','context','SVC_TexutreCoord','texCoordCompressConstant','149991wcbLnk','vertCompressConstant','BoundingSphere','_clipPlane','bottomAltitude','update','minVerticesValue','decode_texCoord4_min','geoMatrix','decode_texCoord6_min','decode_texCoord0_min','Pass','material','_clipMode','LineInterval','MinVisibleValue','2pMSlKk','SVC_Normal','Cartesian4','pointSize','decode_texCoord2_min','colorCommand','create','invGeoMatrix','normal_rangeConstant','1UmCDzf','noValueColor','defined','LineColor','uniformMap','PrimitiveType','decode_texCoord1_min','style3D','SVC_Vertex','decode_texCoord1_normConstant','decode_texCoord5_min','call','decode_texCoord2_normConstant','ColorTableMaxKey','DisplayMode','arrIndexPackage','boundingVolume','isDestroyed','verticesCount','105595PBPJWR','drawingBufferWidth','createBuffers','DrawCommand','length','push','11zDtsPX','constructor','texture','14321UaadwC','LESS_OR_EQUAL','decode_texCoord6_normConstant','MaxVisibleValue','layer','23319vKFVvJ','ColorTableMinKey','setting','prototype','commandList','POINTS','decode_texCoord7_min','useWValue','shaderProgram','vertexArray','destroyObject','normalRangeConstant','505792pVxApL','createCommand','ready'];const _0x22f41c=_0x1a4a;(function(_0xe999dc,_0x331753){const _0x411b26=_0x1a4a;while(!![]){try{const _0x42282c=parseInt(_0x411b26(0x1c0))+-parseInt(_0x411b26(0x1a6))+-parseInt(_0x411b26(0x17a))+-parseInt(_0x411b26(0x173))*parseInt(_0x411b26(0x1ac))+parseInt(_0x411b26(0x1b4))*parseInt(_0x411b26(0x18a))+-parseInt(_0x411b26(0x193))*-parseInt(_0x411b26(0x1af))+parseInt(_0x411b26(0x1c3));if(_0x42282c===_0x331753)break;else _0xe999dc['push'](_0xe999dc['shift']());}catch(_0x2591eb){_0xe999dc['push'](_0xe999dc['shift']());}}}(_0x7fe5,0x62493));function _0x1a4a(_0x40be6d,_0x16b019){_0x40be6d=_0x40be6d-0x171;let _0x7fe55c=_0x7fe5[_0x40be6d];return _0x7fe55c;}function S3MPointCloudRenderEntity(_0x246cf0){const _0x230087=_0x1a4a;RenderEntity[_0x230087(0x19e)](this,_0x246cf0),this['vs']=_0x1124d8,this['fs']=_0x5f159e;}S3MPointCloudRenderEntity[_0x22f41c(0x1b7)]=Object[_0x22f41c(0x190)](RenderEntity['prototype']),S3MPointCloudRenderEntity[_0x22f41c(0x1b7)][_0x22f41c(0x1ad)]=RenderEntity;function getOpaqueRenderState$2(){const _0x26845a=_0x22f41c;return Geoworld[_0x26845a(0x1c7)]['fromCache']({'cull':{'enabled':!![]},'depthTest':{'enabled':!![],'func':Geoworld['DepthFunction'][_0x26845a(0x1b0)]}});}let hypMinMaxValueScratch$2=new Geoworld['Cartesian4'](),hypOpacityIntervalFillModeScratch$2=new Geoworld[(_0x22f41c(0x18c))](),swipRegionScratch$2=new Geoworld[(_0x22f41c(0x18c))]();function getUniformMap$2(_0x11b09e,_0x8614f6){const _0x5eafaf=_0x22f41c;let _0x3b95c0=_0x8614f6[_0x5eafaf(0x175)],_0x454c96={'uGeoMatrix':function(){const _0x3fc3cc=_0x5eafaf;return _0x8614f6[_0x3fc3cc(0x182)];},'uInverseGeoMatrix':function(){const _0x1e4ce0=_0x5eafaf;return _0x8614f6[_0x1e4ce0(0x191)];},'uClipMode':function(){const _0x2ce685=_0x5eafaf;return _0x11b09e[_0x2ce685(0x187)];},'uClipPlanes':function(){const _0x584b1f=_0x5eafaf;return _0x11b09e[_0x584b1f(0x17d)];},'uUseWValue':function(){const _0x5db891=_0x5eafaf;return _0x8614f6[_0x5db891(0x1bb)];},'uHypsometricTexture':function(){const _0x7e9af0=_0x5eafaf;return _0x11b09e[_0x7e9af0(0x172)][_0x7e9af0(0x1ae)];},'uHypLineColor':function(){const _0x326501=_0x5eafaf;return _0x11b09e['_hypsometric'][_0x326501(0x1b6)][_0x326501(0x196)];},'uNoValueColor':function(){const _0x3aa1dc=_0x5eafaf;return _0x11b09e[_0x3aa1dc(0x172)][_0x3aa1dc(0x1b6)][_0x3aa1dc(0x194)];},'uMinMaxValue':function(){const _0x44a77d=_0x5eafaf;let _0x2363f5=_0x11b09e[_0x44a77d(0x172)]['setting'];return hypMinMaxValueScratch$2['x']=_0x2363f5[_0x44a77d(0x1b5)],hypMinMaxValueScratch$2['y']=_0x2363f5[_0x44a77d(0x1a0)],hypMinMaxValueScratch$2['z']=_0x2363f5[_0x44a77d(0x189)],hypMinMaxValueScratch$2['w']=_0x2363f5[_0x44a77d(0x1b2)],hypMinMaxValueScratch$2;},'uOpacityIntervalFillMode':function(){const _0x4dfc52=_0x5eafaf;let _0x270f64=_0x11b09e['_hypsometric']['setting'];return hypOpacityIntervalFillModeScratch$2['x']=_0x270f64['Opacity'],hypOpacityIntervalFillModeScratch$2['y']=_0x270f64[_0x4dfc52(0x188)],hypOpacityIntervalFillModeScratch$2['z']=_0x270f64[_0x4dfc52(0x1a1)],hypOpacityIntervalFillModeScratch$2;},'uSwipeRegion':function(){const _0x21348a=_0x5eafaf,_0x261d4b=_0x11b09e[_0x21348a(0x177)];return swipRegionScratch$2['x']=_0x11b09e[_0x21348a(0x176)]['x']*_0x261d4b[_0x21348a(0x1a7)],swipRegionScratch$2['y']=(0x1-_0x11b09e[_0x21348a(0x176)]['y'])*_0x261d4b['drawingBufferHeight'],swipRegionScratch$2['z']=_0x11b09e[_0x21348a(0x176)]['z']*_0x261d4b['drawingBufferWidth'],swipRegionScratch$2['w']=(0x1-_0x11b09e[_0x21348a(0x176)]['w'])*_0x261d4b['drawingBufferHeight'],swipRegionScratch$2;},'uBottom':function(){const _0x36a9e0=_0x5eafaf;return _0x11b09e['style3D'][_0x36a9e0(0x17e)];},'uFillForeColor':function(){const _0x272102=_0x5eafaf;return _0x11b09e[_0x272102(0x19a)]['fillForeColor'];},'uPointCloudSize':function(){const _0x2e162b=_0x5eafaf;return _0x11b09e[_0x2e162b(0x19a)][_0x2e162b(0x18d)];}},_0x887678=_0x3b95c0['compressOptions'];return (_0x887678&_0x1d3947[_0x5eafaf(0x19b)])===_0x1d3947[_0x5eafaf(0x19b)]&&(_0x454c96['decode_position_min']=function(){const _0x52ded8=_0x5eafaf;return _0x3b95c0[_0x52ded8(0x180)];},_0x454c96['decode_position_normConstant']=function(){const _0x46eb27=_0x5eafaf;return _0x3b95c0[_0x46eb27(0x17b)];}),(_0x887678&_0x1d3947[_0x5eafaf(0x18b)])===_0x1d3947[_0x5eafaf(0x18b)]&&(_0x454c96[_0x5eafaf(0x192)]=function(){const _0x3129c9=_0x5eafaf;return _0x3b95c0[_0x3129c9(0x1bf)];}),(_0x887678&_0x1d3947[_0x5eafaf(0x178)])===_0x1d3947[_0x5eafaf(0x178)]&&(_0x3b95c0[_0x5eafaf(0x179)]['length']>0x0&&(_0x454c96[_0x5eafaf(0x184)]=function(){const _0x4275c1=_0x5eafaf;return _0x3b95c0[_0x4275c1(0x1c6)][0x0];},_0x454c96[_0x5eafaf(0x1ca)]=function(){return _0x3b95c0['texCoordCompressConstant'][0x0];}),_0x3b95c0['texCoordCompressConstant'][_0x5eafaf(0x1aa)]>0x1&&(_0x454c96[_0x5eafaf(0x199)]=function(){const _0x233d2f=_0x5eafaf;return _0x3b95c0[_0x233d2f(0x1c6)][0x1];},_0x454c96[_0x5eafaf(0x19c)]=function(){return _0x3b95c0['texCoordCompressConstant'][0x1];}),_0x3b95c0[_0x5eafaf(0x179)][_0x5eafaf(0x1aa)]>0x2&&(_0x454c96[_0x5eafaf(0x18e)]=function(){const _0x4ec404=_0x5eafaf;return _0x3b95c0[_0x4ec404(0x1c6)][0x2];},_0x454c96[_0x5eafaf(0x19f)]=function(){return _0x3b95c0['texCoordCompressConstant'][0x2];}),_0x3b95c0[_0x5eafaf(0x179)][_0x5eafaf(0x1aa)]>0x3&&(_0x454c96[_0x5eafaf(0x1c5)]=function(){return _0x3b95c0['minTexCoordValue'][0x3];},_0x454c96['decode_texCoord3_normConstant']=function(){return _0x3b95c0['texCoordCompressConstant'][0x3];}),_0x3b95c0[_0x5eafaf(0x179)][_0x5eafaf(0x1aa)]>0x4&&(_0x454c96[_0x5eafaf(0x181)]=function(){const _0x37e99b=_0x5eafaf;return _0x3b95c0[_0x37e99b(0x1c6)][0x4];},_0x454c96['decode_texCoord4_normConstant']=function(){return _0x3b95c0['texCoordCompressConstant'][0x4];}),_0x3b95c0[_0x5eafaf(0x179)]['length']>0x5&&(_0x454c96[_0x5eafaf(0x19d)]=function(){const _0x52725b=_0x5eafaf;return _0x3b95c0[_0x52725b(0x1c6)][0x5];},_0x454c96['decode_texCoord5_normConstant']=function(){const _0xe95f7e=_0x5eafaf;return _0x3b95c0[_0xe95f7e(0x179)][0x5];}),_0x3b95c0[_0x5eafaf(0x179)][_0x5eafaf(0x1aa)]>0x6&&(_0x454c96[_0x5eafaf(0x183)]=function(){const _0x1b8615=_0x5eafaf;return _0x3b95c0[_0x1b8615(0x1c6)][0x6];},_0x454c96[_0x5eafaf(0x1b1)]=function(){const _0x4ccf04=_0x5eafaf;return _0x3b95c0[_0x4ccf04(0x179)][0x6];}),_0x3b95c0['texCoordCompressConstant'][_0x5eafaf(0x1aa)]>0x7&&(_0x454c96[_0x5eafaf(0x1ba)]=function(){return _0x3b95c0['minTexCoordValue'][0x7];},_0x454c96['decode_texCoord7_normConstant']=function(){const _0x55b752=_0x5eafaf;return _0x3b95c0[_0x55b752(0x179)][0x7];})),_0x454c96;}S3MPointCloudRenderEntity[_0x22f41c(0x1b7)][_0x22f41c(0x1c1)]=function(){const _0x5d7dda=_0x22f41c;if(Geoworld[_0x5d7dda(0x195)](this[_0x5d7dda(0x18f)])||this['vertexBufferToCreate'][_0x5d7dda(0x1aa)]!==0x0||this['indexBufferToCreate'][_0x5d7dda(0x1aa)]!==0x0||this[_0x5d7dda(0x1c4)][_0x5d7dda(0x1aa)]!==0x0)return;let _0x2b144b=this[_0x5d7dda(0x1b3)],_0x1f3bbf=_0x2b144b[_0x5d7dda(0x177)],_0x35f3a3=this[_0x5d7dda(0x175)],_0x426223=this['arrIndexPackage'],_0x505ff9=_0x35f3a3['vertexAttributes'];this[_0x5d7dda(0x1bd)]=new Geoworld[(_0x5d7dda(0x1c8))]({'context':_0x1f3bbf,'attributes':_0x505ff9}),this[_0x5d7dda(0x18f)]=new Geoworld[(_0x5d7dda(0x1a9))]({'primitiveType':Geoworld[_0x5d7dda(0x198)][_0x5d7dda(0x1b9)],'modelMatrix':this['modelMatrix'],'boundingVolume':Geoworld[_0x5d7dda(0x17c)]['clone'](this[_0x5d7dda(0x1a3)]),'vertexArray':this['vertexArray'],'shaderProgram':this[_0x5d7dda(0x1bc)],'pass':Geoworld[_0x5d7dda(0x185)]['OPAQUE'],'renderState':getOpaqueRenderState$2(),'count':_0x35f3a3[_0x5d7dda(0x1a5)]}),this['colorCommand'][_0x5d7dda(0x197)]=getUniformMap$2(_0x2b144b,this),this[_0x5d7dda(0x175)]=undefined,this[_0x5d7dda(0x1a2)]=undefined,this['vs']=undefined,this['fs']=undefined,this[_0x5d7dda(0x1c2)]=!![];},S3MPointCloudRenderEntity[_0x22f41c(0x1b7)][_0x22f41c(0x17f)]=function(_0x579ebf,_0x4f9630){const _0x100dfa=_0x22f41c;if(!this[_0x100dfa(0x1c2)]){this[_0x100dfa(0x1a8)](_0x579ebf),this[_0x100dfa(0x1c9)](_0x579ebf),this[_0x100dfa(0x1c1)](_0x579ebf);return;}_0x579ebf[_0x100dfa(0x1b8)][_0x100dfa(0x1ab)](this[_0x100dfa(0x18f)]);},S3MPointCloudRenderEntity['prototype']['isDestroyed']=function(){return ![];},S3MPointCloudRenderEntity[_0x22f41c(0x1b7)][_0x22f41c(0x171)]=function(){const _0x17cd0b=_0x22f41c;return this[_0x17cd0b(0x1bc)]=this[_0x17cd0b(0x1bc)]&&!this[_0x17cd0b(0x1bc)]['isDestroyed']()&&this[_0x17cd0b(0x1bc)]['destroy'](),this[_0x17cd0b(0x1bd)]=this['vertexArray']&&!this[_0x17cd0b(0x1bd)][_0x17cd0b(0x1a4)]()&&this[_0x17cd0b(0x1bd)][_0x17cd0b(0x171)](),this[_0x17cd0b(0x186)]=this[_0x17cd0b(0x186)]&&!this[_0x17cd0b(0x186)][_0x17cd0b(0x1a4)]()&&this[_0x17cd0b(0x186)][_0x17cd0b(0x171)](),this[_0x17cd0b(0x18f)]=undefined,this[_0x17cd0b(0x175)]=null,this[_0x17cd0b(0x1a2)]=null,this[_0x17cd0b(0x174)]=undefined,this['vs']=undefined,this['fs']=undefined,Geoworld[_0x17cd0b(0x1be)](this);}; var _0x3fa0=['132263DSpaxI','97157aqQNQp','328pRpjSo','305mMXITZ','164779vyPBim','1huflEw','1vUaNOb','1AZCgCc','103205fTincM','192813rgkMDH','2339gezutc','39AggZLA'];(function(_0x2d18a3,_0x1a4bc7){var _0x29fe65=_0x2df9;while(!![]){try{var _0x5da89f=parseInt(_0x29fe65(0xea))+-parseInt(_0x29fe65(0xe8))*parseInt(_0x29fe65(0xf1))+-parseInt(_0x29fe65(0xf0))*parseInt(_0x29fe65(0xef))+-parseInt(_0x29fe65(0xec))*parseInt(_0x29fe65(0xeb))+parseInt(_0x29fe65(0xe9))+-parseInt(_0x29fe65(0xee))*-parseInt(_0x29fe65(0xe7))+-parseInt(_0x29fe65(0xe6))*-parseInt(_0x29fe65(0xed));if(_0x5da89f===_0x1a4bc7)break;else _0x2d18a3['push'](_0x2d18a3['shift']());}catch(_0x219c6c){_0x2d18a3['push'](_0x2d18a3['shift']());}}}(_0x3fa0,0x295b6));function _0x2df9(_0x183c12,_0x4d42cc){_0x183c12=_0x183c12-0xe6;var _0x3fa017=_0x3fa0[_0x183c12];return _0x3fa017;}var _0x42c2ef = 'attribute\x20vec4\x20aPosition;\x0aattribute\x20vec3\x20aNormal;\x0aattribute\x20vec4\x20aTexCoord0;\x0aattribute\x20vec4\x20aColor;\x0auniform\x20float\x20uTimeVal;\x0auniform\x20float\x20uScale;\x0auniform\x20float\x20uScroll;\x0auniform\x20vec2\x20uBumpSpeed;\x0auniform\x20mat4\x20uGeoMatrix;\x0a\x0avarying\x20vec2\x20vNoiseCoord;\x0avarying\x20vec3\x20vProjectionCoord;\x0avarying\x20vec3\x20vEyeDir;\x0avarying\x20vec3\x20vNormal;\x0avarying\x20vec4\x20vColor;\x0avarying\x20vec4\x20vPositionMC;\x0avarying\x20float\x20fSelected;\x0avarying\x20vec3\x20vPositionEC;\x0a\x0avoid\x20main()\x0a{\x0a\x09vec4\x20oPos\x20=\x20czm_modelViewProjection\x20*\x20aPosition;\x0a\x09vPositionMC\x20=\x20uGeoMatrix\x20*\x20aPosition;\x0a\x09vPositionEC\x20=\x20(czm_modelView\x20*\x20vPositionMC).xyz;\x0a\x09mat4\x20scalemat\x20=\x20mat4(0.5,\x200.0,\x200.0,\x200.0,\x0a\x09\x09\x090.0,\x200.5,\x200.0,\x200.0,\x0a\x09\x09\x090.0,\x200.0,\x200.5,\x200.0,\x0a\x09\x09\x090.5,\x200.5,\x200.5,\x201.0);\x0a\x09vec4\x20proj\x20=\x20scalemat\x20*\x20oPos;\x0a\x09vProjectionCoord\x20=\x20proj.xyw;\x0a\x09vNoiseCoord.xy\x20=\x20aTexCoord0.xy\x20*\x20uScale\x20+\x20uBumpSpeed\x20*\x20uTimeVal;\x0a\x09vec4\x20cameraPos\x20=\x20czm_inverseModel\x20*\x20vec4(czm_viewerPositionWC,\x201.0);\x0a\x09vEyeDir\x20=\x20aPosition.xyz\x20-\x20cameraPos.xyz;\x0a\x09vNormal\x20=\x20aNormal.xyz;\x0a\x09gl_Position\x20=\x20oPos;\x0a\x09vec4\x20vertexColor\x20=\x20vec4(1.0);\x0a\x20\x20\x20\x20vertexColor\x20=\x20aColor;\x0a\x20\x20\x20\x20vColor\x20=\x20vertexColor;\x0a}'; var _0x36f0=['193620aZzJFd','1337042RzHEjY','uniform\x20sampler2D\x20uReflectMap;\x0auniform\x20sampler2D\x20uNoiseMap;\x0auniform\x20vec4\x20uTintColour;\x0auniform\x20vec4\x20uWaterColour;\x0auniform\x20vec4\x20uFillForeColor;\x0auniform\x20float\x20uFresnelPower;\x0auniform\x20float\x20uMinFresnel;\x0auniform\x20float\x20uMaxFresnel;\x0auniform\x20float\x20uNoiseScale;\x0auniform\x20float\x20uWaterBrightness;\x0avarying\x20vec2\x20vNoiseCoord;\x0avarying\x20vec3\x20vProjectionCoord;\x0avarying\x20vec3\x20vEyeDir;\x0avarying\x20vec3\x20vNormal;\x0avarying\x20vec4\x20vColor;\x0avarying\x20vec4\x20vSecondColor;\x0avarying\x20vec4\x20vPositionMC;\x0avarying\x20vec3\x20vPositionEC;\x0a\x0a#ifdef\x20APPLY_SWIPE\x0a\x20\x20\x20\x20uniform\x20vec4\x20uSwipeRegion;\x0a#endif\x0a\x0a#ifdef\x20APPLY_SWIPE\x0a\x20\x20\x20\x20uniform\x20vec4\x20uSwipeRegion;\x0a\x20\x20\x20\x20void\x20rollerShutter(vec2\x20coord,\x20vec4\x20region)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20f\x20=\x20step(region.xw,\x20coord);\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20s\x20=\x20step(coord,\x20region.zy);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(f.x\x20*\x20f.y\x20*\x20s.x\x20*\x20s.y\x20<\x201.0)\x0a\x20\x20\x20\x20\x20\x20\x20\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}\x0a#endif\x0a\x0a#ifdef\x20CLIP\x0a\x20\x20\x20\x20uniform\x20float\x20uClipMode;\x0a\x20\x20\x20\x20uniform\x20vec4\x20uClipPlanes[6];\x0a\x20\x20\x20\x20float\x20getClipDistance(vec3\x20pos,\x20vec3\x20planeNormal,\x20float\x20disToOrigin)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20dot(planeNormal,\x20pos)\x20+\x20disToOrigin;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20clipBehindAllPlane(float\x20fBorderWidth,\x20vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20distance\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20result\x20=\x20-1.0;\x0a\x20\x20\x20\x20#ifdef\x20CLIPPLANE\x0a\x20\x20\x20\x20\x20\x20\x20\x20distance\x20=\x20getClipDistance(vertex.xyz,\x20uClipPlanes[0].xyz,\x20uClipPlanes[0].w);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(distance\x20<\x200.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if\x20(distance\x20<\x20fBorderWidth)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20for(int\x20i\x20=\x200;\x20i\x20<\x206;\x20i++)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20distance\x20=\x20getClipDistance(vertex.xyz,\x20uClipPlanes[i].xyz,\x20uClipPlanes[i].w);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if(distance\x20<\x200.0)\x0a\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\x20\x20\x20\x20return\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(distance\x20<\x20fBorderWidth)\x0a\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\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20result;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20clipBehindAnyPlane(float\x20fBorderWidth,\x20vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20result\x20=\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20for(int\x20i\x20=\x200;\x20i\x20<\x206;\x20i++)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20distance\x20=\x20getClipDistance(vertex.xyz,\x20uClipPlanes[i].xyz,\x20uClipPlanes[i].w);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if((distance\x20+\x20fBorderWidth)\x20<\x200.0)\x0a\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\x20\x20\x20\x20return\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(distance\x20<\x200.0)\x0a\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\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20result;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20float\x20clipAnythingButLine(float\x20fBorderWidth,\x20vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20result\x20=\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20for(int\x20i\x20=\x200;\x20i\x20<\x206;\x20i++)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20distance\x20=\x20getClipDistance(vertex.xyz,\x20uClipPlanes[i].xyz,\x20uClipPlanes[i].w);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if(distance\x20<\x200.0)\x0a\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\x20\x20\x20\x20return\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(distance\x20<\x20fBorderWidth)\x0a\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\x20\x20\x20\x20result\x20=\x200.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20result;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20vec4\x20clip(vec4\x20vertex)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(uClipMode\x20<\x200.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#ifdef\x20GL_OES_standard_derivatives\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dxc\x20=\x20abs(dFdx(vertex.x));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20dyc\x20=\x20abs(dFdy(vertex.y));\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20fBorderWidth\x20=\x20max(dxc,\x20dyc);\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20fBorderWidth\x20=\x201.0;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20clipResult\x20=\x201.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(uClipMode\x20<\x201.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clipResult\x20=\x20clipBehindAnyPlane(fBorderWidth,\x20vertex);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(uClipMode\x20<\x202.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clipResult\x20=\x20clipBehindAllPlane(fBorderWidth,\x20vertex);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20else\x20if(uClipMode\x20<\x203.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clipResult\x20=\x20clipAnythingButLine(fBorderWidth,\x20vertex);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20if(clipResult\x20<\x20-0.5)\x0a\x20\x20\x20\x20\x20\x20\x20\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\x20else\x20if(clipResult\x20<\x200.5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20vec4(1.0);\x0a\x20\x20\x20\x20}\x0a#endif\x0a\x0avec4\x20AdjSaturation(in\x20vec4\x20inputColor,\x20in\x20float\x20saturation)\x0a{\x0a\x09vec3\x20lumCoeff\x20=\x20vec3(0.2125,\x200.7154,\x200.0721);\x0a\x09vec3\x20intensity\x20=\x20vec3(dot(inputColor.rgb,\x20lumCoeff));\x0a\x09vec3\x20tempColor\x20=\x20mix(intensity,\x20inputColor.rgb,\x20saturation);\x0a\x09return\x20vec4(tempColor,\x201.0);\x0a}\x0avoid\x20main()\x0a{\x0a#ifdef\x20APPLY_SWIPE\x20\x0a\x20\x20\x20\x20rollerShutter(gl_FragCoord.xy,\x20uSwipeRegion);\x0a#endif\x0a\x20\x20\x20\x20if(vColor.a\x20<\x200.1)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20discard;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vColor;\x0a\x20\x20\x20\x20vec2\x20final\x20=\x20vProjectionCoord.xy\x20/\x20vProjectionCoord.z;\x0a\x20\x20\x20\x20vec3\x20noiseNormal\x20=\x20(texture2D(uNoiseMap,\x20(vNoiseCoord.xy\x20/\x205.0)).rgb\x20-\x200.5).rbg\x20*\x20uNoiseScale;\x0a\x20\x20\x20\x20final\x20+=\x20noiseNormal.xz;\x0a\x20\x20\x20\x20float\x20realMinFresnel,\x20realMaxFresnel;\x0a\x20\x20\x20\x20if(uMinFresnel\x20<\x20uMaxFresnel)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20realMinFresnel\x20=\x20uMinFresnel;\x0a\x20\x20\x20\x20\x20\x20\x20\x20realMaxFresnel\x20=\x20uMaxFresnel;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20else\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20realMinFresnel\x20=\x20uMaxFresnel;\x0a\x20\x20\x20\x20\x20\x20\x20\x20realMaxFresnel\x20=\x20uMinFresnel;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20float\x20fresnelBias\x20=\x20realMinFresnel;\x0a\x20\x20\x20\x20float\x20fresnelScale\x20=\x20(realMaxFresnel\x20-\x20realMinFresnel)\x20/\x201.0;\x0a\x20\x20\x20\x20float\x20fresnel\x20=\x20fresnelBias\x20+\x20fresnelScale\x20*\x20pow(1.0\x20+\x20dot(normalize(vEyeDir),\x20vNormal),\x20uFresnelPower);\x0a\x20\x20\x20\x20fresnel\x20=\x20clamp(fresnel,\x200.05,\x200.95);\x0a\x20\x20\x20\x20vec4\x20reflectionColour\x20=\x20texture2D(uReflectMap,\x20final);\x0a\x20\x20\x20\x20vec4\x20refractionColour\x20=\x20reflectionColour\x20+\x20uTintColour;\x0a\x20\x20\x20\x20vec4\x20resultColour\x20=\x20mix(uWaterColour,\x20reflectionColour,\x20fresnel);\x0a\x20\x20\x20\x20resultColour\x20=\x20AdjSaturation(resultColour,\x201.0);\x0a\x20\x20\x20\x20resultColour\x20=\x20resultColour\x20*\x20uWaterBrightness;\x0a\x20\x20\x20\x20resultColour.a\x20=\x20uWaterColour.a;\x0a\x20\x20\x20\x20resultColour\x20*=\x20uFillForeColor;\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20*\x20resultColour;\x0a#ifdef\x20CLIP\x0a\x20\x20\x20\x20gl_FragColor\x20*=\x20clip(vec4(vPositionEC,\x201.0));\x0a#endif\x0a\x20\x20\x20\x20if(gl_FragColor.a\x20<\x200.1)\x0a\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20discard;\x0a\x20\x20\x20\x20}\x0a\x0a}','781424aKwTkE','737238MHRaoa','1148708OTrOPz','155159FjzMhP','5zThRUH','5645PRSNDx'];var _0x4f2f83=_0xc686;function _0xc686(_0x345b82,_0x170e86){_0x345b82=_0x345b82-0x181;var _0x36f0d7=_0x36f0[_0x345b82];return _0x36f0d7;}(function(_0x26b9e5,_0x3b1fce){var _0x3b1ed9=_0xc686;while(!![]){try{var _0x493b6a=-parseInt(_0x3b1ed9(0x188))+parseInt(_0x3b1ed9(0x184))*-parseInt(_0x3b1ed9(0x185))+parseInt(_0x3b1ed9(0x187))+-parseInt(_0x3b1ed9(0x186))+parseInt(_0x3b1ed9(0x183))+parseInt(_0x3b1ed9(0x181))+parseInt(_0x3b1ed9(0x182));if(_0x493b6a===_0x3b1fce)break;else _0x26b9e5['push'](_0x26b9e5['shift']());}catch(_0x134161){_0x26b9e5['push'](_0x26b9e5['shift']());}}}(_0x36f0,0xb546c));var _0x38ad37 = _0x4f2f83(0x189); const _0x119c=['context','material','minFresnel','indexBuffer','waterBrightness','ready','noise','Pass','update','vertexArray','create','colorCommand','prototype','VertexArray','shaderProgram','getUniformMapCallback','shaderProgramToCreate','length','29jCquMa','addWaterPlane','vertexBufferToCreate','indexBufferToCreate','pickInfo','vertexAttributes','isDestroyed','_clipMode','createBuffers','waterTime','50JPjOxS','OPAQUE','_swipeRegion','scale','instanceCount','vertexPackage','drawingBufferWidth','LESS_OR_EQUAL','batchTableDirty','_clipPlane','3055jmpiBy','commandList','createShaderProgram','4FtRjKQ','arrIndexPackage','clone','defaultTexture','boundingVolume','bumpSpeed','3700710gEqKTE','_waterParameters','timeVal','bReflect','createPickIds','1446969rINcIp','destroy','batchTable','18730lNJMlS','167GByFbP','geoMatrix','Cartesian4','getColorTexture','2854hxoGTB','BoundingSphere','bTransparentSorting','BlendingState','style3D','selectedColor','tintColour','noiseScale','createCommand','RenderState','waterIndex','drawingBufferHeight','push','layer','modelMatrix','selectionInfoMap','constructor','1183498NxeqXL','primitiveType','132613abcxNz','scroll','maxFresnel','destroyObject'];const _0x4ef606=_0x4fa5;(function(_0x4ffba8,_0x2ac9f0){const _0x40ba44=_0x4fa5;while(!![]){try{const _0x16262b=-parseInt(_0x40ba44(0x92))*parseInt(_0x40ba44(0xb7))+parseInt(_0x40ba44(0xb8))*-parseInt(_0x40ba44(0xbc))+parseInt(_0x40ba44(0x9c))*parseInt(_0x40ba44(0xa6))+-parseInt(_0x40ba44(0xb4))+-parseInt(_0x40ba44(0xcd))+parseInt(_0x40ba44(0xa9))*parseInt(_0x40ba44(0xcf))+parseInt(_0x40ba44(0xaf));if(_0x16262b===_0x2ac9f0)break;else _0x4ffba8['push'](_0x4ffba8['shift']());}catch(_0x4bbe36){_0x4ffba8['push'](_0x4ffba8['shift']());}}}(_0x119c,0xb31d9));function _0x4fa5(_0x583df0,_0x35b2f1){_0x583df0=_0x583df0-0x7d;let _0x119cad=_0x119c[_0x583df0];return _0x119cad;}function S3MWaterRenderEntity(_0xeeeddd){const _0x4a32c0=_0x4fa5;RenderEntity['call'](this,_0xeeeddd),this['vs']=_0x42c2ef,this['fs']=_0x38ad37,this['waterIndex']=-0x1,this[_0x4a32c0(0x9b)]=0x0;}S3MWaterRenderEntity[_0x4ef606(0x8c)]=Object[_0x4ef606(0x8a)](RenderEntity[_0x4ef606(0x8c)]),S3MWaterRenderEntity[_0x4ef606(0x8c)][_0x4ef606(0xcc)]=RenderEntity;function getOpaqueRenderState$3(){const _0x46fd40=_0x4ef606;return Geoworld[_0x46fd40(0xc5)]['fromCache']({'cull':{'enabled':!![]},'depthTest':{'enabled':!![],'func':Geoworld['DepthFunction'][_0x46fd40(0xa3)]},'blending':Geoworld[_0x46fd40(0xbf)]['ALPHA_BLEND']});}let swipRegionScratch$3=new Geoworld[(_0x4ef606(0xba))]();function getUniformMap$3(_0x3282bb,_0x111cd5,_0x100850){return {'uGeoMatrix':function(){const _0x5ee733=_0x4fa5;return _0x100850[_0x5ee733(0xb9)];},'uFillForeColor':function(){const _0x1f385f=_0x4fa5;return _0x111cd5[_0x1f385f(0xc0)]['fillForeColor'];},'uSelectedColor':function(){const _0x550af0=_0x4fa5;return _0x111cd5[_0x550af0(0xc1)];},'uClipMode':function(){const _0x586644=_0x4fa5;return _0x111cd5[_0x586644(0x99)];},'uClipPlanes':function(){const _0x12014a=_0x4fa5;return _0x111cd5[_0x12014a(0xa5)];},'uSwipeRegion':function(){const _0x2eeec0=_0x4fa5,_0x301988=_0x111cd5['context'];return swipRegionScratch$3['x']=_0x111cd5[_0x2eeec0(0x9e)]['x']*_0x301988[_0x2eeec0(0xa2)],swipRegionScratch$3['y']=(0x1-_0x111cd5[_0x2eeec0(0x9e)]['y'])*_0x301988[_0x2eeec0(0xc7)],swipRegionScratch$3['z']=_0x111cd5[_0x2eeec0(0x9e)]['z']*_0x301988[_0x2eeec0(0xa2)],swipRegionScratch$3['w']=(0x1-_0x111cd5[_0x2eeec0(0x9e)]['w'])*_0x301988[_0x2eeec0(0xc7)],swipRegionScratch$3;},'uReflectMap':function(){const _0x1ed32b=_0x4fa5;let _0x12f4b7=_0x111cd5[_0x1ed32b(0x80)]['reflectFramebuffer']['sceneFramebuffer']['getFramebuffer']();if(!_0x12f4b7)return _0x111cd5[_0x1ed32b(0x80)][_0x1ed32b(0xac)];return _0x12f4b7[_0x1ed32b(0xbb)](0x0);},'uNoiseMap':function(){const _0x244e7e=_0x4fa5;return _0x111cd5[_0x244e7e(0x80)]['defaultTexture'];},'uTimeVal':function(){const _0x2c38d6=_0x4fa5;let _0x361fbb=_0x111cd5[_0x2c38d6(0xb0)][_0x2c38d6(0xb1)]*0.01;return _0x100850['waterTime']=_0x100850['waterTime']>0x1?_0x361fbb:_0x100850[_0x2c38d6(0x9b)]+_0x361fbb,_0x100850['waterTime'];},'uScale':function(){const _0x390410=_0x4fa5;return _0x111cd5[_0x390410(0xb0)][_0x390410(0x9f)];},'uScroll':function(){const _0x523e52=_0x4fa5;return _0x111cd5[_0x523e52(0xb0)][_0x523e52(0x7d)];},'uNoise':function(){const _0xc046=_0x4fa5;return _0x111cd5[_0xc046(0xb0)][_0xc046(0x86)];},'uBumpSpeed':function(){const _0x240d67=_0x4fa5;return _0x111cd5['_waterParameters'][_0x240d67(0xae)];},'uFresnelPower':function(){const _0x2b4906=_0x4fa5;return _0x111cd5[_0x2b4906(0xb0)]['fresnelPower'];},'uMinFresnel':function(){const _0x5a48a5=_0x4fa5;return _0x111cd5[_0x5a48a5(0xb0)][_0x5a48a5(0x82)];},'uMaxFresnel':function(){const _0x494b5f=_0x4fa5;return _0x111cd5[_0x494b5f(0xb0)][_0x494b5f(0x7e)];},'uTintColour':function(){const _0x31c845=_0x4fa5;return _0x111cd5[_0x31c845(0xb0)][_0x31c845(0xc2)];},'uNoiseScale':function(){const _0x269324=_0x4fa5;return _0x111cd5[_0x269324(0xb0)][_0x269324(0xc3)];},'uWaterColour':function(){const _0x502f4b=_0x4fa5;return _0x111cd5[_0x502f4b(0xb0)]['waterColour'];},'uWaterBrightness':function(){const _0x2d5a63=_0x4fa5;return _0x111cd5[_0x2d5a63(0xb0)][_0x2d5a63(0x84)];}};}S3MWaterRenderEntity[_0x4ef606(0x8c)][_0x4ef606(0xc4)]=function(){const _0x31de38=_0x4ef606;if(Geoworld['defined'](this[_0x31de38(0x8b)])||this[_0x31de38(0x94)]['length']!==0x0||this[_0x31de38(0x95)][_0x31de38(0x91)]!==0x0||this[_0x31de38(0x90)][_0x31de38(0x91)]!==0x0)return;let _0x4398ff=this['layer'],_0x295ffd=_0x4398ff[_0x31de38(0x80)],_0x36f92b=this[_0x31de38(0xa1)],_0x211294=this[_0x31de38(0xaa)],_0x4f6533=_0x36f92b[_0x31de38(0x97)];if(_0x211294[_0x31de38(0x91)]<0x1)return;let _0x1b5d2c=_0x211294[0x0],_0x238449=this[_0x31de38(0x81)];this[_0x31de38(0x89)]=new Geoworld[(_0x31de38(0x8d))]({'context':_0x295ffd,'attributes':_0x4f6533,'indexBuffer':_0x1b5d2c[_0x31de38(0x83)]}),this['colorCommand']=new Geoworld['DrawCommand']({'primitiveType':_0x1b5d2c[_0x31de38(0xce)],'modelMatrix':this[_0x31de38(0xca)],'boundingVolume':Geoworld[_0x31de38(0xbd)][_0x31de38(0xab)](this[_0x31de38(0xad)]),'vertexArray':this[_0x31de38(0x89)],'shaderProgram':this[_0x31de38(0x8e)],'pass':_0x238449[_0x31de38(0xbe)]?Geoworld[_0x31de38(0x87)]['TRANSLUCENT']:Geoworld[_0x31de38(0x87)][_0x31de38(0x9d)],'renderState':_0x238449[_0x31de38(0xbe)]?getTransparentRenderState():getOpaqueRenderState$3(),'instanceCount':_0x36f92b[_0x31de38(0xa0)]});let _0xcfc3b9=getUniformMap$3(_0x238449,_0x4398ff,this);this[_0x31de38(0x8b)]['uniformMap']=this[_0x31de38(0xb6)][_0x31de38(0x8f)]()(_0xcfc3b9),this[_0x31de38(0xa1)]=undefined,this[_0x31de38(0xaa)]=undefined,this['vs']=undefined,this['fs']=undefined,this[_0x31de38(0x85)]=!![];};function addWaterPlane(_0x280b39,_0x56a9c0){const _0x516469=_0x4ef606;let _0x1eb671={'boundingVolume':_0x280b39[_0x516469(0xad)],'distance':_0x56a9c0[_0x516469(0xc0)]['bottomAltitude']+_0x56a9c0[_0x516469(0xb0)]['averageHeight']};_0x280b39['waterIndex']=_0x56a9c0[_0x516469(0x93)](_0x1eb671);}S3MWaterRenderEntity[_0x4ef606(0x8c)]['update']=function(_0x36f59d,_0x2766bb){const _0x50340=_0x4ef606;if(_0x36f59d['camera'][_0x50340(0xb2)])return;if(!this['ready']){this['createBatchTable'](_0x36f59d),this[_0x50340(0xb3)](),this[_0x50340(0x9a)](_0x36f59d),this[_0x50340(0xa8)](_0x36f59d),this['createCommand'](_0x36f59d),this['initLayerSetting'](_0x2766bb),addWaterPlane(this,_0x2766bb);return;}this[_0x50340(0xa4)]&&(this['updateBatchTableAttributes'](),this['batchTableDirty']=![]),this[_0x50340(0xb6)][_0x50340(0x88)](_0x36f59d),_0x36f59d[_0x50340(0xa7)][_0x50340(0xc8)](this[_0x50340(0x8b)]);},S3MWaterRenderEntity[_0x4ef606(0x8c)][_0x4ef606(0x98)]=function(){return ![];},S3MWaterRenderEntity[_0x4ef606(0x8c)][_0x4ef606(0xb5)]=function(){const _0x42d0=_0x4ef606;return this[_0x42d0(0x8e)]=this[_0x42d0(0x8e)]&&!this[_0x42d0(0x8e)][_0x42d0(0x98)]()&&this[_0x42d0(0x8e)][_0x42d0(0xb5)](),this[_0x42d0(0x89)]=this['vertexArray']&&!this[_0x42d0(0x89)][_0x42d0(0x98)]()&&this['vertexArray'][_0x42d0(0xb5)](),this[_0x42d0(0x81)]=this[_0x42d0(0x81)]&&!this['material'][_0x42d0(0x98)]()&&this[_0x42d0(0x81)][_0x42d0(0xb5)](),this['batchTable']=this[_0x42d0(0xb6)]&&!this['batchTable'][_0x42d0(0x98)]()&&this[_0x42d0(0xb6)][_0x42d0(0xb5)](),this[_0x42d0(0xc6)]>-0x1&&this[_0x42d0(0xc9)]['removeWaterPlane'](this['waterIndex']),this[_0x42d0(0x8b)]=undefined,this['vertexPackage']=null,this['arrIndexPackage']=null,this['modelMatrix']=undefined,this[_0x42d0(0x96)]=undefined,this[_0x42d0(0xcb)]=undefined,this['vs']=undefined,this['fs']=undefined,Geoworld[_0x42d0(0x7f)](this);}; const _0x5518=['1kYuRIw','49630IRReQd','589521cXYFPm','9glTMKK','7FYdJzP','184673syusdW','117485suJPie','115853ggTief','6359wMChdU','896782pcttlW'];(function(_0x5b17c2,_0x14f0df){const _0x3c26da=_0x12b1;while(!![]){try{const _0x2e9e65=-parseInt(_0x3c26da(0x1f2))+-parseInt(_0x3c26da(0x1eb))*parseInt(_0x3c26da(0x1ec))+parseInt(_0x3c26da(0x1ed))+parseInt(_0x3c26da(0x1f1))+parseInt(_0x3c26da(0x1ef))*parseInt(_0x3c26da(0x1f0))+-parseInt(_0x3c26da(0x1ea))+-parseInt(_0x3c26da(0x1ee))*parseInt(_0x3c26da(0x1e9));if(_0x2e9e65===_0x14f0df)break;else _0x5b17c2['push'](_0x5b17c2['shift']());}catch(_0x353b12){_0x5b17c2['push'](_0x5b17c2['shift']());}}}(_0x5518,0xd6e5d));function _0x12b1(_0x2add56,_0x3f8107){_0x2add56=_0x2add56-0x1e9;let _0x55185d=_0x5518[_0x2add56];return _0x55185d;}let S3MContentFactory={'OSGBFile':function(_0x2539e0){return new S3MObliqueRenderEntity(_0x2539e0);},'OSGBCacheFile':function(_0x4d1e8e){return new S3MCacheFileRenderEntity(_0x4d1e8e);},'PointCloudFile':function(_0x5e516c){return new S3MPointCloudRenderEntity(_0x5e516c);},'OSGBCacheFile_Water':function(_0x42adc6){return new S3MWaterRenderEntity(_0x42adc6);}}; const _0x4a60=['arrIndexPackage','fileName','materialCode','307374ACMfSy','keys','REPEAT','Matrix4','geodes','Cartesian3','vertexPackage','ambientColor','sphere','fromArray','SVC_Vertex','defined','diffuseColor','materials','TextureWrap','texMatrix','verticesCount','multiplyByScalar','BoundingSphere','specular','boundingSphere','minVerticesValue','specularColor','wrapS','skeletonNames','length','texmodmatrix','vertexAttributes','byteLength','arrayBufferView','fromPoints','rangeDataList','multiply','pageLods','CLAMP_TO_EDGE','Carteisan3','compressOptions','60648zRQHSj','geoMap','textureunitstate','1gtsbOc','rangeList','addTexture','hasOwnProperty','boundingVolume','radius','groupNode','Color','childTile','add','material','154271SOVpzb','rangeMode','parse','7lHyidR','diffuse','fromBoundingSpheres','wrapT','push','lerp','8256YtKLZt','256603gRQfKT','isTexBlock','modelMatrix','transform','typedArray','fileType','center','buffer','pickInfo','unpack','addressmode','byteOffset','12111PXXCwX','texturePackage','shininess','162962GcRBOV','edgeGeometry'];const _0x2b093d=_0xef64;(function(_0x93ff00,_0x1e8cfd){const _0x2f1f45=_0xef64;while(!![]){try{const _0x25b691=parseInt(_0x2f1f45(0xbd))+-parseInt(_0x2f1f45(0xa2))*parseInt(_0x2f1f45(0xb5))+parseInt(_0x2f1f45(0x94))*parseInt(_0x2f1f45(0x9f))+parseInt(_0x2f1f45(0xa8))+parseInt(_0x2f1f45(0xb8))+-parseInt(_0x2f1f45(0x91))+-parseInt(_0x2f1f45(0xa9));if(_0x25b691===_0x1e8cfd)break;else _0x93ff00['push'](_0x93ff00['shift']());}catch(_0x9ecd01){_0x93ff00['push'](_0x93ff00['shift']());}}}(_0x4a60,0x385b3));function _0xef64(_0x5360a2,_0x3ad00d){_0x5360a2=_0x5360a2-0x84;let _0x4a60b1=_0x4a60[_0x5360a2];return _0x4a60b1;}function S3MContentParser(){}function parseMaterial$2(_0xdfd399,_0x16c526,_0x1c4d36){const _0x14bc61=_0xef64;let _0x57ddbf={},_0xaaeb13=_0x16c526[_0x14bc61(0xca)][_0x14bc61(0x9e)];for(let _0x2c01cf=0x0,_0x39fafc=_0xaaeb13[_0x14bc61(0x85)];_0x2c01cf<_0x39fafc;_0x2c01cf++){let _0x3541fd=_0xaaeb13[_0x2c01cf][_0x14bc61(0x9e)],_0x501b99=_0x3541fd['id'],_0x11a1e5=new MaterialPass();_0x57ddbf[_0x501b99]=_0x11a1e5;let _0xadf00b=_0x3541fd['ambient'];_0x11a1e5[_0x14bc61(0xc4)]=new Geoworld['Color'](_0xadf00b['r'],_0xadf00b['g'],_0xadf00b['b'],_0xadf00b['a']);let _0x108772=_0x3541fd[_0x14bc61(0xa3)];_0x11a1e5[_0x14bc61(0xc9)]=new Geoworld['Color'](_0x108772['r'],_0x108772['g'],_0x108772['b'],_0x108772['a']);let _0x29dfad=_0x3541fd[_0x14bc61(0xd0)];_0x11a1e5[_0x14bc61(0xd3)]=new Geoworld[(_0x14bc61(0x9b))](_0x29dfad['r'],_0x29dfad['g'],_0x29dfad['b'],_0x29dfad['a']),_0x11a1e5[_0x14bc61(0xb7)]=_0x3541fd[_0x14bc61(0xb7)],_0x11a1e5['bTransparentSorting']=_0x3541fd['transparentsorting'];let _0x55901c=_0x3541fd['textureunitstates'],_0x58d3cb=_0x55901c['length'];for(let _0x3f1544=0x0;_0x3f1544<_0x58d3cb;_0x3f1544++){let _0x52c047=_0x55901c[_0x3f1544][_0x14bc61(0x93)],_0x2cf63b=_0x52c047['id'],_0x50fdd0=_0x52c047['addressmode']['u']===0x0?Geoworld[_0x14bc61(0xcb)]['REPEAT']:Geoworld[_0x14bc61(0xcb)][_0x14bc61(0x8e)],_0x40d9bb=_0x52c047[_0x14bc61(0xb3)]['v']===0x0?Geoworld['TextureWrap'][_0x14bc61(0xbf)]:Geoworld['TextureWrap'][_0x14bc61(0x8e)];_0x11a1e5[_0x14bc61(0xcc)]=Geoworld[_0x14bc61(0xc0)][_0x14bc61(0xb2)](_0x52c047[_0x14bc61(0x86)]);let _0x10d93e=_0x16c526[_0x14bc61(0xb6)][_0x2cf63b];if(Geoworld['defined'](_0x10d93e)&&_0x10d93e[_0x14bc61(0x89)][_0x14bc61(0x88)]>0x0){_0x10d93e[_0x14bc61(0xd4)]=_0x50fdd0,_0x10d93e[_0x14bc61(0xa5)]=_0x40d9bb;let _0x57b2f6=_0x1c4d36[_0x14bc61(0xbb)]+_0x2cf63b,_0x3fada4=_0xdfd399['textureCache']['getTexture'](_0x57b2f6);!Geoworld[_0x14bc61(0xc8)](_0x3fada4)&&(_0x10d93e[_0x14bc61(0xaa)]=![],_0x3fada4=new DDSTexture(_0xdfd399,_0x2cf63b,_0x10d93e),_0xdfd399['textureCache'][_0x14bc61(0x96)](_0x57b2f6,_0x3fada4)),_0x11a1e5['textures'][_0x14bc61(0xa6)](_0x3fada4);}}}return _0x57ddbf;}function calcBoundingVolumeForNormal(_0x43968f,_0x31d850){const _0xa5da6e=_0xef64;let _0xb897ff=new Geoworld[(_0xa5da6e(0xcf))](),_0x3ebe52=new Geoworld[(_0xa5da6e(0xc2))](),_0x266574=_0x43968f[_0xa5da6e(0x87)][0x0],_0x2292c4=_0x266574['componentsPerAttribute'],_0x1f7e37=Geoworld['defined'](_0x43968f[_0xa5da6e(0x90)])&&(_0x43968f['compressOptions']&_0x1d3947[_0xa5da6e(0xc7)])===_0x1d3947[_0xa5da6e(0xc7)],_0x3a4208=0x1,_0x61823e,_0x2b493e;_0x1f7e37?(_0x3a4208=_0x43968f['vertCompressConstant'],_0x61823e=new Geoworld[(_0xa5da6e(0xc2))](_0x43968f['minVerticesValue']['x'],_0x43968f[_0xa5da6e(0xd2)]['y'],_0x43968f[_0xa5da6e(0xd2)]['z']),_0x2b493e=new Uint16Array(_0x266574[_0xa5da6e(0xad)][_0xa5da6e(0xb0)],_0x266574[_0xa5da6e(0xad)][_0xa5da6e(0xb4)],_0x266574[_0xa5da6e(0xad)][_0xa5da6e(0x88)]/0x2)):_0x2b493e=new Float32Array(_0x266574[_0xa5da6e(0xad)]['buffer'],_0x266574[_0xa5da6e(0xad)][_0xa5da6e(0xb4)],_0x266574[_0xa5da6e(0xad)][_0xa5da6e(0x88)]/0x4);let _0x270b62=[];for(let _0x5b1a97=0x0;_0x5b1a97<_0x43968f[_0xa5da6e(0xcd)];_0x5b1a97++){Geoworld[_0xa5da6e(0xc2)][_0xa5da6e(0xc6)](_0x2b493e,_0x2292c4*_0x5b1a97,_0x3ebe52),_0x1f7e37&&(_0x3ebe52=Geoworld[_0xa5da6e(0xc2)][_0xa5da6e(0xce)](_0x3ebe52,_0x3a4208,_0x3ebe52),_0x3ebe52=Geoworld[_0xa5da6e(0xc2)][_0xa5da6e(0x9d)](_0x3ebe52,_0x61823e,_0x3ebe52)),_0x270b62['push'](Geoworld['Cartesian3']['clone'](_0x3ebe52));}return Geoworld['BoundingSphere'][_0xa5da6e(0x8a)](_0x270b62,_0xb897ff),Geoworld[_0xa5da6e(0xcf)][_0xa5da6e(0xac)](_0xb897ff,_0x31d850,_0xb897ff),_0x270b62[_0xa5da6e(0x85)]=0x0,_0xb897ff;}let scratchCenter=new Geoworld[(_0x2b093d(0xc2))]();function calcBoundingVolumeForInstance(_0x240f1d){const _0x2e3cb0=_0x2b093d;let _0x139d9b=new Geoworld[(_0x2e3cb0(0xcf))](),_0x4e2685=_0x240f1d['instanceBounds'];if(!Geoworld[_0x2e3cb0(0xc8)](_0x4e2685))return _0x139d9b;let _0x7de6bb=new Geoworld[(_0x2e3cb0(0xc2))](_0x4e2685[0x0],_0x4e2685[0x1],_0x4e2685[0x2]),_0x4a2fa2=new Geoworld[(_0x2e3cb0(0x8f))](_0x4e2685[0x3],_0x4e2685[0x4],_0x4e2685[0x5]),_0x4166f5=new Geoworld[(_0x2e3cb0(0xc2))][(_0x2e3cb0(0xa7))](_0x7de6bb,_0x4a2fa2,0.5,scratchCenter),_0x35ccc9=new Geoworld['Cartesian3']['distance'](_0x4166f5,_0x7de6bb);return _0x139d9b[_0x2e3cb0(0xaf)]=_0x4166f5,_0x139d9b[_0x2e3cb0(0x99)]=_0x35ccc9,_0x139d9b;}function calcBoundingVolume(_0xd7162c,_0x219ac5){if(_0xd7162c['instanceIndex']>-0x1)return calcBoundingVolumeForInstance(_0xd7162c);return calcBoundingVolumeForNormal(_0xd7162c,_0x219ac5);}function parseGeodes(_0x141deb,_0x1d164b,_0x5532db,_0x51f52e,_0x369789){const _0x438311=_0x2b093d;let _0x2a0295={},_0x5affea=_0x51f52e[_0x438311(0xc1)];for(let _0x55faeb=0x0,_0x126530=_0x5affea[_0x438311(0x85)];_0x55faeb<_0x126530;_0x55faeb++){let _0xf718cf=_0x5affea[_0x55faeb],_0x2a1170=_0xf718cf['matrix'],_0x556ab6=Geoworld[_0x438311(0xc0)][_0x438311(0x8c)](_0x141deb[_0x438311(0xab)],_0x2a1170,new Geoworld[(_0x438311(0xc0))]()),_0x4ace31;Geoworld[_0x438311(0xc8)](_0x369789[_0x438311(0x98)])&&(_0x4ace31=new Geoworld['BoundingSphere'](_0x369789[_0x438311(0x98)][_0x438311(0xc5)][_0x438311(0xaf)],_0x369789[_0x438311(0x98)][_0x438311(0xc5)][_0x438311(0x99)]),Geoworld['BoundingSphere']['transform'](_0x4ace31,_0x141deb[_0x438311(0xab)],_0x4ace31));let _0x39696b=_0xf718cf[_0x438311(0x84)];for(let _0x3e6024=0x0,_0x2bb6f7=_0x39696b[_0x438311(0x85)];_0x3e6024<_0x2bb6f7;_0x3e6024++){let _0x504422=_0x39696b[_0x3e6024],_0x6e4949=_0x1d164b['geoPackage'][_0x504422],_0x3fbd1f=_0x6e4949[_0x438311(0xc3)],_0x2b3c8b=_0x6e4949[_0x438311(0xba)],_0x3d4129=_0x6e4949[_0x438311(0xb1)],_0x3d54c1;_0x2b3c8b[_0x438311(0x85)]>0x0&&(_0x3d54c1=_0x5532db[_0x2b3c8b[0x0][_0x438311(0xbc)]]);let _0x1d0575=Geoworld[_0x438311(0xc8)](_0x4ace31)?_0x4ace31:calcBoundingVolume(_0x3fbd1f,_0x556ab6);_0x2a0295[_0x504422]=S3MContentFactory[_0x141deb[_0x438311(0xae)]]({'layer':_0x141deb,'vertexPackage':_0x3fbd1f,'arrIndexPackage':_0x2b3c8b,'pickInfo':_0x3d4129,'modelMatrix':_0x556ab6,'geoMatrix':_0x2a1170,'boundingVolume':_0x1d0575,'material':_0x3d54c1,'edgeGeometry':_0x6e4949[_0x438311(0xb9)],'geoName':_0x504422});}}if(Object[_0x438311(0xbe)](_0x2a0295)[_0x438311(0x85)]<0x1)return;if(!Geoworld[_0x438311(0xc8)](_0x369789['boundingVolume'])){let _0x51aaf2=[];for(let _0x1aabe3 in _0x2a0295){_0x2a0295[_0x438311(0x97)](_0x1aabe3)&&_0x51aaf2[_0x438311(0xa6)](_0x2a0295[_0x1aabe3]['boundingVolume']);}_0x369789[_0x438311(0x98)]={'sphere':Geoworld[_0x438311(0xcf)][_0x438311(0xa4)](_0x51aaf2)};}_0x369789[_0x438311(0x92)]=_0x2a0295;}function parsePagelods(_0x170ca9,_0x212ec0,_0x4c734b){const _0x5e392c=_0x2b093d;let _0x3c8e8b=_0x212ec0[_0x5e392c(0x9a)],_0x2c0b5e=[];for(let _0x57ca0f=0x0,_0x39af7f=_0x3c8e8b[_0x5e392c(0x8d)][_0x5e392c(0x85)];_0x57ca0f<_0x39af7f;_0x57ca0f++){let _0x426ee2={},_0x3378d3=_0x3c8e8b[_0x5e392c(0x8d)][_0x57ca0f];_0x426ee2[_0x5e392c(0xa0)]=_0x3378d3[_0x5e392c(0xa0)],_0x426ee2[_0x5e392c(0x8b)]=_0x3378d3[_0x5e392c(0x9c)],_0x426ee2[_0x5e392c(0x95)]=_0x3378d3['rangeList'];let _0x420d40=_0x3378d3['boundingSphere'][_0x5e392c(0xaf)],_0x10b57e=_0x3378d3[_0x5e392c(0xd1)][_0x5e392c(0x99)];_0x426ee2[_0x5e392c(0x8b)]!==''?_0x426ee2[_0x5e392c(0x98)]={'sphere':{'center':new Geoworld[(_0x5e392c(0xc2))](_0x420d40['x'],_0x420d40['y'],_0x420d40['z']),'radius':_0x10b57e}}:_0x426ee2['isLeafTile']=!![],parseGeodes(_0x170ca9,_0x212ec0,_0x4c734b,_0x3378d3,_0x426ee2),Geoworld[_0x5e392c(0xc8)](_0x426ee2[_0x5e392c(0x92)])&&_0x2c0b5e['push'](_0x426ee2);}return _0x2c0b5e;}S3MContentParser[_0x2b093d(0xa1)]=function(_0x481e89,_0x2ea386,_0x29e49d){const _0x295efb=_0x2b093d;if(!Geoworld[_0x295efb(0xc8)](_0x2ea386))return;let _0x47a150=parseMaterial$2(_0x481e89['context'],_0x2ea386,_0x29e49d),_0x4e251d=parsePagelods(_0x481e89,_0x2ea386,_0x47a150);return _0x4e251d;}; const _0x4948=['contextId','refCount','height','rootName','82021jafTEO','55567Cgxnmx','2KwPYlm','context','pixelFormat','86668chsAQY','792750tyXSEW','Queue','getCache','internalFormat','cache','25yXXdoX','compressType','textureId','layerId','381495MGZMdp','34756DQmNUE','destroy','3894723eJtdae','12XtotLI','1uFIMhe'];const _0x475f10=_0x266c;(function(_0x12517c,_0xf9b22d){const _0x7b9875=_0x266c;while(!![]){try{const _0x475c5c=-parseInt(_0x7b9875(0x1a6))*parseInt(_0x7b9875(0x19b))+-parseInt(_0x7b9875(0x1a3))*parseInt(_0x7b9875(0x1a1))+-parseInt(_0x7b9875(0x1a7))+-parseInt(_0x7b9875(0x1b0))+-parseInt(_0x7b9875(0x1a2))+parseInt(_0x7b9875(0x1b1))*-parseInt(_0x7b9875(0x1ac))+parseInt(_0x7b9875(0x19c))*parseInt(_0x7b9875(0x19a));if(_0x475c5c===_0xf9b22d)break;else _0x12517c['push'](_0x12517c['shift']());}catch(_0x3baabe){_0x12517c['push'](_0x12517c['shift']());}}}(_0x4948,0x90851));function _0x266c(_0xafd81,_0x1bf001){_0xafd81=_0xafd81-0x19a;let _0x49480c=_0x4948[_0xafd81];return _0x49480c;}let TextureManager={'cache':{},'cacheSize':0x0,'freeCache':{},'freeQueue':new Geoworld[(_0x475f10(0x1a8))](),'freeCacheSize':0x0,'throttleSize':0x32*0x400*0x400,'getCache':function(_0x48e411,_0x490b23,_0x4e49c2){const _0x14b09d=_0x475f10;let _0x431037=this[_0x14b09d(0x1ab)][_0x48e411];!_0x431037&&(_0x431037=this[_0x14b09d(0x1ab)][_0x48e411]={});let _0x2b1f3e=_0x431037[_0x490b23];!_0x2b1f3e&&(_0x2b1f3e=_0x431037[_0x490b23]={});let _0x5a3df2=_0x2b1f3e[_0x4e49c2];return !_0x5a3df2&&(_0x5a3df2=_0x2b1f3e[_0x4e49c2]={}),_0x5a3df2;},'get':function(_0x1970e5,_0x257b56,_0x2f8c6a,_0x4e9757){const _0x54e0df=_0x475f10;let _0x560fbe=this['getCache'](_0x1970e5,_0x257b56,_0x2f8c6a),_0x184161=_0x560fbe[_0x4e9757];if(!_0x184161)return undefined;return _0x184161[_0x54e0df(0x19e)]++,_0x184161;},'create':function(_0x9ece9b){const _0x3d8dba=_0x475f10;let _0x44ea0e=_0x9ece9b[_0x3d8dba(0x1a4)],_0x5040cf=_0x44ea0e['id'],_0x21049f=_0x9ece9b[_0x3d8dba(0x1af)],_0x17fa54=_0x9ece9b['rootName'],_0x2aabe3=_0x9ece9b[_0x3d8dba(0x1ae)],_0xade737=this[_0x3d8dba(0x1a9)](_0x5040cf,_0x21049f,_0x17fa54),_0x4ca074=_0xade737[_0x2aabe3];if(_0x4ca074)return _0x4ca074[_0x3d8dba(0x19e)]++,_0x4ca074;let _0x579efc=_0x9ece9b['width'],_0x2b3cbc=_0x9ece9b[_0x3d8dba(0x19f)],_0x380085=_0x9ece9b[_0x3d8dba(0x1ad)],_0x361d88=_0x9ece9b[_0x3d8dba(0x1a5)],_0x375e52=_0x9ece9b['arrayBufferView'],_0x56a70c=_0x9ece9b[_0x3d8dba(0x1aa)];return _0x4ca074=new DDSTexture(_0x44ea0e,_0x2aabe3,{'context':_0x44ea0e,'layerId':_0x21049f,'rootName':_0x17fa54,'textureId':_0x2aabe3,'width':_0x579efc,'height':_0x2b3cbc,'compressType':_0x380085,'pixelFormat':_0x361d88,'internalFormat':_0x56a70c,'isTexBlock':!![],'arrayBufferView':_0x375e52}),_0xade737[_0x2aabe3]=_0x4ca074,_0x4ca074;},'del':function(_0x2ac2ec){const _0x3b43bb=_0x475f10;if(!_0x2ac2ec[_0x3b43bb(0x19d)])return;let _0x760338=this[_0x3b43bb(0x1a9)](_0x2ac2ec['contextId'],_0x2ac2ec[_0x3b43bb(0x1af)],_0x2ac2ec[_0x3b43bb(0x1a0)]);if(!_0x760338[_0x2ac2ec['textureId']])return;--_0x2ac2ec[_0x3b43bb(0x19e)]===0x0&&(delete _0x760338[_0x2ac2ec[_0x3b43bb(0x1ae)]],_0x2ac2ec[_0x3b43bb(0x1b2)]());}}; const _0x5185=['layerId','subTextureNamesBake','oriTextureBake','length','diffuseColor','CRN_DXT5','subTexInfos','bTransparentSorting','subName','textureParameterBake','requestNames','textureParameter','textureBakeInitilized','lastIndexOf','subTextureManager','Cartesian4','keys','rootBatchIdMap','PixelFormat','refCount','height','ambientColor','3txwFQJ','specularColor','init','257895xLfzIn','offsetX','substring','_subTexInfosBake','_ancestorTextureBake','oriTexture','suffix','created','compressType','isLeaf','hasOwnProperty','name','710100oqgDZf','subBatchValues','czm_batchTable_xywh2','renderable','_subBatchValuesBake','createBakeTexture','subRequested','_id','createdBaker','del','isCrnTexture','Tex','subRequestNamesBake','_supportCompressType','substr','prototype','contentResource','arrayBufferView','subRequestNames','width','cache','enqueue','batchTable','textureInfo','10587LpStIc','splice','textureBakeRenderableFlag','rootTextureName','textureData','subTextureNames','%23','392402ETVtUf','offsetY','2270818oyqRAM','textureId','_subTextureManager','textureRenderableFlag','requestSubTextures','create','isRootTile','push','split','textures','indexOf','batchTableBake','destroy','409196tnpKWT','isRoot','curTextureName','subRequestedBaker','tile','Queue','ancestorTexture','textureInitilized','ancestorMap','initBakeTexture','format','rootName','context','FLOAT','get','result','shininess','requestBakeSubTextures','enableTextureRenderable','310126VwEzhk','RGBA_DXT5','ComponentDatatype','subTexturesToUpload','setBatchedAttribute','defined','layer'];const _0x10588d=_0x21e7;(function(_0x3ca703,_0x7bfcef){const _0xf5bc0b=_0x21e7;while(!![]){try{const _0x595f55=parseInt(_0xf5bc0b(0x1a5))+parseInt(_0xf5bc0b(0x1d0))+parseInt(_0xf5bc0b(0x1b1))+-parseInt(_0xf5bc0b(0x1a2))*-parseInt(_0xf5bc0b(0x1df))+-parseInt(_0xf5bc0b(0x1c9))+parseInt(_0xf5bc0b(0x1f2))+-parseInt(_0xf5bc0b(0x1d2));if(_0x595f55===_0x7bfcef)break;else _0x3ca703['push'](_0x3ca703['shift']());}catch(_0x108200){_0x3ca703['push'](_0x3ca703['shift']());}}}(_0x5185,0x96902));function _0x21e7(_0x12ec0f,_0x1fc17b){_0x12ec0f=_0x12ec0f-0x190;let _0x518506=_0x5185[_0x12ec0f];return _0x518506;}function MaterialExt(){const _0x37e6e3=_0x21e7;this[_0x37e6e3(0x1e0)]=![],this[_0x37e6e3(0x1ae)]=![],this[_0x37e6e3(0x1f9)]=undefined,this[_0x37e6e3(0x1e3)]=undefined,this['refCount']=0x0,this['id']=undefined,this[_0x37e6e3(0x1a1)]=new Geoworld[(_0x37e6e3(0x19b))](0x1,0x1,0x1,0x1),this['diffuseColor']=new Geoworld['Cartesian4'](0x1,0x1,0x1,0x1),this[_0x37e6e3(0x1a3)]=new Geoworld['Cartesian4'](0x0),this[_0x37e6e3(0x1ef)]=0x32,this[_0x37e6e3(0x193)]=![],this[_0x37e6e3(0x1db)]=[],this['created']=![],this['createdBaker']=![],this[_0x37e6e3(0x1b7)]=![],this[_0x37e6e3(0x1e2)]=![],this[_0x37e6e3(0x1c3)]=undefined,this['subRequestNamesBake']=undefined,this[_0x37e6e3(0x1ce)]=undefined,this['subTextureNamesBake']=undefined,this['subBatchValues']=undefined,this[_0x37e6e3(0x1fb)]=undefined,this['batchTable']=undefined,this[_0x37e6e3(0x1dd)]=undefined,this[_0x37e6e3(0x1e5)]=undefined,this[_0x37e6e3(0x1aa)]=undefined,this['textureParameter']=undefined,this[_0x37e6e3(0x195)]=undefined,this[_0x37e6e3(0x1e6)]=![],this['textureBakeInitilized']=![],this[_0x37e6e3(0x1d5)]=![],this[_0x37e6e3(0x1cb)]=![],this['isCrnTexture']=![],this[_0x37e6e3(0x1f5)]=new Geoworld[(_0x37e6e3(0x1e4))]();}let _descriptionMap={};function updateTextureBatchTable(_0x188785,_0x50bde5,_0x58f8da){const _0x2be5c2=_0x21e7;for(let _0x167eb7 in _0x58f8da){if(_0x58f8da[_0x2be5c2(0x1af)](_0x167eb7)){let _0x53cb14=_0x58f8da[_0x167eb7],_0x23ce59=Number(_0x167eb7);_0x50bde5[_0x2be5c2(0x1f6)](_0x23ce59,0x0,_0x53cb14);}}_0x50bde5['update'](_0x188785);}function getAncestorTexture(_0x124de0,_0xa2ffcd,_0x5b16fc,_0x3a928b,_0x231472,_0x37fe06){const _0x67543e=_0x21e7;let _0x78b956=_0x231472[_0x3a928b];if(!_0x78b956)return undefined;let _0x3791cc=TextureManager[_0x67543e(0x1ed)](_0x124de0,_0xa2ffcd,_0x5b16fc,_0x78b956);while(_0x78b956&&_0x3791cc&&!_0x3791cc['renderable']){_0x3791cc[_0x67543e(0x19f)]--,_0x78b956=_0x231472[_0x78b956],_0x3791cc=TextureManager[_0x67543e(0x1ed)](_0x124de0,_0xa2ffcd,_0x5b16fc,_0x78b956);}return _0x37fe06[_0x67543e(0x1b0)]=_0x78b956,_0x3791cc;}function getName(_0x5419f2){const _0x4c1727=_0x21e7;let _0x55706f=_0x5419f2['indexOf']('.');return _0x5419f2[_0x4c1727(0x1bf)](0x0,_0x55706f);}MaterialExt[_0x10588d(0x1c0)][_0x10588d(0x1b6)]=function(_0x5969ad,_0x5f354f,_0x5edfb0,_0x2f6440,_0xb71bb1,_0x234404,_0x44b1cb,_0x540470){const _0xd15e44=_0x10588d;if(this[_0xd15e44(0x1b9)])return undefined;this[_0xd15e44(0x195)]={'context':_0x5969ad,'layer':_0x5f354f,'isRoot':_0x5edfb0,'rootName':_0x2f6440,'curTextureName':_0xb71bb1,'textureInfo':_0x234404,'rootBatchIdMap':_0x44b1cb,'ancestorMap':_0x540470},this['createdBaker']=!![],this[_0xd15e44(0x1e2)]=_0x5edfb0;let _0x53d537=_0x234404[_0xd15e44(0x1cd)],_0x4a9307=PixelFormat[_0xd15e44(0x1f3)],_0x4f3b4c=TextureManager[_0xd15e44(0x1d7)]({'context':_0x5969ad,'layerId':_0x5f354f['id'],'rootName':_0x2f6440,'textureId':_0x234404['id'],'width':_0x234404[_0xd15e44(0x1c4)],'height':_0x234404[_0xd15e44(0x1a0)],'compressType':_0x234404[_0xd15e44(0x1ad)],'pixelFormat':_0x234404[_0xd15e44(0x1e9)],'internalFormat':_0x4a9307,'arrayBufferView':_0x53d537});_0x4f3b4c[_0xd15e44(0x1b4)]=_0x5edfb0;let _0x50d01c=_0x234404[_0xd15e44(0x192)][_0xd15e44(0x1fc)],_0x5450fb=_0x234404[_0xd15e44(0x1cc)],_0x2e4b53=_0x44b1cb[_0x5450fb];this[_0xd15e44(0x1db)]['push'](_0x4f3b4c);let _0x45d460=[{'functionName':_0xd15e44(0x1b3),'componentDatatype':ComponentDatatype['FLOAT'],'componentsPerAttribute':0x4}],_0x35bba0=defined(_0x2e4b53)?Object['keys'](_0x2e4b53)[_0xd15e44(0x1fc)]:_0x50d01c;this[_0xd15e44(0x1dd)]=new BatchTable(_0x5969ad,_0x45d460,_0x35bba0),this[_0xd15e44(0x1dd)][_0xd15e44(0x1ab)]='_2';let _0x42fdca=_descriptionMap[_0x5f354f[_0xd15e44(0x1b0)]];!defined(_0x42fdca)&&(_0x42fdca=_descriptionMap[_0x5f354f['name']]={});let _0x469d2e=_0x42fdca[_0x2f6440];!defined(_0x469d2e)&&(_0x469d2e=_0x42fdca[_0x2f6440]={});let _0x30e1b5=_0x469d2e[_0xb71bb1];!defined(_0x30e1b5)&&(_0x30e1b5=_0x469d2e[_0xb71bb1]={});let _0x7ae468=_0x234404[_0xd15e44(0x192)];for(let _0x4127fd=0x0;_0x4127fd<_0x50d01c;_0x4127fd++){let _0x2269b2=_0x7ae468[_0x4127fd],_0x4365a3=_0x2269b2['subName'][_0xd15e44(0x1da)]('_')[0x0],_0x160e86=_0x2269b2[_0xd15e44(0x1a6)],_0x1b53a5=_0x2269b2[_0xd15e44(0x1d1)],_0xfe1938=_0x2269b2[_0xd15e44(0x1c4)],_0x291843=_0x2269b2[_0xd15e44(0x1a0)],_0x5dc19c=new Cartesian4(_0x160e86,_0x1b53a5,_0xfe1938,_0x291843);_0x30e1b5[_0x4365a3]=_0x5dc19c;}if(!_0x5edfb0){this['subRequestNamesBake']=[];for(let _0x531160=0x0;_0x531160<_0x234404['requestNames'][_0xd15e44(0x1fc)];_0x531160++){let _0x5a5895=_0x234404[_0xd15e44(0x196)][_0x531160],_0xccf2f3=getName(_0x5a5895);if(_0xccf2f3[_0xd15e44(0x1da)]('_')[0x0]==='Tex'){let _0x5d9121=_0x5a5895[_0xd15e44(0x1da)]('#'),_0x56df2f=getName(_0x5d9121[0x0]);if(_0x5d9121[_0xd15e44(0x1fc)]>0x1){let _0x63302f=_0x5d9121[0x1],_0x4b8c84=_0x63302f[_0xd15e44(0x1fc)];for(let _0x2e862d=0x0;_0x2e862d<_0x4b8c84;_0x2e862d+=0x3){let _0x211fdf=_0x63302f[_0xd15e44(0x1a7)](_0x2e862d,_0x2e862d+0x3),_0x5ae27d=_0x56df2f+'_'+_0x211fdf;this[_0xd15e44(0x1bd)][_0xd15e44(0x1d9)](_0x5ae27d);}}}else this[_0xd15e44(0x1bd)][_0xd15e44(0x1d9)](_0xccf2f3);}}return this[_0xd15e44(0x1fb)]=_0x4f3b4c,_0x4f3b4c;},MaterialExt[_0x10588d(0x1c0)]['initTexture']=function(){const _0x5a2198=_0x10588d;if(this[_0x5a2198(0x1e6)]||!this['textureParameter'])return;this[_0x5a2198(0x1e6)]=!![];let _0x352e87=this[_0x5a2198(0x197)][_0x5a2198(0x1eb)],_0x57c7a4=this[_0x5a2198(0x197)][_0x5a2198(0x1f8)],_0x51a7aa=this[_0x5a2198(0x197)][_0x5a2198(0x1e0)],_0xc03284=this[_0x5a2198(0x197)][_0x5a2198(0x1ea)],_0x52097f=this[_0x5a2198(0x197)][_0x5a2198(0x1e1)],_0x14cad1=this[_0x5a2198(0x197)][_0x5a2198(0x1c8)],_0xa061c6=this['textureParameter'][_0x5a2198(0x19d)],_0x364ff9=this['textureParameter'][_0x5a2198(0x1e7)];this[_0x5a2198(0x197)]=undefined;let _0x2442b4={},_0x47430f=_0x14cad1[_0x5a2198(0x1cc)],_0x2d5df0=_0xa061c6[_0x47430f],_0x177536=_0x51a7aa?undefined:getAncestorTexture(_0x352e87['id'],_0x57c7a4['id'],_0xc03284,_0x52097f,_0x364ff9,_0x2442b4),_0x536244=_descriptionMap[_0x57c7a4['name']];!_0x536244&&(_0x536244=_descriptionMap[_0x57c7a4[_0x5a2198(0x1b0)]]={});let _0x41845b=_0x536244[_0xc03284];!_0x41845b&&(_0x41845b=_0x536244[_0xc03284]={});let _0x4227c2=_0x41845b[_0x52097f];!_0x4227c2&&(_0x4227c2=_0x41845b[_0x52097f]={});let _0x56ea7d=_0x51a7aa?undefined:_0x2442b4[_0x5a2198(0x1b0)]?_0x41845b[_0x2442b4[_0x5a2198(0x1b0)]]:undefined,_0x2178d8={},_0x11b8a0=_0x14cad1[_0x5a2198(0x192)],_0x218101=[],_0x39a28b=_0x14cad1[_0x5a2198(0x192)][_0x5a2198(0x1fc)];for(let _0x236267=0x0;_0x236267<_0x39a28b;_0x236267++){let _0x133bf3=_0x11b8a0[_0x236267],_0x4f8cf9=_0x133bf3[_0x5a2198(0x194)]['split']('_')[0x0],_0x412f4b=_0x133bf3['offsetX'],_0x43575f=_0x133bf3['offsetY'],_0x594e8b=_0x133bf3[_0x5a2198(0x1c4)],_0x4ba9e6=_0x133bf3[_0x5a2198(0x1a0)],_0x14ff70=new Geoworld[(_0x5a2198(0x19b))](_0x412f4b,_0x43575f,_0x594e8b,_0x4ba9e6),_0x2d52b4=_0x2d5df0?_0x2d5df0[_0x4f8cf9]:_0x236267,_0x1af28c=_0x51a7aa?undefined:_0x56ea7d?_0x56ea7d[_0x4f8cf9]:undefined,_0x5afe5a=_0x1af28c?_0x1af28c:_0x14ff70;this[_0x5a2198(0x1c7)][_0x5a2198(0x1f6)](_0x2d52b4,0x0,_0x5afe5a),_0x2178d8[_0x2d52b4]=_0x14ff70,_0x4227c2[_0x4f8cf9]=_0x14ff70,_0x218101[_0x5a2198(0x1d9)](_0x133bf3['subName']);}this[_0x5a2198(0x192)]=_0x11b8a0,this['subTextureNames']=_0x218101,this[_0x5a2198(0x1b2)]=_0x2178d8,this[_0x5a2198(0x1e5)]=_0x177536;},MaterialExt[_0x10588d(0x1c0)][_0x10588d(0x1e8)]=function(){const _0x34acd4=_0x10588d;if(this[_0x34acd4(0x198)]||!defined(this['textureParameterBake']))return;this[_0x34acd4(0x198)]=!![];let _0x154deb=this[_0x34acd4(0x195)][_0x34acd4(0x1eb)],_0x5562aa=this[_0x34acd4(0x195)][_0x34acd4(0x1f8)],_0x39627e=this[_0x34acd4(0x195)][_0x34acd4(0x1e0)],_0x4cf348=this[_0x34acd4(0x195)][_0x34acd4(0x1ea)],_0x48020a=this[_0x34acd4(0x195)][_0x34acd4(0x1e1)],_0x2374cb=this['textureParameterBake'][_0x34acd4(0x1c8)],_0xfe0957=this['textureParameterBake'][_0x34acd4(0x19d)],_0x491254=this[_0x34acd4(0x195)][_0x34acd4(0x1e7)];this['textureParameterBake']=undefined;let _0x3857d3={},_0x456f66=_0x2374cb['rootTextureName'],_0x6607f=_0xfe0957[_0x456f66],_0x47285b=_0x39627e?undefined:getAncestorTexture(_0x154deb['id'],_0x5562aa['id'],_0x4cf348,_0x48020a,_0x491254,_0x3857d3),_0x58e4e7=_descriptionMap[_0x5562aa[_0x34acd4(0x1b0)]];!defined(_0x58e4e7)&&(_0x58e4e7=_descriptionMap[_0x5562aa[_0x34acd4(0x1b0)]]={});let _0x5922b3=_0x58e4e7[_0x4cf348];!defined(_0x5922b3)&&(_0x5922b3=_0x58e4e7[_0x4cf348]={});let _0x3909ff=_0x5922b3[_0x48020a];!defined(_0x3909ff)&&(_0x3909ff=_0x5922b3[_0x48020a]={});let _0x4e2e07=_0x39627e?undefined:defined(_0x3857d3[_0x34acd4(0x1b0)])?_0x5922b3[_0x3857d3[_0x34acd4(0x1b0)]]:undefined,_0x275731={},_0x1b0b2e=_0x2374cb['subTexInfos'],_0x185a82=[],_0x1d0dba=_0x2374cb[_0x34acd4(0x192)][_0x34acd4(0x1fc)];for(let _0x55908f=0x0;_0x55908f<_0x1d0dba;_0x55908f++){let _0x373f37=_0x1b0b2e[_0x55908f],_0x4c96c2=_0x373f37[_0x34acd4(0x194)]['split']('_')[0x0],_0x58cf79=_0x373f37[_0x34acd4(0x1a6)],_0x40af92=_0x373f37['offsetY'],_0x4161ce=_0x373f37[_0x34acd4(0x1c4)],_0x3c410f=_0x373f37['height'],_0x20af5f=new Cartesian4(_0x58cf79,_0x40af92,_0x4161ce,_0x3c410f),_0x2800b1=defined(_0x6607f)?_0x6607f[_0x4c96c2]:_0x55908f,_0x330219=_0x39627e?undefined:defined(_0x4e2e07)?_0x4e2e07[_0x4c96c2]:undefined,_0x490039=defined(_0x330219)?_0x330219:_0x20af5f;this['batchTableBake'][_0x34acd4(0x1f6)](_0x2800b1,0x0,_0x490039),_0x275731[_0x2800b1]=_0x20af5f,_0x3909ff[_0x4c96c2]=_0x20af5f,_0x185a82[_0x34acd4(0x1d9)](_0x373f37['subName']);}this[_0x34acd4(0x1a8)]=_0x1b0b2e,this['subTextureNamesBake']=_0x185a82,this[_0x34acd4(0x1b5)]=_0x275731,this[_0x34acd4(0x1a9)]=_0x47285b;},MaterialExt[_0x10588d(0x1c0)]['createTexture']=function(_0x49ce60,_0x4e6b43,_0x4e2fbe,_0x32e4b4,_0x44dc25){const _0x5a129c=_0x10588d;if(this[_0x5a129c(0x1ac)])return undefined;let _0x2336a7=_0x49ce60[_0x5a129c(0x1eb)],_0x3f3644=_0x4e2fbe['id'],_0x23e4ac=_0x44dc25[_0x5a129c(0x19d)],_0x4d8905=_0x44dc25[_0x5a129c(0x1e7)];this[_0x5a129c(0x1bb)]=_0x4e2fbe[_0x5a129c(0x1ad)]===_0x4b817e[_0x5a129c(0x191)],this['textureParameter']={'context':_0x2336a7,'layer':_0x49ce60,'isRoot':_0x4e6b43[_0x5a129c(0x1d8)],'rootName':_0x4e6b43[_0x5a129c(0x1ea)],'curTextureName':_0x3f3644,'textureInfo':_0x4e2fbe,'rootBatchIdMap':_0x23e4ac,'ancestorMap':_0x4d8905},this[_0x5a129c(0x1e0)]=_0x4e6b43[_0x5a129c(0x1d8)],this[_0x5a129c(0x1ac)]=!![],this[_0x5a129c(0x1b7)]=_0x4e6b43[_0x5a129c(0x1d8)];let _0x3b27c7=_0x4e2fbe[_0x5a129c(0x1cd)],_0x59bc73=Geoworld[_0x5a129c(0x19e)][_0x5a129c(0x1f3)],_0x53eccf=TextureManager[_0x5a129c(0x1d7)]({'context':_0x2336a7,'layerId':_0x49ce60['id'],'rootName':_0x4e6b43[_0x5a129c(0x1ea)],'textureId':_0x4e2fbe['id'],'width':_0x4e2fbe[_0x5a129c(0x1c4)],'height':_0x4e2fbe[_0x5a129c(0x1a0)],'compressType':_0x4e2fbe[_0x5a129c(0x1ad)],'supportCompressType':_0x49ce60[_0x5a129c(0x1be)],'pixelFormat':_0x4e2fbe[_0x5a129c(0x1e9)],'internalFormat':_0x59bc73,'arrayBufferView':_0x3b27c7});_0x53eccf[_0x5a129c(0x1b4)]=_0x4e6b43[_0x5a129c(0x1d8)];let _0x1dfcb4=_0x4e2fbe[_0x5a129c(0x192)][_0x5a129c(0x1fc)],_0x4cf773=_0x4e2fbe[_0x5a129c(0x1cc)],_0xb6986=_0x23e4ac[_0x4cf773];this['textures']['push'](_0x53eccf);let _0x4eeff1=[{'functionName':'atlas_batchTable_xywh','componentDatatype':Geoworld[_0x5a129c(0x1f4)][_0x5a129c(0x1ec)],'componentsPerAttribute':0x4}],_0x22538d=_0xb6986?Object[_0x5a129c(0x19c)](_0xb6986)['length']:_0x1dfcb4;this[_0x5a129c(0x1c7)]=new Geoworld['BatchTable'](_0x2336a7,_0x4eeff1,_0x22538d);let _0x14acb9=_descriptionMap[_0x49ce60[_0x5a129c(0x1b0)]];!_0x14acb9&&(_0x14acb9=_descriptionMap[_0x49ce60[_0x5a129c(0x1b0)]]={});let _0x40607c=_0x14acb9[_0x4e6b43[_0x5a129c(0x1ea)]];!_0x40607c&&(_0x40607c=_0x14acb9[_0x4e6b43[_0x5a129c(0x1ea)]]={});let _0x3099d9=_0x40607c[_0x3f3644];!_0x3099d9&&(_0x3099d9=_0x40607c[_0x3f3644]={});let _0x5a6a16=_0x4e2fbe[_0x5a129c(0x192)];for(let _0x1f0489=0x0;_0x1f0489<_0x1dfcb4;_0x1f0489++){let _0x4a5541=_0x5a6a16[_0x1f0489],_0x1185dc=_0x4a5541[_0x5a129c(0x194)][_0x5a129c(0x1da)]('_')[0x0],_0x5d64ac=_0x4a5541[_0x5a129c(0x1a6)],_0x405e89=_0x4a5541[_0x5a129c(0x1d1)],_0x40e31c=_0x4a5541[_0x5a129c(0x1c4)],_0xdb0ad9=_0x4a5541[_0x5a129c(0x1a0)],_0x2f6738=new Geoworld[(_0x5a129c(0x19b))](_0x5d64ac,_0x405e89,_0x40e31c,_0xdb0ad9);_0x3099d9[_0x1185dc]=_0x2f6738;}if(!_0x4e6b43[_0x5a129c(0x1d8)]){this[_0x5a129c(0x1c3)]=[];for(let _0x15a426=0x0;_0x15a426<_0x4e2fbe[_0x5a129c(0x196)][_0x5a129c(0x1fc)];_0x15a426++){let _0x535de8=_0x4e2fbe['requestNames'][_0x15a426],_0x143bfe=getName(_0x535de8);if(_0x143bfe[_0x5a129c(0x1da)]('_')[0x0]===_0x5a129c(0x1bc)){let _0xf855ac=_0x535de8['split']('#'),_0x5ed3cc=getName(_0xf855ac[0x0]);if(_0xf855ac['length']>0x1){let _0x286c8e=_0xf855ac[0x1],_0x26fac1=_0x286c8e['length'];for(let _0x1e1241=0x0;_0x1e1241<_0x26fac1;_0x1e1241+=0x3){let _0x475757=_0x286c8e[_0x5a129c(0x1a7)](_0x1e1241,_0x1e1241+0x3),_0x4373a9=_0x5ed3cc+'_'+_0x475757;this[_0x5a129c(0x1c3)][_0x5a129c(0x1d9)](_0x4373a9);}}}else this[_0x5a129c(0x1c3)][_0x5a129c(0x1d9)](_0x143bfe);}}return this[_0x5a129c(0x1ae)]=!_0x4e6b43[_0x5a129c(0x1d8)]&&!(_0x4e2fbe[_0x5a129c(0x196)]['length']===0x1&&_0x4e2fbe[_0x5a129c(0x196)][0x0]===_0x3f3644),this[_0x5a129c(0x1aa)]=_0x53eccf,_0x53eccf;},MaterialExt[_0x10588d(0x1c0)][_0x10588d(0x1d6)]=function(_0x4abf79,_0xe13b56){const _0x3fe5be=_0x10588d;if(this[_0x3fe5be(0x1b7)])return;if(!this[_0x3fe5be(0x1c3)])return;let _0x27317a=_0xe13b56[_0x3fe5be(0x1eb)],_0x178966=this[_0x3fe5be(0x1c3)],_0x29b8bf=this[_0x3fe5be(0x192)],_0x4721a9=this[_0x3fe5be(0x1ce)],_0x4f2f47=this[_0x3fe5be(0x1b2)],_0x1ef108=this['oriTexture'],_0x79797=[],_0x58b163=this[_0x3fe5be(0x1e3)][_0x3fe5be(0x1c1)]['url']['substring'](0x0,this[_0x3fe5be(0x1e3)][_0x3fe5be(0x1c1)]['url'][_0x3fe5be(0x199)]('/')+0x1),_0x2297a2=_0xe13b56[_0x3fe5be(0x1d4)],_0x27c2df=this[_0x3fe5be(0x1f5)];for(let _0xc2c55a=0x0,_0x5d03c2=_0x178966[_0x3fe5be(0x1fc)];_0xc2c55a<_0x5d03c2;_0xc2c55a++){let _0x162f23=_0x178966[_0xc2c55a],_0x334015=_0x2297a2[_0x3fe5be(0x1ed)](_0xe13b56['id'],_0x58b163,_0x162f23,this,this['tile']);if(!_0x334015)continue;let _0x130ba3=_0x334015[_0x3fe5be(0x1ee)];_0x79797[_0x3fe5be(0x1d9)](_0xc2c55a);for(let _0x16e8fd in _0x130ba3){if(_0x130ba3['hasOwnProperty'](_0x16e8fd)){let _0x152944=_0x130ba3[_0x16e8fd],_0x4a6286=_0x4721a9[_0x3fe5be(0x1dc)](_0x16e8fd);if(_0x4a6286<0x0&&this[_0x3fe5be(0x1ae)])continue;let _0x3825f1=0x0,_0x9f32b=0x0,_0x10247e=_0x152944[_0x3fe5be(0x1c4)],_0x4afd35=_0x152944[_0x3fe5be(0x1a0)];if(_0x4a6286>=0x0){let _0x25ad99=_0x29b8bf[_0x4a6286];_0x3825f1=_0x25ad99[_0x3fe5be(0x1a6)],_0x9f32b=_0x25ad99[_0x3fe5be(0x1d1)];}!this['isLeaf']?_0x1ef108[_0x3fe5be(0x1c2)]=_0x152944[_0x3fe5be(0x1c2)]:_0x27c2df[_0x3fe5be(0x1c6)]({'texture':_0x1ef108,'subTextureInfo':{'xOffset':_0x3825f1,'yOffset':_0x9f32b,'width':_0x10247e,'height':_0x4afd35,'arrayBufferView':_0x152944[_0x3fe5be(0x1c2)]}});}}}if(_0x79797[_0x3fe5be(0x1fc)]===_0x178966[_0x3fe5be(0x1fc)])_0x178966['length']=0x0;else {let _0x464f69=0x0;for(let _0xf0bd77=0x0,_0x701c9e=_0x79797[_0x3fe5be(0x1fc)];_0xf0bd77<_0x701c9e;_0xf0bd77++){_0x178966[_0x3fe5be(0x1ca)](_0x79797[_0xf0bd77]-_0x464f69,0x1),_0x464f69++;}}_0x178966['length']===0x0&&(this[_0x3fe5be(0x1d5)]=!![],!this[_0x3fe5be(0x1ae)]&&_0x1ef108[_0x3fe5be(0x1a4)](),updateTextureBatchTable(_0x4abf79,this['batchTable'],_0x4f2f47),this[_0x3fe5be(0x1b7)]=!![],this[_0x3fe5be(0x1c3)]=undefined,this['subTextureNames']=undefined,this[_0x3fe5be(0x1b2)]=undefined,this[_0x3fe5be(0x192)]=undefined);},MaterialExt['prototype'][_0x10588d(0x1f0)]=function(_0x1e3ee5,_0x59facf,_0x16f8dc,_0x1e558c){const _0x225080=_0x10588d;if(this['subRequestedBaker'])return;if(!defined(this[_0x225080(0x1bd)]))return;let _0x5a5b6f=this[_0x225080(0x1bd)],_0x1fddfe=this[_0x225080(0x1a8)],_0x508515=this[_0x225080(0x1fa)],_0x3e0658=this['_subBatchValuesBake'],_0x5c7505=this[_0x225080(0x1fb)],_0x5b8c2b=[],_0x1f8184=_0x16f8dc['_baseUri'],_0x2185eb=_0x16f8dc[_0x225080(0x19a)];for(let _0xc0d033=0x0,_0x3925d5=_0x5a5b6f['length'];_0xc0d033<_0x3925d5;_0xc0d033++){let _0x3b4fa9=_0x5a5b6f[_0xc0d033],_0x373a3c=_0x2185eb[_0x225080(0x1ed)](_0x16f8dc[_0x225080(0x1b8)],_0x1f8184,_0x3b4fa9,this);if(!_0x373a3c)continue;let _0x58799b=_0x373a3c[_0x225080(0x1ee)];_0x5b8c2b['push'](_0xc0d033);for(let _0x3b9b00 in _0x58799b){if(_0x58799b[_0x225080(0x1af)](_0x3b9b00)){let _0x207e3e=_0x58799b[_0x3b9b00],_0x619a76=_0x508515['indexOf'](_0x3b9b00);if(_0x619a76<0x0&&this[_0x225080(0x1ae)])continue;let _0x3fff7f=0x0,_0x1b81c1=0x0,_0x4905f7=_0x207e3e['width'],_0x507ece=_0x207e3e[_0x225080(0x1a0)];if(_0x619a76>=0x0){let _0x3c2571=_0x1fddfe[_0x619a76];_0x3fff7f=_0x3c2571[_0x225080(0x1a6)],_0x1b81c1=_0x3c2571[_0x225080(0x1d1)];}_0x1e558c['enqueue']({'texture':_0x5c7505,'subTextureInfo':{'xOffset':_0x3fff7f,'yOffset':_0x1b81c1,'width':_0x4905f7,'height':_0x507ece,'arrayBufferView':_0x207e3e[_0x225080(0x1c2)]}});}}}if(_0x5b8c2b[_0x225080(0x1fc)]===_0x5a5b6f['length'])_0x5a5b6f[_0x225080(0x1fc)]=0x0;else {let _0x3d7597=0x0;for(let _0x2a4822=0x0,_0x53b34d=_0x5b8c2b[_0x225080(0x1fc)];_0x2a4822<_0x53b34d;_0x2a4822++){_0x5a5b6f['splice'](_0x5b8c2b[_0x2a4822]-_0x3d7597,0x1),_0x3d7597++;}}_0x5a5b6f['length']===0x0&&(this[_0x225080(0x1cb)]=!![],!this[_0x225080(0x1ae)]&&_0x5c7505[_0x225080(0x1a4)](),this[_0x225080(0x1e2)]=!![],this['subRequestNamesBake']=undefined,this['subTextureNamesBake']=undefined,this[_0x225080(0x1b5)]=undefined,this[_0x225080(0x1a8)]=undefined,updateTextureBatchTable(_0x1e3ee5,this['batchTableBake'],_0x3e0658));},MaterialExt[_0x10588d(0x1c0)][_0x10588d(0x1f1)]=function(){const _0x10bfba=_0x10588d;if(!this[_0x10bfba(0x1d5)])return;this[_0x10bfba(0x1d5)]=![];let _0x33b833=this[_0x10bfba(0x1aa)];_0x33b833[_0x10bfba(0x1b4)]=!![],this['ancestorTexture']&&this[_0x10bfba(0x1e5)]['textureId']!==_0x33b833['textureId']&&TextureManager[_0x10bfba(0x1ba)](this[_0x10bfba(0x1e5)]),this[_0x10bfba(0x1db)][0x0]=_0x33b833,this[_0x10bfba(0x1aa)]=undefined,this['ancestorTexture']=undefined;},MaterialExt['prototype']['enableBakeTextureRenderable']=function(){const _0x33eee4=_0x10588d;if(!this[_0x33eee4(0x1cb)])return;this[_0x33eee4(0x1cb)]=![];let _0x18100e=this[_0x33eee4(0x1fb)];_0x18100e[_0x33eee4(0x1b4)]=!![],defined(this[_0x33eee4(0x1a9)])&&this['_ancestorTextureBake'][_0x33eee4(0x1d3)]!==_0x18100e[_0x33eee4(0x1d3)]&&TextureManager[_0x33eee4(0x1ba)](this[_0x33eee4(0x1a9)]),this[_0x33eee4(0x1db)][0x1]=_0x18100e,this['oriTextureBake']=undefined,this[_0x33eee4(0x1a9)]=undefined;},MaterialExt['prototype']['isDestroyed']=function(){return ![];},MaterialExt[_0x10588d(0x1c0)]['destroy']=function(){const _0x337e9a=_0x10588d;if(--this[_0x337e9a(0x19f)]>0x0)return;let _0x4ee441=this[_0x337e9a(0x1e3)][_0x337e9a(0x1f8)],_0x3d1499=_0x4ee441['_materialManager'];delete _0x3d1499[_0x337e9a(0x1c5)][this['id']],this[_0x337e9a(0x1a1)]=null,this[_0x337e9a(0x190)]=null,this[_0x337e9a(0x1a3)]=null;for(let _0x38a813=0x0,_0x4ac35e=this[_0x337e9a(0x1db)][_0x337e9a(0x1fc)];_0x38a813<_0x4ac35e;_0x38a813++){let _0xcb057=this[_0x337e9a(0x1db)][_0x38a813];TextureManager['del'](_0xcb057);}this['textures'][_0x337e9a(0x1fc)]=0x0,this[_0x337e9a(0x1c7)]=this[_0x337e9a(0x1c7)]&&this[_0x337e9a(0x1c7)][_0x337e9a(0x1de)](),this['batchTableBake']=this[_0x337e9a(0x1dd)]&&this[_0x337e9a(0x1dd)]['destroy'](),this['_subTexInfos']=undefined,this[_0x337e9a(0x1ce)]=undefined,this['subBatchValues']=undefined,this[_0x337e9a(0x1fa)]=undefined,this[_0x337e9a(0x1a8)]=undefined;Geoworld[_0x337e9a(0x1f7)](this['ancestorTexture'])&&this[_0x337e9a(0x1e5)][_0x337e9a(0x1d3)]!==this['oriTexture'][_0x337e9a(0x1d3)]&&TextureManager[_0x337e9a(0x1ba)](this['ancestorTexture']);this['oriTexture']=undefined,this['ancestorTexture']=undefined,this['tile']=undefined,this[_0x337e9a(0x197)]=undefined,this[_0x337e9a(0x1fb)]=undefined;if(Geoworld[_0x337e9a(0x1f7)](this['subRequestNames'])){for(let _0x5a157e=0x0,_0x438bd7=this[_0x337e9a(0x1c3)]['length'];_0x5a157e<_0x438bd7;_0x5a157e++){let _0x4c0b7b=this['subRequestNames'][_0x5a157e],_0x521978=_0x4c0b7b[_0x337e9a(0x1da)]('.')[0x0],_0x19f20b=_0x4c0b7b[_0x337e9a(0x1dc)](_0x337e9a(0x1cf));_0x521978=_0x19f20b>-0x1?_0x521978+_0x4c0b7b[_0x337e9a(0x1a7)](_0x19f20b):_0x521978,_0x4ee441['_subTextureManager']['del'](_0x4ee441['id'],_0x521978);}this['subRequestNames']=undefined;}if(Geoworld[_0x337e9a(0x1f7)](this['subRequestNamesBake'])){for(i=0x0,j=this[_0x337e9a(0x1bd)][_0x337e9a(0x1fc)];i-0x1?_0x2f6743+_0x6fe4bd[_0x337e9a(0x1a7)](_0x4c1d4d):_0x2f6743,_0x4ee441['subTextureManager'][_0x337e9a(0x1ba)](_0x4ee441['id'],_0x2f6743);}this['subRequestNames']=undefined;}return Geoworld['destroyObject'](this);}; const _0x774b=['destroy','1jMlaNo','prototype','58078FvAmIH','16461gMGmdZ','refCount','310671psStxY','create','cache','1XLfNXk','141414tEHIrr','229168VjpIvD','3908OUCXji','1VzAmel','169311VtPsoQ'];const _0x3b5d4c=_0x3345;(function(_0x494224,_0x357f94){const _0x5e4fcc=_0x3345;while(!![]){try{const _0x44f3ed=parseInt(_0x5e4fcc(0xe0))+parseInt(_0x5e4fcc(0xda))+parseInt(_0x5e4fcc(0xd7))*parseInt(_0x5e4fcc(0xd9))+-parseInt(_0x5e4fcc(0xd5))+-parseInt(_0x5e4fcc(0xe1))+parseInt(_0x5e4fcc(0xdf))*-parseInt(_0x5e4fcc(0xe2))+parseInt(_0x5e4fcc(0xe3))*parseInt(_0x5e4fcc(0xdc));if(_0x44f3ed===_0x357f94)break;else _0x494224['push'](_0x494224['shift']());}catch(_0x330ad7){_0x494224['push'](_0x494224['shift']());}}}(_0x774b,0x1e54d));function MaterialManager(){const _0x45fd45=_0x3345;this[_0x45fd45(0xde)]={};}MaterialManager[_0x3b5d4c(0xd8)][_0x3b5d4c(0xdd)]=function(_0x2d5b60){const _0x4b0c5a=_0x3b5d4c;let _0x512cac=this[_0x4b0c5a(0xde)][_0x2d5b60];return _0x512cac?_0x512cac[_0x4b0c5a(0xdb)]++:(_0x512cac=new MaterialExt(),this['cache'][_0x2d5b60]=_0x512cac),_0x512cac;},MaterialManager[_0x3b5d4c(0xd8)]['free']=function(_0x250c38){const _0x5a0e71=_0x3b5d4c;let _0x6fa22=this[_0x5a0e71(0xde)][_0x250c38];if(!_0x6fa22)return;--_0x6fa22[_0x5a0e71(0xdb)]===0x0&&(delete this[_0x5a0e71(0xde)][_0x250c38],_0x6fa22[_0x5a0e71(0xd6)]());};function _0x3345(_0x3e6438,_0x12ff16){_0x3e6438=_0x3e6438-0xd5;let _0x774b06=_0x774b[_0x3e6438];return _0x774b06;} const _0x1810=['cancelled','remove','549615RRrJaz','head','tile','8285FznQJx','length','name','650388UOEfVL','quadKey','request','15023IeObat','71Olfvua','892911FcpdTu','_singleInstance','requestHeapPack','item','deferred','UnLoad','Resource','1276797vZXfea','tail','startPackRequest','DoublyLinkedList','Request','inflate','defined','quadKeyIndex','join','state','resolve','15KyKEhc','slice','quadKeyPack','sort','Loaded','promisePack','priority','url','keyWord','layer','.texblock','del','pendingRequests','getStringFromTypedArray','byteLength','prepareRequest','getSingleInstance','prototype','Failed','promise','cache','buffer','push','BYTES_PER_ELEMENT','quadKeyIndexPack','1611843WMeTTg','getUint32','Loading','list','defer'];const _0x3ff177=_0x2886;(function(_0xeb3854,_0x57335a){const _0x5bf85e=_0x2886;while(!![]){try{const _0x211aa4=parseInt(_0x5bf85e(0x15b))+parseInt(_0x5bf85e(0x154))+-parseInt(_0x5bf85e(0x165))*parseInt(_0x5bf85e(0x164))+parseInt(_0x5bf85e(0x16d))+-parseInt(_0x5bf85e(0x161))+-parseInt(_0x5bf85e(0x166))+parseInt(_0x5bf85e(0x13b))*parseInt(_0x5bf85e(0x15e));if(_0x211aa4===_0x57335a)break;else _0xeb3854['push'](_0xeb3854['shift']());}catch(_0x5958e1){_0xeb3854['push'](_0xeb3854['shift']());}}}(_0x1810,0xe8916));function SubTextureManager(){const _0x298d48=_0x2886;this[_0x298d48(0x139)]={},this[_0x298d48(0x14f)]={},this[_0x298d48(0x157)]=new Geoworld[(_0x298d48(0x170))](),this[_0x298d48(0x147)]=[],this[_0x298d48(0x140)]={},this[_0x298d48(0x13d)]={},this[_0x298d48(0x153)]={},this[_0x298d48(0x168)]={};}const _State={'UnLoad':0x0,'Loading':0x1,'Loaded':0x2,'Parsing':0x3,'Ready':0x4,'Failed':0x5};let _cacheSize=0x0;const _throttleSize=0xc8*0x400*0x400;SubTextureManager['prototype'][_0x3ff177(0x14a)]=function(_0x37495c,_0x5882c5,_0x2c3fcb,_0x4dcc51,_0x15b67b){const _0x3204a0=_0x3ff177;let _0x86f47=_0x37495c+'_'+_0x2c3fcb,_0x3d1627=_0x5882c5+_0x2c3fcb+_0x3204a0(0x145),_0x3b4dfa=new Geoworld[(_0x3204a0(0x171))]({'url':_0x3d1627,'throttle':!![],'throttleByServer':!![],'priorityFunction':function(){return _0x4dcc51['distanceToCamera'];}});_0x3b4dfa['quadKey']=_0x2c3fcb,_0x3b4dfa['providerName']=_0x15b67b['tile'][_0x3204a0(0x144)][_0x3204a0(0x160)],_0x3b4dfa[_0x3204a0(0x143)]=_0x86f47,this[_0x3204a0(0x147)]['push'](_0x3b4dfa);};let comparator=function(_0x52082d,_0x30a31e){const _0x12bfd3=_0x3ff177;return _0x52082d[_0x12bfd3(0x141)]-_0x30a31e[_0x12bfd3(0x141)];};SubTextureManager[_0x3ff177(0x14c)]['processRequests']=function(){const _0x47bf46=_0x3ff177;if(this[_0x47bf46(0x147)][_0x47bf46(0x15f)]<0x1)return;this[_0x47bf46(0x147)][_0x47bf46(0x13e)](comparator),this['startPackRequest']();for(let _0x2c52b8=0x0,_0x41c45e=this[_0x47bf46(0x147)][_0x47bf46(0x15f)];_0x2c52b8<_0x41c45e;_0x2c52b8++){let _0x100602=this[_0x47bf46(0x147)][_0x2c52b8];this[_0x47bf46(0x163)](_0x100602);}this[_0x47bf46(0x147)][_0x47bf46(0x15f)]=0x0;};function combineQuadkey(_0x9ce0e7){const _0x388b7e=_0x3ff177;let _0x2474b7=[],_0x1173be={},_0x248e25=0x0;for(let _0x234754=0x0,_0x58a6f8=_0x9ce0e7[_0x388b7e(0x15f)];_0x234754<_0x58a6f8;_0x234754++){let _0x458356=_0x9ce0e7[_0x234754];if(_0x458356[_0x388b7e(0x159)])continue;let _0x85131=_0x458356[_0x388b7e(0x162)];if(_0x1173be[_0x85131])continue;_0x1173be[_0x85131]=!![],_0x2474b7['push'](_0x85131),_0x458356[_0x388b7e(0x137)]=_0x248e25++;}return _0x2474b7;}function _0x2886(_0x69d3a2,_0x285766){_0x69d3a2=_0x69d3a2-0x137;let _0x18108e=_0x1810[_0x69d3a2];return _0x18108e;}SubTextureManager['prototype'][_0x3ff177(0x16f)]=function(){const _0x9e516d=_0x3ff177;let _0x1bbe38=combineQuadkey(this[_0x9e516d(0x147)]),_0xd2ecb1=_0x1bbe38[_0x9e516d(0x138)](';'),_0x5bb7ab=this[_0x9e516d(0x147)][0x0][_0x9e516d(0x142)],_0x5f1e18=new Geoworld[(_0x9e516d(0x16c))]({'url':_0x5bb7ab,'queryParameters':{'extratiles':_0xd2ecb1}}),_0x4eb4bd=Geoworld['when'][_0x9e516d(0x158)](),_0x474e61=_0x5f1e18['fetchArrayBuffer']();if(!_0x474e61)return;for(let _0x5ed5d5=0x0,_0x489c52=this[_0x9e516d(0x147)][_0x9e516d(0x15f)];_0x5ed5d5<_0x489c52;_0x5ed5d5++){let _0x41a132=this[_0x9e516d(0x147)][_0x5ed5d5];_0x41a132[_0x9e516d(0x16a)]=_0x4eb4bd;}_0x474e61['then'](function(_0x57465b){const _0x415081=_0x9e516d;_0x4eb4bd[_0x415081(0x13a)](_0x57465b);})['otherwise'](function(_0x2a60f4){_0x4eb4bd['reject'](_0x2a60f4);});};function decodePackedBuffer(_0x118dc9,_0x570b01){const _0x15a582=_0x3ff177;let _0x387810=new DataView(_0x118dc9),_0x4f42b2=0x0,_0x36fa73=_0x387810[_0x15a582(0x155)](_0x4f42b2,!![]);if(_0x570b01>_0x36fa73-0x1||_0x36fa73>0x100)return undefined;_0x4f42b2+=0x4;let _0x3186bc=[],_0x1433a1,_0x51bbf1;for(_0x1433a1=0x0;_0x1433a1<_0x36fa73;_0x1433a1++){_0x51bbf1=_0x387810[_0x15a582(0x155)](_0x4f42b2,!![]),_0x3186bc[_0x15a582(0x151)](_0x51bbf1),_0x4f42b2+=0x4;}for(_0x1433a1=0x0;_0x1433a1<_0x36fa73;_0x1433a1++){_0x51bbf1=_0x3186bc[_0x1433a1];if(_0x1433a1===_0x570b01){if(_0x51bbf1===0x0)return;return new Uint8Array(_0x118dc9)[_0x15a582(0x13c)](_0x4f42b2,_0x4f42b2+_0x51bbf1)[_0x15a582(0x150)];}_0x4f42b2+=_0x51bbf1;}return undefined;}SubTextureManager['prototype'][_0x3ff177(0x163)]=function(_0x5a5fc2){const _0x516487=_0x3ff177;let _0xa98b20=_0x5a5fc2['keyWord'],_0x59c75a=_0x5a5fc2[_0x516487(0x16a)][_0x516487(0x14e)];this[_0x516487(0x139)][_0xa98b20]=_State[_0x516487(0x156)];let _0xed45ad=this;_0x59c75a['then'](function(_0x56d7ca){const _0x2392a9=_0x516487;if(!Geoworld[_0x2392a9(0x173)](_0xed45ad[_0x2392a9(0x139)][_0xa98b20]))return;_0xed45ad['state'][_0xa98b20]=_State[_0x2392a9(0x13f)];let _0x4d4cb9=decodePackedBuffer(_0x56d7ca,_0x5a5fc2[_0x2392a9(0x137)]);if(!_0x4d4cb9){_0xed45ad['state'][_0xa98b20]=_State[_0x2392a9(0x14d)];return;}let _0x18bd56=new Uint8Array(_0x4d4cb9),_0xa3e152=new DataView(_0x4d4cb9),_0x826d5=0x0,_0x48b8e0=_0xa3e152[_0x2392a9(0x155)](_0x826d5,!![]);_0x826d5+=Uint32Array[_0x2392a9(0x152)];let _0x1c41ea={};for(let _0x1091ec=0x0;_0x1091ec<_0x48b8e0;_0x1091ec++){let _0x205f3d=_0xa3e152[_0x2392a9(0x155)](_0x826d5,!![]);_0x826d5+=Uint32Array['BYTES_PER_ELEMENT'];let _0x1b2ae1=Geoworld[_0x2392a9(0x148)](_0x18bd56,_0x826d5,_0x205f3d);_0x826d5+=_0x205f3d;let _0x473747=_0xa3e152[_0x2392a9(0x155)](_0x826d5,!![]);_0x826d5+=Uint32Array['BYTES_PER_ELEMENT'];let _0x799a17=_0xa3e152[_0x2392a9(0x155)](_0x826d5,!![]);_0x826d5+=Uint32Array['BYTES_PER_ELEMENT'];let _0x41d673=new Uint8Array(_0x4d4cb9,_0x826d5,_0x799a17),_0x21a1f5=_0x2de58e[_0x2392a9(0x172)](_0x41d673)[_0x2392a9(0x150)];_0x826d5+=_0x799a17;let _0x1f351f=new DataView(_0x21a1f5),_0x4c8e81=0x0,_0x51cdf8=_0x1f351f[_0x2392a9(0x155)](_0x4c8e81,!![]);_0x4c8e81+=Uint32Array[_0x2392a9(0x152)];let _0x24ea6b=_0x1f351f[_0x2392a9(0x155)](_0x4c8e81,!![]);_0x4c8e81+=Uint32Array[_0x2392a9(0x152)];let _0x25fd52=_0x1f351f[_0x2392a9(0x155)](_0x4c8e81,!![]);_0x4c8e81+=Uint32Array[_0x2392a9(0x152)];let _0x237c55=_0x1f351f[_0x2392a9(0x155)](_0x4c8e81,!![]);_0x4c8e81+=Uint32Array[_0x2392a9(0x152)];let _0x15bc37=_0x1f351f[_0x2392a9(0x155)](_0x4c8e81,!![]);_0x4c8e81+=Uint32Array[_0x2392a9(0x152)];let _0x56a25d=new Uint8Array(_0x21a1f5,_0x4c8e81,_0x15bc37);_0x1c41ea[_0x1b2ae1]={'width':_0x24ea6b,'height':_0x25fd52,'arrayBufferView':_0x56a25d};}let _0x59fc8c={'keyWord':_0xa98b20,'result':_0x1c41ea,'byteLength':_0x4d4cb9[_0x2392a9(0x149)]},_0x1166c6=_0xed45ad[_0x2392a9(0x157)]['add'](_0x59fc8c);_0xed45ad[_0x2392a9(0x14f)][_0xa98b20]=_0x1166c6,_0xed45ad[_0x2392a9(0x139)][_0xa98b20]=_State['Ready'],delete _0xed45ad['state'][_0xa98b20],_cacheSize+=_0x4d4cb9['byteLength'];let _0x40a0bb=_0xed45ad[_0x2392a9(0x157)][_0x2392a9(0x15c)];while(_cacheSize>_throttleSize){let _0x1b38c5=_0x40a0bb['item'],_0x339137=_0x40a0bb,_0x433e91=_0x1b38c5[_0x2392a9(0x143)],_0x3f2937=_0xed45ad[_0x2392a9(0x14f)][_0x433e91],_0x50138b=_0x3f2937[_0x2392a9(0x169)];_cacheSize-=_0x50138b[_0x2392a9(0x149)],delete _0xed45ad['cache'][_0x433e91],_0x40a0bb=_0x40a0bb['next'],_0xed45ad[_0x2392a9(0x157)][_0x2392a9(0x15a)](_0x339137);}},function(_0x4e28c7){const _0x2059aa=_0x516487;_0xed45ad['state'][_0xa98b20]=_0x4e28c7?_State['Failed']:_State[_0x2059aa(0x16b)];});},SubTextureManager[_0x3ff177(0x14c)]['get']=function(_0xc24acb,_0x543d71,_0x4d1820,_0x49bc1b){const _0x204c9c=_0x3ff177;let _0x45a283=_0xc24acb+'_'+_0x4d1820,_0x4f73a9=this['cache'][_0x45a283];if(_0x4f73a9)return this['list']['splice'](this['list'][_0x204c9c(0x16e)],_0x4f73a9),_0x4f73a9['item'];let _0x263d0a=this[_0x204c9c(0x139)][_0x45a283];return !Geoworld[_0x204c9c(0x173)](_0x263d0a)&&(_0x263d0a=this[_0x204c9c(0x139)][_0x45a283]=_State[_0x204c9c(0x16b)]),_0x263d0a===_State[_0x204c9c(0x16b)]&&this[_0x204c9c(0x14a)](_0xc24acb,_0x543d71,_0x4d1820,_0x49bc1b[_0x204c9c(0x15d)],_0x49bc1b),undefined;},SubTextureManager[_0x3ff177(0x14c)][_0x3ff177(0x146)]=function(_0x22265a,_0x1a2e7a){const _0x367ad7=_0x3ff177;let _0x23cfbb=_0x22265a+'_'+_0x1a2e7a;delete this[_0x367ad7(0x139)][_0x23cfbb];},SubTextureManager['_singleInstance']=undefined,SubTextureManager[_0x3ff177(0x14b)]=function(){const _0x4c5165=_0x3ff177;return !SubTextureManager['_singleInstance']&&(SubTextureManager['_singleInstance']=new SubTextureManager()),SubTextureManager[_0x4c5165(0x167)];}; const _0x4f2e=['393774FNWrPX','3IBhaOf','matrix','texmodmatrix','compressOptions','diffuse','sphere','componentsPerAttribute','byteLength','distance','textureunitstates','add','edgeGeometry','transform','lerp','textureunitstate','995774ELWIQZ','byteOffset','vertexPackage','bTransparentSorting','36796XlyCim','diffuseColor','radius','context','fromArray','pickInfo','getSingleInstance','unpack','Matrix4','fromPoints','tile','CLAMP_TO_EDGE','minVerticesValue','texMatrix','create','11wopDBR','BoundingSphere','geoPackage','vertexAttributes','328660XQaiAS','_materialManager','material','Color','keys','wrapT','buffer','specular','childTile','122237PLYVHh','Cartesian3','TextureWrap','center','SVC_Vertex','parse','pageLods','materialCode','shininess','rangeDataList','geodes','78306wnoted','REPEAT','multiplyByScalar','ambient','specularColor','typedArray','push','256864ZcPNlM','arrIndexPackage','3zrwoJk','fromBoundingSpheres','rangeMode','addressmode','layerId','length','_subTextureManager','geoMap','groupNode','fileType','skeletonNames','defined','materials','wrapS','createTexture','boundingVolume','transparentsorting','modelMatrix'];const _0x273dda=_0x520c;(function(_0x4c6ff3,_0x1b412b){const _0x8082ea=_0x520c;while(!![]){try{const _0x33000a=-parseInt(_0x8082ea(0x6e))+-parseInt(_0x8082ea(0x96))*parseInt(_0x8082ea(0xa5))+parseInt(_0x8082ea(0x83))*parseInt(_0x8082ea(0xbd))+-parseInt(_0x8082ea(0x82))+parseInt(_0x8082ea(0xb2))*parseInt(_0x8082ea(0x70))+-parseInt(_0x8082ea(0xa9))+parseInt(_0x8082ea(0x92));if(_0x33000a===_0x1b412b)break;else _0x4c6ff3['push'](_0x4c6ff3['shift']());}catch(_0x18f89c){_0x4c6ff3['push'](_0x4c6ff3['shift']());}}}(_0x4f2e,0x34165));function S3MBlockContentParser(){}function parseMaterial$3(_0x51b1cf,_0x4d0776,_0xaff582){const _0x12ff76=_0x520c;let _0x3a3915=_0x51b1cf[_0x12ff76(0x99)],_0x5f1819=_0x51b1cf[_0x12ff76(0xaa)];!_0x5f1819&&(_0x5f1819=_0x51b1cf['_materialManager']=new MaterialManager());let _0x4ae3d8=_0x51b1cf[_0x12ff76(0x76)];!_0x51b1cf[_0x12ff76(0x76)]&&(_0x51b1cf[_0x12ff76(0x76)]=SubTextureManager[_0x12ff76(0x9c)]());let _0x14c35a=_0x4d0776[_0x12ff76(0x7c)]['material'];for(let _0x4b55e1=0x0,_0xe6b211=_0x14c35a['length'];_0x4b55e1<_0xe6b211;_0x4b55e1++){let _0x37421a=_0x14c35a[_0x4b55e1][_0x12ff76(0xab)],_0x48e1ee=_0x37421a['id'],_0x1aea56=_0x5f1819[_0x12ff76(0xa4)](_0x48e1ee);_0x1aea56[_0x12ff76(0x74)]=_0x51b1cf['id'],_0x1aea56[_0x12ff76(0xa0)]=_0xaff582;let _0x4ee86e=_0x37421a[_0x12ff76(0xc0)];_0x1aea56['ambientColor']=new Geoworld[(_0x12ff76(0xac))](_0x4ee86e['r'],_0x4ee86e['g'],_0x4ee86e['b'],_0x4ee86e['a']);let _0x1f5c73=_0x37421a[_0x12ff76(0x87)];_0x1aea56[_0x12ff76(0x97)]=new Geoworld['Color'](_0x1f5c73['r'],_0x1f5c73['g'],_0x1f5c73['b'],_0x1f5c73['a']);let _0x22798c=_0x37421a[_0x12ff76(0xb0)];_0x1aea56[_0x12ff76(0x6b)]=new Geoworld[(_0x12ff76(0xac))](_0x22798c['r'],_0x22798c['g'],_0x22798c['b'],_0x22798c['a']),_0x1aea56['shininess']=_0x37421a[_0x12ff76(0xba)],_0x1aea56[_0x12ff76(0x95)]=_0x37421a[_0x12ff76(0x80)],_0x1aea56['id']=_0x48e1ee;let _0x4daf85=_0x37421a[_0x12ff76(0x8c)],_0x4e7548=_0x4daf85['length'];for(let _0x3a7ea4=0x0;_0x3a7ea4<0x1;_0x3a7ea4++){let _0x26e3ae=_0x4daf85[_0x3a7ea4][_0x12ff76(0x91)],_0x5beb0d=_0x26e3ae['id'],_0x4165eb=_0x26e3ae[_0x12ff76(0x73)]['u']===0x0?Geoworld[_0x12ff76(0xb4)][_0x12ff76(0xbe)]:Geoworld[_0x12ff76(0xb4)][_0x12ff76(0xa1)],_0x88126=_0x26e3ae[_0x12ff76(0x73)]['v']===0x0?Geoworld[_0x12ff76(0xb4)]['REPEAT']:Geoworld['TextureWrap']['CLAMP_TO_EDGE'];_0x1aea56[_0x12ff76(0xa3)]=Geoworld[_0x12ff76(0x9e)][_0x12ff76(0x9d)](_0x26e3ae[_0x12ff76(0x85)]);let _0x5875d7=_0x4d0776['texturePackage'][_0x5beb0d];_0x5875d7&&(_0x5875d7[_0x12ff76(0x7d)]=_0x4165eb,_0x5875d7[_0x12ff76(0xae)]=_0x88126,_0x1aea56[_0x12ff76(0x7e)](_0x51b1cf,_0xaff582,_0x5875d7,_0x3a7ea4,_0x4d0776));}}}function calcBoundingVolumeForNormal$1(_0x5acd8b,_0x310f92){const _0xe1244a=_0x520c;let _0x3ec9c7=new Geoworld['BoundingSphere'](),_0x27ea9a=new Geoworld[(_0xe1244a(0xb3))](),_0x515815=_0x5acd8b[_0xe1244a(0xa8)][0x0],_0x287465=_0x515815[_0xe1244a(0x89)],_0x55a57d=Geoworld[_0xe1244a(0x7b)](_0x5acd8b[_0xe1244a(0x86)])&&(_0x5acd8b['compressOptions']&_0x1d3947[_0xe1244a(0xb6)])===_0x1d3947[_0xe1244a(0xb6)],_0x75eef=0x1,_0x631bba,_0x540bf4;_0x55a57d?(_0x75eef=_0x5acd8b['vertCompressConstant'],_0x631bba=new Geoworld[(_0xe1244a(0xb3))](_0x5acd8b[_0xe1244a(0xa2)]['x'],_0x5acd8b[_0xe1244a(0xa2)]['y'],_0x5acd8b[_0xe1244a(0xa2)]['z']),_0x540bf4=new Uint16Array(_0x515815['typedArray'][_0xe1244a(0xaf)],_0x515815[_0xe1244a(0x6c)][_0xe1244a(0x93)],_0x515815[_0xe1244a(0x6c)][_0xe1244a(0x8a)]/0x2)):_0x540bf4=new Float32Array(_0x515815['typedArray'][_0xe1244a(0xaf)],_0x515815[_0xe1244a(0x6c)][_0xe1244a(0x93)],_0x515815['typedArray'][_0xe1244a(0x8a)]/0x4);let _0x3da9f6=[];for(let _0x58691e=0x0;_0x58691e<_0x5acd8b['verticesCount'];_0x58691e++){Geoworld[_0xe1244a(0xb3)][_0xe1244a(0x9a)](_0x540bf4,_0x287465*_0x58691e,_0x27ea9a),_0x55a57d&&(_0x27ea9a=Geoworld[_0xe1244a(0xb3)][_0xe1244a(0xbf)](_0x27ea9a,_0x75eef,_0x27ea9a),_0x27ea9a=Geoworld[_0xe1244a(0xb3)][_0xe1244a(0x8d)](_0x27ea9a,_0x631bba,_0x27ea9a)),_0x3da9f6[_0xe1244a(0x6d)](Geoworld[_0xe1244a(0xb3)]['clone'](_0x27ea9a));}return Geoworld[_0xe1244a(0xa6)][_0xe1244a(0x9f)](_0x3da9f6,_0x3ec9c7),Geoworld[_0xe1244a(0xa6)]['transform'](_0x3ec9c7,_0x310f92,_0x3ec9c7),_0x3da9f6[_0xe1244a(0x75)]=0x0,_0x3ec9c7;}let scratchCenter$1=new Geoworld[(_0x273dda(0xb3))]();function calcBoundingVolumeForInstance$1(_0x554991){const _0x378574=_0x273dda;let _0x5614f2=new Geoworld[(_0x378574(0xa6))](),_0x54d51e=_0x554991['instanceBounds'];if(!Geoworld[_0x378574(0x7b)](_0x54d51e))return _0x5614f2;let _0xdb1633=new Geoworld['Cartesian3'](_0x54d51e[0x0],_0x54d51e[0x1],_0x54d51e[0x2]),_0x42e038=new Geoworld['Carteisan3'](_0x54d51e[0x3],_0x54d51e[0x4],_0x54d51e[0x5]),_0x97ba0d=new Geoworld['Cartesian3'][(_0x378574(0x90))](_0xdb1633,_0x42e038,0.5,scratchCenter$1),_0x3596cf=new Geoworld['Cartesian3'][(_0x378574(0x8b))](_0x97ba0d,_0xdb1633);return _0x5614f2[_0x378574(0xb5)]=_0x97ba0d,_0x5614f2[_0x378574(0x98)]=_0x3596cf,_0x5614f2;}function _0x520c(_0x15b7fd,_0x358b98){_0x15b7fd=_0x15b7fd-0x6b;let _0x4f2ef5=_0x4f2e[_0x15b7fd];return _0x4f2ef5;}function calcBoundingVolume$1(_0x56a366,_0x2a5f62){if(_0x56a366['instanceIndex']>-0x1)return calcBoundingVolumeForInstance$1(_0x56a366);return calcBoundingVolumeForNormal$1(_0x56a366,_0x2a5f62);}function parseGeodes$1(_0x4a5997,_0x5376f4,_0x58d544,_0x2935d0){const _0x4cd676=_0x273dda;let _0x98038e={},_0x118c74=_0x58d544[_0x4cd676(0xbc)];for(let _0x2ca2c2=0x0,_0x226229=_0x118c74['length'];_0x2ca2c2<_0x226229;_0x2ca2c2++){let _0x14da05=_0x118c74[_0x2ca2c2],_0xb43782=_0x14da05[_0x4cd676(0x84)],_0x1c917e=Geoworld[_0x4cd676(0x9e)]['multiply'](_0x4a5997[_0x4cd676(0x81)],_0xb43782,new Geoworld['Matrix4']()),_0x2de018;Geoworld['defined'](_0x2935d0['boundingVolume'])&&(_0x2de018=new Geoworld['BoundingSphere'](_0x2935d0[_0x4cd676(0x7f)]['sphere']['center'],_0x2935d0[_0x4cd676(0x7f)][_0x4cd676(0x88)][_0x4cd676(0x98)]),Geoworld[_0x4cd676(0xa6)][_0x4cd676(0x8f)](_0x2de018,_0x4a5997[_0x4cd676(0x81)],_0x2de018));let _0x106ddb=_0x14da05[_0x4cd676(0x7a)];for(let _0x2cdfd0=0x0,_0x3162c7=_0x106ddb[_0x4cd676(0x75)];_0x2cdfd0<_0x3162c7;_0x2cdfd0++){let _0x306281=_0x106ddb[_0x2cdfd0],_0x382e70=_0x5376f4[_0x4cd676(0xa7)][_0x306281],_0x461949=_0x382e70[_0x4cd676(0x94)],_0x7e8f26=_0x382e70[_0x4cd676(0x6f)],_0x273b55=_0x382e70[_0x4cd676(0x9b)],_0x2fc689;_0x7e8f26[_0x4cd676(0x75)]>0x0&&(_0x2fc689=_0x4a5997[_0x4cd676(0xaa)][_0x4cd676(0xa4)](_0x7e8f26[0x0][_0x4cd676(0xb9)]));let _0x1185ae=Geoworld['defined'](_0x2de018)?_0x2de018:calcBoundingVolume$1(_0x461949,_0x1c917e);_0x98038e[_0x306281]=S3MContentFactory[_0x4a5997[_0x4cd676(0x79)]]({'layer':_0x4a5997,'vertexPackage':_0x461949,'arrIndexPackage':_0x7e8f26,'pickInfo':_0x273b55,'modelMatrix':_0x1c917e,'geoMatrix':_0xb43782,'boundingVolume':_0x1185ae,'material':_0x2fc689,'edgeGeometry':_0x382e70[_0x4cd676(0x8e)],'geoName':_0x306281});}}if(Object[_0x4cd676(0xad)](_0x98038e)[_0x4cd676(0x75)]<0x1)return;if(!Geoworld[_0x4cd676(0x7b)](_0x2935d0[_0x4cd676(0x7f)])){let _0x2c2cf8=[];for(let _0x1dde74 in _0x98038e){_0x98038e['hasOwnProperty'](_0x1dde74)&&_0x2c2cf8['push'](_0x98038e[_0x1dde74][_0x4cd676(0x7f)]);}let _0x160db=Geoworld[_0x4cd676(0xa6)][_0x4cd676(0x71)](_0x2c2cf8);_0x2935d0[_0x4cd676(0x7f)]={'sphere':_0x160db};}_0x2935d0['geoMap']=_0x98038e;}function parsePagelods$1(_0x230856,_0x5935e4){const _0x479df9=_0x273dda;let _0x16f6d2=_0x5935e4[_0x479df9(0x78)],_0x22130d=[];for(let _0x2b9d08=0x0,_0x459bbf=_0x16f6d2[_0x479df9(0xb8)][_0x479df9(0x75)];_0x2b9d08<_0x459bbf;_0x2b9d08++){let _0x429c61={},_0x392829=_0x16f6d2[_0x479df9(0xb8)][_0x2b9d08];_0x429c61[_0x479df9(0x72)]=_0x392829[_0x479df9(0x72)],_0x429c61['rangeDataList']=_0x392829[_0x479df9(0xb1)],_0x429c61['rangeList']=_0x392829['rangeList'];let _0xe9d319=_0x392829['boundingSphere'][_0x479df9(0xb5)],_0x4f7ae4=_0x392829['boundingSphere'][_0x479df9(0x98)];_0x429c61[_0x479df9(0xbb)]!==''?_0x429c61[_0x479df9(0x7f)]={'sphere':{'center':new Geoworld['Cartesian3'](_0xe9d319['x'],_0xe9d319['y'],_0xe9d319['z']),'radius':_0x4f7ae4}}:_0x429c61['isLeafTile']=!![],parseGeodes$1(_0x230856,_0x5935e4,_0x392829,_0x429c61),Geoworld[_0x479df9(0x7b)](_0x429c61[_0x479df9(0x77)])&&_0x22130d[_0x479df9(0x6d)](_0x429c61);}return _0x22130d;}S3MBlockContentParser[_0x273dda(0xb7)]=function(_0x409132,_0x5d5439,_0x460826){if(!Geoworld['defined'](_0x460826))return;parseMaterial$3(_0x409132,_0x460826,_0x5d5439);let _0x3c7cf7=parsePagelods$1(_0x409132,_0x460826);return _0x3c7cf7;}; const _0x404e=['canTraverse','multiplyByScalar','replace','getScale','contentState','subtract','radius','shouldSelect','rootBatchIdMap','getServerKey','Matrix4','rangeMode','_blockCache','fileExtension','visibleDistanceMin','ancestorMap','BoundingSphere','_isS3MBlock','fromCornerPoints','fetchArrayBuffer','136733lrUcJU','updatePriority','2AshlPO','then','depth','directionWC','visible','defineProperties','request','requestContent','1425275HGtXLf','priorityDeferred','wasMinPriorityChild','positionWC','finalResolution','drawingBufferHeight','getDerivedResource','Resource','getPixel','_baseResource','distanceToTileCenter','isAncestorBlock','parseBuffer','pixel','defer','1iykHGD','refines','contains','getExtensionFromUri','defined','centerZDepth','MASK_OUTSIDE','renderEntities','distanceToTile','READY','_maximumPriority','center','priority','pow','1049847WmgZAT','defaultValue','serverKey','parent','modelMatrix','resolve','sphere','selected','EPSILON7','Cartesian3','add','createBoundingVolume','visibilityPlaneMask','rootName','fileName','2aUCunv','frustum','TileBoundingSphere','Request','RequestState','_basePath','RequestScheduler','length','baseUri','priorityHolder','Pixel','reject','347470QYCDsq','foveatedFactor','tan','5qKzBpV','prototype','update','freeBlock','dot','selectedFrame','updateVisibility','visibility','342024trQUXW','rangeDataList','realspace','layer','distance','pop','max','s3m','computeVisibilityWithPlaneMask','multiplyByPoint','blockKey','get','destroyObject','updatedVisibilityFrame','boundingVolume','contentReadyPromise','distanceToCamera','_minimumPriority','RequestType','relativePath','rangeList','%2B','LOADING','getUrlComponent','requestedFrame','cullingVolume','isLeafTile','destroy','CullingVolume','maximumComponent','_cache','when','parse','UNLOADED','min','processFrame','ready','MAX_VALUE','cacheNode','normalize','children','19591zDCdQq','CANCELLED','617657MzeiTp','clone','3RlFaWy','indexOf','s3mb','FAILED','push','camera','_fovy','contentResource','lodRangeData','isRootTile','Math'];const _0x248c1c=_0x3935;(function(_0x4a6024,_0x1ad5b7){const _0x1b7709=_0x3935;while(!![]){try{const _0x55b1ca=-parseInt(_0x1b7709(0x178))*parseInt(_0x1b7709(0x121))+-parseInt(_0x1b7709(0x169))*parseInt(_0x1b7709(0x15b))+parseInt(_0x1b7709(0x11f))*-parseInt(_0x1b7709(0x123))+parseInt(_0x1b7709(0x142))*parseInt(_0x1b7709(0x187))+parseInt(_0x1b7709(0x14c))+parseInt(_0x1b7709(0x184))*parseInt(_0x1b7709(0x144))+parseInt(_0x1b7709(0x18f));if(_0x55b1ca===_0x1ad5b7)break;else _0x4a6024['push'](_0x4a6024['shift']());}catch(_0x1fdd59){_0x4a6024['push'](_0x4a6024['shift']());}}}(_0x404e,0xc3cb2));function _0x3935(_0x1dab43,_0x39f71e){_0x1dab43=_0x1dab43-0x114;let _0x404e9a=_0x404e[_0x1dab43];return _0x404e9a;}function S3MTile(_0x3755d2,_0x3a77fa,_0x199f9f,_0x3fa571,_0x221924,_0x29e6a3){const _0x39ea14=_0x3935;this[_0x39ea14(0x192)]=_0x3755d2,this[_0x39ea14(0x16c)]=_0x3a77fa;let _0x28c7c9=_0x3fa571[_0x39ea14(0x130)](/\\/g,'/');this[_0x39ea14(0x13b)]=Geoworld[_0x39ea14(0x15e)](_0x3fa571),this[_0x39ea14(0x1a2)]=getUrl(_0x28c7c9,_0x3755d2),this[_0x39ea14(0x177)]=_0x3fa571,this[_0x39ea14(0x1a9)]=_0x221924===0x0,this[_0x39ea14(0x12c)]=![],this[_0x39ea14(0x19d)]=this[_0x39ea14(0x174)](_0x199f9f,_0x3755d2[_0x39ea14(0x16d)]);let _0x2a9960=Geoworld[_0x39ea14(0x153)]['createIfNeeded'](_0x3755d2[_0x39ea14(0x155)]);if(Geoworld[_0x39ea14(0x15f)](_0x3a77fa))this['baseUri']=_0x3a77fa['baseUri'];else {let _0xeb9373=new Geoworld[(_0x39ea14(0x153))](_0x28c7c9);this[_0x39ea14(0x180)]=_0xeb9373['getBaseUri']();}this[_0x39ea14(0x12a)]=_0x2a9960[_0x39ea14(0x152)]({'url':this[_0x39ea14(0x1a2)]}),this['serverKey']=Geoworld[_0x39ea14(0x17e)][_0x39ea14(0x137)](this['contentResource'][_0x39ea14(0x1a6)]()),this[_0x39ea14(0x14a)]=undefined,this[_0x39ea14(0x11c)]=undefined,this[_0x39ea14(0x19f)]=0x0,this[_0x39ea14(0x160)]=0x0,this[_0x39ea14(0x159)]=0x0,this[_0x39ea14(0x146)]=_0x3a77fa?_0x3a77fa[_0x39ea14(0x146)]+0x1:0x0,this['visibilityPlaneMask']=0x0,this[_0x39ea14(0x148)]=![],this[_0x39ea14(0x11e)]=[],this[_0x39ea14(0x162)]=[],this['lodRangeData']=Geoworld[_0x39ea14(0x16a)](_0x221924,0x10),this['lodRangeMode']=Geoworld[_0x39ea14(0x16a)](_0x29e6a3,_0x5e8b18[_0x39ea14(0x182)]),this['contentState']=this[_0x39ea14(0x1a9)]?_0x5a7352[_0x39ea14(0x164)]:_0x5a7352['UNLOADED'],this['touchedFrame']=0x0,this[_0x39ea14(0x1a7)]=0x0,this[_0x39ea14(0x119)]=0x0,this[_0x39ea14(0x18c)]=0x0,this[_0x39ea14(0x19c)]=0x0,this[_0x39ea14(0x185)]=0x0,this[_0x39ea14(0x167)]=0x0,this[_0x39ea14(0x181)]=this,this[_0x39ea14(0x14e)]=![],this[_0x39ea14(0x135)]=![],this[_0x39ea14(0x170)]=![],this[_0x39ea14(0x150)]=!![],this[_0x39ea14(0x15c)]=![],this[_0x39ea14(0x176)]=!_0x3a77fa?this[_0x39ea14(0x177)]:_0x3a77fa[_0x39ea14(0x176)],this[_0x39ea14(0x199)]='',this[_0x39ea14(0x157)]=![],this['isChildBlock']=![],this['rootBatchIdMap']={},this[_0x39ea14(0x13d)]={};}Object[_0x248c1c(0x149)](S3MTile[_0x248c1c(0x188)],{'renderable':{'get':function(){const _0x4b438e=_0x248c1c;let _0x3f7f11=this['renderEntities'],_0x3355fc=_0x3f7f11[_0x4b438e(0x17f)];if(_0x3355fc===0x0)return ![];for(let _0x15842b=0x0;_0x15842b<_0x3355fc;_0x15842b++){if(!_0x3f7f11[_0x15842b][_0x4b438e(0x11a)])return ![];}return !![];}}});let scratchScale=new Geoworld[(_0x248c1c(0x172))]();function createSphere(_0x1f33bb,_0xddb5df){const _0x38f8f4=_0x248c1c;let _0x42e3a0=Geoworld[_0x38f8f4(0x172)][_0x38f8f4(0x122)](_0x1f33bb[_0x38f8f4(0x166)]),_0x45cf75=_0x1f33bb[_0x38f8f4(0x134)];_0x42e3a0=Geoworld[_0x38f8f4(0x138)][_0x38f8f4(0x198)](_0xddb5df,_0x42e3a0,_0x42e3a0);let _0x32881a=Geoworld[_0x38f8f4(0x138)][_0x38f8f4(0x131)](_0xddb5df,scratchScale),_0x3d5224=Geoworld[_0x38f8f4(0x172)][_0x38f8f4(0x1ac)](_0x32881a);return _0x45cf75*=_0x3d5224,new Geoworld[(_0x38f8f4(0x17a))](_0x42e3a0,_0x45cf75);}function getUrl(_0x5bbd70,_0x38421f){const _0x140d7b=_0x248c1c;_0x5bbd70=_0x5bbd70['replace'](/\+/g,_0x140d7b(0x1a4));let _0x25d4ed=_0x38421f[_0x140d7b(0x17d)],_0x608e84=_0x38421f[_0x140d7b(0x17d)][_0x140d7b(0x124)](_0x140d7b(0x191))>-0x1;if(!_0x608e84)return _0x5bbd70;let _0x4dfdca=_0x25d4ed[_0x140d7b(0x130)](/(.*realspace)/,''),_0x309103=_0x25d4ed[_0x140d7b(0x130)](/\/rest\/realspace/g,'')[_0x140d7b(0x130)](_0x4dfdca,'');return _0x309103+'/rest/realspace'+_0x4dfdca+'data/path/'+_0x5bbd70['replace'](/^\.*/,'')['replace'](/^\//,'')['replace'](/\/$/,'');}function createBoundingBox(_0x4db69c,_0x921845){const _0x41ee73=_0x248c1c;let _0x8a5da3=new Geoworld['Cartesian3'](_0x4db69c[_0x41ee73(0x118)]['x'],_0x4db69c['min']['y'],_0x4db69c[_0x41ee73(0x118)]['z']);Geoworld[_0x41ee73(0x138)]['multiplyByPoint'](_0x921845,_0x8a5da3,_0x8a5da3);let _0x1c2188=new Geoworld[(_0x41ee73(0x172))](_0x4db69c[_0x41ee73(0x195)]['x'],_0x4db69c['max']['y'],_0x4db69c[_0x41ee73(0x195)]['z']);Geoworld['Matrix4']['multiplyByPoint'](_0x921845,_0x1c2188,_0x1c2188);let _0x4de2ad=Geoworld[_0x41ee73(0x13e)][_0x41ee73(0x140)](_0x8a5da3,_0x1c2188,new Geoworld[(_0x41ee73(0x13e))]()),_0x4fb01c=_0x4de2ad['center'],_0x5a7e0f=_0x4de2ad[_0x41ee73(0x134)],_0x1874ee=Geoworld['Matrix4'][_0x41ee73(0x131)](_0x921845,scratchScale),_0x20183d=Geoworld['Cartesian3']['maximumComponent'](_0x1874ee);return _0x5a7e0f*=_0x20183d,new Geoworld[(_0x41ee73(0x17a))](_0x4fb01c,_0x5a7e0f);}S3MTile['prototype']['createBoundingVolume']=function(_0x4d5cd6,_0x4a80a3){const _0x15f6f3=_0x248c1c;if(Geoworld[_0x15f6f3(0x15f)](_0x4d5cd6[_0x15f6f3(0x16f)]))return createSphere(_0x4d5cd6[_0x15f6f3(0x16f)],_0x4a80a3);else {if(Geoworld['defined'](_0x4d5cd6['box']))return createBoundingBox(_0x4d5cd6['box'],_0x4a80a3);}return undefined;},S3MTile[_0x248c1c(0x188)][_0x248c1c(0x12e)]=function(){const _0x53aca5=_0x248c1c;if(this[_0x53aca5(0x11e)][_0x53aca5(0x17f)]===0x0||this[_0x53aca5(0x1a9)])return ![];if(!Geoworld[_0x53aca5(0x15f)](this[_0x53aca5(0x12b)]))return !![];return this[_0x53aca5(0x159)]>this[_0x53aca5(0x12b)];};function getBoundingVolume(_0x407ba5,_0x56fcb7){const _0x550459=_0x248c1c;return _0x407ba5[_0x550459(0x19d)];}S3MTile[_0x248c1c(0x188)]['getPixel']=function(_0x324e2e){const _0x2ff051=_0x248c1c;let _0x46bb48=this[_0x2ff051(0x19d)],_0x167350=_0x46bb48[_0x2ff051(0x134)],_0x511a7b=_0x46bb48['center'],_0x524e4a=Geoworld[_0x2ff051(0x172)]['distance'](_0x324e2e['camera'][_0x2ff051(0x14f)],_0x511a7b),_0x4cc4d4=_0x324e2e['context'][_0x2ff051(0x151)],_0x46f2a1=_0x324e2e[_0x2ff051(0x128)][_0x2ff051(0x179)][_0x2ff051(0x129)]*0.5,_0x1678f9=_0x4cc4d4*0.5,_0x277c4c=_0x1678f9/Math[_0x2ff051(0x186)](_0x46f2a1);return _0x277c4c*_0x167350/_0x524e4a;},S3MTile['prototype'][_0x248c1c(0x163)]=function(_0x54223f){const _0x55898a=_0x248c1c;let _0xdb9304=getBoundingVolume(this);return _0xdb9304[_0x55898a(0x19f)](_0x54223f);};let scratchToTileCenter=new Geoworld['Cartesian3']();S3MTile['prototype'][_0x248c1c(0x156)]=function(_0x5ab89b){const _0x2e064e=_0x248c1c,_0x10114e=getBoundingVolume(this),_0x39b9b5=Geoworld[_0x2e064e(0x172)]['subtract'](_0x10114e[_0x2e064e(0x166)],_0x5ab89b[_0x2e064e(0x128)][_0x2e064e(0x14f)],scratchToTileCenter);return Geoworld[_0x2e064e(0x172)][_0x2e064e(0x18b)](_0x5ab89b['camera'][_0x2e064e(0x147)],_0x39b9b5);},S3MTile[_0x248c1c(0x188)]['visibility']=function(_0x298337,_0x3fd5a5){const _0x557009=_0x248c1c;let _0x5295e1=getBoundingVolume(this);return _0x298337[_0x557009(0x1a8)][_0x557009(0x197)](_0x5295e1,_0x3fd5a5);};let scratchCartesian=new Geoworld[(_0x248c1c(0x172))]();function priorityDeferred(_0x4b98fb,_0x3722d6){const _0x47679c=_0x248c1c;let _0x247cc1=_0x3722d6['camera'],_0x5a9496=_0x4b98fb[_0x47679c(0x19d)],_0x45e42e=_0x5a9496[_0x47679c(0x134)],_0x3fcc52=Geoworld[_0x47679c(0x172)][_0x47679c(0x12f)](_0x247cc1[_0x47679c(0x147)],_0x4b98fb[_0x47679c(0x160)],scratchCartesian),_0xad79d4=Geoworld[_0x47679c(0x172)][_0x47679c(0x173)](_0x247cc1['positionWC'],_0x3fcc52,scratchCartesian),_0x1e3db5=Geoworld[_0x47679c(0x172)][_0x47679c(0x133)](_0xad79d4,_0x5a9496[_0x47679c(0x166)],scratchCartesian),_0x491300=Geoworld[_0x47679c(0x172)]['magnitude'](_0x1e3db5),_0x20a437=_0x491300>_0x45e42e;if(_0x20a437){let _0x3ee1a0=Geoworld[_0x47679c(0x172)][_0x47679c(0x11d)](_0x1e3db5,scratchCartesian),_0x5d6ed7=Geoworld[_0x47679c(0x172)][_0x47679c(0x12f)](_0x3ee1a0,_0x45e42e,scratchCartesian),_0x1cc051=Geoworld[_0x47679c(0x172)][_0x47679c(0x173)](_0x5a9496[_0x47679c(0x166)],_0x5d6ed7,scratchCartesian),_0x452566=Geoworld[_0x47679c(0x172)][_0x47679c(0x133)](_0x1cc051,_0x247cc1[_0x47679c(0x14f)],scratchCartesian),_0x499126=Geoworld['Cartesian3'][_0x47679c(0x11d)](_0x452566,scratchCartesian);_0x4b98fb['foveatedFactor']=0x1-Math['abs'](Geoworld[_0x47679c(0x172)][_0x47679c(0x18b)](_0x247cc1[_0x47679c(0x147)],_0x499126));}else _0x4b98fb[_0x47679c(0x185)]=0x0;}S3MTile[_0x248c1c(0x188)][_0x248c1c(0x18d)]=function(_0xf8ba9f,_0x24bf27){const _0x390389=_0x248c1c;let _0x267e92=this['parent'],_0x48667c=Geoworld['defined'](_0x267e92)?_0x267e92[_0x390389(0x175)]:Geoworld['CullingVolume']['MASK_INDETERMINATE'];this[_0x390389(0x19f)]=this[_0x390389(0x163)](_0xf8ba9f),this[_0x390389(0x160)]=this[_0x390389(0x156)](_0xf8ba9f),this[_0x390389(0x159)]=this[_0x390389(0x154)](_0xf8ba9f),this['visibilityPlaneMask']=this[_0x390389(0x18e)](_0xf8ba9f,_0x48667c),this[_0x390389(0x148)]=this[_0x390389(0x175)]!==Geoworld[_0x390389(0x1ab)][_0x390389(0x161)]&&this['distanceToCamera']>=_0x24bf27[_0x390389(0x13c)]&&this[_0x390389(0x19f)]<=_0x24bf27['visibleDistanceMax'],this[_0x390389(0x14d)]=priorityDeferred(this,_0xf8ba9f);};function createPriorityFunction(_0x572d9d){return function(){const _0x11041a=_0x3935;return _0x572d9d[_0x11041a(0x167)];};}function getContentFailedFunction(_0x4aee1a){return function(_0x332946){const _0x255bf3=_0x3935;_0x4aee1a[_0x255bf3(0x132)]=_0x5a7352[_0x255bf3(0x126)],_0x4aee1a['contentReadyPromise'][_0x255bf3(0x183)](_0x332946);};}function createChildren(_0x4fa6cc,_0x3bf00e){const _0x36b6f9=_0x248c1c;let _0x2eaa07=_0x4fa6cc[_0x36b6f9(0x192)],_0x1d0e79=_0x3bf00e['length'],_0x139246=Number[_0x36b6f9(0x11b)],_0x3a2cec=0x0,_0x41181f=_0x5e8b18[_0x36b6f9(0x182)];for(let _0x4889cb=0x0;_0x4889cb<_0x1d0e79;_0x4889cb++){let _0x378056=_0x3bf00e[_0x4889cb],_0x46f0cb=_0x378056[_0x36b6f9(0x19d)],_0x4a7813=_0x378056[_0x36b6f9(0x190)];_0x4a7813=_0x4fa6cc[_0x36b6f9(0x180)]+_0x4a7813;let _0x3d789f=_0x378056[_0x36b6f9(0x1a3)],_0x5f5d6c=_0x378056[_0x36b6f9(0x139)],_0x1db110=_0x378056['geoMap'];if(_0x3d789f!==0x0){let _0x27fe68=new S3MTile(_0x2eaa07,_0x4fa6cc,_0x46f0cb,_0x4a7813,_0x3d789f,_0x5f5d6c);_0x4fa6cc['children'][_0x36b6f9(0x127)](_0x27fe68),_0x2eaa07[_0x36b6f9(0x114)][_0x36b6f9(0x173)](_0x27fe68);}for(let _0x3831a7 in _0x1db110){_0x1db110['hasOwnProperty'](_0x3831a7)&&_0x4fa6cc[_0x36b6f9(0x162)][_0x36b6f9(0x127)](_0x1db110[_0x3831a7]);}_0x139246=Math['min'](_0x139246,_0x3d789f),_0x3a2cec=Math[_0x36b6f9(0x195)](_0x3a2cec,_0x3d789f),_0x41181f=_0x5f5d6c;}_0x4fa6cc[_0x36b6f9(0x12c)]&&(_0x4fa6cc['lodRangeData']=_0x41181f===_0x5e8b18[_0x36b6f9(0x182)]?_0x139246/0x2:_0x3a2cec*0x2);}function parseChildGroup(_0x5989b0,_0x237e0e,_0x1f4501){const _0x31ea45=_0x248c1c;let _0x111880=_0x237e0e[_0x1f4501[_0x31ea45(0x177)]];if(!_0x111880)return;_0x1f4501[_0x31ea45(0x199)]=_0x1f4501[_0x31ea45(0x177)],_0x1f4501[_0x31ea45(0x157)]=!![];let _0x1dad67=S3MBlockContentParser['parse'](_0x5989b0,_0x1f4501,_0x111880);createChildren(_0x1f4501,_0x1dad67);let _0x5e148a=[_0x1f4501];while(_0x5e148a[_0x31ea45(0x17f)]){let _0x9fa3e7=_0x5e148a[_0x31ea45(0x194)](),_0x140311=_0x9fa3e7[_0x31ea45(0x11e)];for(let _0x286dd4=0x0,_0x58bea9=_0x140311[_0x31ea45(0x17f)];_0x286dd4<_0x58bea9;_0x286dd4++){let _0x5c3b6e=_0x140311[_0x286dd4],_0x3dd030=_0x5c3b6e[_0x31ea45(0x177)];if(_0x3dd030==='')continue;_0x5c3b6e[_0x31ea45(0x136)]=_0x111880[_0x31ea45(0x136)],_0x5c3b6e[_0x31ea45(0x13d)]=_0x111880['ancestorMap'];let _0x3b3856=_0x237e0e[_0x5c3b6e['fileName']];if(_0x3b3856){_0x5c3b6e[_0x31ea45(0x132)]=_0x5a7352['READY'],_0x5c3b6e[_0x31ea45(0x199)]=_0x9fa3e7[_0x31ea45(0x199)],_0x5c3b6e['isChildBlock']=!![];let _0x228099=S3MBlockContentParser[_0x31ea45(0x116)](_0x5989b0,_0x5c3b6e,_0x3b3856);createChildren(_0x5c3b6e,_0x228099),_0x5e148a[_0x31ea45(0x127)](_0x5c3b6e);}else _0x5c3b6e[_0x31ea45(0x157)]=!![],_0x5c3b6e[_0x31ea45(0x199)]=_0x5c3b6e[_0x31ea45(0x177)];}}}function contentReadyFunction(_0x27fba3,_0x4c564a,_0x5a16fe){const _0x3fbf05=_0x248c1c;_0x27fba3['_cache'][_0x3fbf05(0x173)](_0x4c564a);if(_0x27fba3[_0x3fbf05(0x13f)]){let _0x1282da=S3MBlockParser[_0x3fbf05(0x158)](_0x5a16fe,_0x4c564a);parseChildGroup(_0x27fba3,_0x1282da,_0x4c564a),_0x4c564a['selectedFrame']=0x0,_0x4c564a[_0x3fbf05(0x132)]=_0x5a7352['READY'],_0x4c564a[_0x3fbf05(0x19e)][_0x3fbf05(0x16e)](!![]);return;}let _0x532501;if(_0x4c564a['fileExtension']===_0x3fbf05(0x125))_0x532501=S3ModelParser['parseBuffer'](_0x5a16fe);else _0x4c564a[_0x3fbf05(0x13b)]===_0x3fbf05(0x196)&&(_0x532501=S3ModelOldParser[_0x3fbf05(0x158)](_0x5a16fe));if(!_0x532501){_0x4c564a[_0x3fbf05(0x132)]=_0x5a7352[_0x3fbf05(0x126)],_0x4c564a[_0x3fbf05(0x19e)][_0x3fbf05(0x183)]();return;}let _0x5074fa=S3MContentParser[_0x3fbf05(0x116)](_0x27fba3,_0x532501,_0x4c564a);createChildren(_0x4c564a,_0x5074fa),_0x4c564a['selectedFrame']=0x0,_0x4c564a['contentState']=_0x5a7352[_0x3fbf05(0x164)],_0x4c564a[_0x3fbf05(0x19e)][_0x3fbf05(0x16e)](_0x532501);}S3MTile[_0x248c1c(0x188)][_0x248c1c(0x14b)]=function(){const _0x3f7115=_0x248c1c;let _0xb590c7=this,_0x46ee60=this['layer'];if(_0x46ee60[_0x3f7115(0x13f)]&&_0x46ee60[_0x3f7115(0x13a)][_0x3f7115(0x15d)](_0x46ee60['id'],this[_0x3f7115(0x199)])){let _0x211a1f=_0x46ee60[_0x3f7115(0x13a)][_0x3f7115(0x19a)](_0x46ee60['id'],this[_0x3f7115(0x199)]);return this[_0x3f7115(0x19e)]=Geoworld[_0x3f7115(0x115)][_0x3f7115(0x15a)](),contentReadyFunction(_0x46ee60,this,_0x211a1f),!![];}let _0x11436d=this[_0x3f7115(0x12a)][_0x3f7115(0x122)](),_0x439cb4=new Geoworld[(_0x3f7115(0x17b))]({'throttle':!![],'throttleByServer':!![],'type':Geoworld[_0x3f7115(0x1a1)]['TILES3D'],'priorityFunction':createPriorityFunction(this),'serverKey':this[_0x3f7115(0x16b)]});this[_0x3f7115(0x14a)]=_0x439cb4,_0x11436d[_0x3f7115(0x14a)]=_0x439cb4;let _0x48e80a=_0x11436d[_0x3f7115(0x141)]();if(!Geoworld[_0x3f7115(0x15f)](_0x48e80a))return ![];this[_0x3f7115(0x132)]=_0x5a7352[_0x3f7115(0x1a5)],this['contentReadyPromise']=Geoworld[_0x3f7115(0x115)][_0x3f7115(0x15a)]();let _0xf08b2e=getContentFailedFunction(this);return _0x48e80a[_0x3f7115(0x145)](function(_0x3bc441){if(_0xb590c7['isDestroyed']()){_0xf08b2e();return;}contentReadyFunction(_0x46ee60,_0xb590c7,_0x3bc441);})['otherwise'](function(_0x9d3242){const _0x41bb4e=_0x3f7115;if(_0x439cb4['state']===Geoworld[_0x41bb4e(0x17c)][_0x41bb4e(0x120)]){_0xb590c7['contentState']=_0x5a7352[_0x41bb4e(0x117)];return;}_0xf08b2e(_0x9d3242);}),!![];};function priorityNormalizeAndClamp(_0x3bd8b0,_0x5798d0,_0x414c55){const _0x30d28b=_0x248c1c;return Math[_0x30d28b(0x195)](Geoworld[_0x30d28b(0x12d)][_0x30d28b(0x11d)](_0x3bd8b0,_0x5798d0,_0x414c55)-Geoworld['Math'][_0x30d28b(0x171)],0x0);}function isolateDigits(_0x438ad1,_0x556d50,_0x40d903){const _0x49ab64=_0x248c1c;let _0x138acd=_0x438ad1*Math[_0x49ab64(0x168)](0xa,_0x556d50),_0x4c8e51=parseInt(_0x138acd);return _0x4c8e51*Math[_0x49ab64(0x168)](0xa,_0x40d903);}S3MTile[_0x248c1c(0x188)][_0x248c1c(0x143)]=function(_0x4076ec,_0x579ca5){const _0x5797d9=_0x248c1c;let _0x50f094=_0x4076ec[_0x5797d9(0x1a0)],_0x4a90fb=_0x4076ec[_0x5797d9(0x165)],_0xdd8f62=0x4,_0x59ce8e=0x4,_0x55bff3=priorityNormalizeAndClamp(this[_0x5797d9(0x185)],_0x50f094['foveatedFactor'],_0x4a90fb[_0x5797d9(0x185)]),_0xa05ab6=isolateDigits(_0x55bff3,_0x59ce8e,_0xdd8f62);_0xdd8f62=0x8;let _0xfcc2c1=priorityNormalizeAndClamp(this[_0x5797d9(0x159)],_0x50f094['pixel'],_0x4a90fb['pixel']),_0x288e36=isolateDigits(0x1-_0xfcc2c1,_0x59ce8e,_0xdd8f62);_0xdd8f62=0x0;let _0x10e07d=priorityNormalizeAndClamp(this[_0x5797d9(0x19f)],_0x50f094[_0x5797d9(0x193)],_0x4a90fb[_0x5797d9(0x193)]),_0x242a28=isolateDigits(_0x10e07d,_0x59ce8e,_0xdd8f62);this[_0x5797d9(0x167)]=_0xa05ab6+_0x288e36+_0x242a28;},S3MTile['prototype'][_0x248c1c(0x189)]=function(_0x4738c1,_0x52f375){const _0x172dfa=_0x248c1c;for(let _0x5718b8=0x0,_0x5197cc=this[_0x172dfa(0x162)][_0x172dfa(0x17f)];_0x5718b8<_0x5197cc;_0x5718b8++){this[_0x172dfa(0x162)][_0x5718b8][_0x172dfa(0x189)](_0x4738c1,_0x52f375);}},S3MTile[_0x248c1c(0x188)]['free']=function(){const _0x48f5df=_0x248c1c;this[_0x48f5df(0x132)]=_0x5a7352[_0x48f5df(0x117)],this[_0x48f5df(0x14a)]=undefined,this[_0x48f5df(0x11c)]=undefined,this[_0x48f5df(0x181)]=undefined,this[_0x48f5df(0x19e)]=undefined,this['priorityHolder']=undefined;for(let _0x27f85e=0x0,_0x1285d2=this[_0x48f5df(0x162)][_0x48f5df(0x17f)];_0x27f85e<_0x1285d2;_0x27f85e++){this[_0x48f5df(0x162)][_0x27f85e][_0x48f5df(0x1aa)]();}this['renderEntities']['length']=0x0,this[_0x48f5df(0x11e)][_0x48f5df(0x17f)]=0x0;},S3MTile[_0x248c1c(0x188)][_0x248c1c(0x18a)]=function(){const _0x43c211=_0x248c1c;this['contentState']=_0x5a7352[_0x43c211(0x117)],this[_0x43c211(0x14a)]=undefined,this[_0x43c211(0x11c)]=undefined,this[_0x43c211(0x181)]=undefined,this['contentReadyPromise']=undefined,this[_0x43c211(0x181)]=undefined;for(let _0x12bce9=0x0,_0xf78d37=this[_0x43c211(0x162)]['length'];_0x12bce9<_0xf78d37;_0x12bce9++){this[_0x43c211(0x162)][_0x12bce9][_0x43c211(0x1aa)]();}this[_0x43c211(0x162)][_0x43c211(0x17f)]=0x0;for(let _0xca5d40=0x0,_0xc52742=this[_0x43c211(0x11e)][_0x43c211(0x17f)];_0xca5d40<_0xc52742;_0xca5d40++){let _0x49d422=this[_0x43c211(0x11e)][_0xca5d40];!_0x49d422['isAncestorBlock']&&_0x49d422[_0x43c211(0x18a)]();}this[_0x43c211(0x11e)][_0x43c211(0x17f)]=0x0;},S3MTile[_0x248c1c(0x188)]['isDestroyed']=function(){return ![];},S3MTile[_0x248c1c(0x188)][_0x248c1c(0x1aa)]=function(){const _0x4200a3=_0x248c1c;return this['free'](),Geoworld[_0x4200a3(0x19b)](this);}; const _0x2024=['741946SQzgAr','877ikUZCR','requestedFrame','_stack','distanceToCamera','_selectedTiles','renderable','wasMinPriorityChild','parent','_cache','360539OweSIj','pop','contentState','pixel','foveatedFactor','shouldSelect','distance','prototype','973433zverLN','1xcGtiv','min','_rootTiles','priorityHolder','selectedFrame','max','_maximumPriority','_requestTiles','frameNumber','MAX_VALUE','279WmwSgi','visible','lodRangeData','touch','touchedFrame','schedule','21030ideYem','centerZDepth','updateVisibility','_minimumPriority','1jNEeSn','1449998ThfAvN','updatePriority','push','defined','children','lodRangeMode','length','selected','_processTiles','depth','2185299RWrvYQ','lodRangeScale','UNLOADED'];const _0x44c1fd=_0x1be8;(function(_0x5a5728,_0x1e6bb4){const _0x1d3155=_0x1be8;while(!![]){try{const _0x278d08=parseInt(_0x1d3155(0x1d7))*-parseInt(_0x1d3155(0x1ba))+-parseInt(_0x1d3155(0x1e6))*-parseInt(_0x1d3155(0x1cd))+parseInt(_0x1d3155(0x1d3))+parseInt(_0x1d3155(0x1c3))*parseInt(_0x1d3155(0x1c2))+parseInt(_0x1d3155(0x1e5))+parseInt(_0x1d3155(0x1d8))+-parseInt(_0x1d3155(0x1e2));if(_0x278d08===_0x1e6bb4)break;else _0x5a5728['push'](_0x5a5728['shift']());}catch(_0xf83602){_0x5a5728['push'](_0x5a5728['shift']());}}}(_0x2024,0xd8204));function S3MLayerScheduler(){const _0x3ca666=_0x1be8;this[_0x3ca666(0x1b3)]=[];}function sortComparator(_0x5b67c1,_0x2ee4e5){const _0x4615fc=_0x1be8;if(_0x2ee4e5['distanceToCamera']===0x0&&_0x5b67c1[_0x4615fc(0x1b4)]===0x0)return _0x2ee4e5['centerZDepth']-_0x5b67c1[_0x4615fc(0x1d4)];return _0x2ee4e5[_0x4615fc(0x1b4)]-_0x5b67c1[_0x4615fc(0x1b4)];}function updateChildren(_0x37eba9,_0x5eef46,_0x2859df,_0x113ec9){const _0x59082b=_0x1be8;let _0x3d8eba,_0xccb3e2=_0x5eef46[_0x59082b(0x1dc)],_0x14977a=_0xccb3e2['length'];for(_0x3d8eba=0x0;_0x3d8eba<_0x14977a;++_0x3d8eba){updateTile(_0x113ec9,_0x37eba9,_0xccb3e2[_0x3d8eba]);}_0xccb3e2['sort'](sortComparator);let _0x4429a5=!![],_0x1fca08=![],_0x2e2398=-0x1,_0x108e08=Number[_0x59082b(0x1cc)],_0x307a4e=!![];for(_0x3d8eba=0x0;_0x3d8eba<_0x14977a;++_0x3d8eba){let _0x210321=_0xccb3e2[_0x3d8eba];_0x210321[_0x59082b(0x1be)]<_0x108e08&&(_0x2e2398=_0x3d8eba,_0x108e08=_0x210321[_0x59082b(0x1be)]);_0x210321[_0x59082b(0x1ce)]?(_0x2859df['push'](_0x210321),_0x1fca08=!![]):(loadTile(_0x37eba9,_0x210321,_0x113ec9),touchTile(_0x37eba9,_0x210321,_0x113ec9));let _0x50f2aa=_0x210321[_0x59082b(0x1b6)];_0x307a4e&&(_0x4429a5=_0x4429a5&&_0x50f2aa);}!_0x1fca08&&(_0x4429a5=![]);if(_0x2e2398!==-0x1){let _0x57bb1d=_0xccb3e2[_0x2e2398];_0x57bb1d['wasMinPriorityChild']=!![];let _0x49b142=(_0x5eef46['wasMinPriorityChild']||_0x5eef46['isRootTile'])&&_0x108e08<=_0x5eef46['priorityHolder'][_0x59082b(0x1be)]?_0x5eef46[_0x59082b(0x1c6)]:_0x5eef46;_0x49b142[_0x59082b(0x1be)]=Math[_0x59082b(0x1c4)](_0x57bb1d['foveatedFactor'],_0x49b142[_0x59082b(0x1be)]),_0x49b142[_0x59082b(0x1b4)]=Math[_0x59082b(0x1c4)](_0x57bb1d[_0x59082b(0x1b4)],_0x49b142[_0x59082b(0x1b4)]);for(_0x3d8eba=0x0;_0x3d8eba<_0x14977a;++_0x3d8eba){let _0x17c25c=_0xccb3e2[_0x3d8eba];_0x17c25c[_0x59082b(0x1c6)]=_0x49b142;}}return _0x4429a5;}function _0x1be8(_0x34059f,_0x8b0867){_0x34059f=_0x34059f-0x1b3;let _0x202431=_0x2024[_0x34059f];return _0x202431;}function selectTile(_0x3f98a0,_0x34d70d,_0x22d489){const _0x4888d5=_0x1be8;if(_0x34d70d['selectedFrame']===_0x22d489['frameNumber']||!_0x34d70d[_0x4888d5(0x1b6)])return;_0x3f98a0[_0x4888d5(0x1b5)]['push'](_0x34d70d),_0x34d70d[_0x4888d5(0x1c7)]=_0x22d489[_0x4888d5(0x1cb)];}function loadTile(_0x4aa491,_0x34e4e4,_0x4125bb){const _0x281f49=_0x1be8;if(_0x34e4e4[_0x281f49(0x1e7)]===_0x4125bb[_0x281f49(0x1cb)]||_0x34e4e4['contentState']!==_0x5a7352[_0x281f49(0x1e4)])return;_0x4aa491[_0x281f49(0x1ca)][_0x281f49(0x1da)](_0x34e4e4),_0x34e4e4[_0x281f49(0x1e7)]=_0x4125bb[_0x281f49(0x1cb)];}function processTile(_0x3a2071,_0x4721b1,_0x17bd8b){const _0xf0f79c=_0x1be8;if(_0x4721b1['processFrame']===_0x17bd8b[_0xf0f79c(0x1cb)]||_0x4721b1[_0xf0f79c(0x1bc)]!==_0x5a7352['READY']||_0x4721b1[_0xf0f79c(0x1b6)])return;_0x4721b1['processFrame']=_0x17bd8b[_0xf0f79c(0x1cb)],_0x3a2071[_0xf0f79c(0x1e0)]['push'](_0x4721b1);}function touchTile(_0x4ca7fe,_0x265f5e,_0x3b3a21){const _0x32162e=_0x1be8;if(_0x265f5e[_0x32162e(0x1d1)]===_0x3b3a21[_0x32162e(0x1cb)])return;_0x4ca7fe[_0x32162e(0x1b9)][_0x32162e(0x1d0)](_0x265f5e),_0x265f5e[_0x32162e(0x1d1)]=_0x3b3a21[_0x32162e(0x1cb)];}function updateVisibility(_0x37417b,_0x4db3b4,_0x51aeae){const _0x13eadd=_0x1be8;if(_0x4db3b4['updatedVisibilityFrame']===_0x51aeae['frameNumber'])return;_0x4db3b4['updatedVisibilityFrame']=_0x51aeae['frameNumber'],_0x4db3b4[_0x13eadd(0x1d5)](_0x51aeae,_0x37417b);}function updateTileVisibility(_0x52784b,_0x1c3e5e,_0x3e4fae){updateVisibility(_0x1c3e5e,_0x3e4fae,_0x52784b);}function updateMinimumMaximumPriority(_0x5a149b,_0x50a200){const _0x44f786=_0x1be8;_0x5a149b['_maximumPriority']['distance']=Math[_0x44f786(0x1c8)](_0x50a200['distanceToCamera'],_0x5a149b[_0x44f786(0x1c9)]['distance']),_0x5a149b['_minimumPriority'][_0x44f786(0x1c0)]=Math[_0x44f786(0x1c4)](_0x50a200[_0x44f786(0x1b4)],_0x5a149b[_0x44f786(0x1d6)][_0x44f786(0x1c0)]),_0x5a149b[_0x44f786(0x1c9)]['depth']=Math[_0x44f786(0x1c8)](_0x50a200[_0x44f786(0x1e1)],_0x5a149b[_0x44f786(0x1c9)][_0x44f786(0x1e1)]),_0x5a149b[_0x44f786(0x1d6)]['depth']=Math[_0x44f786(0x1c4)](_0x50a200[_0x44f786(0x1e1)],_0x5a149b[_0x44f786(0x1d6)][_0x44f786(0x1e1)]),_0x5a149b[_0x44f786(0x1c9)][_0x44f786(0x1be)]=Math[_0x44f786(0x1c8)](_0x50a200[_0x44f786(0x1be)],_0x5a149b[_0x44f786(0x1c9)][_0x44f786(0x1be)]),_0x5a149b['_minimumPriority'][_0x44f786(0x1be)]=Math[_0x44f786(0x1c4)](_0x50a200[_0x44f786(0x1be)],_0x5a149b[_0x44f786(0x1d6)][_0x44f786(0x1be)]),_0x5a149b[_0x44f786(0x1c9)][_0x44f786(0x1bd)]=Math[_0x44f786(0x1c8)](_0x50a200[_0x44f786(0x1bd)],_0x5a149b[_0x44f786(0x1c9)][_0x44f786(0x1bd)]),_0x5a149b[_0x44f786(0x1d6)]['pixel']=Math[_0x44f786(0x1c4)](_0x50a200[_0x44f786(0x1bd)],_0x5a149b[_0x44f786(0x1d6)][_0x44f786(0x1bd)]);}function updateTile(_0x565432,_0x278696,_0x2240c6){const _0x15d948=_0x1be8;updateTileVisibility(_0x565432,_0x278696,_0x2240c6),_0x2240c6[_0x15d948(0x1b7)]=![],_0x2240c6[_0x15d948(0x1c6)]=_0x2240c6,updateMinimumMaximumPriority(_0x278696,_0x2240c6),_0x2240c6[_0x15d948(0x1bf)]=![],_0x2240c6[_0x15d948(0x1df)]=![];}function canTraverse(_0x5ecc1a,_0x570047){const _0x5a8561=_0x1be8;if(_0x570047[_0x5a8561(0x1dc)][_0x5a8561(0x1de)]===0x0)return ![];if(_0x570047[_0x5a8561(0x1dd)]===_0x5e8b18['Pixel'])return _0x570047[_0x5a8561(0x1bd)]/_0x5ecc1a[_0x5a8561(0x1e3)]>_0x570047[_0x5a8561(0x1cf)];return _0x570047[_0x5a8561(0x1b4)]*_0x5ecc1a[_0x5a8561(0x1e3)]<_0x570047[_0x5a8561(0x1cf)];}function traversal(_0x18b9a8,_0x444ece,_0x1ee42d){const _0x5e8c4a=_0x1be8;while(_0x444ece[_0x5e8c4a(0x1de)]){let _0x5954ef=_0x444ece[_0x5e8c4a(0x1bb)](),_0x38ee3f=_0x5954ef[_0x5e8c4a(0x1b8)],_0xb3bb85=!Geoworld[_0x5e8c4a(0x1db)](_0x38ee3f)||_0x38ee3f['refines'],_0x4339e0=![];canTraverse(_0x18b9a8,_0x5954ef)&&(_0x4339e0=updateChildren(_0x18b9a8,_0x5954ef,_0x444ece,_0x1ee42d)&&_0xb3bb85);let _0x2eafaa=!_0x4339e0&&_0xb3bb85;loadTile(_0x18b9a8,_0x5954ef,_0x1ee42d),processTile(_0x18b9a8,_0x5954ef,_0x1ee42d),_0x2eafaa&&selectTile(_0x18b9a8,_0x5954ef,_0x1ee42d),touchTile(_0x18b9a8,_0x5954ef,_0x1ee42d),_0x5954ef['refines']=_0x4339e0;}}function selectRootTiles(_0x9dbbf9,_0x2eb71c,_0xc67cb1){const _0x572b34=_0x1be8;_0x2eb71c['length']=0x0;for(let _0x404443=0x0,_0x28e0ca=_0x9dbbf9['_rootTiles'][_0x572b34(0x1de)];_0x404443<_0x28e0ca;_0x404443++){let _0x5227d3=_0x9dbbf9[_0x572b34(0x1c5)][_0x404443];updateTile(_0xc67cb1,_0x9dbbf9,_0x5227d3);if(!_0x5227d3['visible'])continue;_0x2eb71c[_0x572b34(0x1da)](_0x5227d3);}}function updatePriority(_0x4ee8c0,_0x195344){const _0x18da0c=_0x1be8;let _0x115d5c=_0x4ee8c0['_requestTiles'],_0x2fb197=_0x115d5c[_0x18da0c(0x1de)];for(let _0x59dc5d=0x0;_0x59dc5d<_0x2fb197;++_0x59dc5d){_0x115d5c[_0x59dc5d][_0x18da0c(0x1d9)](_0x4ee8c0,_0x195344);}}S3MLayerScheduler[_0x44c1fd(0x1c1)][_0x44c1fd(0x1d2)]=function(_0x1d3fd7,_0x11ef5c){const _0x31e5a7=_0x44c1fd;let _0x3727ab=this[_0x31e5a7(0x1b3)];selectRootTiles(_0x1d3fd7,_0x3727ab,_0x11ef5c),traversal(_0x1d3fd7,_0x3727ab,_0x11ef5c),updatePriority(_0x1d3fd7,_0x11ef5c);}; const _0x195a=['unloadBlockTiles','99131wWehaA','item','splice','next','_trimTiles','pop','prototype','1781192bYjKYW','reset','59BHWGTr','defined','unloadTile','1XqOUFW','trim','_list','children','24347cZzTTK','unloadBlockTile','819309sxGNsb','3856istBFb','head','totalMemoryUsageInBytes','2453YEAcMc','push','touch','_sentinel','1240313ItLjpq','tail','length','cacheNode','unloadTiles','maximumMemoryUsage','isAncestorBlock'];const _0x1dca85=_0x41d7;(function(_0x3eb52c,_0xcdce79){const _0x53482d=_0x41d7;while(!![]){try{const _0x49d615=parseInt(_0x53482d(0x103))*parseInt(_0x53482d(0x111))+-parseInt(_0x53482d(0x10d))+parseInt(_0x53482d(0x109))+parseInt(_0x53482d(0xf7))+-parseInt(_0x53482d(0x100))*-parseInt(_0x53482d(0x10a))+parseInt(_0x53482d(0x107))+-parseInt(_0x53482d(0xfe));if(_0x49d615===_0xcdce79)break;else _0x3eb52c['push'](_0x3eb52c['shift']());}catch(_0x404b2c){_0x3eb52c['push'](_0x3eb52c['shift']());}}}(_0x195a,0x9910f));function S3MLayerCache(){const _0x188f83=_0x41d7;this[_0x188f83(0x105)]=new Geoworld['DoublyLinkedList'](),this['_sentinel']=this[_0x188f83(0x105)]['add'](),this[_0x188f83(0xfb)]=![];}S3MLayerCache['prototype'][_0x1dca85(0xff)]=function(){const _0x200d1a=_0x1dca85;this[_0x200d1a(0x105)][_0x200d1a(0xf9)](this[_0x200d1a(0x105)][_0x200d1a(0x112)],this[_0x200d1a(0x110)]);},S3MLayerCache[_0x1dca85(0xfd)][_0x1dca85(0x10f)]=function(_0x310913){const _0xf2ee5a=_0x1dca85;let _0x304508=_0x310913['cacheNode'];Geoworld[_0xf2ee5a(0x101)](_0x304508)&&this[_0xf2ee5a(0x105)][_0xf2ee5a(0xf9)](this[_0xf2ee5a(0x110)],_0x304508);},S3MLayerCache[_0x1dca85(0xfd)]['add']=function(_0x591e2f){const _0x2a875b=_0x1dca85;!Geoworld[_0x2a875b(0x101)](_0x591e2f[_0x2a875b(0x114)])&&(_0x591e2f[_0x2a875b(0x114)]=this[_0x2a875b(0x105)]['add'](_0x591e2f));},S3MLayerCache[_0x1dca85(0xfd)][_0x1dca85(0x102)]=function(_0x56f70b,_0x19f26d,_0x9ade87){const _0x1c649d=_0x1dca85;let _0x9a790b=_0x19f26d[_0x1c649d(0x114)];if(!Geoworld[_0x1c649d(0x101)](_0x9a790b))return;this[_0x1c649d(0x105)]['remove'](_0x9a790b),_0x19f26d['cacheNode']=undefined,_0x9ade87(_0x56f70b,_0x19f26d);},S3MLayerCache[_0x1dca85(0xfd)][_0x1dca85(0x108)]=function(_0x47f2de,_0x228d2f,_0x1cc3e5){const _0x8073c=_0x1dca85;let _0x297d97=[_0x228d2f],_0x2d139c=[_0x228d2f];while(_0x297d97[_0x8073c(0x113)]){let _0x159f01=_0x297d97[_0x8073c(0xfc)]();for(let _0x1abdc5=0x0,_0x3e82d1=_0x159f01[_0x8073c(0x106)][_0x8073c(0x113)];_0x1abdc5<_0x3e82d1;_0x1abdc5++){let _0x657c0a=_0x159f01['children'][_0x1abdc5];!_0x657c0a['isAncestorBlock']&&(_0x297d97[_0x8073c(0x10e)](_0x657c0a),_0x2d139c[_0x8073c(0x10e)](_0x657c0a));}}for(let _0x13aa5e=0x0,_0x5c4c89=_0x2d139c[_0x8073c(0x113)];_0x13aa5e<_0x5c4c89;_0x13aa5e++){let _0x1336e7=_0x2d139c[_0x13aa5e];this[_0x8073c(0x102)](_0x47f2de,_0x1336e7,_0x1cc3e5);}},S3MLayerCache[_0x1dca85(0xfd)][_0x1dca85(0xf3)]=function(_0x2dfe,_0x4a4dfb){const _0x47e91d=_0x1dca85;let _0x13ea04=this[_0x47e91d(0xfb)];this[_0x47e91d(0xfb)]=![];let _0x311040=this[_0x47e91d(0x105)],_0x42dab6=_0x2dfe['maximumMemoryUsage']*0x400*0x400,_0x5c293f=this[_0x47e91d(0x110)],_0x275767=_0x311040[_0x47e91d(0x10b)];while(_0x275767&&_0x275767!==_0x5c293f&&(_0x2dfe[_0x47e91d(0x10c)]>_0x42dab6||_0x13ea04)){let _0x376c9a=_0x275767['item'];_0x275767=_0x275767[_0x47e91d(0xfa)],this[_0x47e91d(0x102)](_0x2dfe,_0x376c9a,_0x4a4dfb);}},S3MLayerCache[_0x1dca85(0xfd)][_0x1dca85(0xf6)]=function(_0x5981ae,_0x2e269){const _0x9dcdd3=_0x1dca85;let _0x29d31d=this[_0x9dcdd3(0xfb)];this['_trimTiles']=![];let _0x136efd=this[_0x9dcdd3(0x105)],_0x42922e=_0x5981ae[_0x9dcdd3(0xf4)]*0x400*0x400,_0x250640=this[_0x9dcdd3(0x110)],_0xeaaaa8=_0x136efd[_0x9dcdd3(0x10b)];while(_0xeaaaa8&&_0xeaaaa8!==_0x250640&&(_0x5981ae[_0x9dcdd3(0x10c)]>_0x42922e||_0x29d31d)){let _0x204730=_0xeaaaa8[_0x9dcdd3(0xf8)];_0xeaaaa8=_0xeaaaa8['next'],_0x204730[_0x9dcdd3(0xf5)]&&this['unloadBlockTile'](_0x5981ae,_0x204730,_0x2e269);}},S3MLayerCache[_0x1dca85(0xfd)][_0x1dca85(0x104)]=function(){const _0x275d93=_0x1dca85;this[_0x275d93(0xfb)]=!![];};function _0x41d7(_0x41535f,_0x380387){_0x41535f=_0x41535f-0xf3;let _0x195a74=_0x195a[_0x41535f];return _0x195a74;} const _0x4ffb=['37Mpfzjn','1371770pzuZCS','181717kPvZbM','1ObcyEN','542126FuaCpN','freeze','176009LajjDY','13DaSjsC','1siuaSO','13085YzMYwS','1222262IVAluK','542197nLjQbw'];const _0x5a5fa5=_0x518f;(function(_0x18aca9,_0x50780a){const _0x2de50e=_0x518f;while(!![]){try{const _0x5a7300=parseInt(_0x2de50e(0xdd))*-parseInt(_0x2de50e(0xda))+parseInt(_0x2de50e(0xdf))+-parseInt(_0x2de50e(0xe1))+parseInt(_0x2de50e(0xd9))*-parseInt(_0x2de50e(0xdc))+parseInt(_0x2de50e(0xdb))+-parseInt(_0x2de50e(0xde))*parseInt(_0x2de50e(0xe0))+-parseInt(_0x2de50e(0xe3))*-parseInt(_0x2de50e(0xe4));if(_0x5a7300===_0x50780a)break;else _0x18aca9['push'](_0x18aca9['shift']());}catch(_0x220741){_0x18aca9['push'](_0x18aca9['shift']());}}}(_0x4ffb,0xb78f2));function _0x518f(_0x3afcc2,_0x266825){_0x3afcc2=_0x3afcc2-0xd9;let _0x4ffba3=_0x4ffb[_0x3afcc2];return _0x4ffba3;}const PLANECLIPMODE={'CLIP_NOTHING':0x0,'CLIP_BEHIND_ANY_PLANE':0x1,'CLIP_BEHIND_ALL_PLANE':0x2,'ONLY_KEEP_LINE':0x3};var _0x4bdbb1 = Object[_0x5a5fa5(0xe2)](PLANECLIPMODE); const _0x172d=['4807NhLPeU','1047459MLLnyn','151HdMHJG','195HjpbNB','1275109UZpeRH','5iOFJIr','92689DDcAPN','444043OIseGp','1557ANhurB','505391lrHnbJ'];function _0x240e(_0x29478a,_0xd7fcd6){_0x29478a=_0x29478a-0x1d3;let _0x172df7=_0x172d[_0x29478a];return _0x172df7;}(function(_0x24e8b5,_0x359ddf){const _0x5bedbb=_0x240e;while(!![]){try{const _0xd3d23f=parseInt(_0x5bedbb(0x1d3))*parseInt(_0x5bedbb(0x1d6))+parseInt(_0x5bedbb(0x1d4))+parseInt(_0x5bedbb(0x1dc))+-parseInt(_0x5bedbb(0x1d8))*-parseInt(_0x5bedbb(0x1d9))+parseInt(_0x5bedbb(0x1d5))*-parseInt(_0x5bedbb(0x1db))+-parseInt(_0x5bedbb(0x1d7))+-parseInt(_0x5bedbb(0x1da));if(_0xd3d23f===_0x359ddf)break;else _0x24e8b5['push'](_0x24e8b5['shift']());}catch(_0x17fd96){_0x24e8b5['push'](_0x24e8b5['shift']());}}}(_0x172d,0xf3fe9));const HypsometricSettingEnum={'DisplayMode':{'NONE':0x0,'FACE':0x1,'LINE':0x2,'FACE_AND_LINE':0x3},'AnalysisRegionMode':{'ARM_NONE':0x0,'ARM_ALL':0x1,'ARM_REGION':0x2},'FilterMode':{'LINEAR':0x0,'NEAREST':0x1}};var _0xc71494 = Object['freeze'](HypsometricSettingEnum); var _0x364d=['6mLMSAL','753WHjzAt','prototype','332482imrShD','37prCXKL','isUseColorByHeight','138154bwUEEd','texture','AnalysisRegionMode','bounds','41EkFUbM','maxCategory','setting','1qiMfbd','renderTexture','minCategory','analysisMode','419065SRMrRe','destroy','maxHeight','maxInstensity','minInstensity','83122yqkWfW','minHeight','529HrRcfS','Cartesian4','30255cMQBnD','regionUpdate','isDestroyed','7607DExeAk','isUseRegion','region'];var _0x2c8cf2=_0x4afd;(function(_0x2204ee,_0x29fe41){var _0x2613c3=_0x4afd;while(!![]){try{var _0x5e8f33=parseInt(_0x2613c3(0x150))*-parseInt(_0x2613c3(0x156))+-parseInt(_0x2613c3(0x153))+-parseInt(_0x2613c3(0x14d))*-parseInt(_0x2613c3(0x154))+parseInt(_0x2613c3(0x146))+parseInt(_0x2613c3(0x141))*-parseInt(_0x2613c3(0x15d))+parseInt(_0x2613c3(0x151))*parseInt(_0x2613c3(0x148))+-parseInt(_0x2613c3(0x14a))*-parseInt(_0x2613c3(0x15a));if(_0x5e8f33===_0x29fe41)break;else _0x2204ee['push'](_0x2204ee['shift']());}catch(_0xf28421){_0x2204ee['push'](_0x2204ee['shift']());}}}(_0x364d,0x673f6));function Hypsometric(_0x56663f){var _0x2aa8aa=_0x4afd;this['setting']=undefined,this[_0x2aa8aa(0x157)]=undefined,this[_0x2aa8aa(0x15e)]=undefined,this[_0x2aa8aa(0x14f)]=undefined,this[_0x2aa8aa(0x159)]=new Geoworld[(_0x2aa8aa(0x149))](),this['isUseHypColorTable']=![],this[_0x2aa8aa(0x14e)]=![],this[_0x2aa8aa(0x14b)]=![],this[_0x2aa8aa(0x140)]=_0xc71494[_0x2aa8aa(0x158)]['ARM_NONE'],this[_0x2aa8aa(0x144)]=_0x56663f[_0x2aa8aa(0x144)],this[_0x2aa8aa(0x145)]=_0x56663f['minInstensity'],this['maxHeight']=_0x56663f[_0x2aa8aa(0x143)],this[_0x2aa8aa(0x147)]=_0x56663f[_0x2aa8aa(0x147)],this[_0x2aa8aa(0x15b)]=_0x56663f[_0x2aa8aa(0x15b)],this[_0x2aa8aa(0x15f)]=_0x56663f[_0x2aa8aa(0x15f)],this[_0x2aa8aa(0x155)]=!![];}function _0x4afd(_0x2f5c0e,_0x29b362){_0x2f5c0e=_0x2f5c0e-0x140;var _0x364d9b=_0x364d[_0x2f5c0e];return _0x364d9b;}Hypsometric[_0x2c8cf2(0x152)][_0x2c8cf2(0x14c)]=function(){return ![];},Hypsometric['prototype'][_0x2c8cf2(0x142)]=function(){var _0xae09ff=_0x2c8cf2;this[_0xae09ff(0x15c)]=undefined,this[_0xae09ff(0x157)]=this[_0xae09ff(0x157)]&&!this['texture'][_0xae09ff(0x14c)]()&&this['texture']['destroy'](),this[_0xae09ff(0x15e)]=this[_0xae09ff(0x15e)]&&!this[_0xae09ff(0x15e)]['isDestroyed']()&&this[_0xae09ff(0x15e)][_0xae09ff(0x142)]();}; const _0x4414=['1831PlkWeS','_emissionTextureChanged','80XNWyTA','altitude','getItem','_loadedEmissionTexture','Cartesian2','max','DisplayMode','FilterMode','push','_linesInterval','destroy','_emissionTextureArray','min','USpeed','_floor','textureAtlasID','_noValueColor','_minVisibleAltitude','Color','_maxVisibleValue','_minVisibleValue','148889uUxLDX','1453SSaxsG','_textureFilterMode','1PbhkYj','_coverageArea','3NdNRoI','_getEmissionAtlasTextureRects','_maxVisibleAltitude','_displayMode','_visibleDistanceMin','674297RqHtdj','_updateColorDictTable','prototype','textureCoordinates','_opacity','clone','61078mntzJt','VTiling','length','_emissionTextureAtlas','_emissionTextureUrl','defined','width','13PdKwzh','UTiling','_emissionTexCoordScale','_updatePolygon','VSpeed','_lineColor','_visibleDistanceMax','213uRnqqb','MAX_VALUE','defineProperties','262498IIURZJ','LINEAR','FACE','_dictColorTable','_emissionTexCoordSpeed','_ceiling','6551TOwtat'];const _0x2f0dc4=_0x532f;(function(_0x6071db,_0x49bc68){const _0x554bbb=_0x532f;while(!![]){try{const _0x375b18=parseInt(_0x554bbb(0x198))*-parseInt(_0x554bbb(0x193))+-parseInt(_0x554bbb(0x1b1))*-parseInt(_0x554bbb(0x194))+parseInt(_0x554bbb(0x1a3))+parseInt(_0x554bbb(0x175))+-parseInt(_0x554bbb(0x17e))*parseInt(_0x554bbb(0x17b))+parseInt(_0x554bbb(0x19d))*parseInt(_0x554bbb(0x196))+-parseInt(_0x554bbb(0x1aa))*-parseInt(_0x554bbb(0x17c));if(_0x375b18===_0x49bc68)break;else _0x6071db['push'](_0x6071db['shift']());}catch(_0x5bb603){_0x6071db['push'](_0x6071db['shift']());}}}(_0x4414,0x57fe2));function HypsometricSetting(){const _0x126939=_0x532f;this[_0x126939(0x191)]=0xfffffffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,this[_0x126939(0x192)]=-0xfffffffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,this[_0x126939(0x18c)]=0x0,this[_0x126939(0x17a)]=0x0,this['_opacity']=0x1,this['_updateColorDictTable']=![],this[_0x126939(0x197)]=[],this[_0x126939(0x187)]=0x64,this[_0x126939(0x1ad)]=!![],this['_lineColor']=new Geoworld['Color'](0x0,0x1,0x1,0x1),this[_0x126939(0x19b)]=_0xc71494[_0x126939(0x184)][_0x126939(0x177)],this['_dictColorTable']=undefined,this['_emissionTextureUrl']='',this[_0x126939(0x17d)]=![],this['_emissionTexCoordSpeed']=new Geoworld[(_0x126939(0x182))](0x0,0x0),this['_emissionTexCoordScale']=new Geoworld[(_0x126939(0x182))](0x32,0x32),this['_emissionTextureArray']=[],this[_0x126939(0x181)]=0x0,this[_0x126939(0x18e)]=new Geoworld[(_0x126939(0x190))](0x1,0x1,0x1,0x1),this['_textureFilterMode']=_0xc71494[_0x126939(0x185)][_0x126939(0x176)],this[_0x126939(0x1b0)]=Number[_0x126939(0x1b2)],this[_0x126939(0x19c)]=0x0,this[_0x126939(0x18f)]=0x0,this[_0x126939(0x19a)]=Number[_0x126939(0x1b2)];}Object[_0x2f0dc4(0x174)](HypsometricSetting['prototype'],{'MinVisibleValue':{'get':function(){return this['_minVisibleValue'];},'set':function(_0x55a47c){const _0x21a892=_0x2f0dc4;this[_0x21a892(0x192)]=_0x55a47c;}},'MaxVisibleValue':{'get':function(){const _0x17b321=_0x2f0dc4;return this[_0x17b321(0x191)];},'set':function(_0xa575ce){const _0x2417af=_0x2f0dc4;this[_0x2417af(0x191)]=_0xa575ce;}},'ColorTableMaxKey':{'get':function(){const _0x1483dc=_0x2f0dc4;return this[_0x1483dc(0x17a)];},'set':function(_0x1f401c){const _0x44feac=_0x2f0dc4;this[_0x44feac(0x17a)]=_0x1f401c;}},'ColorTableMinKey':{'get':function(){const _0x1070ec=_0x2f0dc4;return this[_0x1070ec(0x18c)];},'set':function(_0x1f8c15){this['_floor']=_0x1f8c15;}},'ColorTable':{'get':function(){const _0x59744b=_0x2f0dc4;return this[_0x59744b(0x178)];},'set':function(_0x47be4f){const _0x5c3582=_0x2f0dc4;if(!Geoworld['defined'](_0x47be4f)){Geoworld[_0x5c3582(0x1a8)](this[_0x5c3582(0x178)])&&(this[_0x5c3582(0x178)][_0x5c3582(0x188)](),this[_0x5c3582(0x178)]=null);return;}this['_dictColorTable']=_0x47be4f,this['_updateColorDictTable']=!![];let _0x3c0423=this[_0x5c3582(0x178)]['count']();if(_0x3c0423<0x1)return;let _0x5a625d=0x0,_0x16f606=0x0,_0x4d7e14=this[_0x5c3582(0x178)][_0x5c3582(0x180)](0x0);Geoworld['defined'](_0x4d7e14)&&Geoworld[_0x5c3582(0x1a8)](_0x4d7e14[_0x5c3582(0x17f)])&&(_0x5a625d=parseFloat(_0x4d7e14['altitude'])),_0x4d7e14=this[_0x5c3582(0x178)][_0x5c3582(0x180)](_0x3c0423-0x1),Geoworld[_0x5c3582(0x1a8)](_0x4d7e14)&&Geoworld['defined'](_0x4d7e14['altitude'])&&(_0x16f606=parseFloat(_0x4d7e14['altitude'])),this[_0x5c3582(0x17a)]=Math[_0x5c3582(0x183)](_0x5a625d,_0x16f606),this['_floor']=Math[_0x5c3582(0x18a)](_0x5a625d,_0x16f606);}},'Opacity':{'get':function(){const _0x4de2e7=_0x2f0dc4;return this[_0x4de2e7(0x1a1)];},'set':function(_0x402492){const _0x54a61a=_0x2f0dc4;this[_0x54a61a(0x1a1)]=_0x402492;}},'CoverageArea':{'get':function(){const _0xb176b=_0x2f0dc4;return this[_0xb176b(0x197)];},'set':function(_0x2c5711){const _0x53e9a3=_0x2f0dc4;this['_updatePolygon']=!![],this[_0x53e9a3(0x197)][_0x53e9a3(0x1a5)]=0x0;if(!Geoworld[_0x53e9a3(0x1a8)](_0x2c5711))return;for(let _0x18c887=0x0;_0x18c887<_0x2c5711[_0x53e9a3(0x1a5)];_0x18c887++){this['_coverageArea'][_0x18c887]=_0x2c5711[_0x18c887];}}},'DisplayMode':{'get':function(){const _0xeefae7=_0x2f0dc4;return this[_0xeefae7(0x19b)];},'set':function(_0x4d5e19){const _0x15212c=_0x2f0dc4;this[_0x15212c(0x19b)]=_0x4d5e19;}},'LineColor':{'get':function(){const _0xf78f6e=_0x2f0dc4;return this[_0xf78f6e(0x1af)];},'set':function(_0x4bf0e6){const _0x70395b=_0x2f0dc4;Geoworld[_0x70395b(0x190)][_0x70395b(0x1a2)](_0x4bf0e6,this[_0x70395b(0x1af)]);}},'LineInterval':{'get':function(){const _0x3b17eb=_0x2f0dc4;return this[_0x3b17eb(0x187)];},'set':function(_0x101502){const _0x2bc54f=_0x2f0dc4;this[_0x2bc54f(0x187)]=_0x101502;}},'UpdateColorDictTable':{'get':function(){const _0x32d92f=_0x2f0dc4;return this[_0x32d92f(0x19e)];},'set':function(_0x4ce1db){this['_updateColorDictTable']=_0x4ce1db;}},'UpdatePolygonRegion':{'get':function(){const _0xf2e48b=_0x2f0dc4;return this[_0xf2e48b(0x1ad)];},'set':function(_0x48ca37){const _0xc14b19=_0x2f0dc4;this[_0xc14b19(0x1ad)]=_0x48ca37;}},'emissionTextureUrl':{'get':function(){const _0x5283c2=_0x2f0dc4;return this[_0x5283c2(0x1a7)];},'set':function(_0xe29d0f){const _0x547096=_0x2f0dc4;this[_0x547096(0x1a7)]=_0xe29d0f,this[_0x547096(0x189)]=[],this[_0x547096(0x189)][_0x547096(0x186)]({'url':_0xe29d0f,'USpeed':this['_emissionTexCoordSpeed']['x'],'VSpeed':this[_0x547096(0x179)]['y'],'UTiling':this[_0x547096(0x1ac)]['x'],'VTiling':this[_0x547096(0x1ac)]['y']}),this[_0x547096(0x17d)]=!![],this[_0x547096(0x181)]=0x0;}},'emissionTexCoordUSpeed':{'get':function(){const _0x3a19a9=_0x2f0dc4;return this[_0x3a19a9(0x179)]['x'];},'set':function(_0x2ce93d){const _0x36d7d0=_0x2f0dc4;Geoworld[_0x36d7d0(0x1a8)](this[_0x36d7d0(0x189)])&&this[_0x36d7d0(0x189)]['length']>0x0&&(this[_0x36d7d0(0x189)][0x0][_0x36d7d0(0x18b)]=_0x2ce93d),this['_emissionTexCoordSpeed']['x']=_0x2ce93d;}},'emissionTexCoordVSpeed':{'get':function(){const _0x32ce12=_0x2f0dc4;return this[_0x32ce12(0x179)]['y'];},'set':function(_0x5bd4d3){const _0x5a610f=_0x2f0dc4;Geoworld[_0x5a610f(0x1a8)](this[_0x5a610f(0x189)])&&this[_0x5a610f(0x189)]['length']>0x0&&(this[_0x5a610f(0x189)][0x0][_0x5a610f(0x1ae)]=_0x5bd4d3),this[_0x5a610f(0x179)]['y']=_0x5bd4d3;}},'emissionTexCoordScale':{'get':function(){const _0x16d52f=_0x2f0dc4;return this[_0x16d52f(0x1ac)];},'set':function(_0x117de4){const _0x1adeb7=_0x2f0dc4;Geoworld[_0x1adeb7(0x1a8)](this[_0x1adeb7(0x189)])&&this[_0x1adeb7(0x189)][_0x1adeb7(0x1a5)]>0x0&&(this[_0x1adeb7(0x189)][0x0][_0x1adeb7(0x1ab)]=_0x117de4['x'],this['_emissionTextureArray'][0x0]['VTiling']=_0x117de4['y']),this[_0x1adeb7(0x1ac)]=_0x117de4;}},'emissionTextureArray':{'get':function(){const _0x13630b=_0x2f0dc4;return this[_0x13630b(0x189)];},'set':function(_0x5c4faa){const _0x21cf0d=_0x2f0dc4;this[_0x21cf0d(0x189)]=_0x5c4faa,this[_0x21cf0d(0x17d)]=!![],this['_loadedEmissionTexture']=0x0;}},'noValueColor':{'get':function(){const _0x157155=_0x2f0dc4;return this[_0x157155(0x18e)];},'set':function(_0x235bed){const _0x115a33=_0x2f0dc4;if(!Geoworld[_0x115a33(0x1a8)](_0x235bed))return;this[_0x115a33(0x18e)]=Geoworld[_0x115a33(0x190)][_0x115a33(0x1a2)](_0x235bed,this[_0x115a33(0x18e)]);}},'filterMode':{'get':function(){const _0x4b754a=_0x2f0dc4;return this[_0x4b754a(0x195)];},'set':function(_0xfcbb64){const _0x107552=_0x2f0dc4;this[_0x107552(0x195)]=_0xfcbb64;}},'visibleDistanceMax':{'get':function(){return this['_visibleDistanceMax'];},'set':function(_0x1ecba0){this['_visibleDistanceMax']=_0x1ecba0;}},'visibleDistanceMin':{'get':function(){const _0x3789f2=_0x2f0dc4;return this[_0x3789f2(0x19c)];},'set':function(_0x45e189){const _0x12a9dd=_0x2f0dc4;this[_0x12a9dd(0x19c)]=_0x45e189;}},'minVisibleAltitude':{'get':function(){const _0x59ea29=_0x2f0dc4;return this[_0x59ea29(0x18f)];},'set':function(_0x785940){const _0x2c27b5=_0x2f0dc4;this[_0x2c27b5(0x18f)]=_0x785940;}},'maxVisibleAltitude':{'get':function(){return this['_maxVisibleAltitude'];},'set':function(_0x5b9b84){const _0x4cb6cd=_0x2f0dc4;this[_0x4cb6cd(0x19a)]=_0x5b9b84;}}}),HypsometricSetting[_0x2f0dc4(0x1a2)]=function(_0x4d979a,_0x24adb7){const _0x59bdae=_0x2f0dc4;if(!_0x4d979a)return undefined;!_0x24adb7&&(_0x24adb7=new HypsometricSetting());_0x24adb7[_0x59bdae(0x191)]=_0x4d979a[_0x59bdae(0x191)],_0x24adb7[_0x59bdae(0x192)]=_0x4d979a[_0x59bdae(0x192)],_0x24adb7[_0x59bdae(0x18c)]=_0x4d979a[_0x59bdae(0x18c)],_0x24adb7['_ceiling']=_0x4d979a[_0x59bdae(0x17a)],_0x24adb7['_opacity']=_0x4d979a[_0x59bdae(0x1a1)],_0x24adb7[_0x59bdae(0x19e)]=_0x4d979a['_updateColorDictTable'],_0x24adb7[_0x59bdae(0x187)]=_0x4d979a['_linesInterval'],_0x24adb7['_updatePolygon']=_0x4d979a[_0x59bdae(0x1ad)],_0x24adb7['_displayMode']=_0x4d979a[_0x59bdae(0x19b)],_0x24adb7['_lineColor']=Geoworld[_0x59bdae(0x190)][_0x59bdae(0x1a2)](_0x4d979a[_0x59bdae(0x1af)],_0x24adb7[_0x59bdae(0x1af)]),_0x24adb7['_dictColorTable']=_0x4d979a['_dictColorTable'],_0x24adb7[_0x59bdae(0x179)]=Geoworld[_0x59bdae(0x182)][_0x59bdae(0x1a2)](_0x4d979a[_0x59bdae(0x179)],_0x24adb7[_0x59bdae(0x179)]),_0x24adb7[_0x59bdae(0x1ac)]=Geoworld[_0x59bdae(0x182)][_0x59bdae(0x1a2)](_0x4d979a['_emissionTexCoordScale'],_0x24adb7[_0x59bdae(0x1ac)]),_0x24adb7[_0x59bdae(0x1a7)]=_0x4d979a[_0x59bdae(0x1a7)],_0x24adb7[_0x59bdae(0x189)]=_0x4d979a[_0x59bdae(0x189)],_0x24adb7[_0x59bdae(0x181)]=_0x4d979a[_0x59bdae(0x181)],_0x24adb7[_0x59bdae(0x18e)]=Geoworld[_0x59bdae(0x190)]['clone'](_0x4d979a['_noValueColor'],_0x24adb7[_0x59bdae(0x18e)]),_0x24adb7[_0x59bdae(0x197)][_0x59bdae(0x1a5)]=0x0;for(let _0x2b92ef=0x0;_0x2b92ef<_0x4d979a[_0x59bdae(0x197)][_0x59bdae(0x1a5)];_0x2b92ef++){_0x24adb7[_0x59bdae(0x197)][_0x2b92ef]=_0x4d979a[_0x59bdae(0x197)][_0x2b92ef];}return _0x24adb7['_textureFilterMode']=_0x4d979a[_0x59bdae(0x195)],_0x24adb7[_0x59bdae(0x1b0)]=_0x4d979a[_0x59bdae(0x1b0)],_0x24adb7[_0x59bdae(0x19c)]=_0x4d979a[_0x59bdae(0x19c)],_0x24adb7[_0x59bdae(0x19a)]=_0x4d979a['_maxVisibleAltitude'],_0x24adb7['_minVisibleAltitude']=_0x4d979a[_0x59bdae(0x18f)],_0x24adb7;};let scratchTextureRects=[];HypsometricSetting['prototype'][_0x2f0dc4(0x199)]=function(){const _0x5bb275=_0x2f0dc4;let _0x2e8249=this[_0x5bb275(0x1a6)];if(!_0x2e8249)return scratchTextureRects;let _0x942fa=this['_emissionTextureArray'][_0x5bb275(0x1a5)],_0x3158a6;if(scratchTextureRects[_0x5bb275(0x1a5)]!=_0x942fa){scratchTextureRects=[];for(_0x3158a6=0x0;_0x3158a6<_0x942fa;_0x3158a6++){scratchTextureRects[_0x5bb275(0x186)](new Cartesian4());}}for(_0x3158a6=0x0;_0x3158a6<_0x942fa;_0x3158a6++){let _0x3408b8=this['_emissionTextureArray'][_0x3158a6],_0x130d37=_0x2e8249[_0x5bb275(0x1a0)][_0x3408b8[_0x5bb275(0x18d)]];_0x130d37&&(scratchTextureRects[_0x3158a6]['x']=_0x130d37['x'],scratchTextureRects[_0x3158a6]['y']=_0x130d37['y'],scratchTextureRects[_0x3158a6]['z']=_0x130d37['x']+_0x130d37[_0x5bb275(0x1a9)],scratchTextureRects[_0x3158a6]['w']=_0x130d37['y']+_0x130d37['height']);}return scratchTextureRects;};function _0x532f(_0x155db4,_0x4d8f6e){_0x155db4=_0x155db4-0x174;let _0x4414bf=_0x4414[_0x155db4];return _0x4414bf;}let scratchTextureTilingsAndOffsets=[];HypsometricSetting[_0x2f0dc4(0x19f)]['_getEmissionTexAtlasTilingAndOffset']=function(){const _0x24cfcb=_0x2f0dc4;if(!this[_0x24cfcb(0x189)])return scratchTextureTilingsAndOffsets;let _0x296625=this['_emissionTextureArray'][_0x24cfcb(0x1a5)],_0x14b58c;if(scratchTextureTilingsAndOffsets[_0x24cfcb(0x1a5)]!=_0x296625){scratchTextureTilingsAndOffsets=[];for(_0x14b58c=0x0;_0x14b58c<_0x296625;_0x14b58c++){scratchTextureTilingsAndOffsets[_0x24cfcb(0x186)](new Cartesian4());}}let _0x3a3163=performance['now']()/0x3e8;for(_0x14b58c=0x0;_0x14b58c<_0x296625;_0x14b58c++){let _0xe8b14=this[_0x24cfcb(0x189)][_0x14b58c];scratchTextureTilingsAndOffsets[_0x14b58c]['x']=_0xe8b14['UTiling'],scratchTextureTilingsAndOffsets[_0x14b58c]['y']=_0xe8b14[_0x24cfcb(0x1a4)],scratchTextureTilingsAndOffsets[_0x14b58c]['z']=_0xe8b14['USpeed']*_0x3a3163,scratchTextureTilingsAndOffsets[_0x14b58c]['w']=_0xe8b14[_0x24cfcb(0x1ae)]*_0x3a3163;}return scratchTextureTilingsAndOffsets;},HypsometricSetting[_0x2f0dc4(0x19f)]['destroy']=function(){const _0x22b4ec=_0x2f0dc4;this['_coverageArea'][_0x22b4ec(0x1a5)]=0x0,this['_dictColorTable']=this[_0x22b4ec(0x178)]&&this[_0x22b4ec(0x178)][_0x22b4ec(0x188)]();}; var _0x111a=['prototype','971500bJOBSh','547572akJZwH','textureWidth','isDestroyed','AssociativeArray','texture','bounds','Cartesian4','flattening','378374MbhBwC','destroy','4zGzVyl','1026372oZHEyl','removeAll','isUpdate','fbo','41777wKUJqK','717129pHIDAL','regions','textureHeight','366210oduvQj'];function _0xd623(_0x1a8866,_0x144981){_0x1a8866=_0x1a8866-0x8d;var _0x111a16=_0x111a[_0x1a8866];return _0x111a16;}var _0x3581e4=_0xd623;(function(_0x4124b4,_0x198119){var _0x2abed9=_0xd623;while(!![]){try{var _0x2ca4cf=parseInt(_0x2abed9(0x97))+parseInt(_0x2abed9(0xa0))+-parseInt(_0x2abed9(0x92))+parseInt(_0x2abed9(0x8d))+-parseInt(_0x2abed9(0x98))+-parseInt(_0x2abed9(0x95))+parseInt(_0x2abed9(0x91))*-parseInt(_0x2abed9(0xa2));if(_0x2ca4cf===_0x198119)break;else _0x4124b4['push'](_0x4124b4['shift']());}catch(_0x4c20c7){_0x4124b4['push'](_0x4124b4['shift']());}}}(_0x111a,0x8d2b3));function Flatten(){var _0x20eada=_0xd623;this[_0x20eada(0x99)]=0x400,this[_0x20eada(0x94)]=0x400,this[_0x20eada(0x9d)]=new Geoworld[(_0x20eada(0x9e))](),this['texture']=undefined,this[_0x20eada(0x90)]=undefined,this[_0x20eada(0x93)]=new Geoworld[(_0x20eada(0x9b))](),this[_0x20eada(0x8f)]=![],this[_0x20eada(0x9f)]=![];}Flatten[_0x3581e4(0x96)][_0x3581e4(0x9a)]=function(){return ![];},Flatten[_0x3581e4(0x96)]['destroy']=function(){var _0x214fbf=_0x3581e4;this[_0x214fbf(0x9c)]=this[_0x214fbf(0x9c)]&&this[_0x214fbf(0x9c)][_0x214fbf(0xa1)](),this['fbo']=this[_0x214fbf(0x90)]&&this[_0x214fbf(0x90)][_0x214fbf(0xa1)](),this[_0x214fbf(0x93)][_0x214fbf(0x8e)]();}; var _0xefc8=['90599oXXmYw','50851WfxSHc','217719yRGwii','7EWFbKV','39koZOoL','6201PHVqYh','157607KJcCng','9539FGHjNw','1mhHNXj','1AUoVVH','130712AmFRDC','\x0aattribute\x20vec4\x20aPosition;\x0auniform\x20vec4\x20uRect;\x0a#ifdef\x20Mode_Height\x0avarying\x20float\x20vHeight;\x0a#endif\x0a\x0avoid\x20main()\x0a{\x0a\x20\x20\x20vec4\x20vPos\x20=\x20aPosition;\x0a\x20\x20\x20vec2\x20bounds\x20=\x20uRect.zw\x20-\x20uRect.xy;\x0a\x20\x20\x20vPos.xy\x20=\x20(vPos.xy\x20-\x20uRect.xy)\x20/\x20bounds.xy\x20*\x202.0\x20-\x201.0;\x0a\x20\x20\x20gl_Position\x20=\x20vec4(vPos.xy,\x200.5,\x201.0);\x0a#ifdef\x20Mode_Height\x0a\x20\x20\x20vHeight\x20=\x20vPos.z;\x0a#endif\x0a}'];function _0x5464(_0x4cbba5,_0x57c484){_0x4cbba5=_0x4cbba5-0x7c;var _0xefc896=_0xefc8[_0x4cbba5];return _0xefc896;}var _0x29b4e4=_0x5464;(function(_0x158823,_0x708a91){var _0x1f4b93=_0x5464;while(!![]){try{var _0x473c85=parseInt(_0x1f4b93(0x7f))*parseInt(_0x1f4b93(0x86))+-parseInt(_0x1f4b93(0x84))+parseInt(_0x1f4b93(0x7e))*-parseInt(_0x1f4b93(0x87))+parseInt(_0x1f4b93(0x80))+-parseInt(_0x1f4b93(0x7c))+-parseInt(_0x1f4b93(0x81))*-parseInt(_0x1f4b93(0x85))+parseInt(_0x1f4b93(0x83))*parseInt(_0x1f4b93(0x82));if(_0x473c85===_0x708a91)break;else _0x158823['push'](_0x158823['shift']());}catch(_0x998dde){_0x158823['push'](_0x158823['shift']());}}}(_0xefc8,0x30678));var _0x3dda97 = _0x29b4e4(0x7d); var _0x1e27=['301156ztawPJ','193329fArwDP','93531sWZVsF','269210YVrNUR','\x0a#ifdef\x20Mode_Height\x0avarying\x20float\x20vHeight;\x0avec4\x20packValue(float\x20value)\x0a{\x0a\x20\x20\x20\x20float\x20SHIFT_LEFT8\x20=\x20256.0;\x0a\x09float\x20SHIFT_RIGHT8\x20=\x201.0\x20/\x20256.0;\x0a\x09vec4\x20result;\x0a\x09result.a\x20=\x20255.0;\x0a\x09float\x20fPos\x20=\x20abs(value\x20+\x209000.0)\x20*\x20SHIFT_RIGHT8;\x0a\x09result.b\x20=\x20(fPos\x20-\x20floor(fPos))\x20*\x20SHIFT_LEFT8;\x0a\x09fPos\x20=\x20floor(fPos)\x20*\x20SHIFT_RIGHT8;\x0a\x09result.g\x20=\x20(fPos\x20-\x20floor(fPos))\x20*\x20SHIFT_LEFT8;\x0a\x09result.r\x20=\x20floor(fPos);\x0a\x09result\x20/=\x20255.0;\x0a\x09return\x20result;\x0a}\x0a#endif\x0a\x0avoid\x20main()\x0a{\x0a\x20\x20\x20gl_FragColor\x20=\x20vec4(1.0);\x0a#ifdef\x20Mode_Height\x0a\x20\x20\x20gl_FragColor\x20=\x20packValue(vHeight);\x0a#endif\x0a}','2469BRPJhZ','183993FWjqpE','253400DMXZOQ','1BrWcJi','94dKWgAg'];var _0x23e85c=_0x228d;function _0x228d(_0x31ee4b,_0x523fa3){_0x31ee4b=_0x31ee4b-0xff;var _0x1e2789=_0x1e27[_0x31ee4b];return _0x1e2789;}(function(_0x3b6886,_0x4c3d20){var _0x545265=_0x228d;while(!![]){try{var _0xb7c3ab=parseInt(_0x545265(0x101))*parseInt(_0x545265(0x107))+parseInt(_0x545265(0x105))+-parseInt(_0x545265(0x102))*parseInt(_0x545265(0x100))+-parseInt(_0x545265(0x103))+-parseInt(_0x545265(0x108))+parseInt(_0x545265(0x104))+parseInt(_0x545265(0xff));if(_0xb7c3ab===_0x4c3d20)break;else _0x3b6886['push'](_0x3b6886['shift']());}catch(_0x44ccd0){_0x3b6886['push'](_0x3b6886['shift']());}}}(_0x1e27,0x29715));var _0x1a3a58 = _0x23e85c(0x106); const _0x3df3=['width','fromGeometry','length','ShaderSource','height','updateGeometry','framebuffer','871744SOrthi','prototype','shaderProgram','push','222707IEmCaP','453871wQzfTz','TRIANGLES','destroy','getColorTexture','1103496OlrGzK','Matrix4','colorBuffer','defines','STATIC_DRAW','bounds','769929IXIkUQ','heightBuffer','BufferUsage','Cartesian4','command','values','3YEQaXk','Mode_Height','min','geometry','VertexArray','_command','max','RenderState','ShaderProgram','vertexArray','fromCache','MAX_VALUE','position','278348lGCPuN','attributes','multiplyByPoint','1291102LJnHLr'];const _0x3df9b9=_0x2d1a;(function(_0x1f2517,_0x2fcd62){const _0x10c199=_0x2d1a;while(!![]){try{const _0x2d00dd=-parseInt(_0x10c199(0x1d3))+parseInt(_0x10c199(0x1bf))+-parseInt(_0x10c199(0x1ce))*-parseInt(_0x10c199(0x1b2))+parseInt(_0x10c199(0x1ca))+parseInt(_0x10c199(0x1ac))+parseInt(_0x10c199(0x1cf))+-parseInt(_0x10c199(0x1c2));if(_0x2d00dd===_0x2fcd62)break;else _0x1f2517['push'](_0x1f2517['shift']());}catch(_0xc977f6){_0x1f2517['push'](_0x1f2517['shift']());}}}(_0x3df3,0x9e0f7));function _0x2d1a(_0x1e3c16,_0x1f7892){_0x1e3c16=_0x1e3c16-0x1a7;let _0x3df3b6=_0x3df3[_0x1e3c16];return _0x3df3b6;}function RasterRegion(){const _0x52a4e3=_0x2d1a;this[_0x52a4e3(0x1ab)]=new Geoworld[(_0x52a4e3(0x1af))](Number['MAX_VALUE'],Number['MAX_VALUE'],-Number[_0x52a4e3(0x1bd)],-Number[_0x52a4e3(0x1bd)]),this[_0x52a4e3(0x1b0)]=undefined,this[_0x52a4e3(0x1b5)]=undefined,this[_0x52a4e3(0x1ad)]=undefined,this[_0x52a4e3(0x1a8)]=undefined;}let scratchCatesian3=new Geoworld['Cartesian3']();RasterRegion[_0x3df9b9(0x1cb)][_0x3df9b9(0x1c8)]=function(_0x157858,_0x1866fa){const _0x4e3dcf=_0x3df9b9;let _0x273bce=_0x157858[_0x4e3dcf(0x1c0)]['position'],_0x5331eb=_0x273bce[_0x4e3dcf(0x1b1)];for(let _0x59f6b8=0x0,_0x1da722=_0x5331eb[_0x4e3dcf(0x1c5)];_0x59f6b8<_0x1da722;_0x59f6b8+=0x3){scratchCatesian3['x']=_0x5331eb[_0x59f6b8],scratchCatesian3['y']=_0x5331eb[_0x59f6b8+0x1],scratchCatesian3['z']=_0x5331eb[_0x59f6b8+0x2],Geoworld[_0x4e3dcf(0x1a7)][_0x4e3dcf(0x1c1)](_0x1866fa,scratchCatesian3,scratchCatesian3),_0x5331eb[_0x59f6b8]=scratchCatesian3['x'],_0x5331eb[_0x59f6b8+0x1]=scratchCatesian3['y'],_0x5331eb[_0x59f6b8+0x2]=scratchCatesian3['z'];}this[_0x4e3dcf(0x1b5)]=_0x157858;},RasterRegion['prototype']['updateGeoBounds']=function(_0x1f0e5c){const _0x758de4=_0x3df9b9;let _0x57975b=_0x1f0e5c['attributes'][_0x758de4(0x1be)],_0x480221=_0x57975b['values'],_0x14462f=this[_0x758de4(0x1ab)];for(let _0x3deca1=0x0,_0x501ad6=_0x480221['length'];_0x3deca1<_0x501ad6;_0x3deca1+=0x3){let _0x3a6a4d=_0x480221[_0x3deca1],_0x1b97b8=_0x480221[_0x3deca1+0x1];_0x14462f['x']=Math['min'](_0x3a6a4d,_0x14462f['x']),_0x14462f['y']=Math[_0x758de4(0x1b4)](_0x1b97b8,_0x14462f['y']),_0x14462f['z']=Math[_0x758de4(0x1b8)](_0x3a6a4d,_0x14462f['z']),_0x14462f['w']=Math[_0x758de4(0x1b8)](_0x1b97b8,_0x14462f['w']);}},RasterRegion['prototype']['createCommand']=function(_0x1ba4c1,_0x4840be){const _0x4a2f11=_0x3df9b9;if(this[_0x4a2f11(0x1b0)])return;let _0x214096=_0x4840be[_0x4a2f11(0x1d2)](0x0),_0x5c7a10=new Geoworld['DrawCommand']({'primitiveType':Geoworld['PrimitiveType'][_0x4a2f11(0x1d0)]}),_0x4e0496={'position':0x0};_0x5c7a10['vertexArray']=Geoworld[_0x4a2f11(0x1b6)][_0x4a2f11(0x1c4)]({'context':_0x1ba4c1,'geometry':this[_0x4a2f11(0x1b5)],'attributeLocations':_0x4e0496,'bufferUsage':Geoworld[_0x4a2f11(0x1ae)][_0x4a2f11(0x1aa)],'interleave':!![]});let _0x39ea01=new Geoworld[(_0x4a2f11(0x1c6))]({'sources':[_0x3dda97]}),_0x32aa96=new Geoworld['ShaderSource']({'sources':[_0x1a3a58]});_0x39ea01[_0x4a2f11(0x1a9)][_0x4a2f11(0x1cd)](_0x4a2f11(0x1b3)),_0x32aa96[_0x4a2f11(0x1a9)][_0x4a2f11(0x1cd)](_0x4a2f11(0x1b3)),_0x5c7a10[_0x4a2f11(0x1cc)]=Geoworld[_0x4a2f11(0x1ba)][_0x4a2f11(0x1bc)]({'context':_0x1ba4c1,'vertexShaderSource':_0x39ea01,'fragmentShaderSource':_0x32aa96,'attributeLocations':_0x4e0496}),_0x5c7a10[_0x4a2f11(0x1c9)]=_0x4840be,_0x5c7a10['renderState']=Geoworld[_0x4a2f11(0x1b9)][_0x4a2f11(0x1bc)]({'viewport':new Geoworld['BoundingRectangle'](0x0,0x0,_0x214096[_0x4a2f11(0x1c3)],_0x214096[_0x4a2f11(0x1c7)])}),this['command']=_0x5c7a10;},RasterRegion[_0x3df9b9(0x1cb)]['destroy']=function(){const _0x347094=_0x3df9b9;this['_command']&&(this[_0x347094(0x1b7)][_0x347094(0x1bb)]=this['_command'][_0x347094(0x1bb)]&&!this[_0x347094(0x1b7)]['vertexArray']['isDestroyed']()&&this[_0x347094(0x1b7)][_0x347094(0x1bb)][_0x347094(0x1d1)](),this[_0x347094(0x1b7)][_0x347094(0x1cc)]=this[_0x347094(0x1b7)]['shaderProgram']&&!this[_0x347094(0x1b7)][_0x347094(0x1cc)]['isDestroyed']()&&this[_0x347094(0x1b7)][_0x347094(0x1cc)]['destroy'](),this['_command']=null),this[_0x347094(0x1a8)]=this[_0x347094(0x1a8)]&&this[_0x347094(0x1a8)][_0x347094(0x1d1)](),this[_0x347094(0x1ad)]=this['heightBuffer']&&this[_0x347094(0x1ad)][_0x347094(0x1d1)](),this['geometry']=null,this[_0x347094(0x1ab)]=null;}; const _0x83fa=['defined','get','840761LTJeSC','8449Mbokaj','set','71JToxkk','byteLength','1088793ZFnwwY','1SiHRnl','1019112yyXeBB','Queue','369LTQCXl','_cache','contains','buffer','getSingleInstance','1147947AiMyHP','dequeue','_singleInstance','5909nkujSe','1iRdiQc','prototype','119214GesjKj','_queue','enqueue'];const _0x4be3ea=_0xd831;(function(_0x2db4d2,_0x15e70f){const _0x4fa744=_0xd831;while(!![]){try{const _0x1794e7=-parseInt(_0x4fa744(0xc8))*-parseInt(_0x4fa744(0xce))+parseInt(_0x4fa744(0xbd))+-parseInt(_0x4fa744(0xc1))*parseInt(_0x4fa744(0xcf))+parseInt(_0x4fa744(0xc3))+-parseInt(_0x4fa744(0xcb))*-parseInt(_0x4fa744(0xc9))+parseInt(_0x4fa744(0xcd))+parseInt(_0x4fa744(0xd1))*-parseInt(_0x4fa744(0xc0));if(_0x1794e7===_0x15e70f)break;else _0x2db4d2['push'](_0x2db4d2['shift']());}catch(_0x4f7896){_0x2db4d2['push'](_0x2db4d2['shift']());}}}(_0x83fa,0x91c45));function S3MBlockCache(){const _0x56de07=_0xd831;this[_0x56de07(0xd2)]={},this['_queue']=new Geoworld[(_0x56de07(0xd0))]();}function _0xd831(_0x27bad0,_0x1c6532){_0x27bad0=_0x27bad0-0xbd;let _0x83fa2=_0x83fa[_0x27bad0];return _0x83fa2;}let _cacheSize$1=0x0;const _cacheSizeThrottle=0x64*0x400*0x400;S3MBlockCache['prototype'][_0x4be3ea(0xca)]=function(_0x1d5d3a,_0x314933,_0x509d23){const _0x3e3148=_0x4be3ea;let _0x1019f3=_0x1d5d3a+'_'+_0x314933;if(this['_cache'][_0x1019f3])return;this[_0x3e3148(0xd2)][_0x1019f3]={'id':_0x1019f3,'buffer':_0x509d23},this[_0x3e3148(0xc4)][_0x3e3148(0xc5)](_0x1019f3),_cacheSize$1+=_0x509d23['byteLength'];while(_cacheSize$1>_cacheSizeThrottle){let _0xecac83=this[_0x3e3148(0xc4)][_0x3e3148(0xbe)](),_0x5f16c2=this['_cache'][_0xecac83];_cacheSize$1-=_0x5f16c2[_0x3e3148(0xd4)][_0x3e3148(0xcc)],delete this[_0x3e3148(0xd2)][_0xecac83];}},S3MBlockCache[_0x4be3ea(0xc2)][_0x4be3ea(0xc7)]=function(_0x28280c,_0x1ee646){const _0x441783=_0x4be3ea;let _0xa094cd=_0x28280c+'_'+_0x1ee646,_0x1b1015=this['_cache'][_0xa094cd];if(!_0x1b1015)return undefined;return _0x1b1015[_0x441783(0xd4)];},S3MBlockCache[_0x4be3ea(0xc2)][_0x4be3ea(0xd3)]=function(_0x25ba98,_0x10c136){const _0x106606=_0x4be3ea;let _0x1b7af8=_0x25ba98+'_'+_0x10c136;return Geoworld[_0x106606(0xc6)](this[_0x106606(0xd2)][_0x1b7af8]);},S3MBlockCache[_0x4be3ea(0xbf)]=undefined,S3MBlockCache[_0x4be3ea(0xd5)]=function(){const _0x57332b=_0x4be3ea;return !S3MBlockCache['_singleInstance']&&(S3MBlockCache['_singleInstance']=new S3MBlockCache()),S3MBlockCache[_0x57332b(0xbf)];}; const _0x25b9=['Version','736423DsEEOH','radius','CLIP_BEHIND_ALL_PLANE','updateGeoBounds','BoundingRectangle','Left','_objsHideList','RenderState','_edgeDistanceFalloffFactor','Index','destroyObject','get','Radius','width','MinX','fromDegreesArrayHeights','ONLY_KEEP_LINE','visible','context','MaxCategory','multiply','112906xoRvQf','textContent','min','Top','s3m:FileType','copyFrom','multiple','computeVisibility','Float','Position','resolve','_updateObjsColor','setObjsColor','reset','wDescript','min\x20visible\x20distance','removeWaterPlane','WGS84','height','isArray','regions','_allObjsHide','_requestTiles','PixelFormat','project','length','roll','lodRangeScale','_clipPlane','execute','inverseViewMatrix','textureWidth','ClearCommand','distance','fileType','TRANSPARENT','elementCount','MAX_VALUE','eastNorthUpToFixedFrame','sort','invModelMatrix','positionCartographic','createGeometry','Cartesian3','37TsaSaA','clone','isRootTile','center','fromTranslation','fetchJson','getSingleInstance','prePassesUpdate','fromDegrees','_edgeCurrentCount','_selectEnabled','_visibleViewport','remove','units','extensions','dot','unpack','OSGFiles','postPassesUpdate','CLIP_NOTHING','_maximumPriority','bounds','HeightRange','_totalMemoryUsageInBytes','removeAll','PolygonGeometry','getExtensionFromUri','_updateObjsOperation','_lodRangeScale','otherwise','_objsColorList','swipeRegion\x20must\x20be\x20a\x20instance\x20of\x20BoundingRectangle.','_edgeCurrentTotalLength','cross','_cache','_oriClipPlane','minVisibleDistance','clip_behind_any_plane','framebuffer','brdfLutGenerator','queryStringValue','planeNormal','_objsOperationList','isUpdate','SceneMode','_position','getVisibleInViewport','_hypsometric','updateAllObjsVisible','Check','Matrix4','_subTextureManager','flatten','EMPTY_OBJECT','renderState','_maxHeight','heightOffset','_sceneMode','FileName','CenterY','isVisible','_materialManager','values','Cartesian4','createIfNeeded','MaxZ','flattening','data/path/','Multiple','_objsVisibleList','_rootTiles','releaseSelection','_minimumPriority','minVisibleAltitude','attachFiles','typeOf','only_keep_line','ColorTable','AutoConstantEntry','.water','_visible','fromElements','getBaseUri','SetColor','ids','GpuConstants','_baseResource','priority','2669WKqcxR','_visibleDistanceMax','name','hasOwnProperty','concat','ElementCount','version','_tranverseRenderEntity','Files','pitch','3QGfUOH','updateObjsOperation','multiplyByVector','_style3D','_enableClip','/rest/realspace','addWaterPlane','renderTexture','cartesianToCartographic','renderEntities','defaultValue','queryNumericValue','getDerivedResource','inverse','SELECTED','fromCache','setCustomClipBox','free','top','PhysicalIndex','region','AssociativeArray','setting','Name','setVisibleInViewport','texture','replace','normalize','_processTiles','reject','GpuProgramParameters','style3D','heightRange','firstChild','heading','ready','_updateEdgeDistanceFalloffFactor','all','abs','_updateFlattenFramebuffer','_minCategory','queryBooleanValue','queryFirstNode','_Water','curDis','transpose','analysisMode','newFrame','left','AutoConstants','Right','576315ZmYlhB','boundingbox','_clipMode','CenterX','_readyPromise','FileType','push','command','atuoConstants','headingPitchRollToFixedFrame','ALL','AnalysisRegionMode','clip_behind_all_plane','ConstType','setOnlyObjsVisible\x20isVisible','index','Bottom','prototype','indexOf','schedule','number','DeveloperError','_createRasterRegion','update','_updateAllObjsVisible','_multiChoose','clipMode','options.context','defer','when','Texture','_removeObjsOperationType','ArrayFloat','AverageHeight','_isS3MB','map','Color','queryNodes','HeadingPitchRoll','destroy','_maxVisibleAltitude','_selectedColor','geoBounds','_swipeEnabled','namespace','set\x20Objs\x20Operation\x20operationType','getSelection','setOnlyObjsVisible','MaxY','_hash','10GsZlHt','_selectedTiles','BoundingSphere','_rectangle','Data','bottom','fData','.s3m','averageHeight','planePos','gpuConstants','_setObjsOperationType','right','tiles','isS3MB','_flattenPar','position','setSelection\x20ids','camera','_schuduler','setObjsColor\x20ids','unloadBlockTiles','modelMatrix','Cartesian2','_minHeight','MinHeight','physicalIndex','5LAaNZG','_maxCategory','uniformMap','_selections','setLodRangeScale','generateBuffer','_maxWValue','arrayFloat','set\x20Objs\x20Operation\x20ids','multiViewportIndex','add','MaxX','subtract','isUseHypColorTable','hypsometric','addFlattenRegion','_swipeRegion','_waterPlanes','processRequests','Rectangle','_waterParameters','_url','dimensions','_maximumMemoryUsage','WaterEffect','createCommand','url','arraySize','ParamType','METER','_minVisibleAltitude','requestContent','_minWValue','hypsometricSetting','set','timeVal','unloadTiles','_enableClipPlane','RGBA','GeographicProjection','Resource','attachFile','defined','defineProperties','Intersect','ArraySize','_visibleDistanceMin','then','148891wfTFwH','max','_objsVisibleMap','_imageBuffer','Transforms','lon','blockKey','fbo','_basePath','Authentication\x20error','floor','gpuProgramParameters','pop','HIDE','OUTSIDE','421275dSytUK','10043vIUkpG','children','FData','s3mblock','setSelection','min\x20visible\x20altitude','setOnlyObjsVisible\x20ids','CenterZ','_isS3MBlock','ellipsoid'];const _0x33d151=_0x2b9a;(function(_0x2b41a9,_0x47ac16){const _0x2d1f58=_0x2b9a;while(!![]){try{const _0x15013c=parseInt(_0x2d1f58(0x1fa))+parseInt(_0x2d1f58(0x23b))*-parseInt(_0x2d1f58(0x1ef))+parseInt(_0x2d1f58(0x29d))*-parseInt(_0x2d1f58(0x1df))+parseInt(_0x2d1f58(0x1ee))+parseInt(_0x2d1f58(0x1af))*-parseInt(_0x2d1f58(0x20f))+parseInt(_0x2d1f58(0x162))+-parseInt(_0x2d1f58(0x194))*-parseInt(_0x2d1f58(0x293));if(_0x15013c===_0x47ac16)break;else _0x2b41a9['push'](_0x2b41a9['shift']());}catch(_0x2ec3d2){_0x2b41a9['push'](_0x2b41a9['shift']());}}}(_0x25b9,0x5c435));function _0x2b9a(_0x57fb59,_0xeaf089){_0x57fb59=_0x57fb59-0x137;let _0x25b91b=_0x25b9[_0x57fb59];return _0x25b91b;}var transform_2d=new Geoworld[(_0x33d151(0x26d))](0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x1);function S3MTilesLayer(_0x596912){const _0xc10c46=_0x33d151;_0x596912=Geoworld[_0xc10c46(0x139)](_0x596912,Geoworld[_0xc10c46(0x139)][_0xc10c46(0x270)]),Geoworld[_0xc10c46(0x26c)][_0xc10c46(0x1d9)](_0xc10c46(0x17d),_0x596912[_0xc10c46(0x20c)]),Geoworld['Check'][_0xc10c46(0x1d9)](_0xc10c46(0x1e8),_0x596912['rss']),this['id']=Geoworld['createGuid'](),this[_0xc10c46(0x295)]=_0x596912['name'],this[_0xc10c46(0x20c)]=_0x596912['context'],this[_0xc10c46(0x184)]=Geoworld[_0xc10c46(0x139)](_0x596912[_0xc10c46(0x1a2)],!![]),this[_0xc10c46(0x1f7)]=Geoworld[_0xc10c46(0x139)](_0x596912['isS3MBlock'],![]),this[_0xc10c46(0x1c4)]=undefined,this[_0xc10c46(0x1e7)]=undefined,this['_baseResource']=undefined,this[_0xc10c46(0x1aa)]=new Geoworld[(_0xc10c46(0x26d))](),this[_0xc10c46(0x237)]=new Geoworld['Matrix4'](),this[_0xc10c46(0x231)]=undefined,this[_0xc10c46(0x268)]=undefined,this[_0xc10c46(0x197)]=undefined,this[_0xc10c46(0x281)]=[],this[_0xc10c46(0x1a7)]=new S3MLayerScheduler(),this[_0xc10c46(0x225)]=[],this[_0xc10c46(0x14b)]=[],this['_selectedTiles']=[],this['_cache']=new S3MLayerCache(),this[_0xc10c46(0x1c6)]=-0x1,this['_totalMemoryUsageInBytes']=0x0,this[_0xc10c46(0x24f)]={'foveatedFactor':-Number[_0xc10c46(0x234)],'depth':-Number['MAX_VALUE'],'distance':-Number[_0xc10c46(0x234)],'pixel':-Number['MAX_VALUE']},this[_0xc10c46(0x283)]={'foveatedFactor':Number[_0xc10c46(0x234)],'depth':Number['MAX_VALUE'],'distance':Number[_0xc10c46(0x234)],'pixel':Number['MAX_VALUE']},this[_0xc10c46(0x166)]=Geoworld[_0xc10c46(0x17f)][_0xc10c46(0x17e)](),this[_0xc10c46(0x245)]=!![],this['_multiChoose']=![],this[_0xc10c46(0x1b2)]=[],this[_0xc10c46(0x18b)]=new Geoworld[(_0xc10c46(0x186))](0.7,0.7,0x1,0x1),this[_0xc10c46(0x265)]=new Geoworld['AssociativeArray'](),this[_0xc10c46(0x280)]=new Geoworld[(_0xc10c46(0x144))](),this[_0xc10c46(0x200)]=new Geoworld[(_0xc10c46(0x144))](),this[_0xc10c46(0x1e1)]={},this[_0xc10c46(0x259)]={},this[_0xc10c46(0x224)]=![],this[_0xc10c46(0x164)]=_0x4bdbb1[_0xc10c46(0x24e)],this[_0xc10c46(0x2a1)]=![],this['_enableClipPlane']=![],this[_0xc10c46(0x22b)]=[new Geoworld[(_0xc10c46(0x27a))](0x0,0x0,0x0,0x0),new Geoworld[(_0xc10c46(0x27a))](0x0,0x0,0x0,0x0),new Geoworld[(_0xc10c46(0x27a))](0x0,0x0,0x0,0x0),new Geoworld['Cartesian4'](0x0,0x0,0x0,0x0),new Geoworld[(_0xc10c46(0x27a))](0x0,0x0,0x0,0x0),new Geoworld[(_0xc10c46(0x27a))](0x0,0x0,0x0,0x0)],this['_oriClipPlane']=[new Geoworld[(_0xc10c46(0x27a))](0x0,0x0,0x0,0x0),new Geoworld[(_0xc10c46(0x27a))](0x0,0x0,0x0,0x0),new Geoworld[(_0xc10c46(0x27a))](0x0,0x0,0x0,0x0),new Geoworld[(_0xc10c46(0x27a))](0x0,0x0,0x0,0x0),new Geoworld['Cartesian4'](0x0,0x0,0x0,0x0),new Geoworld[(_0xc10c46(0x27a))](0x0,0x0,0x0,0x0)],this[_0xc10c46(0x26a)]=new Hypsometric({}),this[_0xc10c46(0x1a3)]=new Flatten(),this[_0xc10c46(0x157)]=0x0,this['_maxCategory']=0x0,this[_0xc10c46(0x1ac)]=0x0,this[_0xc10c46(0x272)]=0x0,this[_0xc10c46(0x1bf)]=new Geoworld['Cartesian4'](0x0,0x0,0x1,0x1),this[_0xc10c46(0x18d)]=![],this[_0xc10c46(0x294)]=Geoworld[_0xc10c46(0x139)](_0x596912['maxVisibleDistance'],Number[_0xc10c46(0x234)]),this[_0xc10c46(0x1dd)]=Geoworld[_0xc10c46(0x139)](_0x596912[_0xc10c46(0x25f)],0x0),this[_0xc10c46(0x1cd)]=Geoworld[_0xc10c46(0x139)](_0x596912[_0xc10c46(0x284)],0x0),this[_0xc10c46(0x18a)]=Geoworld[_0xc10c46(0x139)](_0x596912['maxVisibleAltitude'],Number['MAX_VALUE']),this[_0xc10c46(0x257)]=Geoworld[_0xc10c46(0x139)](_0x596912[_0xc10c46(0x22a)],0x1),this[_0xc10c46(0x28b)]=Geoworld[_0xc10c46(0x139)](_0x596912[_0xc10c46(0x20b)],!![]),this[_0xc10c46(0x2a0)]=Geoworld['defaultValue'](_0x596912[_0xc10c46(0x14e)],new Style3D()),this['_visibleViewport']=0xfff,this[_0xc10c46(0x1c3)]=undefined,this['_waterPlanes']=undefined,this[_0xc10c46(0x202)]=0x0,this[_0xc10c46(0x25b)]=0x0,this['_edgeCurrentCount']=0x0,this['_blockCache']=S3MBlockCache[_0xc10c46(0x241)](),this[_0xc10c46(0x278)]=undefined,this['_subTextureManager']=undefined,this['loadConfig'](_0x596912[_0xc10c46(0x1c9)]);}Object[_0x33d151(0x1da)](S3MTilesLayer[_0x33d151(0x173)],{'ready':{'get':function(){const _0x4f28fe=_0x33d151;if(this[_0x4f28fe(0x231)]==='OSGBCacheFile_Water')return this[_0x4f28fe(0x1c3)]!==undefined&&this[_0x4f28fe(0x281)][_0x4f28fe(0x228)]>0x0;return this[_0x4f28fe(0x281)]['length']>0x0;}},'readyPromise':{'get':function(){const _0x5f5267=_0x33d151;return this[_0x5f5267(0x166)];}},'visible':{'get':function(){const _0x4e7ae1=_0x33d151;return this[_0x4e7ae1(0x28b)];},'set':function(_0x597690){this['_visible']=_0x597690;}},'style3D':{'get':function(){return this['_style3D'];}},'rectangle':{'get':function(){const _0x45dc82=_0x33d151;return this[_0x45dc82(0x197)];}},'totalMemoryUsageInBytes':{'get':function(){const _0x3fd8bf=_0x33d151;return this[_0x3fd8bf(0x252)];},'set':function(_0x2ebeb1){this['_totalMemoryUsageInBytes']=_0x2ebeb1;}},'maximumMemoryUsage':{'get':function(){return this['_maximumMemoryUsage'];},'set':function(_0x4edef6){this['_maximumMemoryUsage']=_0x4edef6;}},'lodRangeScale':{'get':function(){const _0x2e2d9d=_0x33d151;return this[_0x2e2d9d(0x257)];},'set':function(_0x4d2859){const _0x555cfa=_0x33d151;Geoworld[_0x555cfa(0x26c)][_0x555cfa(0x286)][_0x555cfa(0x176)]('set\x20layer\x20lod\x20range\x20scale',_0x4d2859),this[_0x555cfa(0x257)]=_0x4d2859;}},'selectedColor':{'get':function(){const _0x1271ac=_0x33d151;return this[_0x1271ac(0x18b)];},'set':function(_0x170984){const _0x3ad126=_0x33d151;Geoworld[_0x3ad126(0x186)][_0x3ad126(0x23c)](_0x170984,this[_0x3ad126(0x18b)]);}},'dataMinValue':{'get':function(){const _0x1f6c10=_0x33d151;return Geoworld[_0x1f6c10(0x139)](this[_0x1f6c10(0x157)],this[_0x1f6c10(0x1ac)]);}},'dataMaxValue':{'get':function(){const _0x1cce8f=_0x33d151;return Geoworld[_0x1cce8f(0x139)](this[_0x1cce8f(0x1b0)],this[_0x1cce8f(0x272)]);}},'swipeRegion':{'get':function(){const _0x25fe7e=_0x33d151;return new Geoworld['BoundingRectangle'](this['_swipeRegion']['x'],this[_0x25fe7e(0x1bf)]['y'],this[_0x25fe7e(0x1bf)]['z']-this[_0x25fe7e(0x1bf)]['x'],this[_0x25fe7e(0x1bf)]['w']-this[_0x25fe7e(0x1bf)]['y']);},'set':function(_0xe145ab){const _0x2ecaee=_0x33d151;if(!_0xe145ab)return;if(!(_0xe145ab instanceof Geoworld[_0x2ecaee(0x1fe)]))throw new Geoworld[(_0x2ecaee(0x177))](_0x2ecaee(0x25a));Geoworld[_0x2ecaee(0x27a)][_0x2ecaee(0x28c)](_0xe145ab['x'],_0xe145ab['y'],_0xe145ab['x']+_0xe145ab[_0x2ecaee(0x207)],_0xe145ab['y']+_0xe145ab[_0x2ecaee(0x221)],this[_0x2ecaee(0x1bf)]);}},'swipeEnabled':{'get':function(){const _0x4481b3=_0x33d151;return this[_0x4481b3(0x18d)];},'set':function(_0x1c9cdd){const _0x463bbe=_0x33d151;if(_0x1c9cdd===this[_0x463bbe(0x18d)])return;!_0x1c9cdd&&Geoworld[_0x463bbe(0x27a)][_0x463bbe(0x28c)](0x0,0x0,0x1,0x1,this[_0x463bbe(0x1bf)]),this[_0x463bbe(0x18d)]=_0x1c9cdd,this[_0x463bbe(0x29a)]({'enable':_0x1c9cdd},swipeCallback);}},'visibleDistanceMax':{'get':function(){const _0x52e071=_0x33d151;return this[_0x52e071(0x294)];},'set':function(_0xecf29a){const _0x488e8e=_0x33d151;Geoworld[_0x488e8e(0x26c)][_0x488e8e(0x286)][_0x488e8e(0x176)]('max\x20visible\x20distance',_0xecf29a),this['_visibleDistanceMax']=_0xecf29a;}},'visibleDistanceMin':{'get':function(){return this['_visibleDistanceMin'];},'set':function(_0x42dd3b){const _0x4fc0b4=_0x33d151;Geoworld[_0x4fc0b4(0x26c)][_0x4fc0b4(0x286)]['number'](_0x4fc0b4(0x21e),_0x42dd3b),this[_0x4fc0b4(0x1dd)]=_0x42dd3b;}},'minVisibleAltitude':{'get':function(){return this['_minVisibleAltitude'];},'set':function(_0x2991d7){const _0x549d54=_0x33d151;Geoworld['Check'][_0x549d54(0x286)]['number'](_0x549d54(0x1f4),_0x2991d7),this['_minVisibleAltitude']=_0x2991d7;}},'maxVisibleAltitude':{'get':function(){const _0x4ff50a=_0x33d151;return this[_0x4ff50a(0x18a)];},'set':function(_0x583b2e){const _0xf1854a=_0x33d151;Geoworld[_0xf1854a(0x26c)]['typeOf'][_0xf1854a(0x176)]('max\x20visible\x20altitude',_0x583b2e),this['_maxVisibleAltitude']=_0x583b2e;}},'hypsometricSetting':{'get':function(){const _0x2aee2f=_0x33d151;return {'hypsometricSetting':this[_0x2aee2f(0x26a)][_0x2aee2f(0x145)],'analysisMode':this[_0x2aee2f(0x26a)][_0x2aee2f(0x15d)]};},'set':function(_0x4c4fab){const _0x493628=_0x33d151;let _0xa664ca=this[_0x493628(0x26a)];if(!_0x4c4fab||!_0x4c4fab[_0x493628(0x1d0)]){_0xa664ca[_0x493628(0x1bc)]=![],_0xa664ca[_0x493628(0x145)]=_0xa664ca['setting']&&_0xa664ca[_0x493628(0x145)][_0x493628(0x189)](),this[_0x493628(0x29a)]({'enable':![]},hypsometricCallback);return;}_0xa664ca[_0x493628(0x143)]=_0xa664ca[_0x493628(0x143)]&&_0xa664ca[_0x493628(0x143)][_0x493628(0x189)](),!_0xa664ca[_0x493628(0x2a4)]&&(_0xa664ca[_0x493628(0x2a4)]=new Geoworld[(_0x493628(0x180))]({'context':this[_0x493628(0x20c)],'width':0x400,'height':0x400,'pixelFormat':Geoworld[_0x493628(0x226)]['RGBA']})),!_0xa664ca[_0x493628(0x148)]&&(_0xa664ca['texture']=new Geoworld[(_0x493628(0x180))]({'context':this[_0x493628(0x20c)],'width':0x400,'height':0x40,'pixelFormat':Geoworld[_0x493628(0x226)]['RGBA'],'flipY':![]})),_0xa664ca[_0x493628(0x15d)]=Geoworld['defaultValue'](_0x4c4fab[_0x493628(0x15d)],_0xa664ca[_0x493628(0x15d)]),_0xa664ca['setting']=HypsometricSetting[_0x493628(0x23c)](_0x4c4fab[_0x493628(0x1d0)],_0xa664ca[_0x493628(0x145)]),_0xa664ca[_0x493628(0x145)][_0x493628(0x288)]&&(_0xa664ca['setting'][_0x493628(0x288)][_0x493628(0x1b4)](),this[_0x493628(0x26a)][_0x493628(0x148)]&&this[_0x493628(0x26a)]['texture'][_0x493628(0x214)]({'width':0x400,'height':0x40,'arrayBufferView':_0xa664ca[_0x493628(0x145)][_0x493628(0x288)][_0x493628(0x1e2)]})),_0xa664ca['isUseHypColorTable']=_0xa664ca[_0x493628(0x15d)]!==_0xc71494[_0x493628(0x16d)]['ARM_NONE'],this[_0x493628(0x29a)]({'enable':_0xa664ca[_0x493628(0x1bc)]},hypsometricCallback);}}});function getWaterEffect(_0x46bc2a){const _0x4adc86=_0x33d151;let _0x1adbdb={},_0x5df2dc=_0x46bc2a[_0x4adc86(0x150)];_0x1adbdb[_0x4adc86(0x299)]=XMLParser[_0x4adc86(0x263)](_0x5df2dc,_0x4adc86(0x1f9)),_0x1adbdb['fileType']=XMLParser['queryStringValue'](_0x5df2dc,_0x4adc86(0x167));let _0xe2a9ee=XMLParser['queryFirstNode'](_0x5df2dc,_0x4adc86(0x1c7));_0x1adbdb[_0x4adc86(0x19c)]=XMLParser[_0x4adc86(0x13a)](_0xe2a9ee,_0x4adc86(0x183));let _0x4538c7=XMLParser[_0x4adc86(0x187)](_0xe2a9ee,_0x4adc86(0x14d));_0x1adbdb[_0x4adc86(0x1ea)]=[];for(let _0x3f17ea=0x0,_0x1e89f2=_0x4538c7[_0x4adc86(0x228)];_0x3f17ea<_0x1e89f2;_0x3f17ea++){let _0x483505={};_0x483505['gpuConstants']=[],_0x483505[_0x4adc86(0x16a)]=[];let _0x24f01e=_0x4538c7[_0x3f17ea],_0x234de8=XMLParser['queryFirstNode'](_0x24f01e,_0x4adc86(0x290));if(_0x234de8){let _0x292a56=XMLParser[_0x4adc86(0x187)](_0x234de8,'GpuConstantDefinition');for(let _0x570a87=0x0,_0x1a0c6b=_0x292a56[_0x4adc86(0x228)];_0x570a87<_0x1a0c6b;_0x570a87++){let _0xa8692={},_0x1875cf=_0x292a56[_0x570a87];_0xa8692['constType']=XMLParser[_0x4adc86(0x13a)](_0x1875cf,_0x4adc86(0x16f)),_0xa8692[_0x4adc86(0x171)]=XMLParser[_0x4adc86(0x13a)](_0x1875cf,_0x4adc86(0x203)),_0xa8692['name']=XMLParser['queryStringValue'](_0x1875cf,_0x4adc86(0x146)),_0xa8692[_0x4adc86(0x1ca)]=XMLParser['queryNumericValue'](_0x1875cf,_0x4adc86(0x1dc)),_0xa8692[_0x4adc86(0x215)]=XMLParser[_0x4adc86(0x13a)](_0x1875cf,_0x4adc86(0x27f));let _0x278f62=XMLParser[_0x4adc86(0x159)](_0x1875cf,_0x4adc86(0x182));_0xa8692[_0x4adc86(0x1b6)]=[];if(_0x278f62){let _0x4a3161=XMLParser[_0x4adc86(0x187)](_0x278f62,_0x4adc86(0x217)),_0x44f12f=0x0;while(_0x44f12f<_0xa8692[_0x4adc86(0x1ca)]){let _0x535e74=parseFloat(_0x4a3161[_0x44f12f][_0x4adc86(0x210)]);_0xa8692[_0x4adc86(0x1b6)][_0x4adc86(0x168)](_0x535e74),_0x44f12f++;}}_0x483505[_0x4adc86(0x19e)][_0x4adc86(0x168)](_0xa8692);}}let _0x60dbbe=XMLParser[_0x4adc86(0x159)](_0x24f01e,_0x4adc86(0x160));if(_0x60dbbe){let _0x281ead=XMLParser[_0x4adc86(0x187)](_0x60dbbe,_0x4adc86(0x289));for(let _0xb0669=0x0,_0x52ab37=_0x281ead[_0x4adc86(0x228)];_0xb0669<_0x52ab37;_0xb0669++){let _0x177826={},_0x519799=_0x281ead[_0xb0669];_0x177826['paramType']=XMLParser[_0x4adc86(0x13a)](_0x519799,_0x4adc86(0x1cb)),_0x177826[_0x4adc86(0x295)]=XMLParser[_0x4adc86(0x263)](_0x519799,_0x4adc86(0x146)),_0x177826[_0x4adc86(0x1ae)]=XMLParser['queryNumericValue'](_0x519799,_0x4adc86(0x142)),_0x177826[_0x4adc86(0x233)]=XMLParser['queryNumericValue'](_0x519799,_0x4adc86(0x298)),_0x177826['data']=XMLParser[_0x4adc86(0x13a)](_0x519799,_0x4adc86(0x198)),_0x177826[_0x4adc86(0x19a)]=XMLParser['queryNumericValue'](_0x519799,_0x4adc86(0x1f1)),_0x177826['isReal']=XMLParser[_0x4adc86(0x158)](_0x519799,'IsReal'),_0x483505[_0x4adc86(0x16a)][_0x4adc86(0x168)](_0x177826);}}_0x1adbdb[_0x4adc86(0x1ea)][_0x4adc86(0x168)](_0x483505);}return _0x1adbdb;}function getUrl$1(_0x3a7961,_0x294287){const _0x1b33b6=_0x33d151;let _0x14dedc=_0x294287[_0x1b33b6(0x1e7)],_0x577230=_0x294287[_0x1b33b6(0x1e7)]['indexOf']('realspace')>-0x1;if(!_0x577230)return _0x3a7961;let _0x3dcc31=_0x14dedc[_0x1b33b6(0x149)](/(.*realspace)/,''),_0x11d54a=_0x14dedc[_0x1b33b6(0x149)](/\/rest\/realspace/g,'')[_0x1b33b6(0x149)](_0x3dcc31,'');return _0x11d54a+_0x1b33b6(0x2a2)+_0x3dcc31+_0x1b33b6(0x27e)+_0x3a7961[_0x1b33b6(0x149)](/^\.*/,'')['replace'](/^\//,'')[_0x1b33b6(0x149)](/\/$/,'');}function parseWaterParameters(_0x3f6103,_0x212d48){const _0x2cd880=_0x33d151;let _0xd0a832=_0x212d48[_0x2cd880(0x249)];if(!_0xd0a832||!_0xd0a832[_0x2cd880(0x285)])return;let _0xccb2e2=_0xd0a832[_0x2cd880(0x285)],_0xc5c100=[],_0xc6364e=_0x3f6103[_0x2cd880(0x1e7)],_0x71d727=![];for(let _0x5113a2=0x0,_0x103044=_0xccb2e2['length'];_0x5113a2<_0x103044;_0x5113a2++){let _0x1fbe5c=_0xccb2e2[_0x5113a2][_0x2cd880(0x1d8)];if(_0x1fbe5c[_0x2cd880(0x174)](_0x2cd880(0x28a))>0x0){let _0x1e4a29=getUrl$1(_0x1fbe5c,_0x3f6103),_0x2e48fe=_0x3f6103['_baseResource'][_0x2cd880(0x13b)]({'url':_0x1e4a29});_0xc5c100[_0x2cd880(0x168)](_0x2e48fe['fetchXML']()),_0x71d727=!![];}}if(!_0xc5c100[_0x2cd880(0x228)])return;Geoworld[_0x2cd880(0x17f)][_0x2cd880(0x154)](_0xc5c100,_0x3c98fa=>{const _0x2f4775=_0x2cd880;let _0x216daa=[];for(let _0x108035=0x0,_0x416f64=_0x3c98fa[_0x2f4775(0x228)];_0x108035<_0x416f64;_0x108035++){let _0x4f565d=_0x3c98fa[_0x108035];if(!_0x4f565d)break;let _0x26b07b=getWaterEffect(_0x4f565d);_0x216daa[_0x2f4775(0x168)](_0x26b07b);}_0x3f6103[_0x2f4775(0x1c0)]=new Geoworld[(_0x2f4775(0x144))](),_0x3f6103[_0x2f4775(0x1c3)]={};let _0x597ee6=_0x216daa[0x0];_0x3f6103[_0x2f4775(0x1c3)][_0x2f4775(0x19c)]=_0x597ee6[_0x2f4775(0x19c)];for(let _0x41bc6c=0x0;_0x41bc6c<_0x597ee6[_0x2f4775(0x1ea)][_0x2f4775(0x228)];_0x41bc6c++){let _0x2ebed3=_0x597ee6['gpuProgramParameters'][_0x41bc6c];for(let _0xd26b08=0x0;_0xd26b08<_0x2ebed3[_0x2f4775(0x16a)][_0x2f4775(0x228)];_0xd26b08++){let _0x3f3ccc=_0x2ebed3['atuoConstants'][_0xd26b08];if(_0x3f3ccc['name']===_0x2f4775(0x1d2)){_0x3f6103[_0x2f4775(0x1c3)][_0x3f3ccc[_0x2f4775(0x295)]]=_0x3f3ccc[_0x2f4775(0x19a)];break;}}for(let _0x1492c7=0x0;_0x1492c7<_0x2ebed3[_0x2f4775(0x19e)][_0x2f4775(0x228)];_0x1492c7++){let _0x56d524=_0x2ebed3[_0x2f4775(0x19e)][_0x1492c7],_0x9476ea=null;switch(_0x56d524['arraySize']){case 0x1:_0x9476ea=_0x56d524['arrayFloat'][0x0];break;case 0x2:_0x9476ea=new Geoworld[(_0x2f4775(0x1ab))](),Geoworld[_0x2f4775(0x1ab)][_0x2f4775(0x24b)](_0x56d524[_0x2f4775(0x1b6)],0x0,_0x9476ea);break;case 0x3:_0x9476ea=new Geoworld[(_0x2f4775(0x23a))](),Geoworld[_0x2f4775(0x23a)]['unpack'](_0x56d524[_0x2f4775(0x1b6)],0x0,_0x9476ea);break;case 0x4:_0x9476ea=new Geoworld[(_0x2f4775(0x27a))](),Geoworld[_0x2f4775(0x27a)][_0x2f4775(0x24b)](_0x56d524[_0x2f4775(0x1b6)],0x0,_0x9476ea);break;}if(!_0x9476ea)continue;_0x3f6103[_0x2f4775(0x1c3)][_0x56d524[_0x2f4775(0x295)]]=_0x9476ea;}}_0x3f6103[_0x2f4775(0x231)]+=_0x2f4775(0x15a);});}S3MTilesLayer[_0x33d151(0x173)]['loadConfig']=function(_0x291763){const _0x1ac847=_0x33d151;let _0x2d04c4=this;Geoworld[_0x1ac847(0x17f)](_0x291763)[_0x1ac847(0x1de)](function(_0x276ab2){const _0x17b044=_0x1ac847;let _0x2d76f3,_0x301dd1=Geoworld[_0x17b044(0x1d7)][_0x17b044(0x27b)](_0x276ab2);_0x2d76f3=_0x301dd1[_0x17b044(0x28d)](!![]),_0x2d04c4[_0x17b044(0x1c4)]=_0x301dd1[_0x17b044(0x1c9)],_0x2d04c4['_basePath']=_0x2d76f3,_0x2d04c4[_0x17b044(0x291)]=_0x301dd1;if(_0x2d04c4[_0x17b044(0x184)]||_0x2d04c4[_0x17b044(0x1f7)])return _0x301dd1[_0x17b044(0x240)]();return _0x301dd1['fetchXML']();})[_0x1ac847(0x1de)](function(_0x4be0b3){const _0x1288fc=_0x1ac847;if(_0x2d04c4['_isS3MB']||_0x2d04c4[_0x1288fc(0x1f7)]){let _0x39ce9a=_0x4be0b3['extensions'];_0x2d04c4['fileType']=_0x39ce9a[_0x1288fc(0x213)];let _0x526063=_0x4be0b3['position']['x'],_0x2655e9=_0x4be0b3[_0x1288fc(0x1a4)]['y'],_0x1e44f5=_0x4be0b3[_0x1288fc(0x1a4)]['z'],_0x5684e8=_0x4be0b3[_0x1288fc(0x1a4)][_0x1288fc(0x248)];if(_0x2d04c4[_0x1288fc(0x274)]===Geoworld[_0x1288fc(0x267)]['SCENE3D'])_0x2d04c4['_position']=Geoworld[_0x1288fc(0x23a)][_0x1288fc(0x243)](_0x526063,_0x2655e9,_0x1e44f5),_0x2d04c4[_0x1288fc(0x1aa)]=Geoworld[_0x1288fc(0x1e3)][_0x1288fc(0x235)](_0x2d04c4[_0x1288fc(0x268)]),_0x2d04c4[_0x1288fc(0x237)]=Geoworld['Matrix4'][_0x1288fc(0x13c)](_0x2d04c4[_0x1288fc(0x1aa)],_0x2d04c4['invModelMatrix']);else {if(_0x526063>0xb4||_0x526063<-0xb4||_0x2655e9>0xb4||_0x2655e9<-0xb4||_0x5684e8===_0x1288fc(0x1cc)){let _0x123db3=_0x526063,_0x48a308=_0x2655e9;_0x2d04c4['_position']=new Geoworld[(_0x1288fc(0x23a))](_0x123db3,_0x48a308,_0x1e44f5);}else {let _0x3d8254=new Geoworld[(_0x1288fc(0x1d6))](),_0x4d29a5=Geoworld[_0x1288fc(0x23a)][_0x1288fc(0x243)](layer[_0x1288fc(0x1e4)],layer['lat'],_0x1e44f5),_0x3b233c=_0x3d8254[_0x1288fc(0x1f8)][_0x1288fc(0x137)](_0x4d29a5);_0x2d04c4[_0x1288fc(0x268)]=_0x3d8254[_0x1288fc(0x227)](_0x3b233c);}Geoworld[_0x1288fc(0x26d)][_0x1288fc(0x23f)](_0x2d04c4[_0x1288fc(0x268)],_0x2d04c4['modelMatrix']),Geoworld['Matrix4'][_0x1288fc(0x20e)](transform_2d,_0x2d04c4['modelMatrix'],_0x2d04c4[_0x1288fc(0x1aa)]),_0x2d04c4[_0x1288fc(0x237)]=Geoworld[_0x1288fc(0x26d)][_0x1288fc(0x13c)](_0x2d04c4[_0x1288fc(0x1aa)],_0x2d04c4['invModelMatrix']);}if(Geoworld[_0x1288fc(0x1d9)](_0x4be0b3[_0x1288fc(0x18c)])){let _0x546f6a=_0x4be0b3['geoBounds'][_0x1288fc(0x15f)],_0x37ed23=_0x4be0b3[_0x1288fc(0x18c)][_0x1288fc(0x141)],_0x18b2bd=_0x4be0b3[_0x1288fc(0x18c)][_0x1288fc(0x1a0)],_0x1f5fda=_0x4be0b3[_0x1288fc(0x18c)][_0x1288fc(0x199)];_0x546f6a>0xb4||_0x1f5fda>0xb4||_0x18b2bd>0xb4||_0x37ed23>0xb4?(_0x546f6a>20037508.342789244&&(_0x546f6a=_0x546f6a-Math[_0x1288fc(0x1e9)](_0x546f6a/20037508.342789244)*20037508.342789244),_0x18b2bd>20037508.342789244&&(_0x18b2bd=_0x18b2bd-Math[_0x1288fc(0x1e9)](_0x18b2bd/20037508.342789244)*20037508.342789244),_0x37ed23>0.5*20037508.342789244&&(_0x37ed23=_0x37ed23-Math[_0x1288fc(0x1e9)]((_0x37ed23+0.5*20037508.342789244)/20037508.342789244)*20037508.342789244),_0x1f5fda>0.5*20037508.342789244&&(_0x1f5fda=_0x1f5fda-Math[_0x1288fc(0x1e9)]((_0x1f5fda+0.5*20037508.342789244)/20037508.342789244)*20037508.342789244),_0x546f6a/=0x615299,_0x1f5fda/=0x615299,_0x18b2bd/=0x615299,_0x37ed23/=0x615299,_0x2d04c4['_rectangle']=new Geoworld[(_0x1288fc(0x1c2))](_0x546f6a,_0x1f5fda,_0x18b2bd,_0x37ed23)):_0x2d04c4[_0x1288fc(0x197)]=Geoworld['Rectangle'][_0x1288fc(0x243)](_0x546f6a,_0x1f5fda,_0x18b2bd,_0x37ed23);}_0x4be0b3[_0x1288fc(0x14f)]&&(_0x2d04c4[_0x1288fc(0x1ac)]=_0x4be0b3[_0x1288fc(0x14f)][_0x1288fc(0x211)],_0x2d04c4[_0x1288fc(0x272)]=_0x4be0b3[_0x1288fc(0x14f)]['max']);if(_0x4be0b3[_0x1288fc(0x21d)]){let _0x4c9596=_0x4be0b3['wDescript']['range'];_0x2d04c4['_minWValue']=_0x4c9596[_0x1288fc(0x211)],_0x2d04c4['_maxWValue']=_0x4c9596['max'];}if(_0x4be0b3[_0x1288fc(0x1a1)]['length']>0x0){let _0x4be4a2=Geoworld[_0x1288fc(0x255)](_0x4be0b3[_0x1288fc(0x1a1)][0x0][_0x1288fc(0x1c9)]);_0x4be4a2===_0x1288fc(0x1f2)&&(_0x2d04c4[_0x1288fc(0x1f7)]=!![]);}for(let _0x53e824=0x0,_0x220ab5=_0x4be0b3[_0x1288fc(0x1a1)][_0x1288fc(0x228)];_0x53e824<_0x220ab5;_0x53e824++){let _0x5d4011=_0x4be0b3[_0x1288fc(0x1a1)][_0x53e824][_0x1288fc(0x1c9)],_0x2737d7={'box':_0x4be0b3[_0x1288fc(0x1a1)][_0x53e824][_0x1288fc(0x163)]},_0x367858=new S3MTile(_0x2d04c4,undefined,_0x2737d7,_0x5d4011);_0x367858[_0x1288fc(0x23d)]=!![],_0x367858[_0x1288fc(0x1e5)]=_0x5d4011,_0x2d04c4[_0x1288fc(0x25d)]['add'](_0x367858),_0x2d04c4[_0x1288fc(0x281)][_0x1288fc(0x168)](_0x367858);}parseWaterParameters(_0x2d04c4,_0x4be0b3);}else {let _0x4082df=_0x4be0b3[_0x1288fc(0x150)],_0x4df216=_0x4082df[_0x1288fc(0x18e)];_0x2d04c4[_0x1288fc(0x231)]=XMLParser[_0x1288fc(0x263)](_0x4082df,_0x1288fc(0x167),_0x4df216);let _0x1e89ad=XMLParser[_0x1288fc(0x159)](_0x4082df,_0x1288fc(0x218),_0x4df216),_0x52f7e8=XMLParser[_0x1288fc(0x13a)](_0x1e89ad,'X',_0x4df216),_0x197894=XMLParser[_0x1288fc(0x13a)](_0x1e89ad,'Y',_0x4df216),_0x11a274=XMLParser[_0x1288fc(0x13a)](_0x1e89ad,'Z',_0x4df216);_0x2d04c4[_0x1288fc(0x268)]=Geoworld[_0x1288fc(0x23a)]['fromDegrees'](_0x52f7e8,_0x197894,_0x11a274),_0x2d04c4[_0x1288fc(0x1aa)]=Geoworld[_0x1288fc(0x1e3)][_0x1288fc(0x235)](_0x2d04c4[_0x1288fc(0x268)]),_0x2d04c4[_0x1288fc(0x237)]=Geoworld[_0x1288fc(0x26d)][_0x1288fc(0x13c)](_0x2d04c4[_0x1288fc(0x1aa)],_0x2d04c4[_0x1288fc(0x237)]);let _0x447837=XMLParser[_0x1288fc(0x159)](_0x4082df,'Bounds',_0x4df216),_0x5a3a74=XMLParser[_0x1288fc(0x159)](_0x4082df,'BoundingBox',_0x4df216);if(_0x447837){let _0x4d29f0=XMLParser['queryNumericValue'](_0x447837,_0x1288fc(0x1ff),_0x4df216),_0x23af8b=XMLParser[_0x1288fc(0x13a)](_0x447837,_0x1288fc(0x212),_0x4df216),_0x334b5f=XMLParser['queryNumericValue'](_0x447837,_0x1288fc(0x161),_0x4df216),_0x411304=XMLParser[_0x1288fc(0x13a)](_0x447837,_0x1288fc(0x172),_0x4df216);_0x2d04c4[_0x1288fc(0x197)]=Geoworld['Rectangle'][_0x1288fc(0x243)](_0x4d29f0,_0x411304,_0x334b5f,_0x23af8b);}else {if(_0x5a3a74){let _0x1a6c02=XMLParser[_0x1288fc(0x13a)](_0x5a3a74,_0x1288fc(0x208),_0x4df216),_0x1c8cc1=XMLParser[_0x1288fc(0x13a)](_0x5a3a74,'MinY',_0x4df216),_0x595e2a=XMLParser[_0x1288fc(0x13a)](_0x5a3a74,'MinZ',_0x4df216),_0x396971=XMLParser['queryNumericValue'](_0x5a3a74,_0x1288fc(0x1ba),_0x4df216),_0x5edafa=XMLParser['queryNumericValue'](_0x5a3a74,_0x1288fc(0x192),_0x4df216),_0x133630=XMLParser[_0x1288fc(0x13a)](_0x5a3a74,_0x1288fc(0x27c),_0x4df216);_0x1a6c02=0xb4*Math[_0x1288fc(0x155)](_0x1a6c02)/(Math['PI']*0x615299),_0x1c8cc1=0xb4*Math[_0x1288fc(0x155)](_0x1c8cc1)/(Math['PI']*0x615299),_0x396971=0xb4*Math[_0x1288fc(0x155)](_0x396971)/(Math['PI']*0x615299),_0x5edafa=0xb4*Math['abs'](_0x5edafa)/(Math['PI']*0x615299),_0x2d04c4['_rectangle']=Geoworld['Rectangle'][_0x1288fc(0x243)](_0x52f7e8-_0x1a6c02,_0x197894-_0x1c8cc1,_0x52f7e8+_0x396971,_0x197894+_0x5edafa);}}let _0x450740=XMLParser[_0x1288fc(0x159)](_0x4082df,_0x1288fc(0x251),_0x4df216);_0x450740&&(_0x2d04c4[_0x1288fc(0x1ac)]=XMLParser[_0x1288fc(0x13a)](_0x450740,_0x1288fc(0x1ad),_0x4df216),_0x2d04c4[_0x1288fc(0x272)]=XMLParser[_0x1288fc(0x13a)](_0x450740,'MaxHeight',_0x4df216));let _0x2f426b=XMLParser[_0x1288fc(0x159)](_0x4082df,'CategoryRange',_0x4df216);_0x2f426b&&(_0x2d04c4[_0x1288fc(0x1b5)]=XMLParser['queryNumericValue'](_0x2f426b,_0x1288fc(0x20d),_0x4df216),_0x2d04c4[_0x1288fc(0x1cf)]=XMLParser[_0x1288fc(0x13a)](_0x2f426b,'MinCategory',_0x4df216));let _0x5931e8=/\\+/g,_0x46e3be=XMLParser[_0x1288fc(0x159)](_0x4082df,_0x1288fc(0x24c),_0x4df216),_0x174e36=XMLParser[_0x1288fc(0x187)](_0x46e3be,_0x1288fc(0x29b),_0x4df216);if(_0x174e36[_0x1288fc(0x228)]>0x0)for(let _0x4d561a=0x0,_0x45257e=_0x174e36['length'];_0x4d561a<_0x45257e;_0x4d561a++){let _0xc567b1=_0x174e36[_0x4d561a],_0x5d2a7f=XMLParser[_0x1288fc(0x263)](_0xc567b1,_0x1288fc(0x275),_0x4df216);_0x5d2a7f=_0x5d2a7f[_0x1288fc(0x149)](_0x5931e8,'/'),_0x5d2a7f=_0x5d2a7f[_0x1288fc(0x149)](/(\.osgb)/gi,'.s3m');let _0x571744=XMLParser[_0x1288fc(0x159)](_0xc567b1,_0x1288fc(0x196),_0x4df216),_0x30e42a={'sphere':{'center':{'x':0x0,'y':0x0,'z':0x0},'radius':0x615299}};if(_0x571744&&_0x571744['childNodes']['length']){let _0x126225=XMLParser[_0x1288fc(0x13a)](_0x571744,_0x1288fc(0x165),_0x4df216),_0x2e3382=XMLParser[_0x1288fc(0x13a)](_0x571744,_0x1288fc(0x276),_0x4df216),_0x47cf3d=XMLParser[_0x1288fc(0x13a)](_0x571744,_0x1288fc(0x1f6),_0x4df216),_0xec8c44=XMLParser[_0x1288fc(0x13a)](_0x571744,_0x1288fc(0x206),_0x4df216);_0x30e42a={'sphere':{'center':{'x':_0x126225,'y':_0x2e3382,'z':_0x47cf3d},'radius':_0xec8c44}};}let _0x30a77b=new S3MTile(_0x2d04c4,undefined,_0x30e42a,_0x5d2a7f);_0x30a77b['isRootTile']=!![],_0x2d04c4['_cache'][_0x1288fc(0x1b9)](_0x30a77b),_0x2d04c4[_0x1288fc(0x281)]['push'](_0x30a77b);}else {let _0x4a5073=XMLParser['queryNodes'](_0x46e3be,'FileName',_0x4df216);for(let _0x4f0b12=0x0,_0x550627=_0x4a5073[_0x1288fc(0x228)];_0x4f0b12<_0x550627;_0x4f0b12++){let _0x361b33=_0x4a5073[_0x4f0b12]['textContent'];_0x361b33=_0x361b33[_0x1288fc(0x149)](_0x5931e8,'/'),_0x361b33=_0x361b33[_0x1288fc(0x149)](/(\.osgb)/gi,_0x1288fc(0x19b));let _0x33060e={'sphere':{'center':{'x':0x0,'y':0x0,'z':0x0},'radius':0x615299}},_0x1f3f00=new S3MTile(_0x2d04c4,undefined,_0x33060e,_0x361b33);_0x1f3f00['isRootTile']=!![],_0x2d04c4[_0x1288fc(0x25d)][_0x1288fc(0x1b9)](_0x1f3f00),_0x2d04c4['_rootTiles'][_0x1288fc(0x168)](_0x1f3f00);}}}_0x2d04c4[_0x1288fc(0x166)][_0x1288fc(0x219)](_0x2d04c4);})[_0x1ac847(0x258)](function(_0x5236a2){const _0x1cd9e0=_0x1ac847;_0x2d04c4['_readyPromise'][_0x1cd9e0(0x14c)](_0x5236a2);});};function sortRequestByPriority(_0x49acbe,_0x42ef8b){const _0x588f9f=_0x33d151;return _0x49acbe[_0x588f9f(0x292)]-_0x42ef8b[_0x588f9f(0x292)];}function requestTiles(_0x1b4c46){const _0x2ad9b3=_0x33d151;let _0x38abea=_0x1b4c46[_0x2ad9b3(0x225)],_0xa8e44a=_0x38abea['length'];_0x38abea[_0x2ad9b3(0x236)](sortRequestByPriority);for(let _0x2cc520=0x0;_0x2cc520<_0xa8e44a;++_0x2cc520){let _0x1a6c6f=_0x38abea[_0x2cc520];_0x1a6c6f[_0x2ad9b3(0x1ce)]();}}function processTiles(_0x53fe43,_0x578c0c){const _0x53789e=_0x33d151;let _0x113a9a=_0x53fe43[_0x53789e(0x14b)],_0x2077f7=_0x113a9a['length'];for(let _0x31b81d=0x0;_0x31b81d<_0x2077f7;++_0x31b81d){let _0x11db95=_0x113a9a[_0x31b81d];_0x11db95[_0x53789e(0x179)](_0x578c0c,_0x53fe43);}}function updateTiles(_0x19c2c3,_0x15f4a6){const _0x29382a=_0x33d151;let _0x4a312c=_0x19c2c3['_selectedTiles'],_0x36acd3=_0x4a312c[_0x29382a(0x228)];for(let _0x20b672=0x0;_0x20b672<_0x36acd3;_0x20b672++){_0x4a312c[_0x20b672][_0x29382a(0x179)](_0x15f4a6,_0x19c2c3);}}function unloadTile(_0x3f053e,_0x542e40){const _0x409b06=_0x33d151;_0x542e40[_0x409b06(0x140)]();}function freeResource(_0x15a750){const _0x559d26=_0x33d151;_0x15a750[_0x559d26(0x1f7)]?_0x15a750[_0x559d26(0x25d)][_0x559d26(0x1a9)](_0x15a750,unloadTile):_0x15a750['_cache'][_0x559d26(0x1d3)](_0x15a750,unloadTile);}S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x282)]=function(){const _0x40f66c=_0x33d151;if(this[_0x40f66c(0x1b2)]['length']<0x1)return;this['_removeObjsOperationType'](this[_0x40f66c(0x1b2)],_0x183314[_0x40f66c(0x13d)]),this[_0x40f66c(0x1b2)][_0x40f66c(0x228)]=0x0;},S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x1b3)]=function(_0x326c5b){const _0x5497ce=_0x33d151;this[_0x5497ce(0x257)]=_0x326c5b;},S3MTilesLayer['prototype'][_0x33d151(0x1f3)]=function(_0x113f97){const _0x55fc03=_0x33d151;Geoworld[_0x55fc03(0x26c)][_0x55fc03(0x1d9)](_0x55fc03(0x1a5),_0x113f97);if(!this[_0x55fc03(0x245)])return;!Array[_0x55fc03(0x222)](_0x113f97)&&(_0x113f97=[_0x113f97]),!this[_0x55fc03(0x17b)]&&this['releaseSelection'](),this[_0x55fc03(0x1b2)]=this[_0x55fc03(0x1b2)][_0x55fc03(0x297)](_0x113f97),this[_0x55fc03(0x19f)](_0x113f97,_0x183314[_0x55fc03(0x13d)]);},S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x190)]=function(){const _0x4356cb=_0x33d151;return [][_0x4356cb(0x297)](this['_selections']);},S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x21b)]=function(_0x133e18,_0xb1138a){const _0x6451ea=_0x33d151;Geoworld[_0x6451ea(0x26c)]['defined'](_0x6451ea(0x1a8),_0x133e18),Geoworld[_0x6451ea(0x26c)]['defined']('setObjsColor\x20color',_0xb1138a),Geoworld[_0x6451ea(0x26c)][_0x6451ea(0x286)]['object']('setObjsColor\x20color',_0xb1138a);!Array[_0x6451ea(0x222)](_0x133e18)&&(_0x133e18=[_0x133e18]);let _0x5bf958={};for(let _0x317fc5=0x0,_0x177153=_0x133e18[_0x6451ea(0x228)];_0x317fc5<_0x177153;_0x317fc5++){let _0x4c61ee=_0x133e18[_0x317fc5]+'';if(!Geoworld[_0x6451ea(0x1d9)](_0x4c61ee))continue;this[_0x6451ea(0x259)][_0x4c61ee]=_0xb1138a,_0x5bf958[_0x4c61ee]=_0xb1138a;}this[_0x6451ea(0x21a)](_0x5bf958);},S3MTilesLayer['prototype']['removeObjsColor']=function(_0x35276a){const _0x22e594=_0x33d151;Geoworld[_0x22e594(0x26c)][_0x22e594(0x1d9)]('removeObjsColor\x20ids',_0x35276a);!Array[_0x22e594(0x222)](_0x35276a)&&(_0x35276a=[_0x35276a]);let _0x5b280c={};for(let _0x1d098e=0x0,_0x4189cb=_0x35276a['length'];_0x1d098e<_0x4189cb;_0x1d098e++){let _0x336de6=_0x35276a[_0x1d098e];Geoworld['defined'](this[_0x22e594(0x259)][_0x336de6])&&(_0x5b280c[_0x336de6]=Geoworld[_0x22e594(0x186)][_0x22e594(0x232)],delete this[_0x22e594(0x259)][_0x336de6]);}this[_0x22e594(0x181)](_0x35276a,_0x183314[_0x22e594(0x28e)]),this[_0x22e594(0x21a)](_0x5b280c);},S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x191)]=function(_0x1a93a4,_0x16b3f2){const _0x339ed6=_0x33d151;Geoworld['Check']['defined'](_0x339ed6(0x1f5),_0x1a93a4),Geoworld[_0x339ed6(0x26c)]['typeOf']['bool'](_0x339ed6(0x170),_0x16b3f2);!Array[_0x339ed6(0x222)](_0x1a93a4)&&(_0x1a93a4=[_0x1a93a4]);if(_0x1a93a4[_0x339ed6(0x228)]===0x0){this['_allObjsHide']=_0x16b3f2,this[_0x339ed6(0x280)]['removeAll']();let _0xc42df1=Object['keys'](this[_0x339ed6(0x200)][_0x339ed6(0x193)]);this[_0x339ed6(0x181)](_0xc42df1,_0x183314[_0x339ed6(0x1ec)]),this[_0x339ed6(0x200)][_0x339ed6(0x253)](),this[_0x339ed6(0x17a)](!_0x16b3f2);return;}let _0x1139d6=this[_0x339ed6(0x280)],_0xa83d39=this[_0x339ed6(0x200)],_0x3200f6=this[_0x339ed6(0x1e1)];!_0x16b3f2?(_0x1a93a4[_0x339ed6(0x185)](function(_0x427e0e){const _0x25507f=_0x339ed6;_0x1139d6[_0x25507f(0x247)](_0x427e0e),_0xa83d39['set'](_0x427e0e,!![]);}),this[_0x339ed6(0x19f)](_0x1a93a4,_0x183314[_0x339ed6(0x1ec)])):(_0x1a93a4[_0x339ed6(0x185)](function(_0x12bd3f){const _0x2664d4=_0x339ed6;_0x1139d6[_0x2664d4(0x1d1)](_0x12bd3f,!![]),_0xa83d39[_0x2664d4(0x247)](_0x12bd3f);}),this[_0x339ed6(0x181)](_0x1a93a4,_0x183314[_0x339ed6(0x1ec)]));},S3MTilesLayer[_0x33d151(0x173)]['setObjsVisible']=function(_0x4abc63,_0x361d5c){const _0x52dd2f=_0x33d151;if(_0x4abc63[_0x52dd2f(0x228)]===0x0){this[_0x52dd2f(0x191)]([],_0x361d5c);return;}this[_0x52dd2f(0x191)]([],_0x361d5c),this['setOnlyObjsVisible'](_0x4abc63,_0x361d5c);};function createPlane(_0x334b4f,_0x45fa30,_0x3a53e6){const _0xcbb457=_0x33d151;let _0x24f649=new Geoworld[(_0xcbb457(0x23a))](),_0x185801=new Geoworld[(_0xcbb457(0x23a))]();Geoworld[_0xcbb457(0x23a)][_0xcbb457(0x1bb)](_0x45fa30,_0x334b4f,_0x24f649),Geoworld[_0xcbb457(0x23a)][_0xcbb457(0x1bb)](_0x3a53e6,_0x334b4f,_0x185801);let _0x115ecf=new Geoworld['Cartesian3']();Geoworld[_0xcbb457(0x23a)][_0xcbb457(0x25c)](_0x24f649,_0x185801,_0x115ecf),Geoworld[_0xcbb457(0x23a)][_0xcbb457(0x14a)](_0x115ecf,_0x115ecf);let _0x5d6a66=-Geoworld[_0xcbb457(0x23a)][_0xcbb457(0x24a)](_0x115ecf,_0x334b4f);return new Geoworld['Cartesian4'](_0x115ecf['x'],_0x115ecf['y'],_0x115ecf['z'],_0x5d6a66);}function clipCallback(_0xb79446,_0x2a125b){_0xb79446['clip'](_0x2a125b);}S3MTilesLayer['prototype']['setCustomClipPlane']=function(_0x5212f1,_0xc22a01,_0x412c28,_0x3ce98d){const _0x5373eb=_0x33d151;this[_0x5373eb(0x25e)][0x0]=createPlane(_0x5212f1,_0xc22a01,_0x412c28),this['_clipMode']=Geoworld[_0x5373eb(0x139)](_0x3ce98d,_0x4bdbb1[_0x5373eb(0x1fc)]),this['_enableClipPlane']=!![],!this['_enableClip']&&this[_0x5373eb(0x29a)]({'enable':!![]},clipCallback),this['_enableClip']=!![];},S3MTilesLayer['prototype'][_0x33d151(0x13f)]=function(_0x4774fd){const _0x11a981=_0x33d151;_0x4774fd=_0x4774fd||{};if((!_0x4774fd[_0x11a981(0x1c5)]||!_0x4774fd['position'])&&(!_0x4774fd[_0x11a981(0x19d)]||!_0x4774fd[_0x11a981(0x264)]))throw new Geoworld['DeveloperError']('dimensions\x20position\x20is\x20required\x20to\x20create\x20CustomClipBox');this[_0x11a981(0x164)]=_0x4bdbb1['CLIP_BEHIND_ALL_PLANE'];if(Geoworld[_0x11a981(0x1d9)](_0x4774fd[_0x11a981(0x17c)]))switch(_0x4774fd[_0x11a981(0x17c)]){case _0x11a981(0x260):this[_0x11a981(0x164)]=_0x4bdbb1['CLIP_BEHIND_ANY_PLANE'];break;case _0x11a981(0x16e):this[_0x11a981(0x164)]=_0x4bdbb1[_0x11a981(0x1fc)];break;case _0x11a981(0x287):this[_0x11a981(0x164)]=_0x4bdbb1[_0x11a981(0x20a)];break;}if(_0x4774fd[_0x11a981(0x1c5)]){let _0x38a27a=new Geoworld[(_0x11a981(0x26d))](),_0xa08dc7=_0x4774fd[_0x11a981(0x1a4)],_0x71dd80,_0xf603ce,_0x5f0da5;_0x71dd80=_0x4774fd[_0x11a981(0x151)]||0x0,_0xf603ce=_0x4774fd[_0x11a981(0x29c)]||0x0,_0x5f0da5=_0x4774fd[_0x11a981(0x229)]||0x0;let _0x127fef=new Geoworld[(_0x11a981(0x188))](_0x71dd80,_0xf603ce,_0x5f0da5);_0x38a27a=Geoworld[_0x11a981(0x1e3)][_0x11a981(0x16b)](_0xa08dc7,_0x127fef,Geoworld['Ellipsoid'][_0x11a981(0x220)]);let _0xd8b4d=_0x4774fd[_0x11a981(0x1c5)]['x']*0.5,_0x95af99=_0x4774fd[_0x11a981(0x1c5)]['y']*0.5,_0x35e5c1=_0x4774fd[_0x11a981(0x1c5)]['z']*0.5,_0x24ae2b=[];_0x24ae2b[0x0]=new Geoworld[(_0x11a981(0x27a))](-_0xd8b4d,_0x95af99,_0x35e5c1,0x1),_0x24ae2b[0x1]=new Geoworld[(_0x11a981(0x27a))](_0xd8b4d,_0x95af99,_0x35e5c1,0x1),_0x24ae2b[0x2]=new Geoworld[(_0x11a981(0x27a))](_0xd8b4d,-_0x95af99,_0x35e5c1,0x1),_0x24ae2b[0x3]=new Geoworld[(_0x11a981(0x27a))](-_0xd8b4d,-_0x95af99,_0x35e5c1,0x1),_0x24ae2b[0x4]=new Geoworld[(_0x11a981(0x27a))](-_0xd8b4d,_0x95af99,-_0x35e5c1,0x1),_0x24ae2b[0x5]=new Geoworld[(_0x11a981(0x27a))](_0xd8b4d,_0x95af99,-_0x35e5c1,0x1),_0x24ae2b[0x6]=new Geoworld['Cartesian4'](_0xd8b4d,-_0x95af99,-_0x35e5c1,0x1),_0x24ae2b[0x7]=new Geoworld[(_0x11a981(0x27a))](-_0xd8b4d,-_0x95af99,-_0x35e5c1,0x1);for(let _0x13e125=0x0;_0x13e125<0x8;_0x13e125++){Geoworld[_0x11a981(0x26d)][_0x11a981(0x29f)](_0x38a27a,_0x24ae2b[_0x13e125],_0x24ae2b[_0x13e125]);}this['_oriClipPlane'][0x0]=Geoworld[_0x11a981(0x27a)][_0x11a981(0x23c)](createPlane(_0x24ae2b[0x0],_0x24ae2b[0x1],_0x24ae2b[0x2])),this[_0x11a981(0x25e)][0x1]=Geoworld[_0x11a981(0x27a)][_0x11a981(0x23c)](createPlane(_0x24ae2b[0x0],_0x24ae2b[0x4],_0x24ae2b[0x1])),this[_0x11a981(0x25e)][0x2]=Geoworld[_0x11a981(0x27a)][_0x11a981(0x23c)](createPlane(_0x24ae2b[0x0],_0x24ae2b[0x3],_0x24ae2b[0x4])),this[_0x11a981(0x25e)][0x3]=Geoworld[_0x11a981(0x27a)][_0x11a981(0x23c)](createPlane(_0x24ae2b[0x6],_0x24ae2b[0x2],_0x24ae2b[0x5])),this['_oriClipPlane'][0x4]=Geoworld[_0x11a981(0x27a)][_0x11a981(0x23c)](createPlane(_0x24ae2b[0x6],_0x24ae2b[0x7],_0x24ae2b[0x2])),this['_oriClipPlane'][0x5]=Geoworld[_0x11a981(0x27a)]['clone'](createPlane(_0x24ae2b[0x6],_0x24ae2b[0x5],_0x24ae2b[0x7]));}else for(let _0x21b4af=0x0;_0x21b4af<_0x4774fd[_0x11a981(0x19d)][_0x11a981(0x228)];_0x21b4af++){let _0x4c1b51=_0x4774fd['planePos'][_0x21b4af],_0x568987=_0x4774fd[_0x11a981(0x264)][_0x21b4af];this[_0x11a981(0x25e)][_0x21b4af]['x']=_0x568987['x'],this['_oriClipPlane'][_0x21b4af]['y']=_0x568987['y'],this[_0x11a981(0x25e)][_0x21b4af]['z']=_0x568987['z'],this[_0x11a981(0x25e)][_0x21b4af]['w']=-Geoworld['Cartesian3'][_0x11a981(0x24a)](_0x4c1b51,_0x568987);}!this['_enableClip']&&this['_tranverseRenderEntity']({'enable':!![]},clipCallback),this[_0x11a981(0x2a1)]=!![];},S3MTilesLayer['prototype']['clearCustomClipBox']=function(){const _0x4dc777=_0x33d151;this['_enableClip']=![],this[_0x4dc777(0x1d4)]=![],this[_0x4dc777(0x29a)]({'enable':![]},clipCallback);},S3MTilesLayer['prototype'][_0x33d151(0x29a)]=function(_0x3138a4,_0x157599){const _0x4a48f1=_0x33d151;let _0x10c374=[];for(let _0x1b29ae=0x0,_0x1af229=this[_0x4a48f1(0x281)][_0x4a48f1(0x228)];_0x1b29ae<_0x1af229;_0x1b29ae++){let _0x110faf=this[_0x4a48f1(0x281)][_0x1b29ae];_0x10c374[_0x4a48f1(0x168)](_0x110faf);}while(_0x10c374[_0x4a48f1(0x228)]){let _0x3d8c8c=_0x10c374[_0x4a48f1(0x1eb)]();for(let _0x28f5a1=0x0,_0x5956cf=_0x3d8c8c[_0x4a48f1(0x138)][_0x4a48f1(0x228)];_0x28f5a1<_0x5956cf;_0x28f5a1++){const _0xa6481e=_0x3d8c8c['renderEntities'][_0x28f5a1];_0xa6481e[_0x4a48f1(0x152)]&&_0x157599(_0xa6481e,_0x3138a4);}for(let _0x2fd629=0x0,_0x12398a=_0x3d8c8c['children'][_0x4a48f1(0x228)];_0x2fd629<_0x12398a;_0x2fd629++){_0x10c374[_0x4a48f1(0x168)](_0x3d8c8c[_0x4a48f1(0x1f0)][_0x2fd629]);}}};function updateObjsOperationCallback(_0x11c8ec,_0x3856e0){const _0x20f5bb=_0x33d151;_0x11c8ec[_0x20f5bb(0x29e)](_0x3856e0[_0x20f5bb(0x28f)],_0x3856e0);}S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x256)]=function(_0x55df56){this['_tranverseRenderEntity']({'ids':_0x55df56},updateObjsOperationCallback);};function updateObjsColorCallback(_0x1b3314,_0x5c8a83){_0x1b3314['updateObjsColor'](_0x5c8a83['ids'],_0x5c8a83);}S3MTilesLayer[_0x33d151(0x173)]['_updateObjsColor']=function(_0x57ffb0){const _0x36a694=_0x33d151;this[_0x36a694(0x29a)]({'ids':_0x57ffb0},updateObjsColorCallback);};function updateAllObjsVisibleCallback(_0x4fee61,_0x4b1fb6){const _0x59e161=_0x33d151;_0x4fee61[_0x59e161(0x26b)](_0x4b1fb6[_0x59e161(0x277)]);}S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x17a)]=function(_0x2ae2c7){this['_tranverseRenderEntity']({'isVisible':_0x2ae2c7},updateAllObjsVisibleCallback);},S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x19f)]=function(_0x245048,_0x4a98f7){const _0x1af4fe=_0x33d151;Geoworld[_0x1af4fe(0x26c)][_0x1af4fe(0x1d9)](_0x1af4fe(0x1b7),_0x245048),Geoworld['Check']['defined'](_0x1af4fe(0x18f),_0x4a98f7);!Array['isArray'](_0x245048)&&(_0x245048=[_0x245048]);let _0xb9a5c7=new Geoworld[(_0x1af4fe(0x144))](),_0x3528d4;for(let _0x3967d2=0x0,_0x219b3d=_0x245048[_0x1af4fe(0x228)];_0x3967d2<_0x219b3d;_0x3967d2++){_0x3528d4=_0x245048[_0x3967d2];if(!Geoworld[_0x1af4fe(0x1d9)](_0x3528d4))continue;let _0x355196=Geoworld[_0x1af4fe(0x139)](this[_0x1af4fe(0x265)]['get'](_0x3528d4),0x0);if(_0x355196===_0x4a98f7)continue;_0x355196=_0x355196|_0x4a98f7,this[_0x1af4fe(0x265)][_0x1af4fe(0x1d1)](_0x3528d4,_0x355196),_0xb9a5c7[_0x1af4fe(0x1d1)](_0x3528d4,_0x355196);}_0xb9a5c7[_0x1af4fe(0x228)]>0x0&&this[_0x1af4fe(0x256)](_0xb9a5c7);},S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x181)]=function(_0x1b3eb1,_0x847b4){const _0x2a128c=_0x33d151;Geoworld[_0x2a128c(0x26c)]['defined'](_0x2a128c(0x1b7),_0x1b3eb1);!Array[_0x2a128c(0x222)](_0x1b3eb1)&&(_0x1b3eb1=[_0x1b3eb1]);let _0x479e6a=_0x183314[_0x2a128c(0x16c)]^_0x847b4,_0x208059=new Geoworld['AssociativeArray'](),_0x76705;for(let _0x331d1e=0x0,_0x3729b9=_0x1b3eb1['length'];_0x331d1e<_0x3729b9;_0x331d1e++){_0x76705=_0x1b3eb1[_0x331d1e];let _0x28b92e=this['_objsOperationList'][_0x2a128c(0x205)](_0x76705);if(!Geoworld[_0x2a128c(0x1d9)](_0x28b92e))continue;_0x28b92e&=_0x479e6a,_0x28b92e===_0x183314['RESET']?this['_objsOperationList'][_0x2a128c(0x247)](_0x76705):this[_0x2a128c(0x265)][_0x2a128c(0x1d1)](_0x76705,_0x28b92e),_0x208059[_0x2a128c(0x1d1)](_0x76705,_0x28b92e);}_0x208059[_0x2a128c(0x228)]>0x0&&this[_0x2a128c(0x256)](_0x208059);},S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x178)]=function(_0x34e068){const _0x379766=_0x33d151;let _0x206667=Geoworld[_0x379766(0x23a)][_0x379766(0x209)](_0x34e068),_0xa61c1c=new Geoworld[(_0x379766(0x254))]({'polygonHierarchy':{'positions':_0x206667},'perPositionHeight':!![]}),_0x4a36d0=Geoworld[_0x379766(0x254)][_0x379766(0x239)](_0xa61c1c),_0x1f642b=new RasterRegion();return _0x1f642b['updateGeometry'](_0x4a36d0,this[_0x379766(0x237)]),_0x1f642b[_0x379766(0x1fd)](_0x4a36d0),_0x1f642b;};function flattenCallback(_0x2f5de8,_0x15d389){const _0x3515de=_0x33d151;_0x2f5de8[_0x3515de(0x26f)](_0x15d389);}S3MTilesLayer['prototype'][_0x33d151(0x1be)]=function(_0x493179){const _0xbb2a04=_0x33d151;let _0x31677a=_0x493179[_0xbb2a04(0x295)],_0x2096c8=_0x493179['position'];if(!_0x31677a||!_0x2096c8)return;let _0x4c7ebd=this['_flattenPar'],_0x5045bb=_0x4c7ebd[_0xbb2a04(0x223)];if(_0x5045bb['contains'](_0x31677a))return;!_0x4c7ebd['texture']&&(_0x4c7ebd[_0xbb2a04(0x148)]=new Geoworld[(_0xbb2a04(0x180))]({'context':this['context'],'width':_0x4c7ebd['textureWidth'],'height':_0x4c7ebd['textureHeight'],'pixelFormat':Geoworld['PixelFormat'][_0xbb2a04(0x1d5)]}));let _0x2ace99=this[_0xbb2a04(0x178)](_0x2096c8);_0x5045bb[_0xbb2a04(0x1d1)](_0x31677a,_0x2ace99),_0x4c7ebd[_0xbb2a04(0x266)]=!![],_0x5045bb[_0xbb2a04(0x279)][_0xbb2a04(0x228)]===0x1&&this[_0xbb2a04(0x29a)]({'enable':!![]},flattenCallback);};function hypsometricCallback(_0x1ea2f8,_0x1e077c){const _0x240841=_0x33d151;_0x1ea2f8[_0x240841(0x1bd)](_0x1e077c);}function swipeCallback(_0x3134c1,_0x1541ec){_0x3134c1['swipe'](_0x1541ec);}function combineRegionBounds(_0x307885){const _0x2bf1d5=_0x33d151;let _0xd61b06=new Geoworld[(_0x2bf1d5(0x27a))](Number[_0x2bf1d5(0x234)],Number[_0x2bf1d5(0x234)],-Number[_0x2bf1d5(0x234)],-Number[_0x2bf1d5(0x234)]);for(let _0x30c71b=0x0;_0x30c71b<_0x307885[_0x2bf1d5(0x228)];_0x30c71b++){const _0x362747=_0x307885[_0x30c71b][_0x2bf1d5(0x250)];_0xd61b06['x']=Math[_0x2bf1d5(0x211)](_0x362747['x'],_0xd61b06['x']),_0xd61b06['y']=Math['min'](_0x362747['y'],_0xd61b06['y']),_0xd61b06['z']=Math['max'](_0x362747['z'],_0xd61b06['z']),_0xd61b06['w']=Math[_0x2bf1d5(0x1e0)](_0x362747['w'],_0xd61b06['w']);}return _0xd61b06;}S3MTilesLayer['prototype'][_0x33d151(0x156)]=function(_0x27f735){const _0x2bb42d=_0x33d151;let _0x3f94cf=this[_0x2bb42d(0x1a3)];if(!_0x3f94cf[_0x2bb42d(0x266)])return;_0x3f94cf[_0x2bb42d(0x266)]=![];let _0x1b4d30=_0x3f94cf['regions'],_0x56d631=_0x1b4d30[_0x2bb42d(0x279)][_0x2bb42d(0x228)];_0x3f94cf[_0x2bb42d(0x27d)]=_0x56d631>0x0,_0x3f94cf[_0x2bb42d(0x250)]=combineRegionBounds(_0x1b4d30['values']);let _0x2ddb88=new Geoworld[(_0x2bb42d(0x22f))]({'color':new Geoworld[(_0x2bb42d(0x186))](0x1,0x1,0x1,0x1),'depth':0x1});!_0x3f94cf[_0x2bb42d(0x148)]&&(_0x3f94cf[_0x2bb42d(0x148)]=new Geoworld[(_0x2bb42d(0x180))]({'context':this['context'],'width':_0x3f94cf[_0x2bb42d(0x22e)],'height':_0x3f94cf['textureHeight'],'pixelFormat':Geoworld['PixelFormat'][_0x2bb42d(0x1d5)]}));!_0x3f94cf[_0x2bb42d(0x1e6)]&&(_0x3f94cf[_0x2bb42d(0x1e6)]=new Geoworld['Framebuffer']({'context':this[_0x2bb42d(0x20c)],'colorTextures':[_0x3f94cf[_0x2bb42d(0x148)]],'destroyAttachments':![]}));_0x2ddb88[_0x2bb42d(0x261)]=_0x3f94cf[_0x2bb42d(0x1e6)],_0x2ddb88[_0x2bb42d(0x271)]=Geoworld[_0x2bb42d(0x201)][_0x2bb42d(0x13e)](),_0x2ddb88[_0x2bb42d(0x22c)](this[_0x2bb42d(0x20c)]);for(let _0x230333=0x0;_0x230333<_0x56d631;_0x230333++){let _0x556d3a=_0x1b4d30['values'][_0x230333];_0x556d3a[_0x2bb42d(0x1c8)](this['context'],_0x3f94cf[_0x2bb42d(0x1e6)]),_0x556d3a[_0x2bb42d(0x169)][_0x2bb42d(0x1b1)]={'uRect':function(){const _0x28eecf=_0x2bb42d;return _0x3f94cf[_0x28eecf(0x250)];}},_0x556d3a['command']['execute'](this[_0x2bb42d(0x20c)]);}},S3MTilesLayer['prototype'][_0x33d151(0x147)]=function(_0x2a74b1,_0x4802c1){const _0x5121e6=_0x33d151;if(_0x2a74b1>0x8)throw new Geoworld[(_0x5121e6(0x177))]('the\x20index\x20is\x200~8');_0x4802c1?this[_0x5121e6(0x246)]=0x1<<_0x2a74b1|this[_0x5121e6(0x246)]:this[_0x5121e6(0x246)]=~(0x1<<_0x2a74b1)&this['_visibleViewport'];},S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x269)]=function(_0x57e6dc){const _0xe7c976=_0x33d151;if(_0x57e6dc>0x8)throw new Geoworld[(_0xe7c976(0x177))]('the\x20index\x20is\x200~3');return 0x1<<_0x57e6dc&this[_0xe7c976(0x246)];},S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x153)]=function(){const _0x490d7e=_0x33d151;if(this[_0x490d7e(0x244)]===0x0){this[_0x490d7e(0x25b)]=0x0;return;}this[_0x490d7e(0x202)]=this[_0x490d7e(0x25b)]/this['_edgeCurrentCount']*0x28,this[_0x490d7e(0x25b)]=0x0,this['_edgeCurrentCount']=0x0;},S3MTilesLayer[_0x33d151(0x173)]['_addRenderedEdge']=function(_0x3aca31,_0xc97880){const _0x322c5e=_0x33d151;this[_0x322c5e(0x25b)]+=_0x3aca31,this[_0x322c5e(0x244)]+=_0xc97880;};function updateWaterPlane(_0x1ad35e,_0x57fd18){const _0x56c687=_0x33d151;if(!_0x1ad35e['_waterPlanes'])return;let _0x3194a8=_0x1ad35e[_0x56c687(0x1c0)];_0x57fd18['curDis']===undefined&&(_0x57fd18[_0x56c687(0x15b)]=0x615299);_0x57fd18[_0x56c687(0x273)]===undefined&&(_0x57fd18['heightOffset']=0x0);let _0x1eb68e=_0x57fd18['camera']['positionWC'];for(let _0x4255c2 in _0x3194a8[_0x56c687(0x193)]){if(_0x3194a8[_0x56c687(0x193)][_0x56c687(0x296)](_0x4255c2)){let _0xbeaac2=_0x3194a8[_0x56c687(0x205)](_0x4255c2),_0x1a6b1d=_0xbeaac2['boundingVolume'];if(_0x57fd18['cullingVolume'][_0x56c687(0x216)](_0x1a6b1d)===Geoworld[_0x56c687(0x1db)][_0x56c687(0x1ed)])continue;let _0x4beaf4=Geoworld[_0x56c687(0x23a)]['distance'](_0x1a6b1d[_0x56c687(0x23e)],_0x1eb68e)-_0x1a6b1d[_0x56c687(0x1fb)];_0x4beaf4=_0x4beaf4<0.01?0.01:_0x4beaf4,_0x4beaf4<_0x57fd18['curDis']&&(_0x57fd18[_0x56c687(0x15b)]=_0x4beaf4,_0x57fd18[_0x56c687(0x273)]=_0xbeaac2[_0x56c687(0x230)]);}}}S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x2a3)]=function(_0x442a09){const _0x4a9de6=_0x33d151;let _0xc77eea=this['_waterPlanes']['length'];return this[_0x4a9de6(0x1c0)][_0x4a9de6(0x1d1)](_0xc77eea,_0x442a09),_0xc77eea;},S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x21f)]=function(_0x461e62){const _0x343e02=_0x33d151;this[_0x343e02(0x1c0)][_0x343e02(0x247)](_0x461e62);},S3MTilesLayer['prototype'][_0x33d151(0x242)]=function(_0x81c63d){const _0x2957a1=_0x33d151;if(!this['ready'])return;_0x81c63d[_0x2957a1(0x15e)]&&(this[_0x2957a1(0x25d)]['reset'](),this[_0x2957a1(0x225)][_0x2957a1(0x228)]=0x0,this[_0x2957a1(0x14b)][_0x2957a1(0x228)]=0x0,this[_0x2957a1(0x195)][_0x2957a1(0x228)]=0x0,Geoworld['defined'](_0x81c63d['brdfLutGenerator'])&&_0x81c63d[_0x2957a1(0x262)][_0x2957a1(0x179)](_0x81c63d),updateWaterPlane(this,_0x81c63d));};let scratchtTransposeViewMatrix=new Geoworld[(_0x33d151(0x26d))]();S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x24d)]=function(_0x1e7018){const _0x253aaf=_0x33d151;if(!this[_0x253aaf(0x152)])return;freeResource(this),this[_0x253aaf(0x156)](_0x1e7018),this['_updateEdgeDistanceFalloffFactor'](),this[_0x253aaf(0x26e)]&&this[_0x253aaf(0x26e)][_0x253aaf(0x1c1)](this['id']);};function isLayerVisible(_0x53f795,_0x55fee6){const _0x26f72e=_0x33d151;let _0x23e131=_0x55fee6[_0x26f72e(0x1a6)];if(_0x23e131['positionCartographic'][_0x26f72e(0x221)]<_0x53f795[_0x26f72e(0x1cd)]||_0x23e131[_0x26f72e(0x238)][_0x26f72e(0x221)]>_0x53f795['_maxVisibleAltitude'])return ![];if(!_0x53f795[_0x26f72e(0x269)](_0x55fee6[_0x26f72e(0x1b8)]))return ![];return _0x53f795[_0x26f72e(0x20b)];}function updateClipPlanes(_0x4839fd,_0x52cc78){const _0x3166b6=_0x33d151;if(_0x4839fd[_0x3166b6(0x2a1)]){let _0x40d2ff=_0x52cc78[_0x3166b6(0x1a6)][_0x3166b6(0x22d)];Geoworld['Matrix4'][_0x3166b6(0x15c)](_0x40d2ff,scratchtTransposeViewMatrix);for(let _0x34502=0x0;_0x34502<0x6;_0x34502++){Geoworld[_0x3166b6(0x26d)][_0x3166b6(0x29f)](scratchtTransposeViewMatrix,_0x4839fd[_0x3166b6(0x25e)][_0x34502],_0x4839fd['_clipPlane'][_0x34502]);}}}S3MTilesLayer['prototype'][_0x33d151(0x179)]=function(_0x4a47fc){const _0x11cc75=_0x33d151;if(!this[_0x11cc75(0x152)]||!isLayerVisible(this,_0x4a47fc))return;this['_schuduler'][_0x11cc75(0x175)](this,_0x4a47fc),requestTiles(this),processTiles(this,_0x4a47fc),updateTiles(this,_0x4a47fc),updateClipPlanes(this,_0x4a47fc);},S3MTilesLayer[_0x33d151(0x173)]['isDestroyed']=function(){return ![];},S3MTilesLayer[_0x33d151(0x173)][_0x33d151(0x189)]=function(){const _0x4d9c9=_0x33d151;return this[_0x4d9c9(0x25d)][_0x4d9c9(0x21c)](),freeResource(this),this[_0x4d9c9(0x281)][_0x4d9c9(0x228)]=0x0,this[_0x4d9c9(0x225)][_0x4d9c9(0x228)]=0x0,this[_0x4d9c9(0x14b)][_0x4d9c9(0x228)]=0x0,this[_0x4d9c9(0x195)][_0x4d9c9(0x228)]=0x0,this[_0x4d9c9(0x1b2)]['length']=0x0,this['_objsOperationList'][_0x4d9c9(0x253)](),this[_0x4d9c9(0x280)][_0x4d9c9(0x253)](),this[_0x4d9c9(0x200)]['removeAll'](),this[_0x4d9c9(0x1e1)]={},this[_0x4d9c9(0x259)]={},this[_0x4d9c9(0x26a)][_0x4d9c9(0x189)](),this[_0x4d9c9(0x1a3)]['destroy'](),Geoworld[_0x4d9c9(0x204)](this);}; var _0x2a3156 = (function (globalObject) { /* * bignumber.js v8.1.1 * A JavaScript library for arbitrary-precision arithmetic. * https://github.com/MikeMcl/bignumber.js * Copyright (c) 2019 Michael Mclaughlin * MIT Licensed. * * BigNumber.prototype methods | BigNumber methods * | * absoluteValue abs | clone * comparedTo | config set * decimalPlaces dp | DECIMAL_PLACES * dividedBy div | ROUNDING_MODE * dividedToIntegerBy idiv | EXPONENTIAL_AT * exponentiatedBy pow | RANGE * integerValue | CRYPTO * isEqualTo eq | MODULO_MODE * isFinite | POW_PRECISION * isGreaterThan gt | FORMAT * isGreaterThanOrEqualTo gte | ALPHABET * isInteger | isBigNumber * isLessThan lt | maximum max * isLessThanOrEqualTo lte | minimum min * isNaN | random * isNegative | sum * isPositive | * isZero | * minus | * modulo mod | * multipliedBy times | * negated | * plus | * precision sd | * shiftedBy | * squareRoot sqrt | * toExponential | * toFixed | * toFormat | * toFraction | * toJSON | * toNumber | * toPrecision | * toString | * valueOf | * */ var BigNumber, isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, hasSymbol = typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol', mathceil = Math.ceil, mathfloor = Math.floor, bignumberError = '[BigNumber Error] ', tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ', BASE = 1e14, LOG_BASE = 14, MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1 // MAX_INT32 = 0x7fffffff, // 2^31 - 1 POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], SQRT_BASE = 1e7, // EDITABLE // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and // the arguments to toExponential, toFixed, toFormat, and toPrecision. MAX = 1E9; // 0 to MAX_INT32 /* * Create and return a BigNumber constructor. */ function clone(configObject) { var div, convertBase, parseNumeric, P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null }, ONE = new BigNumber(1), //----------------------------- EDITABLE CONFIG DEFAULTS ------------------------------- // The default values below must be integers within the inclusive ranges stated. // The values can also be changed at run-time using BigNumber.set. // The maximum number of decimal places for operations involving division. DECIMAL_PLACES = 20, // 0 to MAX // The rounding mode used when rounding to the above decimal places, and when using // toExponential, toFixed, toFormat and toPrecision, and round (default value). // UP 0 Away from zero. // DOWN 1 Towards zero. // CEIL 2 Towards +Infinity. // FLOOR 3 Towards -Infinity. // HALF_UP 4 Towards nearest neighbour. If equidistant, up. // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down. // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour. // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity. // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity. ROUNDING_MODE = 4, // 0 to 8 // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS] // The exponent value at and beneath which toString returns exponential notation. // Number type: -7 TO_EXP_NEG = -7, // 0 to -MAX // The exponent value at and above which toString returns exponential notation. // Number type: 21 TO_EXP_POS = 21, // 0 to MAX // RANGE : [MIN_EXP, MAX_EXP] // The minimum exponent value, beneath which underflow to zero occurs. // Number type: -324 (5e-324) MIN_EXP = -1e7, // -1 to -MAX // The maximum exponent value, above which overflow to Infinity occurs. // Number type: 308 (1.7976931348623157e+308) // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow. MAX_EXP = 1e7, // 1 to MAX // Whether to use cryptographically-secure random number generation, if available. CRYPTO = false, // true or false // The modulo mode used when calculating the modulus: a mod n. // The quotient (q = a / n) is calculated according to the corresponding rounding mode. // The remainder (r) is calculated as: r = a - n * q. // // UP 0 The remainder is positive if the dividend is negative, else is negative. // DOWN 1 The remainder has the same sign as the dividend. // This modulo mode is commonly known as 'truncated division' and is // equivalent to (a % n) in JavaScript. // FLOOR 3 The remainder has the same sign as the divisor (Python %). // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function. // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). // The remainder is always positive. // // The truncated division, floored division, Euclidian division and IEEE 754 remainder // modes are commonly used for the modulus operation. // Although the other rounding modes can also be used, they may not give useful results. MODULO_MODE = 1, // 0 to 9 // The maximum number of significant digits of the result of the exponentiatedBy operation. // If POW_PRECISION is 0, there will be unlimited significant digits. POW_PRECISION = 0, // 0 to MAX // The format specification used by the BigNumber.prototype.toFormat method. FORMAT = { prefix: '', groupSize: 3, secondaryGroupSize: 0, groupSeparator: ',', decimalSeparator: '.', fractionGroupSize: 0, fractionGroupSeparator: '\xA0', // non-breaking space suffix: '' }, // The alphabet used for base conversion. It must be at least 2 characters long, with no '+', // '-', '.', whitespace, or repeated character. // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_' ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz'; //------------------------------------------------------------------------------------------ // CONSTRUCTOR /* * The BigNumber constructor and exported function. * Create and return a new instance of a BigNumber object. * * v {number|string|BigNumber} A numeric value. * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive. */ function BigNumber(v, b) { var alphabet, c, caseChanged, e, i, isNum, len, str, x = this; // Enable constructor call without `new`. if (!(x instanceof BigNumber)) return new BigNumber(v, b); if (b == null) { if (v && v._isBigNumber === true) { x.s = v.s; if (!v.c || v.e > MAX_EXP) { x.c = x.e = null; } else if (v.e < MIN_EXP) { x.c = [x.e = 0]; } else { x.e = v.e; x.c = v.c.slice(); } return; } if ((isNum = typeof v == 'number') && v * 0 == 0) { // Use `1 / n` to handle minus zero also. x.s = 1 / v < 0 ? (v = -v, -1) : 1; // Fast path for integers, where n < 2147483648 (2**31). if (v === ~~v) { for (e = 0, i = v; i >= 10; i /= 10, e++); if (e > MAX_EXP) { x.c = x.e = null; } else { x.e = e; x.c = [v]; } return; } str = String(v); } else { if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum); x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1; } // Decimal point? if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); // Exponential form? if ((i = str.search(/e/i)) > 0) { // Determine exponent. if (e < 0) e = i; e += +str.slice(i + 1); str = str.substring(0, i); } else if (e < 0) { // Integer. e = str.length; } } else { // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}' intCheck(b, 2, ALPHABET.length, 'Base'); // Allow exponential notation to be used with base 10 argument, while // also rounding to DECIMAL_PLACES as with other bases. if (b == 10) { x = new BigNumber(v); return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE); } str = String(v); if (isNum = typeof v == 'number') { // Avoid potential interpretation of Infinity and NaN as base 44+ values. if (v * 0 != 0) return parseNumeric(x, str, isNum, b); x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1; // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}' if (BigNumber.DEBUG && str.replace(/^0\.0*|\./, '').length > 15) { throw Error (tooManyDigits + v); } } else { x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1; } alphabet = ALPHABET.slice(0, b); e = i = 0; // Check that str is a valid base b number. // Don't use RegExp, so alphabet can contain special characters. for (len = str.length; i < len; i++) { if (alphabet.indexOf(c = str.charAt(i)) < 0) { if (c == '.') { // If '.' is not the first character and it has not be found before. if (i > e) { e = len; continue; } } else if (!caseChanged) { // Allow e.g. hexadecimal 'FF' as well as 'ff'. if (str == str.toUpperCase() && (str = str.toLowerCase()) || str == str.toLowerCase() && (str = str.toUpperCase())) { caseChanged = true; i = -1; e = 0; continue; } } return parseNumeric(x, String(v), isNum, b); } } // Prevent later check for length on converted number. isNum = false; str = convertBase(str, b, 10, x.s); // Decimal point? if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); else e = str.length; } // Determine leading zeros. for (i = 0; str.charCodeAt(i) === 48; i++); // Determine trailing zeros. for (len = str.length; str.charCodeAt(--len) === 48;); if (str = str.slice(i, ++len)) { len -= i; // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}' if (isNum && BigNumber.DEBUG && len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) { throw Error (tooManyDigits + (x.s * v)); } // Overflow? if ((e = e - i - 1) > MAX_EXP) { // Infinity. x.c = x.e = null; // Underflow? } else if (e < MIN_EXP) { // Zero. x.c = [x.e = 0]; } else { x.e = e; x.c = []; // Transform base // e is the base 10 exponent. // i is where to slice str to get the first element of the coefficient array. i = (e + 1) % LOG_BASE; if (e < 0) i += LOG_BASE; // i < 1 if (i < len) { if (i) x.c.push(+str.slice(0, i)); for (len -= LOG_BASE; i < len;) { x.c.push(+str.slice(i, i += LOG_BASE)); } i = LOG_BASE - (str = str.slice(i)).length; } else { i -= len; } for (; i--; str += '0'); x.c.push(+str); } } else { // Zero. x.c = [x.e = 0]; } } // CONSTRUCTOR PROPERTIES BigNumber.clone = clone; BigNumber.ROUND_UP = 0; BigNumber.ROUND_DOWN = 1; BigNumber.ROUND_CEIL = 2; BigNumber.ROUND_FLOOR = 3; BigNumber.ROUND_HALF_UP = 4; BigNumber.ROUND_HALF_DOWN = 5; BigNumber.ROUND_HALF_EVEN = 6; BigNumber.ROUND_HALF_CEIL = 7; BigNumber.ROUND_HALF_FLOOR = 8; BigNumber.EUCLID = 9; /* * Configure infrequently-changing library-wide settings. * * Accept an object with the following optional properties (if the value of a property is * a number, it must be an integer within the inclusive range stated): * * DECIMAL_PLACES {number} 0 to MAX * ROUNDING_MODE {number} 0 to 8 * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX] * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX] * CRYPTO {boolean} true or false * MODULO_MODE {number} 0 to 9 * POW_PRECISION {number} 0 to MAX * ALPHABET {string} A string of two or more unique characters which does * not contain '.'. * FORMAT {object} An object with some of the following properties: * prefix {string} * groupSize {number} * secondaryGroupSize {number} * groupSeparator {string} * decimalSeparator {string} * fractionGroupSize {number} * fractionGroupSeparator {string} * suffix {string} * * (The values assigned to the above FORMAT object properties are not checked for validity.) * * E.g. * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 }) * * Ignore properties/parameters set to null or undefined, except for ALPHABET. * * Return an object with the properties current values. */ BigNumber.config = BigNumber.set = function (obj) { var p, v; if (obj != null) { if (typeof obj == 'object') { // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive. // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}' if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) { v = obj[p]; intCheck(v, 0, MAX, p); DECIMAL_PLACES = v; } // ROUNDING_MODE {number} Integer, 0 to 8 inclusive. // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}' if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) { v = obj[p]; intCheck(v, 0, 8, p); ROUNDING_MODE = v; } // EXPONENTIAL_AT {number|number[]} // Integer, -MAX to MAX inclusive or // [integer -MAX to 0 inclusive, 0 to MAX inclusive]. // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}' if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) { v = obj[p]; if (v && v.pop) { intCheck(v[0], -MAX, 0, p); intCheck(v[1], 0, MAX, p); TO_EXP_NEG = v[0]; TO_EXP_POS = v[1]; } else { intCheck(v, -MAX, MAX, p); TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v); } } // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive]. // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}' if (obj.hasOwnProperty(p = 'RANGE')) { v = obj[p]; if (v && v.pop) { intCheck(v[0], -MAX, -1, p); intCheck(v[1], 1, MAX, p); MIN_EXP = v[0]; MAX_EXP = v[1]; } else { intCheck(v, -MAX, MAX, p); if (v) { MIN_EXP = -(MAX_EXP = v < 0 ? -v : v); } else { throw Error (bignumberError + p + ' cannot be zero: ' + v); } } } // CRYPTO {boolean} true or false. // '[BigNumber Error] CRYPTO not true or false: {v}' // '[BigNumber Error] crypto unavailable' if (obj.hasOwnProperty(p = 'CRYPTO')) { v = obj[p]; if (v === !!v) { if (v) { if (typeof crypto != 'undefined' && crypto && (crypto.getRandomValues || crypto.randomBytes)) { CRYPTO = v; } else { CRYPTO = !v; throw Error (bignumberError + 'crypto unavailable'); } } else { CRYPTO = v; } } else { throw Error (bignumberError + p + ' not true or false: ' + v); } } // MODULO_MODE {number} Integer, 0 to 9 inclusive. // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}' if (obj.hasOwnProperty(p = 'MODULO_MODE')) { v = obj[p]; intCheck(v, 0, 9, p); MODULO_MODE = v; } // POW_PRECISION {number} Integer, 0 to MAX inclusive. // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}' if (obj.hasOwnProperty(p = 'POW_PRECISION')) { v = obj[p]; intCheck(v, 0, MAX, p); POW_PRECISION = v; } // FORMAT {object} // '[BigNumber Error] FORMAT not an object: {v}' if (obj.hasOwnProperty(p = 'FORMAT')) { v = obj[p]; if (typeof v == 'object') FORMAT = v; else throw Error (bignumberError + p + ' not an object: ' + v); } // ALPHABET {string} // '[BigNumber Error] ALPHABET invalid: {v}' if (obj.hasOwnProperty(p = 'ALPHABET')) { v = obj[p]; // Disallow if only one character, // or if it contains '+', '-', '.', whitespace, or a repeated character. if (typeof v == 'string' && !/^.$|[+-.\s]|(.).*\1/.test(v)) { ALPHABET = v; } else { throw Error (bignumberError + p + ' invalid: ' + v); } } } else { // '[BigNumber Error] Object expected: {v}' throw Error (bignumberError + 'Object expected: ' + obj); } } return { DECIMAL_PLACES: DECIMAL_PLACES, ROUNDING_MODE: ROUNDING_MODE, EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS], RANGE: [MIN_EXP, MAX_EXP], CRYPTO: CRYPTO, MODULO_MODE: MODULO_MODE, POW_PRECISION: POW_PRECISION, FORMAT: FORMAT, ALPHABET: ALPHABET }; }; /* * Return true if v is a BigNumber instance, otherwise return false. * * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed. * * v {any} * * '[BigNumber Error] Invalid BigNumber: {v}' */ BigNumber.isBigNumber = function (v) { if (!v || v._isBigNumber !== true) return false; if (!BigNumber.DEBUG) return true; var i, n, c = v.c, e = v.e, s = v.s; out: if ({}.toString.call(c) == '[object Array]') { if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) { // If the first element is zero, the BigNumber value must be zero. if (c[0] === 0) { if (e === 0 && c.length === 1) return true; break out; } // Calculate number of digits that c[0] should have, based on the exponent. i = (e + 1) % LOG_BASE; if (i < 1) i += LOG_BASE; // Calculate number of digits of c[0]. //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) { if (String(c[0]).length == i) { for (i = 0; i < c.length; i++) { n = c[i]; if (n < 0 || n >= BASE || n !== mathfloor(n)) break out; } // Last element cannot be zero, unless it is the only element. if (n !== 0) return true; } } // Infinity/NaN } else if (c === null && e === null && (s === null || s === 1 || s === -1)) { return true; } throw Error (bignumberError + 'Invalid BigNumber: ' + v); }; /* * Return a new BigNumber whose value is the maximum of the arguments. * * arguments {number|string|BigNumber} */ BigNumber.maximum = BigNumber.max = function () { return maxOrMin(arguments, P.lt); }; /* * Return a new BigNumber whose value is the minimum of the arguments. * * arguments {number|string|BigNumber} */ BigNumber.minimum = BigNumber.min = function () { return maxOrMin(arguments, P.gt); }; /* * Return a new BigNumber with a random value equal to or greater than 0 and less than 1, * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing * zeros are produced). * * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. * * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}' * '[BigNumber Error] crypto unavailable' */ BigNumber.random = (function () { var pow2_53 = 0x20000000000000; // Return a 53 bit integer n, where 0 <= n < 9007199254740992. // Check if Math.random() produces more than 32 bits of randomness. // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits. // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1. var random53bitInt = (Math.random() * pow2_53) & 0x1fffff ? function () { return mathfloor(Math.random() * pow2_53); } : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) + (Math.random() * 0x800000 | 0); }; return function (dp) { var a, b, e, k, v, i = 0, c = [], rand = new BigNumber(ONE); if (dp == null) dp = DECIMAL_PLACES; else intCheck(dp, 0, MAX); k = mathceil(dp / LOG_BASE); if (CRYPTO) { // Browsers supporting crypto.getRandomValues. if (crypto.getRandomValues) { a = crypto.getRandomValues(new Uint32Array(k *= 2)); for (; i < k;) { // 53 bits: // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2) // 11111 11111111 11111111 11111111 11100000 00000000 00000000 // ((Math.pow(2, 32) - 1) >>> 11).toString(2) // 11111 11111111 11111111 // 0x20000 is 2^21. v = a[i] * 0x20000 + (a[i + 1] >>> 11); // Rejection sampling: // 0 <= v < 9007199254740992 // Probability that v >= 9e15, is // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251 if (v >= 9e15) { b = crypto.getRandomValues(new Uint32Array(2)); a[i] = b[0]; a[i + 1] = b[1]; } else { // 0 <= v <= 8999999999999999 // 0 <= (v % 1e14) <= 99999999999999 c.push(v % 1e14); i += 2; } } i = k / 2; // Node.js supporting crypto.randomBytes. } else if (crypto.randomBytes) { // buffer a = crypto.randomBytes(k *= 7); for (; i < k;) { // 0x1000000000000 is 2^48, 0x10000000000 is 2^40 // 0x100000000 is 2^32, 0x1000000 is 2^24 // 11111 11111111 11111111 11111111 11111111 11111111 11111111 // 0 <= v < 9007199254740992 v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) + (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) + (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6]; if (v >= 9e15) { crypto.randomBytes(7).copy(a, i); } else { // 0 <= (v % 1e14) <= 99999999999999 c.push(v % 1e14); i += 7; } } i = k / 7; } else { CRYPTO = false; throw Error (bignumberError + 'crypto unavailable'); } } // Use Math.random. if (!CRYPTO) { for (; i < k;) { v = random53bitInt(); if (v < 9e15) c[i++] = v % 1e14; } } k = c[--i]; dp %= LOG_BASE; // Convert trailing digits to zeros according to dp. if (k && dp) { v = POWS_TEN[LOG_BASE - dp]; c[i] = mathfloor(k / v) * v; } // Remove trailing elements which are zero. for (; c[i] === 0; c.pop(), i--); // Zero? if (i < 0) { c = [e = 0]; } else { // Remove leading elements which are zero and adjust exponent accordingly. for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE); // Count the digits of the first element of c to determine leading zeros, and... for (i = 1, v = c[0]; v >= 10; v /= 10, i++); // adjust the exponent accordingly. if (i < LOG_BASE) e -= LOG_BASE - i; } rand.e = e; rand.c = c; return rand; }; })(); /* * Return a BigNumber whose value is the sum of the arguments. * * arguments {number|string|BigNumber} */ BigNumber.sum = function () { var i = 1, args = arguments, sum = new BigNumber(args[0]); for (; i < args.length;) sum = sum.plus(args[i++]); return sum; }; // PRIVATE FUNCTIONS // Called by BigNumber and BigNumber.prototype.toString. convertBase = (function () { var decimal = '0123456789'; /* * Convert string of baseIn to an array of numbers of baseOut. * Eg. toBaseOut('255', 10, 16) returns [15, 15]. * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5]. */ function toBaseOut(str, baseIn, baseOut, alphabet) { var j, arr = [0], arrL, i = 0, len = str.length; for (; i < len;) { for (arrL = arr.length; arrL--; arr[arrL] *= baseIn); arr[0] += alphabet.indexOf(str.charAt(i++)); for (j = 0; j < arr.length; j++) { if (arr[j] > baseOut - 1) { if (arr[j + 1] == null) arr[j + 1] = 0; arr[j + 1] += arr[j] / baseOut | 0; arr[j] %= baseOut; } } } return arr.reverse(); } // Convert a numeric string of baseIn to a numeric string of baseOut. // If the caller is toString, we are converting from base 10 to baseOut. // If the caller is BigNumber, we are converting from baseIn to base 10. return function (str, baseIn, baseOut, sign, callerIsToString) { var alphabet, d, e, k, r, x, xc, y, i = str.indexOf('.'), dp = DECIMAL_PLACES, rm = ROUNDING_MODE; // Non-integer. if (i >= 0) { k = POW_PRECISION; // Unlimited precision. POW_PRECISION = 0; str = str.replace('.', ''); y = new BigNumber(baseIn); x = y.pow(str.length - i); POW_PRECISION = k; // Convert str as if an integer, then restore the fraction part by dividing the // result by its base raised to a power. y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'), 10, baseOut, decimal); y.e = y.c.length; } // Convert the number as integer. xc = toBaseOut(str, baseIn, baseOut, callerIsToString ? (alphabet = ALPHABET, decimal) : (alphabet = decimal, ALPHABET)); // xc now represents str as an integer and converted to baseOut. e is the exponent. e = k = xc.length; // Remove trailing zeros. for (; xc[--k] == 0; xc.pop()); // Zero? if (!xc[0]) return alphabet.charAt(0); // Does str represent an integer? If so, no need for the division. if (i < 0) { --e; } else { x.c = xc; x.e = e; // The sign is needed for correct rounding. x.s = sign; x = div(x, y, dp, rm, baseOut); xc = x.c; r = x.r; e = x.e; } // xc now represents str converted to baseOut. // THe index of the rounding digit. d = e + dp + 1; // The rounding digit: the digit to the right of the digit that may be rounded up. i = xc[d]; // Look at the rounding digits and mode to determine whether to round up. k = baseOut / 2; r = r || d < 0 || xc[d + 1] != null; r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 || rm == (x.s < 0 ? 8 : 7)); // If the index of the rounding digit is not greater than zero, or xc represents // zero, then the result of the base conversion is zero or, if rounding up, a value // such as 0.00001. if (d < 1 || !xc[0]) { // 1^-dp or 0 str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0); } else { // Truncate xc to the required number of decimal places. xc.length = d; // Round up? if (r) { // Rounding up may mean the previous digit has to be rounded up and so on. for (--baseOut; ++xc[--d] > baseOut;) { xc[d] = 0; if (!d) { ++e; xc = [1].concat(xc); } } } // Determine trailing zeros. for (k = xc.length; !xc[--k];); // E.g. [4, 11, 15] becomes 4bf. for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++])); // Add leading zeros, decimal point and trailing zeros as required. str = toFixedPoint(str, e, alphabet.charAt(0)); } // The caller will add the sign. return str; }; })(); // Perform division in the specified base. Called by div and convertBase. div = (function () { // Assume non-zero x and k. function multiply(x, k, base) { var m, temp, xlo, xhi, carry = 0, i = x.length, klo = k % SQRT_BASE, khi = k / SQRT_BASE | 0; for (x = x.slice(); i--;) { xlo = x[i] % SQRT_BASE; xhi = x[i] / SQRT_BASE | 0; m = khi * xlo + xhi * klo; temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry; carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi; x[i] = temp % base; } if (carry) x = [carry].concat(x); return x; } function compare(a, b, aL, bL) { var i, cmp; if (aL != bL) { cmp = aL > bL ? 1 : -1; } else { for (i = cmp = 0; i < aL; i++) { if (a[i] != b[i]) { cmp = a[i] > b[i] ? 1 : -1; break; } } } return cmp; } function subtract(a, b, aL, base) { var i = 0; // Subtract b from a. for (; aL--;) { a[aL] -= i; i = a[aL] < b[aL] ? 1 : 0; a[aL] = i * base + a[aL] - b[aL]; } // Remove leading zeros. for (; !a[0] && a.length > 1; a.splice(0, 1)); } // x: dividend, y: divisor. return function (x, y, dp, rm, base) { var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0, yL, yz, s = x.s == y.s ? 1 : -1, xc = x.c, yc = y.c; // Either NaN, Infinity or 0? if (!xc || !xc[0] || !yc || !yc[0]) { return new BigNumber( // Return NaN if either NaN, or both Infinity or 0. !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN : // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0. xc && xc[0] == 0 || !yc ? s * 0 : s / 0 ); } q = new BigNumber(s); qc = q.c = []; e = x.e - y.e; s = dp + e + 1; if (!base) { base = BASE; e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE); s = s / LOG_BASE | 0; } // Result exponent may be one less then the current value of e. // The coefficients of the BigNumbers from convertBase may have trailing zeros. for (i = 0; yc[i] == (xc[i] || 0); i++); if (yc[i] > (xc[i] || 0)) e--; if (s < 0) { qc.push(1); more = true; } else { xL = xc.length; yL = yc.length; i = 0; s += 2; // Normalise xc and yc so highest order digit of yc is >= base / 2. n = mathfloor(base / (yc[0] + 1)); // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1. // if (n > 1 || n++ == 1 && yc[0] < base / 2) { if (n > 1) { yc = multiply(yc, n, base); xc = multiply(xc, n, base); yL = yc.length; xL = xc.length; } xi = yL; rem = xc.slice(0, yL); remL = rem.length; // Add zeros to make remainder as long as divisor. for (; remL < yL; rem[remL++] = 0); yz = yc.slice(); yz = [0].concat(yz); yc0 = yc[0]; if (yc[1] >= base / 2) yc0++; // Not necessary, but to prevent trial digit n > base, when using base 3. // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15; do { n = 0; // Compare divisor and remainder. cmp = compare(yc, rem, yL, remL); // If divisor < remainder. if (cmp < 0) { // Calculate trial digit, n. rem0 = rem[0]; if (yL != remL) rem0 = rem0 * base + (rem[1] || 0); // n is how many times the divisor goes into the current remainder. n = mathfloor(rem0 / yc0); // Algorithm: // product = divisor multiplied by trial digit (n). // Compare product and remainder. // If product is greater than remainder: // Subtract divisor from product, decrement trial digit. // Subtract product from remainder. // If product was less than remainder at the last compare: // Compare new remainder and divisor. // If remainder is greater than divisor: // Subtract divisor from remainder, increment trial digit. if (n > 1) { // n may be > base only when base is 3. if (n >= base) n = base - 1; // product = divisor * trial digit. prod = multiply(yc, n, base); prodL = prod.length; remL = rem.length; // Compare product and remainder. // If product > remainder then trial digit n too high. // n is 1 too high about 5% of the time, and is not known to have // ever been more than 1 too high. while (compare(prod, rem, prodL, remL) == 1) { n--; // Subtract divisor from product. subtract(prod, yL < prodL ? yz : yc, prodL, base); prodL = prod.length; cmp = 1; } } else { // n is 0 or 1, cmp is -1. // If n is 0, there is no need to compare yc and rem again below, // so change cmp to 1 to avoid it. // If n is 1, leave cmp as -1, so yc and rem are compared again. if (n == 0) { // divisor < remainder, so n must be at least 1. cmp = n = 1; } // product = divisor prod = yc.slice(); prodL = prod.length; } if (prodL < remL) prod = [0].concat(prod); // Subtract product from remainder. subtract(rem, prod, remL, base); remL = rem.length; // If product was < remainder. if (cmp == -1) { // Compare divisor and new remainder. // If divisor < new remainder, subtract divisor from remainder. // Trial digit n too low. // n is 1 too low about 5% of the time, and very rarely 2 too low. while (compare(yc, rem, yL, remL) < 1) { n++; // Subtract divisor from remainder. subtract(rem, yL < remL ? yz : yc, remL, base); remL = rem.length; } } } else if (cmp === 0) { n++; rem = [0]; } // else cmp === 1 and n will be 0 // Add the next digit, n, to the result array. qc[i++] = n; // Update the remainder. if (rem[0]) { rem[remL++] = xc[xi] || 0; } else { rem = [xc[xi]]; remL = 1; } } while ((xi++ < xL || rem[0] != null) && s--); more = rem[0] != null; // Leading zero? if (!qc[0]) qc.splice(0, 1); } if (base == BASE) { // To calculate q.e, first get the number of digits of qc[0]. for (i = 1, s = qc[0]; s >= 10; s /= 10, i++); round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more); // Caller is convertBase. } else { q.e = e; q.r = +more; } return q; }; })(); /* * Return a string representing the value of BigNumber n in fixed-point or exponential * notation rounded to the specified decimal places or significant digits. * * n: a BigNumber. * i: the index of the last digit required (i.e. the digit that may be rounded up). * rm: the rounding mode. * id: 1 (toExponential) or 2 (toPrecision). */ function format(n, i, rm, id) { var c0, e, ne, len, str; if (rm == null) rm = ROUNDING_MODE; else intCheck(rm, 0, 8); if (!n.c) return n.toString(); c0 = n.c[0]; ne = n.e; if (i == null) { str = coeffToString(n.c); str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS) ? toExponential(str, ne) : toFixedPoint(str, ne, '0'); } else { n = round(new BigNumber(n), i, rm); // n.e may have changed if the value was rounded up. e = n.e; str = coeffToString(n.c); len = str.length; // toPrecision returns exponential notation if the number of significant digits // specified is less than the number of digits necessary to represent the integer // part of the value in fixed-point notation. // Exponential notation. if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) { // Append zeros? for (; len < i; str += '0', len++); str = toExponential(str, e); // Fixed-point notation. } else { i -= ne; str = toFixedPoint(str, e, '0'); // Append zeros? if (e + 1 > len) { if (--i > 0) for (str += '.'; i--; str += '0'); } else { i += e - len; if (i > 0) { if (e + 1 == len) str += '.'; for (; i--; str += '0'); } } } } return n.s < 0 && c0 ? '-' + str : str; } // Handle BigNumber.max and BigNumber.min. function maxOrMin(args, method) { var n, i = 1, m = new BigNumber(args[0]); for (; i < args.length; i++) { n = new BigNumber(args[i]); // If any number is NaN, return NaN. if (!n.s) { m = n; break; } else if (method.call(m, n)) { m = n; } } return m; } /* * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP. * Called by minus, plus and times. */ function normalise(n, c, e) { var i = 1, j = c.length; // Remove trailing zeros. for (; !c[--j]; c.pop()); // Calculate the base 10 exponent. First get the number of digits of c[0]. for (j = c[0]; j >= 10; j /= 10, i++); // Overflow? if ((e = i + e * LOG_BASE - 1) > MAX_EXP) { // Infinity. n.c = n.e = null; // Underflow? } else if (e < MIN_EXP) { // Zero. n.c = [n.e = 0]; } else { n.e = e; n.c = c; } return n; } // Handle values that fail the validity test in BigNumber. parseNumeric = (function () { var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i, dotAfter = /^([^.]+)\.$/, dotBefore = /^\.([^.]+)$/, isInfinityOrNaN = /^-?(Infinity|NaN)$/, whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g; return function (x, str, isNum, b) { var base, s = isNum ? str : str.replace(whitespaceOrPlus, ''); // No exception on ±Infinity or NaN. if (isInfinityOrNaN.test(s)) { x.s = isNaN(s) ? null : s < 0 ? -1 : 1; } else { if (!isNum) { // basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i s = s.replace(basePrefix, function (m, p1, p2) { base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8; return !b || b == base ? p1 : m; }); if (b) { base = b; // E.g. '1.' to '1', '.1' to '0.1' s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1'); } if (str != s) return new BigNumber(s, base); } // '[BigNumber Error] Not a number: {n}' // '[BigNumber Error] Not a base {b} number: {n}' if (BigNumber.DEBUG) { throw Error (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str); } // NaN x.s = null; } x.c = x.e = null; } })(); /* * Round x to sd significant digits using rounding mode rm. Check for over/under-flow. * If r is truthy, it is known that there are more digits after the rounding digit. */ function round(x, sd, rm, r) { var d, i, j, k, n, ni, rd, xc = x.c, pows10 = POWS_TEN; // if x is not Infinity or NaN... if (xc) { // rd is the rounding digit, i.e. the digit after the digit that may be rounded up. // n is a base 1e14 number, the value of the element of array x.c containing rd. // ni is the index of n within x.c. // d is the number of digits of n. // i is the index of rd within n including leading zeros. // j is the actual index of rd within n (if < 0, rd is a leading zero). out: { // Get the number of digits of the first element of xc. for (d = 1, k = xc[0]; k >= 10; k /= 10, d++); i = sd - d; // If the rounding digit is in the first element of xc... if (i < 0) { i += LOG_BASE; j = sd; n = xc[ni = 0]; // Get the rounding digit at index j of n. rd = n / pows10[d - j - 1] % 10 | 0; } else { ni = mathceil((i + 1) / LOG_BASE); if (ni >= xc.length) { if (r) { // Needed by sqrt. for (; xc.length <= ni; xc.push(0)); n = rd = 0; d = 1; i %= LOG_BASE; j = i - LOG_BASE + 1; } else { break out; } } else { n = k = xc[ni]; // Get the number of digits of n. for (d = 1; k >= 10; k /= 10, d++); // Get the index of rd within n. i %= LOG_BASE; // Get the index of rd within n, adjusted for leading zeros. // The number of leading zeros of n is given by LOG_BASE - d. j = i - LOG_BASE + d; // Get the rounding digit at index j of n. rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0; } } r = r || sd < 0 || // Are there any non-zero digits after the rounding digit? // The expression n % pows10[d - j - 1] returns all digits of n to the right // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714. xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]); r = rm < 4 ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 && // Check whether the digit to the left of the rounding digit is odd. ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 || rm == (x.s < 0 ? 8 : 7)); if (sd < 1 || !xc[0]) { xc.length = 0; if (r) { // Convert sd to decimal places. sd -= x.e + 1; // 1, 0.1, 0.01, 0.001, 0.0001 etc. xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE]; x.e = -sd || 0; } else { // Zero. xc[0] = x.e = 0; } return x; } // Remove excess digits. if (i == 0) { xc.length = ni; k = 1; ni--; } else { xc.length = ni + 1; k = pows10[LOG_BASE - i]; // E.g. 56700 becomes 56000 if 7 is the rounding digit. // j > 0 means i > number of leading zeros of n. xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0; } // Round up? if (r) { for (; ;) { // If the digit to be rounded up is in the first element of xc... if (ni == 0) { // i will be the length of xc[0] before k is added. for (i = 1, j = xc[0]; j >= 10; j /= 10, i++); j = xc[0] += k; for (k = 1; j >= 10; j /= 10, k++); // if i != k the length has increased. if (i != k) { x.e++; if (xc[0] == BASE) xc[0] = 1; } break; } else { xc[ni] += k; if (xc[ni] != BASE) break; xc[ni--] = 0; k = 1; } } } // Remove trailing zeros. for (i = xc.length; xc[--i] === 0; xc.pop()); } // Overflow? Infinity. if (x.e > MAX_EXP) { x.c = x.e = null; // Underflow? Zero. } else if (x.e < MIN_EXP) { x.c = [x.e = 0]; } } return x; } function valueOf(n) { var str, e = n.e; if (e === null) return n.toString(); str = coeffToString(n.c); str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(str, e) : toFixedPoint(str, e, '0'); return n.s < 0 ? '-' + str : str; } // PROTOTYPE/INSTANCE METHODS /* * Return a new BigNumber whose value is the absolute value of this BigNumber. */ P.absoluteValue = P.abs = function () { var x = new BigNumber(this); if (x.s < 0) x.s = 1; return x; }; /* * Return * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b), * -1 if the value of this BigNumber is less than the value of BigNumber(y, b), * 0 if they have the same value, * or null if the value of either is NaN. */ P.comparedTo = function (y, b) { return compare(this, new BigNumber(y, b)); }; /* * If dp is undefined or null or true or false, return the number of decimal places of the * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN. * * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or * ROUNDING_MODE if rm is omitted. * * [dp] {number} Decimal places: integer, 0 to MAX inclusive. * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. * * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' */ P.decimalPlaces = P.dp = function (dp, rm) { var c, n, v, x = this; if (dp != null) { intCheck(dp, 0, MAX); if (rm == null) rm = ROUNDING_MODE; else intCheck(rm, 0, 8); return round(new BigNumber(x), dp + x.e + 1, rm); } if (!(c = x.c)) return null; n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE; // Subtract the number of trailing zeros of the last number. if (v = c[v]) for (; v % 10 == 0; v /= 10, n--); if (n < 0) n = 0; return n; }; /* * n / 0 = I * n / N = N * n / I = 0 * 0 / n = 0 * 0 / 0 = N * 0 / N = N * 0 / I = 0 * N / n = N * N / 0 = N * N / N = N * N / I = N * I / n = I * I / 0 = I * I / N = N * I / I = N * * Return a new BigNumber whose value is the value of this BigNumber divided by the value of * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE. */ P.dividedBy = P.div = function (y, b) { return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE); }; /* * Return a new BigNumber whose value is the integer part of dividing the value of this * BigNumber by the value of BigNumber(y, b). */ P.dividedToIntegerBy = P.idiv = function (y, b) { return div(this, new BigNumber(y, b), 0, 1); }; /* * Return a BigNumber whose value is the value of this BigNumber exponentiated by n. * * If m is present, return the result modulo m. * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE. * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE. * * The modular power operation works efficiently when x, n, and m are integers, otherwise it * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0. * * n {number|string|BigNumber} The exponent. An integer. * [m] {number|string|BigNumber} The modulus. * * '[BigNumber Error] Exponent not an integer: {n}' */ P.exponentiatedBy = P.pow = function (n, m) { var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y, x = this; n = new BigNumber(n); // Allow NaN and ±Infinity, but not other non-integers. if (n.c && !n.isInteger()) { throw Error (bignumberError + 'Exponent not an integer: ' + valueOf(n)); } if (m != null) m = new BigNumber(m); // Exponent of MAX_SAFE_INTEGER is 15. nIsBig = n.e > 14; // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0. if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) { // The sign of the result of pow when x is negative depends on the evenness of n. // If +n overflows to ±Infinity, the evenness of n would be not be known. y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n))); return m ? y.mod(m) : y; } nIsNeg = n.s < 0; if (m) { // x % m returns NaN if abs(m) is zero, or m is NaN. if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN); isModExp = !nIsNeg && x.isInteger() && m.isInteger(); if (isModExp) x = x.mod(m); // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15. // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15. } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0 // [1, 240000000] ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7 // [80000000000000] [99999750000000] : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) { // If x is negative and n is odd, k = -0, else k = 0. k = x.s < 0 && isOdd(n) ? -0 : 0; // If x >= 1, k = ±Infinity. if (x.e > -1) k = 1 / k; // If n is negative return ±0, else return ±Infinity. return new BigNumber(nIsNeg ? 1 / k : k); } else if (POW_PRECISION) { // Truncating each coefficient array to a length of k after each multiplication // equates to truncating significant digits to POW_PRECISION + [28, 41], // i.e. there will be a minimum of 28 guard digits retained. k = mathceil(POW_PRECISION / LOG_BASE + 2); } if (nIsBig) { half = new BigNumber(0.5); if (nIsNeg) n.s = 1; nIsOdd = isOdd(n); } else { i = Math.abs(+valueOf(n)); nIsOdd = i % 2; } y = new BigNumber(ONE); // Performs 54 loop iterations for n of 9007199254740991. for (; ;) { if (nIsOdd) { y = y.times(x); if (!y.c) break; if (k) { if (y.c.length > k) y.c.length = k; } else if (isModExp) { y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m)); } } if (i) { i = mathfloor(i / 2); if (i === 0) break; nIsOdd = i % 2; } else { n = n.times(half); round(n, n.e + 1, 1); if (n.e > 14) { nIsOdd = isOdd(n); } else { i = +valueOf(n); if (i === 0) break; nIsOdd = i % 2; } } x = x.times(x); if (k) { if (x.c && x.c.length > k) x.c.length = k; } else if (isModExp) { x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m)); } } if (isModExp) return y; if (nIsNeg) y = ONE.div(y); return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y; }; /* * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer * using rounding mode rm, or ROUNDING_MODE if rm is omitted. * * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. * * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}' */ P.integerValue = function (rm) { var n = new BigNumber(this); if (rm == null) rm = ROUNDING_MODE; else intCheck(rm, 0, 8); return round(n, n.e + 1, rm); }; /* * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b), * otherwise return false. */ P.isEqualTo = P.eq = function (y, b) { return compare(this, new BigNumber(y, b)) === 0; }; /* * Return true if the value of this BigNumber is a finite number, otherwise return false. */ P.isFinite = function () { return !!this.c; }; /* * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b), * otherwise return false. */ P.isGreaterThan = P.gt = function (y, b) { return compare(this, new BigNumber(y, b)) > 0; }; /* * Return true if the value of this BigNumber is greater than or equal to the value of * BigNumber(y, b), otherwise return false. */ P.isGreaterThanOrEqualTo = P.gte = function (y, b) { return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0; }; /* * Return true if the value of this BigNumber is an integer, otherwise return false. */ P.isInteger = function () { return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2; }; /* * Return true if the value of this BigNumber is less than the value of BigNumber(y, b), * otherwise return false. */ P.isLessThan = P.lt = function (y, b) { return compare(this, new BigNumber(y, b)) < 0; }; /* * Return true if the value of this BigNumber is less than or equal to the value of * BigNumber(y, b), otherwise return false. */ P.isLessThanOrEqualTo = P.lte = function (y, b) { return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0; }; /* * Return true if the value of this BigNumber is NaN, otherwise return false. */ P.isNaN = function () { return !this.s; }; /* * Return true if the value of this BigNumber is negative, otherwise return false. */ P.isNegative = function () { return this.s < 0; }; /* * Return true if the value of this BigNumber is positive, otherwise return false. */ P.isPositive = function () { return this.s > 0; }; /* * Return true if the value of this BigNumber is 0 or -0, otherwise return false. */ P.isZero = function () { return !!this.c && this.c[0] == 0; }; /* * n - 0 = n * n - N = N * n - I = -I * 0 - n = -n * 0 - 0 = 0 * 0 - N = N * 0 - I = -I * N - n = N * N - 0 = N * N - N = N * N - I = N * I - n = I * I - 0 = I * I - N = N * I - I = N * * Return a new BigNumber whose value is the value of this BigNumber minus the value of * BigNumber(y, b). */ P.minus = function (y, b) { var i, j, t, xLTy, x = this, a = x.s; y = new BigNumber(y, b); b = y.s; // Either NaN? if (!a || !b) return new BigNumber(NaN); // Signs differ? if (a != b) { y.s = -b; return x.plus(y); } var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c; if (!xe || !ye) { // Either Infinity? if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN); // Either zero? if (!xc[0] || !yc[0]) { // Return y if y is non-zero, x if x is non-zero, or zero if both are zero. return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x : // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity ROUNDING_MODE == 3 ? -0 : 0); } } xe = bitFloor(xe); ye = bitFloor(ye); xc = xc.slice(); // Determine which is the bigger number. if (a = xe - ye) { if (xLTy = a < 0) { a = -a; t = xc; } else { ye = xe; t = yc; } t.reverse(); // Prepend zeros to equalise exponents. for (b = a; b--; t.push(0)); t.reverse(); } else { // Exponents equal. Check digit by digit. j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b; for (a = b = 0; b < j; b++) { if (xc[b] != yc[b]) { xLTy = xc[b] < yc[b]; break; } } } // x < y? Point xc to the array of the bigger number. if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s; b = (j = yc.length) - (i = xc.length); // Append zeros to xc if shorter. // No need to add zeros to yc if shorter as subtract only needs to start at yc.length. if (b > 0) for (; b--; xc[i++] = 0); b = BASE - 1; // Subtract yc from xc. for (; j > a;) { if (xc[--j] < yc[j]) { for (i = j; i && !xc[--i]; xc[i] = b); --xc[i]; xc[j] += BASE; } xc[j] -= yc[j]; } // Remove leading zeros and adjust exponent accordingly. for (; xc[0] == 0; xc.splice(0, 1), --ye); // Zero? if (!xc[0]) { // Following IEEE 754 (2008) 6.3, // n - n = +0 but n - n = -0 when rounding towards -Infinity. y.s = ROUNDING_MODE == 3 ? -1 : 1; y.c = [y.e = 0]; return y; } // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity // for finite x and y. return normalise(y, xc, ye); }; /* * n % 0 = N * n % N = N * n % I = n * 0 % n = 0 * -0 % n = -0 * 0 % 0 = N * 0 % N = N * 0 % I = 0 * N % n = N * N % 0 = N * N % N = N * N % I = N * I % n = N * I % 0 = N * I % N = N * I % I = N * * Return a new BigNumber whose value is the value of this BigNumber modulo the value of * BigNumber(y, b). The result depends on the value of MODULO_MODE. */ P.modulo = P.mod = function (y, b) { var q, s, x = this; y = new BigNumber(y, b); // Return NaN if x is Infinity or NaN, or y is NaN or zero. if (!x.c || !y.s || y.c && !y.c[0]) { return new BigNumber(NaN); // Return x if y is Infinity or x is zero. } else if (!y.c || x.c && !x.c[0]) { return new BigNumber(x); } if (MODULO_MODE == 9) { // Euclidian division: q = sign(y) * floor(x / abs(y)) // r = x - qy where 0 <= r < abs(y) s = y.s; y.s = 1; q = div(x, y, 0, 3); y.s = s; q.s *= s; } else { q = div(x, y, 0, MODULO_MODE); } y = x.minus(q.times(y)); // To match JavaScript %, ensure sign of zero is sign of dividend. if (!y.c[0] && MODULO_MODE == 1) y.s = x.s; return y; }; /* * n * 0 = 0 * n * N = N * n * I = I * 0 * n = 0 * 0 * 0 = 0 * 0 * N = N * 0 * I = N * N * n = N * N * 0 = N * N * N = N * N * I = N * I * n = I * I * 0 = N * I * N = N * I * I = I * * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value * of BigNumber(y, b). */ P.multipliedBy = P.times = function (y, b) { var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, base, sqrtBase, x = this, xc = x.c, yc = (y = new BigNumber(y, b)).c; // Either NaN, ±Infinity or ±0? if (!xc || !yc || !xc[0] || !yc[0]) { // Return NaN if either is NaN, or one is 0 and the other is Infinity. if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) { y.c = y.e = y.s = null; } else { y.s *= x.s; // Return ±Infinity if either is ±Infinity. if (!xc || !yc) { y.c = y.e = null; // Return ±0 if either is ±0. } else { y.c = [0]; y.e = 0; } } return y; } e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE); y.s *= x.s; xcL = xc.length; ycL = yc.length; // Ensure xc points to longer array and xcL to its length. if (xcL < ycL) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i; // Initialise the result array with zeros. for (i = xcL + ycL, zc = []; i--; zc.push(0)); base = BASE; sqrtBase = SQRT_BASE; for (i = ycL; --i >= 0;) { c = 0; ylo = yc[i] % sqrtBase; yhi = yc[i] / sqrtBase | 0; for (k = xcL, j = i + k; j > i;) { xlo = xc[--k] % sqrtBase; xhi = xc[k] / sqrtBase | 0; m = yhi * xlo + xhi * ylo; xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c; c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi; zc[j--] = xlo % base; } zc[j] = c; } if (c) { ++e; } else { zc.splice(0, 1); } return normalise(y, zc, e); }; /* * Return a new BigNumber whose value is the value of this BigNumber negated, * i.e. multiplied by -1. */ P.negated = function () { var x = new BigNumber(this); x.s = -x.s || null; return x; }; /* * n + 0 = n * n + N = N * n + I = I * 0 + n = n * 0 + 0 = 0 * 0 + N = N * 0 + I = I * N + n = N * N + 0 = N * N + N = N * N + I = N * I + n = I * I + 0 = I * I + N = N * I + I = I * * Return a new BigNumber whose value is the value of this BigNumber plus the value of * BigNumber(y, b). */ P.plus = function (y, b) { var t, x = this, a = x.s; y = new BigNumber(y, b); b = y.s; // Either NaN? if (!a || !b) return new BigNumber(NaN); // Signs differ? if (a != b) { y.s = -b; return x.minus(y); } var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c; if (!xe || !ye) { // Return ±Infinity if either ±Infinity. if (!xc || !yc) return new BigNumber(a / 0); // Either zero? // Return y if y is non-zero, x if x is non-zero, or zero if both are zero. if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0); } xe = bitFloor(xe); ye = bitFloor(ye); xc = xc.slice(); // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts. if (a = xe - ye) { if (a > 0) { ye = xe; t = yc; } else { a = -a; t = xc; } t.reverse(); for (; a--; t.push(0)); t.reverse(); } a = xc.length; b = yc.length; // Point xc to the longer array, and b to the shorter length. if (a - b < 0) t = yc, yc = xc, xc = t, b = a; // Only start adding at yc.length - 1 as the further digits of xc can be ignored. for (a = 0; b;) { a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0; xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE; } if (a) { xc = [a].concat(xc); ++ye; } // No need to check for zero, as +x + +y != 0 && -x + -y != 0 // ye = MAX_EXP + 1 possible return normalise(y, xc, ye); }; /* * If sd is undefined or null or true or false, return the number of significant digits of * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN. * If sd is true include integer-part trailing zeros in the count. * * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or * ROUNDING_MODE if rm is omitted. * * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive. * boolean: whether to count integer-part trailing zeros: true or false. * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. * * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}' */ P.precision = P.sd = function (sd, rm) { var c, n, v, x = this; if (sd != null && sd !== !!sd) { intCheck(sd, 1, MAX); if (rm == null) rm = ROUNDING_MODE; else intCheck(rm, 0, 8); return round(new BigNumber(x), sd, rm); } if (!(c = x.c)) return null; v = c.length - 1; n = v * LOG_BASE + 1; if (v = c[v]) { // Subtract the number of trailing zeros of the last element. for (; v % 10 == 0; v /= 10, n--); // Add the number of digits of the first element. for (v = c[0]; v >= 10; v /= 10, n++); } if (sd && x.e + 1 > n) n = x.e + 1; return n; }; /* * Return a new BigNumber whose value is the value of this BigNumber shifted by k places * (powers of 10). Shift to the right if n > 0, and to the left if n < 0. * * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive. * * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}' */ P.shiftedBy = function (k) { intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER); return this.times('1e' + k); }; /* * sqrt(-n) = N * sqrt(N) = N * sqrt(-I) = N * sqrt(I) = I * sqrt(0) = 0 * sqrt(-0) = -0 * * Return a new BigNumber whose value is the square root of the value of this BigNumber, * rounded according to DECIMAL_PLACES and ROUNDING_MODE. */ P.squareRoot = P.sqrt = function () { var m, n, r, rep, t, x = this, c = x.c, s = x.s, e = x.e, dp = DECIMAL_PLACES + 4, half = new BigNumber('0.5'); // Negative/NaN/Infinity/zero? if (s !== 1 || !c || !c[0]) { return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0); } // Initial estimate. s = Math.sqrt(+valueOf(x)); // Math.sqrt underflow/overflow? // Pass x to Math.sqrt as integer, then adjust the exponent of the result. if (s == 0 || s == 1 / 0) { n = coeffToString(c); if ((n.length + e) % 2 == 0) n += '0'; s = Math.sqrt(+n); e = bitFloor((e + 1) / 2) - (e < 0 || e % 2); if (s == 1 / 0) { n = '1e' + e; } else { n = s.toExponential(); n = n.slice(0, n.indexOf('e') + 1) + e; } r = new BigNumber(n); } else { r = new BigNumber(s + ''); } // Check for zero. // r could be zero if MIN_EXP is changed after the this value was created. // This would cause a division by zero (x/t) and hence Infinity below, which would cause // coeffToString to throw. if (r.c[0]) { e = r.e; s = e + dp; if (s < 3) s = 0; // Newton-Raphson iteration. for (; ;) { t = r; r = half.times(t.plus(div(x, t, dp, 1))); if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) { // The exponent of r may here be one less than the final result exponent, // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits // are indexed correctly. if (r.e < e) --s; n = n.slice(s - 3, s + 1); // The 4th rounding digit may be in error by -1 so if the 4 rounding digits // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the // iteration. if (n == '9999' || !rep && n == '4999') { // On the first iteration only, check to see if rounding up gives the // exact result as the nines may infinitely repeat. if (!rep) { round(t, t.e + DECIMAL_PLACES + 2, 0); if (t.times(t).eq(x)) { r = t; break; } } dp += 4; s += 4; rep = 1; } else { // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact // result. If not, then there are further digits and m will be truthy. if (!+n || !+n.slice(1) && n.charAt(0) == '5') { // Truncate to the first rounding digit. round(r, r.e + DECIMAL_PLACES + 2, 1); m = !r.times(r).eq(x); } break; } } } } return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m); }; /* * Return a string representing the value of this BigNumber in exponential notation and * rounded using ROUNDING_MODE to dp fixed decimal places. * * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. * * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' */ P.toExponential = function (dp, rm) { if (dp != null) { intCheck(dp, 0, MAX); dp++; } return format(this, dp, rm, 1); }; /* * Return a string representing the value of this BigNumber in fixed-point notation rounding * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted. * * Note: as with JavaScript's number type, (-0).toFixed(0) is '0', * but e.g. (-0.00001).toFixed(0) is '-0'. * * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. * * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' */ P.toFixed = function (dp, rm) { if (dp != null) { intCheck(dp, 0, MAX); dp = dp + this.e + 1; } return format(this, dp, rm); }; /* * Return a string representing the value of this BigNumber in fixed-point notation rounded * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties * of the format or FORMAT object (see BigNumber.set). * * The formatting object may contain some or all of the properties shown below. * * FORMAT = { * prefix: '', * groupSize: 3, * secondaryGroupSize: 0, * groupSeparator: ',', * decimalSeparator: '.', * fractionGroupSize: 0, * fractionGroupSeparator: '\xA0', // non-breaking space * suffix: '' * }; * * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. * [format] {object} Formatting options. See FORMAT pbject above. * * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' * '[BigNumber Error] Argument not an object: {format}' */ P.toFormat = function (dp, rm, format) { var str, x = this; if (format == null) { if (dp != null && rm && typeof rm == 'object') { format = rm; rm = null; } else if (dp && typeof dp == 'object') { format = dp; dp = rm = null; } else { format = FORMAT; } } else if (typeof format != 'object') { throw Error (bignumberError + 'Argument not an object: ' + format); } str = x.toFixed(dp, rm); if (x.c) { var i, arr = str.split('.'), g1 = +format.groupSize, g2 = +format.secondaryGroupSize, groupSeparator = format.groupSeparator || '', intPart = arr[0], fractionPart = arr[1], isNeg = x.s < 0, intDigits = isNeg ? intPart.slice(1) : intPart, len = intDigits.length; if (g2) i = g1, g1 = g2, g2 = i, len -= i; if (g1 > 0 && len > 0) { i = len % g1 || g1; intPart = intDigits.substr(0, i); for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1); if (g2 > 0) intPart += groupSeparator + intDigits.slice(i); if (isNeg) intPart = '-' + intPart; } str = fractionPart ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize) ? fractionPart.replace(new RegExp('\\d{' + g2 + '}\\B', 'g'), '$&' + (format.fractionGroupSeparator || '')) : fractionPart) : intPart; } return (format.prefix || '') + str + (format.suffix || ''); }; /* * Return an array of two BigNumbers representing the value of this BigNumber as a simple * fraction with an integer numerator and an integer denominator. * The denominator will be a positive non-zero value less than or equal to the specified * maximum denominator. If a maximum denominator is not specified, the denominator will be * the lowest value necessary to represent the number exactly. * * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator. * * '[BigNumber Error] Argument {not an integer|out of range} : {md}' */ P.toFraction = function (md) { var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s, x = this, xc = x.c; if (md != null) { n = new BigNumber(md); // Throw if md is less than one or is not an integer, unless it is Infinity. if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) { throw Error (bignumberError + 'Argument ' + (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n)); } } if (!xc) return new BigNumber(x); d = new BigNumber(ONE); n1 = d0 = new BigNumber(ONE); d1 = n0 = new BigNumber(ONE); s = coeffToString(xc); // Determine initial denominator. // d is a power of 10 and the minimum max denominator that specifies the value exactly. e = d.e = s.length - x.e - 1; d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp]; md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n; exp = MAX_EXP; MAX_EXP = 1 / 0; n = new BigNumber(s); // n0 = d1 = 0 n0.c[0] = 0; for (; ;) { q = div(n, d, 0, 1); d2 = d0.plus(q.times(d1)); if (d2.comparedTo(md) == 1) break; d0 = d1; d1 = d2; n1 = n0.plus(q.times(d2 = n1)); n0 = d2; d = n.minus(q.times(d2 = d)); n = d2; } d2 = div(md.minus(d0), d1, 0, 1); n0 = n0.plus(d2.times(n1)); d0 = d0.plus(d2.times(d1)); n0.s = n1.s = x.s; e = e * 2; // Determine which fraction is closer to x, n0/d0 or n1/d1 r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo( div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0]; MAX_EXP = exp; return r; }; /* * Return the value of this BigNumber converted to a number primitive. */ P.toNumber = function () { return +valueOf(this); }; /* * Return a string representing the value of this BigNumber rounded to sd significant digits * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits * necessary to represent the integer part of the value in fixed-point notation, then use * exponential notation. * * [sd] {number} Significant digits. Integer, 1 to MAX inclusive. * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. * * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}' */ P.toPrecision = function (sd, rm) { if (sd != null) intCheck(sd, 1, MAX); return format(this, sd, rm, 2); }; /* * Return a string representing the value of this BigNumber in base b, or base 10 if b is * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than * TO_EXP_NEG, return exponential notation. * * [b] {number} Integer, 2 to ALPHABET.length inclusive. * * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}' */ P.toString = function (b) { var str, n = this, s = n.s, e = n.e; // Infinity or NaN? if (e === null) { if (s) { str = 'Infinity'; if (s < 0) str = '-' + str; } else { str = 'NaN'; } } else { if (b == null) { str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(coeffToString(n.c), e) : toFixedPoint(coeffToString(n.c), e, '0'); } else if (b === 10) { n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE); str = toFixedPoint(coeffToString(n.c), n.e, '0'); } else { intCheck(b, 2, ALPHABET.length, 'Base'); str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true); } if (s < 0 && n.c[0]) str = '-' + str; } return str; }; /* * Return as toString, but do not accept a base argument, and include the minus sign for * negative zero. */ P.valueOf = P.toJSON = function () { return valueOf(this); }; P._isBigNumber = true; if (hasSymbol) { P[Symbol.toStringTag] = 'BigNumber'; // Node.js v10.12.0+ P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf; } if (configObject != null) BigNumber.set(configObject); return BigNumber; } // PRIVATE HELPER FUNCTIONS // These functions don't need access to variables, // e.g. DECIMAL_PLACES, in the scope of the `clone` function above. function bitFloor(n) { var i = n | 0; return n > 0 || n === i ? i : i - 1; } // Return a coefficient array as a string of base 10 digits. function coeffToString(a) { var s, z, i = 1, j = a.length, r = a[0] + ''; for (; i < j;) { s = a[i++] + ''; z = LOG_BASE - s.length; for (; z--; s = '0' + s); r += s; } // Determine trailing zeros. for (j = r.length; r.charCodeAt(--j) === 48;); return r.slice(0, j + 1 || 1); } // Compare the value of BigNumbers x and y. function compare(x, y) { var a, b, xc = x.c, yc = y.c, i = x.s, j = y.s, k = x.e, l = y.e; // Either NaN? if (!i || !j) return null; a = xc && !xc[0]; b = yc && !yc[0]; // Either zero? if (a || b) return a ? b ? 0 : -j : i; // Signs differ? if (i != j) return i; a = i < 0; b = k == l; // Either Infinity? if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1; // Compare exponents. if (!b) return k > l ^ a ? 1 : -1; j = (k = xc.length) < (l = yc.length) ? k : l; // Compare digit by digit. for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1; // Compare lengths. return k == l ? 0 : k > l ^ a ? 1 : -1; } /* * Check that n is a primitive number, an integer, and in range, otherwise throw. */ function intCheck(n, min, max, name) { if (n < min || n > max || n !== mathfloor(n)) { throw Error (bignumberError + (name || 'Argument') + (typeof n == 'number' ? n < min || n > max ? ' out of range: ' : ' not an integer: ' : ' not a primitive number: ') + String(n)); } } // Assumes finite n. function isOdd(n) { var k = n.c.length - 1; return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0; } function toExponential(str, e) { return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) + (e < 0 ? 'e' : 'e+') + e; } function toFixedPoint(str, e, z) { var len, zs; // Negative exponent? if (e < 0) { // Prepend zeros. for (zs = z + '.'; ++e; zs += z); str = zs + str; // Positive exponent } else { len = str.length; // Append zeros. if (++e > len) { for (zs = z, e -= len; --e; zs += z); str += zs; } else if (e < len) { str = str.slice(0, e) + '.' + str.slice(e); } } return str; } // EXPORT BigNumber = clone(); BigNumber['default'] = BigNumber.BigNumber = BigNumber; // AMD. if (typeof define == 'function' && define.amd) { define(function () { return BigNumber; }); // Node.js and other environments that support module.exports. } else if (typeof module != 'undefined' && module.exports) { module.exports = BigNumber; // Browser. } else { if (!globalObject) { globalObject = typeof self != 'undefined' && self ? self : window; } globalObject.BigNumber = BigNumber; } return BigNumber; })(); var _0xa0d6=['waterNormalMap','reflectPlane','Cartesian3','destroy','257exSPOY','isUpdate','getFramebuffer','73BeBZeY','242311kZsswQ','viewport','ClearCommand','95347dOwJhk','prototype','view','waterNormalMapUrl','destroyObject','sceneFramebuffer','camera','PassState','constructor','14690kLLmor','begin','854375cbTAGW','clone','isDestroyed','disableReflection','passState','execute','end','update','46628XkBSLm','Color','context','_hdr','create','4633NRipKs','clearCommand','10aTDGTH','Assets/Textures/waterNormalsSmall.jpg','Plane','UNIT_Z','2843KZkYFA','SceneFramebuffer','BoundingRectangle','11zEQNSe','enableReflection','framebuffer'];var _0xa39fa4=_0x497c;function _0x497c(_0x49d6f5,_0x149ff8){_0x49d6f5=_0x49d6f5-0x135;var _0xa0d634=_0xa0d6[_0x49d6f5];return _0xa0d634;}(function(_0x312835,_0x4f2940){var _0x592d76=_0x497c;while(!![]){try{var _0x547e3e=parseInt(_0x592d76(0x146))*-parseInt(_0x592d76(0x162))+-parseInt(_0x592d76(0x15d))*-parseInt(_0x592d76(0x135))+parseInt(_0x592d76(0x13c))*-parseInt(_0x592d76(0x153))+parseInt(_0x592d76(0x155))+parseInt(_0x592d76(0x143))*-parseInt(_0x592d76(0x139))+parseInt(_0x592d76(0x147))+parseInt(_0x592d76(0x14a));if(_0x547e3e===_0x4f2940)break;else _0x312835['push'](_0x312835['shift']());}catch(_0x8a1199){_0x312835['push'](_0x312835['shift']());}}}(_0xa0d6,0x68757));function ReflectFramebuffer(_0x3a6975){var _0x48cd0a=_0x497c;this[_0x48cd0a(0x15f)]=_0x3a6975,this['sceneFramebuffer']=new Geoworld[(_0x48cd0a(0x13a))](),this[_0x48cd0a(0x159)]=new Geoworld[(_0x48cd0a(0x151))](_0x3a6975),this['passState'][_0x48cd0a(0x148)]=new Geoworld[(_0x48cd0a(0x13b))](),this[_0x48cd0a(0x14d)]=_0x48cd0a(0x136),this[_0x48cd0a(0x13f)]=undefined,this[_0x48cd0a(0x140)]=new Geoworld[(_0x48cd0a(0x137))](Geoworld[_0x48cd0a(0x141)][_0x48cd0a(0x138)],0x615299),this['environmentVisible']={'isSunVisible':!![],'isMoonVisible':!![],'isSkyAtmosphereVisible':!![],'isSkyBoxVisible':!![],'isGlobalVisible':![],'isObjectVisible':!![]},this['passState']['cullPass']=Geoworld['Pass']['GLOBE'],this[_0x48cd0a(0x163)]=new Geoworld[(_0x48cd0a(0x149))]({'color':new Geoworld[(_0x48cd0a(0x15e))](0x0,0x0,0x0,0x0),'stencil':0x0,'depth':0x1}),this[_0x48cd0a(0x144)]=![];}ReflectFramebuffer[_0xa39fa4(0x14b)]=Object[_0xa39fa4(0x161)](RenderTarget[_0xa39fa4(0x14b)]),ReflectFramebuffer[_0xa39fa4(0x14b)][_0xa39fa4(0x152)]=RenderTarget,ReflectFramebuffer['prototype'][_0xa39fa4(0x154)]=function(_0x56adbf){var _0x51aa79=_0xa39fa4;return this[_0x51aa79(0x14f)][_0x51aa79(0x15c)](_0x56adbf[_0x51aa79(0x15f)],_0x56adbf['view'][_0x51aa79(0x148)],_0x56adbf[_0x51aa79(0x160)]),this[_0x51aa79(0x159)][_0x51aa79(0x13e)]=this[_0x51aa79(0x14f)][_0x51aa79(0x145)](),Geoworld['BoundingRectangle'][_0x51aa79(0x156)](_0x56adbf[_0x51aa79(0x14c)]['viewport'],this[_0x51aa79(0x159)][_0x51aa79(0x148)]),this[_0x51aa79(0x163)][_0x51aa79(0x15a)](_0x56adbf['context'],this[_0x51aa79(0x159)]),_0x56adbf[_0x51aa79(0x150)][_0x51aa79(0x13d)](this[_0x51aa79(0x140)]),this[_0x51aa79(0x159)];},ReflectFramebuffer[_0xa39fa4(0x14b)][_0xa39fa4(0x15b)]=function(_0x1ed7ec){var _0x51e2d6=_0xa39fa4;_0x1ed7ec[_0x51e2d6(0x150)][_0x51e2d6(0x158)]();},ReflectFramebuffer[_0xa39fa4(0x14b)][_0xa39fa4(0x157)]=function(){var _0x314915=_0xa39fa4;return this[_0x314915(0x14f)]=this[_0x314915(0x14f)][_0x314915(0x142)](),this['isUpdate']=![],![];},ReflectFramebuffer['prototype'][_0xa39fa4(0x142)]=function(){var _0x1d550d=_0xa39fa4;return Geoworld[_0x1d550d(0x14e)](this);}; const _0x105f=['Resource','longitude','PointSize','multiplyByPlane','PerspectiveFrustum','add\x20S3M\x20layer','_projection','Scene','execute','setSelection','right','getMatrix3','AUTO_Z_AXIAL','ColorParams','VisibleAltitudeMax','commandList','multiplyByScalar','BLACK','normalize','add\x20all\x20layers\x20failed,','CullFace','/config','_viewRotation','_offCenterFrustum','_cameraPosition','name','BACK','positionCartographic','FixedZ','s3mGroup','Visible','_mode','latitude','283431yXaEWc','realspace','addS3MTilesLayerByScp','_view3DDirty','_inverseViewProjectionDirty','context','queryFirstNode','_cameraDirection','None','defer','render','rest/realspace','update','lineWidth','reject','Selectable','fromCache','WithinLayer3DGroup','get\x20scene\x20list\x20failed,','matrix','random','end','length','255788wvBeAH','_currentFrustum','922206pPSxcy','result','hookPickFunc','dot','reflectFramebuffer','get\x20s3m\x20layer\x20config\x20failed,xml\x20document\x20undefined.','jsessionID','useDepthPicking','resolve','normal','_cameraUp','then','CacheFileType',',layer\x20name\x20is\x20','get','BottomAltitude','s3m','32825GvmlbJ','defined','fetch\x20s3m\x20layer\x20config\x20xml\x20error','_modelView3DDirty','billboardMode','Matrix4','Fill_And_WireFrame','mod','SkyAtmosphere','infiniteProjectionMatrix','_eyeHeight','toString','push','RotateY','_ellipsoid','fetchJson','heading','multiplyByVector','positionWC','3426TeklHh','transpose','OSGBLayer','_viewProjectionDirty','RotateZ','when','setView','viewMatrix','post','get\x20scene\x20config\x20failed,','slice','near','Color','terrain','far','otherwise','bottom','fbo','queryStringValue','LayerName','_inverseNormal3DDirty','pointSize','_normal3DDirty','upWC','DeveloperError','BillboardMode','_orthographicIn3D','clipPlane','indexOf','multiply','bottomAltitude','lineColor','exec','set','_farDepthFromNearPlusOne','UNIT_Z','altitude','AltitudeMode','primitives','clamp','log2','SELECTION','615623WnyhSu','/datas/','currentViewMatrix','json','pass','multipliedBy','inverseTransformation','values','draw','top','reflect','Fill','green','_inverseView3DDirty','reflectRs','_renderTargets','frameState','scene\x20list\x20response\x20null!','/login.json','Hue','17SLenqC','Style3D','Style','FILL_LINE','_log2FarDepthFromNearPlusOne','/layers.json','get\x20layer\x20list\x20failed,','.json','promise','_frustumPlanes','S3M','Saturation','SCENE2D','_cameraRight','_inverseModelViewDirty','COLUMBUS_VIEW','queryNumericValue','ShadowType','height','FixedXYZ','magnitude','BlendingState','ALPHA_BLEND','pick','max','ColorPoint','_view','LayerStyle','DrawCommand','left','bReflect','succeed','red','firstChild','\x20failed,','Gamma','Math','primitive','Camera','Cartesian4','frustum','PolygonOffset','Check','path','RenderState','FillForeColor','AssociativeArray','cullPass','Cartesian3','hookCloneFunc','pointColor','mode','updateEnvironment','open\x20scene\x20url\x20error!','heightOffset','renderState','reflectMatrix','queryBooleanValue','blue','camera','rss','_inverseProjectionDirty','OrthographicFrustum','VisibleDistanceMin','WireFrame','prototype','reflectPlane','VisibleDistanceMax','object','resolve\x20Layer\x20Extend\x20XML\x20error','enableReflection','createIfNeeded','hookRenderFunc','_modelViewProjectionDirty','substring','TerrainFileLayer','_modelViewProjectionRelativeToEyeDirty','_normalDirty','toNumber','directionWC','OSGBGroup','358nHwCVa','clone','VisibleAltitudeMin','url','get\x20S3M\x20layer\x20config\x20failed,','fetchXML','imagery','projectionMatrix','ImageFileLayer','tilt','all','resolveFramebuffers','isUpdate','1411582hnBBCK','stringify','FIXED_ANGLE','fillStyle','_viewMatrix','typeOf','UniformState','Constant','fillForeColor','S3MB','layer3DType','LODRangeScale','namespaceURI','toRadians','ALL','_removeRenderTarget','_modelViewRelativeToEyeDirty','curDis','remove','begin','_entireFrustum','distance','_infiniteProjection','FILL_FACEANDLINE','sign','updateFrustum','minus','hookUpdateFunc','alpha'];const _0x464cd4=_0x2b3e;(function(_0x16aeef,_0x429075){const _0x209361=_0x2b3e;while(!![]){try{const _0x2b56dc=-parseInt(_0x209361(0x264))+-parseInt(_0x209361(0x2b4))+-parseInt(_0x209361(0x2c8))*-parseInt(_0x209361(0x277))+parseInt(_0x209361(0x24d))+parseInt(_0x209361(0x266))+parseInt(_0x209361(0x202))*parseInt(_0x209361(0x28a))+-parseInt(_0x209361(0x20f));if(_0x2b56dc===_0x429075)break;else _0x16aeef['push'](_0x16aeef['shift']());}catch(_0xe8dbfc){_0x16aeef['push'](_0x16aeef['shift']());}}}(_0x105f,0xaca69));let scratchCartesian4=new Geoworld[(_0x464cd4(0x1d8))](),scratchClipPlane4d=new Geoworld[(_0x464cd4(0x1d8))](),scratchMatrix4=new Geoworld[(_0x464cd4(0x27c))](),scratchInvMatrix4=new Geoworld[(_0x464cd4(0x27c))](),scratchCartesian3=new Geoworld['Cartesian3'](),scratchPlane=new Geoworld['Plane'](Geoworld[_0x464cd4(0x1e1)][_0x464cd4(0x2ad)],0x1);Geoworld[_0x464cd4(0x1d7)][_0x464cd4(0x1f2)]['bReflect']=![],Geoworld['Camera'][_0x464cd4(0x1f2)]['reflectMatrix']=new Geoworld[(_0x464cd4(0x27c))]();function updateReflectMatrix(_0x3633e0,_0x3ea559){const _0x415ecb=_0x464cd4;let _0x1b5aa6=_0x3633e0[_0x415ecb(0x224)],_0xeb3411=_0x3633e0[_0x415ecb(0x26f)];_0x3ea559[0x0]=-0x2*_0xeb3411['x']*_0xeb3411['x']+0x1,_0x3ea559[0x1]=-0x2*_0xeb3411['y']*_0xeb3411['x'],_0x3ea559[0x2]=-0x2*_0xeb3411['z']*_0xeb3411['x'],_0x3ea559[0x3]=0x0,_0x3ea559[0x4]=-0x2*_0xeb3411['x']*_0xeb3411['y'],_0x3ea559[0x5]=-0x2*_0xeb3411['y']*_0xeb3411['y']+0x1,_0x3ea559[0x6]=-0x2*_0xeb3411['z']*_0xeb3411['y'],_0x3ea559[0x7]=0x0,_0x3ea559[0x8]=-0x2*_0xeb3411['x']*_0xeb3411['z'],_0x3ea559[0x9]=-0x2*_0xeb3411['y']*_0xeb3411['z'],_0x3ea559[0xa]=-0x2*_0xeb3411['z']*_0xeb3411['z']+0x1,_0x3ea559[0xb]=0x0,_0x3ea559[0xc]=-0x2*_0xeb3411['x']*_0x1b5aa6,_0x3ea559[0xd]=-0x2*_0xeb3411['y']*_0x1b5aa6,_0x3ea559[0xe]=-0x2*_0xeb3411['z']*_0x1b5aa6,_0x3ea559[0xf]=0x1;}Geoworld[_0x464cd4(0x1d7)]['prototype'][_0x464cd4(0x1f7)]=function(_0x4edb78){const _0x3e952e=_0x464cd4;this[_0x3e952e(0x1cf)]=!![],updateReflectMatrix(_0x4edb78,this[_0x3e952e(0x1e9)]),this['frustum']['reflect']=!![],this['frustum']['clipPlane']=_0x4edb78;let _0x3290e0=Geoworld['Matrix4'][_0x3e952e(0x2a7)](this[_0x3e952e(0x213)],this['reflectMatrix'],scratchMatrix4);this[_0x3e952e(0x1d9)][_0x3e952e(0x2b6)]=_0x3290e0;},Geoworld[_0x464cd4(0x1d7)]['prototype']['disableReflection']=function(){const _0x2e8eec=_0x464cd4;this[_0x2e8eec(0x1cf)]=![],this['frustum'][_0x2e8eec(0x2be)]=![];},Geoworld[_0x464cd4(0x1cd)][_0x464cd4(0x1f2)][_0x464cd4(0x234)]=function(_0x3b3161,_0x31afab){const _0x53cf0d=_0x464cd4;if(Geoworld[_0x53cf0d(0x278)](_0x31afab)&&Geoworld[_0x53cf0d(0x278)](_0x31afab[_0x53cf0d(0x1e0)])&&this[_0x53cf0d(0x2b8)]===_0x31afab['cullPass'])return;_0x3b3161[_0x53cf0d(0x2bc)](this,_0x31afab);},Geoworld['Matrix4'][_0x464cd4(0x22f)]=function(_0x4689bf,_0x4d2fe7,_0x40ec58){const _0xa8bc92=_0x464cd4;Geoworld[_0xa8bc92(0x1db)][_0xa8bc92(0x214)][_0xa8bc92(0x1f5)](_0xa8bc92(0x260),_0x4689bf),Geoworld[_0xa8bc92(0x1db)][_0xa8bc92(0x214)][_0xa8bc92(0x1f5)]('plane',_0x4d2fe7),Geoworld[_0xa8bc92(0x1db)]['typeOf'][_0xa8bc92(0x1f5)](_0xa8bc92(0x267),_0x40ec58),Geoworld[_0xa8bc92(0x27c)]['inverse'](_0x4689bf,scratchMatrix4),Geoworld[_0xa8bc92(0x27c)][_0xa8bc92(0x28b)](scratchMatrix4,scratchMatrix4),scratchCartesian4['x']=_0x4d2fe7[_0xa8bc92(0x26f)]['x'],scratchCartesian4['y']=_0x4d2fe7[_0xa8bc92(0x26f)]['y'],scratchCartesian4['z']=_0x4d2fe7[_0xa8bc92(0x26f)]['z'],scratchCartesian4['w']=_0x4d2fe7[_0xa8bc92(0x224)],Geoworld[_0xa8bc92(0x27c)][_0xa8bc92(0x288)](scratchMatrix4,scratchCartesian4,scratchCartesian4),_0x40ec58[_0xa8bc92(0x26f)]['x']=scratchCartesian4['x'],_0x40ec58[_0xa8bc92(0x26f)]['y']=scratchCartesian4['y'],_0x40ec58[_0xa8bc92(0x26f)]['z']=scratchCartesian4['z'];let _0x4af184=Geoworld['Cartesian3'][_0xa8bc92(0x1c5)](_0x40ec58['normal']);return Geoworld['Cartesian3'][_0xa8bc92(0x23e)](_0x40ec58[_0xa8bc92(0x26f)],_0x40ec58[_0xa8bc92(0x26f)]),_0x40ec58[_0xa8bc92(0x224)]=scratchCartesian4['w']/_0x4af184,_0x40ec58;},Geoworld['PerspectiveFrustum'][_0x464cd4(0x1f2)][_0x464cd4(0x1e2)]=Geoworld[_0x464cd4(0x230)]['prototype']['clone'],Geoworld[_0x464cd4(0x230)][_0x464cd4(0x1f2)][_0x464cd4(0x203)]=function(_0x52dc5e){const _0x9cb4ae=_0x464cd4;let _0x44ef29=this[_0x9cb4ae(0x1e2)](_0x52dc5e);return _0x44ef29[_0x9cb4ae(0x2be)]=this[_0x9cb4ae(0x2be)],_0x44ef29[_0x9cb4ae(0x2a5)]=this[_0x9cb4ae(0x2a5)],_0x44ef29[_0x9cb4ae(0x2b6)]=this['currentViewMatrix'],_0x44ef29;};function getSceneList(_0x2d1377){const _0x18e209=_0x464cd4;let _0x4bc37c=Geoworld[_0x18e209(0x22c)][_0x18e209(0x1f8)](_0x2d1377);return _0x4bc37c[_0x18e209(0x286)](_0x2d1377)[_0x18e209(0x271)](function(_0xe54089){const _0x1a9d4b=_0x18e209;if(_0xe54089[_0x1a9d4b(0x263)]<0x1)return undefined;let _0x22cb1b=_0xe54089[0x0];return {'name':_0x22cb1b['name'],'path':_0x22cb1b['path']};});}function getSceneConfig(_0x53bfd6){const _0x196ed9=_0x464cd4;let _0x3e4576=Geoworld[_0x196ed9(0x22c)]['createIfNeeded'](_0x53bfd6);return _0x3e4576[_0x196ed9(0x286)](_0x53bfd6)[_0x196ed9(0x271)](function(_0xb52868){return _0xb52868;});}function getLayerList(_0x4f0512){const _0x3289f0=_0x464cd4;let _0x32d87c=_0x4f0512+_0x3289f0(0x2cd),_0x5dcd7c=Geoworld[_0x3289f0(0x22c)][_0x3289f0(0x1f8)](_0x32d87c);return _0x5dcd7c[_0x3289f0(0x286)]()[_0x3289f0(0x271)](function(_0x5954b7){const _0x33d9d0=_0x3289f0;let _0x4e92e7={'s3m':[],'imagery':[],'s3mGroup':[],'terrain':undefined};for(let _0x11d0d5=0x0,_0x2a9b35=_0x5954b7['length'];_0x11d0d5<_0x2a9b35;_0x11d0d5++){let _0x2ca781=_0x5954b7[_0x11d0d5],_0x26b129=_0x2ca781[_0x33d9d0(0x219)];if(_0x26b129===_0x33d9d0(0x28c))_0x4e92e7[_0x33d9d0(0x276)][_0x33d9d0(0x283)](_0x2ca781);else {if(_0x26b129===_0x33d9d0(0x20a))_0x4e92e7[_0x33d9d0(0x208)][_0x33d9d0(0x283)](_0x2ca781);else {if(_0x26b129===_0x33d9d0(0x1fc))_0x4e92e7[_0x33d9d0(0x297)]=_0x2ca781;else _0x26b129===_0x33d9d0(0x201)&&_0x4e92e7[_0x33d9d0(0x249)][_0x33d9d0(0x283)](_0x2ca781);}}}return _0x4e92e7;});}const rgbMatcher=/^rgba?\(\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)(?:\s*,\s*([0-9.]+))?\s*\)$/i,rgbaMatcher2=/^rgba?\(\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)(?:\s*,\s*([0-9.]+))?\s*\)\)$/i;function resolveLayerExtendXML(_0x5b1fad){const _0x440986=_0x464cd4;if(!_0x5b1fad)throw new Geoworld[(_0x440986(0x2a2))](_0x440986(0x26b));let _0x1f8297=_0x5b1fad[_0x440986(0x1d2)],_0x77fb54=_0x1f8297[_0x440986(0x21b)],_0x1c9f94=XMLParser[_0x440986(0x29c)](_0x1f8297,_0x440986(0x29d),_0x77fb54),_0x37a464=XMLParser[_0x440986(0x253)](_0x1f8297,'Options',_0x77fb54),_0xa73582=XMLParser[_0x440986(0x29c)](_0x1f8297,_0x440986(0x25e),_0x77fb54),_0x595713=XMLParser[_0x440986(0x1ea)](_0x37a464,_0x440986(0x25c),_0x77fb54),_0x2461c9=XMLParser[_0x440986(0x1ea)](_0x37a464,_0x440986(0x24a),_0x77fb54),_0x17069d=XMLParser[_0x440986(0x1c1)](_0x37a464,_0x440986(0x204),_0x77fb54),_0x4396ba=XMLParser['queryNumericValue'](_0x37a464,_0x440986(0x23a),_0x77fb54);_0x4396ba=_0x4396ba===0x0?Number['MAX_VALUE']:_0x4396ba;let _0x3f6b69=XMLParser['queryNumericValue'](_0x37a464,_0x440986(0x1f0),_0x77fb54),_0x52ef7b=XMLParser['queryNumericValue'](_0x37a464,_0x440986(0x1f4),_0x77fb54),_0x4238ab=XMLParser[_0x440986(0x29c)](_0x37a464,_0x440986(0x1c2),_0x77fb54),_0x45610c=0x0;if(_0x4238ab===_0x440986(0x2b3))_0x45610c=0x1;else _0x4238ab===_0x440986(0x21d)&&(_0x45610c=0x2);let _0x411d4b=XMLParser[_0x440986(0x29c)](_0x1f8297,_0x440986(0x272),_0x77fb54),_0x4f7e36=_0x411d4b===_0x440986(0x218),_0x515b9e=_0x411d4b===_0x440986(0x2d2),_0x20779e=_0x411d4b==='OSGB',_0x356f1d=XMLParser[_0x440986(0x253)](_0x1f8297,_0x440986(0x2ca),_0x77fb54);if(!_0x356f1d){let _0x1c5106=XMLParser[_0x440986(0x253)](_0x1f8297,_0x440986(0x1cc),_0x77fb54);if(_0x1c5106){_0x356f1d=XMLParser[_0x440986(0x253)](_0x1c5106,_0x440986(0x2ca),_0x77fb54);if(!_0x356f1d)throw new Geoworld[(_0x440986(0x2a2))]('get\x20s3m\x20layer\x20config\x20failed,extendxml.xml\x20foamat\x20error,layer\x20name\x20is\x20'+_0x1c9f94);}}let _0x29778f=XMLParser[_0x440986(0x1c1)](_0x356f1d,'LineWidth',_0x77fb54),_0x29ea27=XMLParser['queryStringValue'](_0x356f1d,_0x440986(0x1de),_0x77fb54),_0x4c1b8b=rgbMatcher[_0x440986(0x2aa)](_0x29ea27),_0xf779df=new Geoworld['Color']();if(_0x4c1b8b!==null){let _0x2f2afa=parseFloat(_0x4c1b8b[0x1]);_0x2f2afa=_0x2f2afa===0xbd?0xff:_0x2f2afa;let _0x49533e=parseFloat(_0x4c1b8b[0x2]);_0x49533e=_0x49533e===0xeb?0xff:_0x49533e,_0xf779df[_0x440986(0x1d1)]=Geoworld['Math']['clamp'](_0x2f2afa/0xff,0x0,0x1),_0xf779df[_0x440986(0x2c0)]=Geoworld['Math'][_0x440986(0x2b1)](_0x49533e/0xff,0x0,0x1),_0xf779df[_0x440986(0x1eb)]=Geoworld[_0x440986(0x1d5)][_0x440986(0x2b1)](parseFloat(_0x4c1b8b[0x3])%0x100/0xff,0x0,0x1),_0xf779df['alpha']=Geoworld[_0x440986(0x1d5)][_0x440986(0x2b1)](parseFloat(_0x4c1b8b[0x3])%0x10000/0x100/0xff,0x0,0x1);}let _0x4e7464=XMLParser['queryFirstNode'](_0x356f1d,_0x440986(0x2c9),_0x77fb54),_0x3f08c8=new Style3D();if(_0x4e7464){let _0x40ea59=XMLParser['queryStringValue'](_0x4e7464,'Fill3DMode',_0x77fb54),_0x139899=_0x58394d[_0x440986(0x2bf)];if(_0x40ea59===_0x440986(0x2cb))_0x139899=_0x58394d[_0x440986(0x1f1)];else _0x40ea59===_0x440986(0x226)&&(_0x139899=_0x58394d[_0x440986(0x27d)]);let _0x3c21bd=XMLParser['queryNumericValue'](_0x4e7464,_0x440986(0x22e),_0x77fb54),_0x239a80=XMLParser[_0x440986(0x29c)](_0x4e7464,'LineColor',_0x77fb54),_0x4f24ef=rgbaMatcher2['exec'](_0x239a80),_0x2ea38e=new Geoworld['Color']();_0x4f24ef!==null&&(_0x2ea38e['red']=Geoworld[_0x440986(0x1d5)][_0x440986(0x2b1)](parseFloat(_0x4f24ef[0x1]),0x0,0x1),_0x2ea38e[_0x440986(0x2c0)]=Geoworld[_0x440986(0x1d5)][_0x440986(0x2b1)](parseFloat(_0x4f24ef[0x2]),0x0,0x1),_0x2ea38e['blue']=Geoworld[_0x440986(0x1d5)][_0x440986(0x2b1)](parseFloat(_0x4f24ef[0x3]),0x0,0x1),_0x2ea38e[_0x440986(0x22b)]=Geoworld[_0x440986(0x1d5)][_0x440986(0x2b1)](parseFloat(_0x4f24ef[0x4]),0x0,0x1));let _0xc430a1=XMLParser['queryNumericValue'](_0x356f1d,'MarkerSize',_0x77fb54)||0x0;_0x3c21bd=Math[_0x440986(0x1c9)](_0x3c21bd,_0xc430a1);let _0x4556ea=XMLParser[_0x440986(0x29c)](_0x4e7464,_0x440986(0x1ca),_0x77fb54);_0x4f24ef=rgbaMatcher2[_0x440986(0x2aa)](_0x4556ea);let _0xb790b5=new Geoworld[(_0x440986(0x296))]();_0x4f24ef!==null&&(_0xb790b5[_0x440986(0x1d1)]=Geoworld['Math'][_0x440986(0x2b1)](parseFloat(_0x4f24ef[0x1]),0x0,0x1),_0xb790b5['green']=Geoworld[_0x440986(0x1d5)]['clamp'](parseFloat(_0x4f24ef[0x2]),0x0,0x1),_0xb790b5[_0x440986(0x1eb)]=Geoworld[_0x440986(0x1d5)]['clamp'](parseFloat(_0x4f24ef[0x3]),0x0,0x1),_0xb790b5[_0x440986(0x22b)]=Geoworld[_0x440986(0x1d5)][_0x440986(0x2b1)](parseFloat(_0x4f24ef[0x4]),0x0,0x1));let _0x5314eb=XMLParser['queryNumericValue'](_0x4e7464,_0x440986(0x275),_0x77fb54),_0x6e1511=XMLParser['queryStringValue'](_0x4e7464,_0x440986(0x2af),_0x77fb54),_0x287f1a=XMLParser['queryStringValue'](_0x4e7464,_0x440986(0x2a3),_0x77fb54);if(_0x287f1a===_0x440986(0x238))_0x287f1a=_0x44d1c2[_0x440986(0x248)];else _0x287f1a===_0x440986(0x211)?_0x287f1a=_0x44d1c2[_0x440986(0x1c4)]:_0x287f1a=_0x44d1c2[_0x440986(0x255)];let _0x2ef479=Geoworld[_0x440986(0x1d5)][_0x440986(0x21c)](XMLParser[_0x440986(0x1c1)](_0x4e7464,'RotateX',_0x77fb54)),_0x5b49e7=Geoworld[_0x440986(0x1d5)]['toRadians'](XMLParser[_0x440986(0x1c1)](_0x4e7464,_0x440986(0x284),_0x77fb54)),_0x1e2328=Geoworld[_0x440986(0x1d5)][_0x440986(0x21c)](XMLParser['queryNumericValue'](_0x4e7464,_0x440986(0x28e),_0x77fb54)),_0x29e6ea=new Geoworld['HeadingPitchRoll'](_0x2ef479,_0x5b49e7,_0x1e2328);_0x3f08c8[_0x440986(0x217)]=_0xf779df,_0x3f08c8[_0x440986(0x2a8)]=_0x5314eb,_0x3f08c8[_0x440986(0x25a)]=_0x29778f,_0x3f08c8[_0x440986(0x2a9)]=_0x2ea38e,_0x3f08c8[_0x440986(0x29f)]=_0x3c21bd,_0x3f08c8[_0x440986(0x1e3)]=_0xb790b5,_0x3f08c8[_0x440986(0x212)]=_0x139899,_0x3f08c8[_0x440986(0x27b)]=_0x287f1a;}let _0x4ac4de=XMLParser['queryNumericValue'](_0x1f8297,_0x440986(0x21a),_0x77fb54),_0x10b875=XMLParser[_0x440986(0x253)](_0x1f8297,_0x440986(0x1da),_0x77fb54),_0x3000b7=XMLParser['queryNumericValue'](_0x10b875,_0x440986(0x216),_0x77fb54),_0x3d5668=XMLParser[_0x440986(0x1c1)](_0x10b875,'SlopeScale',_0x77fb54),_0x39780d=_0x3000b7!==0x0&&_0x3d5668!==0x0,_0x3f644c=XMLParser[_0x440986(0x253)](_0x1f8297,_0x440986(0x239),_0x77fb54),_0x3b193d=XMLParser['queryNumericValue'](_0x3f644c,'Brightness',_0x77fb54),_0x803705=XMLParser[_0x440986(0x1c1)](_0x3f644c,'Constrast',_0x77fb54),_0x5d327a=XMLParser[_0x440986(0x1c1)](_0x3f644c,_0x440986(0x2c7),_0x77fb54),_0x42c4ff=XMLParser[_0x440986(0x1c1)](_0x3f644c,_0x440986(0x2d3),_0x77fb54),_0x4e0c74=XMLParser[_0x440986(0x1c1)](_0x3f644c,_0x440986(0x1d4),_0x77fb54);return {'name':_0x1c9f94,'groupName':_0xa73582,'isS3MB':_0x4f7e36,'isS3MBlock':_0x20779e,'isS3M':_0x515b9e,'style3D':_0x3f08c8,'selectEnable':_0x595713,'isVisible':_0x2461c9,'minVisibleAltitude':_0x17069d,'maxVisibleAltitude':_0x4396ba,'minVisibleDistance':_0x3f6b69,'maxVisibleDistance':_0x52ef7b,'shadowType':_0x45610c,'lodRangeScale':_0x4ac4de,'polygonOffset':{'enabled':_0x39780d,'units':_0x3000b7,'factor':_0x3d5668},'brightness':_0x3b193d,'constrast':_0x803705,'hue':_0x5d327a,'saturation':_0x42c4ff,'gamma':_0x4e0c74};}function getS3MLayerConfig(_0x213252){const _0x3cd0a8=_0x464cd4;let _0x5cbc4b=Geoworld[_0x3cd0a8(0x22c)][_0x3cd0a8(0x1f8)](_0x213252),_0x39128e=Geoworld[_0x3cd0a8(0x28f)][_0x3cd0a8(0x256)]();return _0x5cbc4b[_0x3cd0a8(0x207)]()[_0x3cd0a8(0x271)](function(_0x517d1f){const _0x32b4ba=_0x3cd0a8;try{let _0x58bd93=resolveLayerExtendXML(_0x517d1f);_0x39128e[_0x32b4ba(0x26e)](_0x58bd93);}catch(_0x3226c8){_0x39128e['reject'](_0x32b4ba(0x1f6));}})['otherwise'](function(){const _0x3062ef=_0x3cd0a8;_0x39128e[_0x3062ef(0x25b)](_0x3062ef(0x279));}),_0x39128e[_0x3cd0a8(0x2d0)];}Geoworld[_0x464cd4(0x233)]['prototype']['open']=function(_0x52bc50){const _0x5e47c6=_0x464cd4;if(_0x52bc50[_0x5e47c6(0x294)](-0x9)!==_0x5e47c6(0x24e))throw new Geoworld[(_0x5e47c6(0x2a2))](_0x5e47c6(0x1e6));let _0x9aeaee=_0x52bc50+'/scenes.json',_0x7f489d=this,_0x53a561=this['camera'],_0x3667f5=Geoworld[_0x5e47c6(0x28f)]['defer']();return getSceneList(_0x9aeaee)[_0x5e47c6(0x271)](function(_0x5bb3a){const _0x9dfd97=_0x5e47c6;if(!_0x5bb3a){_0x3667f5[_0x9dfd97(0x25b)](_0x9dfd97(0x2c5));return;}let _0xbc18b9=_0x5bb3a[_0x9dfd97(0x1dc)]+_0x9dfd97(0x2cf);getSceneConfig(_0xbc18b9)[_0x9dfd97(0x271)](function(_0x45cf49){const _0x39b83c=_0x9dfd97;let _0xb85996;_0x45cf49['sceneType']==='NONEARTHFLAT'?(_0x7f489d[_0x39b83c(0x1e4)]=Geoworld['SceneMode'][_0x39b83c(0x1c0)],_0x45cf49[_0x39b83c(0x1ec)][_0x39b83c(0x20b)]-=Math['PI'],_0xb85996=new Geoworld[(_0x39b83c(0x1e1))](_0x45cf49[_0x39b83c(0x1ec)][_0x39b83c(0x22d)],_0x45cf49['camera'][_0x39b83c(0x24c)],_0x45cf49[_0x39b83c(0x1ec)][_0x39b83c(0x2ae)]),_0x53a561['setView']({'destination':_0xb85996,'orientation':{'heading':_0x45cf49[_0x39b83c(0x1ec)][_0x39b83c(0x287)],'pitch':_0x45cf49[_0x39b83c(0x1ec)][_0x39b83c(0x20b)],'roll':0x0},'convert':![]})):(_0x45cf49[_0x39b83c(0x1ec)]['tilt']-=0x5a,_0xb85996=Geoworld['Cartesian3']['fromDegrees'](_0x45cf49[_0x39b83c(0x1ec)]['longitude'],_0x45cf49[_0x39b83c(0x1ec)][_0x39b83c(0x24c)],_0x45cf49[_0x39b83c(0x1ec)][_0x39b83c(0x2ae)]),_0x53a561[_0x39b83c(0x290)]({'destination':_0xb85996,'orientation':{'heading':Geoworld[_0x39b83c(0x1d5)][_0x39b83c(0x21c)](_0x45cf49[_0x39b83c(0x1ec)]['heading']),'pitch':Geoworld['Math']['toRadians'](_0x45cf49[_0x39b83c(0x1ec)][_0x39b83c(0x20b)]),'roll':0x0},'convert':![]}));})[_0x9dfd97(0x299)](function(_0x5b3c73){const _0x96933e=_0x9dfd97;_0x3667f5['reject'](_0x96933e(0x293)+_0x5b3c73);});let _0xce80a5=_0x5bb3a['path'];getLayerList(_0xce80a5)[_0x9dfd97(0x271)](function(_0x1ee11b){const _0x8e1cea=_0x9dfd97;let _0x2be1ed=_0x1ee11b[_0x8e1cea(0x276)],_0x12f9ce=_0x1ee11b['imagery'],_0x12795e=_0x1ee11b['terrain'],_0x7ab798=_0x1ee11b[_0x8e1cea(0x249)],_0x185f64=_0x5bb3a[_0x8e1cea(0x1dc)]+'/layers/',_0x1076f9=[],_0x4218dc=_0x2be1ed[_0x8e1cea(0x263)]-0x1;for(let _0x21c2ab=_0x4218dc;_0x21c2ab>=0x0;_0x21c2ab--){let _0x47967a=_0x2be1ed[_0x21c2ab],_0x18b395=_0x185f64+encodeURIComponent(_0x47967a[_0x8e1cea(0x245)])+'/extendxml.xml';(function(_0x5625c6){const _0x5096dd=_0x8e1cea;let _0x23588a=getS3MLayerConfig(_0x18b395)['then'](function(_0x3e6608){const _0x4e7423=_0x2b3e;try{let _0x1a5230=_0x52bc50+_0x4e7423(0x2b5)+encodeURIComponent(_0x3e6608[_0x4e7423(0x245)])+_0x4e7423(0x241);return _0x7f489d[_0x4e7423(0x24f)](_0x1a5230,_0x3e6608);}catch(_0x2c88cf){_0x3667f5[_0x4e7423(0x25b)](_0x4e7423(0x231)+_0x3e6608[_0x4e7423(0x245)]+_0x4e7423(0x1d3)+_0x2c88cf);}})[_0x5096dd(0x299)](function(_0x1a4817){const _0x53fcd8=_0x5096dd;_0x3667f5[_0x53fcd8(0x25b)](_0x53fcd8(0x206)+_0x1a4817+_0x53fcd8(0x273)+_0x47967a[_0x53fcd8(0x245)]);});_0x1076f9[_0x5096dd(0x283)](_0x23588a);}());}Geoworld[_0x8e1cea(0x28f)][_0x8e1cea(0x20c)](_0x1076f9,function(_0xa65aa6){const _0x1f9200=_0x8e1cea;_0x3667f5[_0x1f9200(0x26e)](_0xa65aa6);},function(_0x33a986){const _0x256d25=_0x8e1cea;_0x3667f5['reject'](_0x256d25(0x23f)+_0x33a986);});})[_0x9dfd97(0x299)](function(_0x465b6e){const _0x11fbd0=_0x9dfd97;_0x3667f5[_0x11fbd0(0x25b)](_0x11fbd0(0x2ce)+_0x465b6e);});})[_0x5e47c6(0x299)](function(_0x28d794){const _0x61102c=_0x5e47c6;_0x3667f5['reject'](_0x61102c(0x25f)+_0x28d794);}),_0x3667f5['promise'];};function ModExp(_0x316316,_0x317ce1,_0x4aad68){const _0x5db3cf=_0x464cd4;let _0x3c6eef=new _0x2a3156(_0x316316),_0xc41344=new _0x2a3156(_0x317ce1),_0x567417=new _0x2a3156(0x1),_0x895cd0=new _0x2a3156(0x2),_0x4a91ef=new _0x2a3156(0x1);while(_0xc41344['toNumber']()>0x0){_0xc41344[_0x5db3cf(0x27e)](_0x895cd0)[_0x5db3cf(0x1ff)]()===0x0?(_0xc41344=_0xc41344['dividedBy'](_0x895cd0),_0x3c6eef=_0x3c6eef[_0x5db3cf(0x2b9)](_0x3c6eef)['mod'](_0x4aad68)):(_0xc41344=_0xc41344[_0x5db3cf(0x229)](_0x4a91ef),_0x567417=_0x567417[_0x5db3cf(0x2b9)](_0x3c6eef)[_0x5db3cf(0x27e)](_0x4aad68));}return _0x567417[_0x5db3cf(0x1ff)]();}let _rssCache={};function RSAAuthentication(_0x55d2c0){const _0x5987f4=_0x464cd4;let _0x7f5a08=Geoworld[_0x5987f4(0x28f)][_0x5987f4(0x256)]();if(_rssCache[_0x55d2c0])return _rssCache[_0x55d2c0];let _0x48915b=Geoworld[_0x5987f4(0x22c)][_0x5987f4(0x1f8)](_0x55d2c0+_0x5987f4(0x2c6));return _rssCache[_0x55d2c0]=_0x7f5a08[_0x5987f4(0x2d0)],_0x48915b[_0x5987f4(0x286)]()[_0x5987f4(0x271)](_0xfe3327=>{const _0x171fbc=_0x5987f4;let _0x13ed86=Number(_0xfe3327[_0x171fbc(0x26c)]),_0x4b21c4=Number(_0xfe3327[_0x171fbc(0x261)]),_0xe92f36=0x8f461e7bf61d5,_0x2358f1=0x1694ad7fce84d,_0x3b7765=ModExp(_0x4b21c4,_0x2358f1,_0xe92f36),_0x1a1480=JSON[_0x171fbc(0x210)]({'jsessionID':_0x13ed86[_0x171fbc(0x282)](),'random':_0x3b7765['toString']()});Geoworld[_0x171fbc(0x22c)][_0x171fbc(0x292)]({'url':_0x55d2c0+_0x171fbc(0x2c6),'data':_0x1a1480,'responseType':_0x171fbc(0x2b7)})[_0x171fbc(0x271)](_0x2f87a9=>{const _0x59ad95=_0x171fbc;_0x2f87a9[_0x59ad95(0x1d0)]===!![]?(_0x7f5a08[_0x59ad95(0x26e)](_0x3b7765),_rssCache[_0x55d2c0]=_0x3b7765):_0x7f5a08[_0x59ad95(0x25b)](![]);})['otherwise'](_0x984ce2=>{_0x7f5a08['reject'](_0x984ce2);});})[_0x5987f4(0x299)](_0x224c07=>{const _0x416674=_0x5987f4;_0x7f5a08[_0x416674(0x25b)](_0x224c07);}),_0x7f5a08[_0x5987f4(0x2d0)];}Geoworld[_0x464cd4(0x233)][_0x464cd4(0x1f2)]['addS3MTilesLayerByScp']=function(_0x153a50,_0x12842a,_0x18f703){const _0x412ab8=_0x464cd4;_0x12842a=_0x12842a||{};let _0x400799=Geoworld[_0x412ab8(0x28f)][_0x412ab8(0x256)](),_0x359b85=_0x153a50[_0x412ab8(0x2a6)](_0x412ab8(0x258));if(_0x359b85===-0x1)return _0x400799['reject'](![]);let _0x4091ae=_0x153a50[_0x412ab8(0x1fb)](0x0,_0x359b85+0xe),_0x96697=this;return Geoworld[_0x412ab8(0x28f)](RSAAuthentication(_0x4091ae),function(_0x16620b){const _0xa9ded9=_0x412ab8;_0x12842a[_0xa9ded9(0x205)]=_0x153a50,_0x12842a['context']=_0x96697[_0xa9ded9(0x252)],_0x12842a[_0xa9ded9(0x1ed)]=_0x16620b;let _0x3148ff=new S3MTilesLayer(_0x12842a);_0x96697[_0xa9ded9(0x2b0)]['add'](_0x3148ff,_0x18f703),!_0x96697[_0xa9ded9(0x252)][_0xa9ded9(0x26a)]&&(_0x96697[_0xa9ded9(0x252)][_0xa9ded9(0x26a)]=new ReflectFramebuffer(_0x96697[_0xa9ded9(0x252)]),_0x96697[_0xa9ded9(0x2c3)][_0xa9ded9(0x2ab)](_0xa9ded9(0x2be),_0x96697[_0xa9ded9(0x252)][_0xa9ded9(0x26a)])),_0x400799['resolve'](_0x3148ff);},function(_0x58812d){_0x400799['reject'](_0x58812d);}),_0x400799['promise'];},Geoworld[_0x464cd4(0x233)][_0x464cd4(0x1f2)][_0x464cd4(0x268)]=Geoworld['Scene'][_0x464cd4(0x1f2)][_0x464cd4(0x1c8)],Geoworld[_0x464cd4(0x233)]['prototype'][_0x464cd4(0x1c8)]=function(_0x65f5b0,_0x10558c,_0x2694b3){const _0x1cc9a0=_0x464cd4;let _0x4baa22=this[_0x1cc9a0(0x268)](_0x65f5b0,_0x10558c,_0x2694b3);if(_0x4baa22){let _0x1f9a18=_0x4baa22[_0x1cc9a0(0x1d6)]&&_0x4baa22[_0x1cc9a0(0x1d6)]instanceof S3MTilesLayer;_0x1f9a18&&_0x4baa22[_0x1cc9a0(0x1d6)][_0x1cc9a0(0x235)](_0x4baa22['id']);}else for(let _0x1895e2=0x0,_0x45b31f=this[_0x1cc9a0(0x2b0)]['length'];_0x1895e2<_0x45b31f;_0x1895e2++){let _0x4e04fb=this[_0x1cc9a0(0x2b0)][_0x1cc9a0(0x274)](_0x1895e2);_0x4e04fb instanceof S3MTilesLayer&&_0x4e04fb['releaseSelection']();}return _0x4baa22;},Geoworld[_0x464cd4(0x233)]['prototype'][_0x464cd4(0x2c3)]=new Geoworld[(_0x464cd4(0x1df))](),Geoworld[_0x464cd4(0x233)][_0x464cd4(0x1f2)]['_setRenderTarget']=function(_0x37ca65,_0x15a469){const _0x3f54d1=_0x464cd4;this[_0x3f54d1(0x2c3)][_0x3f54d1(0x2ab)](_0x37ca65,_0x15a469);},Geoworld[_0x464cd4(0x233)][_0x464cd4(0x1f2)][_0x464cd4(0x21e)]=function(_0x4fa4c9){const _0x47d14d=_0x464cd4;this[_0x47d14d(0x2c3)][_0x47d14d(0x221)](_0x4fa4c9);},Geoworld['Scene']['prototype'][_0x464cd4(0x1f9)]=Geoworld[_0x464cd4(0x233)][_0x464cd4(0x1f2)][_0x464cd4(0x257)],Geoworld[_0x464cd4(0x233)][_0x464cd4(0x1f2)]['render']=function(_0x1dd2e9){const _0x2a1df8=_0x464cd4;this[_0x2a1df8(0x1f9)](_0x1dd2e9),this[_0x2a1df8(0x2c4)][_0x2a1df8(0x23b)][_0x2a1df8(0x263)]=0x0;if(this[_0x2a1df8(0x2c3)]['length'])for(let _0x5b9471=0x0,_0x530209=this['_renderTargets'][_0x2a1df8(0x263)];_0x5b9471<_0x530209;_0x5b9471++){let _0x106ea2=this[_0x2a1df8(0x2c3)][_0x2a1df8(0x2bb)][_0x5b9471];if(!_0x106ea2[_0x2a1df8(0x20e)])continue;this[_0x2a1df8(0x2c4)][_0x2a1df8(0x29b)]=!![],this['useDepthPicking']=![];let _0x117746=_0x106ea2[_0x2a1df8(0x222)](this);this[_0x2a1df8(0x1e5)](),this['updateAndExecuteCommands'](_0x117746,Geoworld[_0x2a1df8(0x296)][_0x2a1df8(0x23d)]),this[_0x2a1df8(0x20d)](_0x117746),_0x106ea2[_0x2a1df8(0x262)](this[_0x2a1df8(0x2c4)],_0x117746),this[_0x2a1df8(0x2c4)][_0x2a1df8(0x29b)]=![],this[_0x2a1df8(0x26d)]=!![];}if(this[_0x2a1df8(0x252)]['reflectFramebuffer']&&this[_0x2a1df8(0x2c4)][_0x2a1df8(0x220)]!==undefined){if(this[_0x2a1df8(0x2c4)][_0x2a1df8(0x220)]>0xc350)this['context']['reflectFramebuffer'][_0x2a1df8(0x20e)]=![];else {let _0x3ee274=this[_0x2a1df8(0x2c4)][_0x2a1df8(0x1e7)],_0x391fde=this[_0x2a1df8(0x1ec)][_0x2a1df8(0x289)],_0x3b5c9f=this[_0x2a1df8(0x252)][_0x2a1df8(0x26a)][_0x2a1df8(0x1f3)],_0x77839e=Geoworld[_0x2a1df8(0x1e1)]['magnitude'](_0x391fde)-this['camera']['positionCartographic'][_0x2a1df8(0x1c3)];_0x3ee274+=_0x77839e,Geoworld['Cartesian3']['normalize'](_0x391fde,_0x3b5c9f[_0x2a1df8(0x26f)]),_0x3b5c9f[_0x2a1df8(0x26f)][_0x2a1df8(0x203)](scratchCartesian3),Geoworld[_0x2a1df8(0x1e1)][_0x2a1df8(0x23c)](scratchCartesian3,_0x3ee274,scratchCartesian3),_0x3b5c9f['distance']=-Geoworld[_0x2a1df8(0x1e1)][_0x2a1df8(0x269)](scratchCartesian3,_0x3b5c9f['normal']),this['context'][_0x2a1df8(0x26a)][_0x2a1df8(0x20e)]=!![];}this[_0x2a1df8(0x2c4)][_0x2a1df8(0x1e7)]=0x0;}},Geoworld[_0x464cd4(0x27f)]['prototype'][_0x464cd4(0x22a)]=Geoworld['SkyAtmosphere'][_0x464cd4(0x1f2)][_0x464cd4(0x259)],Geoworld[_0x464cd4(0x27f)][_0x464cd4(0x1f2)]['update']=function(_0x5a5994,_0x526463){const _0x40fd92=_0x464cd4;let _0x3035aa=this[_0x40fd92(0x22a)](_0x5a5994,_0x526463);return _0x3035aa&&_0x5a5994[_0x40fd92(0x1ec)][_0x40fd92(0x1cf)]&&(!this[_0x40fd92(0x2c2)]&&(this[_0x40fd92(0x2c2)]=Geoworld[_0x40fd92(0x1dd)][_0x40fd92(0x25d)]({'cull':{'enabled':!![],'face':Geoworld[_0x40fd92(0x240)][_0x40fd92(0x246)]},'blending':Geoworld[_0x40fd92(0x1c6)][_0x40fd92(0x1c7)],'depthMask':![]})),_0x3035aa[_0x40fd92(0x1e8)]=this['reflectRs']),_0x3035aa;};function setView(_0x31b739,_0xda37a4){const _0x5cf81c=_0x464cd4;Geoworld[_0x5cf81c(0x27c)][_0x5cf81c(0x203)](_0xda37a4,_0x31b739[_0x5cf81c(0x1cb)]),Geoworld[_0x5cf81c(0x27c)][_0x5cf81c(0x237)](_0xda37a4,_0x31b739[_0x5cf81c(0x242)]),_0x31b739[_0x5cf81c(0x250)]=!![],_0x31b739[_0x5cf81c(0x2c1)]=!![],_0x31b739['_modelViewDirty']=!![],_0x31b739[_0x5cf81c(0x27a)]=!![],_0x31b739[_0x5cf81c(0x21f)]=!![],_0x31b739[_0x5cf81c(0x1bf)]=!![],_0x31b739['_inverseModelView3DDirty']=!![],_0x31b739[_0x5cf81c(0x28d)]=!![],_0x31b739[_0x5cf81c(0x251)]=!![],_0x31b739[_0x5cf81c(0x1fa)]=!![],_0x31b739['_modelViewProjectionRelativeToEyeDirty']=!![],_0x31b739['_modelViewInfiniteProjectionDirty']=!![],_0x31b739[_0x5cf81c(0x1fe)]=!![],_0x31b739['_inverseNormalDirty']=!![],_0x31b739[_0x5cf81c(0x2a0)]=!![],_0x31b739[_0x5cf81c(0x29e)]=!![];}function setInverseView(_0x3b69ac,_0x24ea9c){const _0x2b5dc9=_0x464cd4;Geoworld[_0x2b5dc9(0x27c)]['clone'](_0x24ea9c,_0x3b69ac['_inverseView']),Geoworld[_0x2b5dc9(0x27c)]['getMatrix3'](_0x24ea9c,_0x3b69ac['_inverseViewRotation']);}function setCamera(_0x5a1bc0,_0x4313f0){const _0xbc1f7d=_0x464cd4;Geoworld[_0xbc1f7d(0x1e1)][_0xbc1f7d(0x203)](_0x4313f0[_0xbc1f7d(0x289)],_0x5a1bc0[_0xbc1f7d(0x244)]),Geoworld[_0xbc1f7d(0x1e1)][_0xbc1f7d(0x203)](_0x4313f0[_0xbc1f7d(0x200)],_0x5a1bc0[_0xbc1f7d(0x254)]),Geoworld[_0xbc1f7d(0x1e1)][_0xbc1f7d(0x203)](_0x4313f0['rightWC'],_0x5a1bc0[_0xbc1f7d(0x1be)]),Geoworld['Cartesian3'][_0xbc1f7d(0x203)](_0x4313f0[_0xbc1f7d(0x2a1)],_0x5a1bc0[_0xbc1f7d(0x270)]);let _0x909384=_0x4313f0[_0xbc1f7d(0x247)];!Geoworld['defined'](_0x909384)?_0x5a1bc0[_0xbc1f7d(0x281)]=-_0x5a1bc0[_0xbc1f7d(0x285)]['maximumRadius']:_0x5a1bc0['_eyeHeight']=_0x909384[_0xbc1f7d(0x1c3)],_0x5a1bc0['_encodedCameraPositionMCDirty']=!![];}Geoworld[_0x464cd4(0x215)]['prototype']['updateCamera']=function(_0x801b5){const _0x39cee9=_0x464cd4;let _0x14b907=_0x801b5[_0x39cee9(0x291)],_0x161e4e=_0x801b5['inverseViewMatrix'];_0x801b5['bReflect']?(Geoworld[_0x39cee9(0x27c)][_0x39cee9(0x2a7)](_0x14b907,_0x801b5[_0x39cee9(0x1e9)],scratchMatrix4),Geoworld['Matrix4'][_0x39cee9(0x2ba)](scratchMatrix4,scratchInvMatrix4),setView(this,scratchMatrix4),setInverseView(this,scratchInvMatrix4)):(setView(this,_0x14b907),setInverseView(this,_0x161e4e)),setCamera(this,_0x801b5),this[_0x39cee9(0x223)]['x']=_0x801b5[_0x39cee9(0x1d9)][_0x39cee9(0x295)],this[_0x39cee9(0x223)]['y']=_0x801b5['frustum'][_0x39cee9(0x298)],this[_0x39cee9(0x228)](_0x801b5['frustum']),this[_0x39cee9(0x2a4)]=this[_0x39cee9(0x24b)]!==Geoworld['SceneMode'][_0x39cee9(0x2d4)]&&_0x801b5['frustum']instanceof Geoworld[_0x39cee9(0x1ef)];};function modifyProjectionMatrix(_0x4b419d,_0x3a81a0){const _0x6dadd9=_0x464cd4;if(!_0x4b419d[_0x6dadd9(0x2a5)]||!_0x4b419d[_0x6dadd9(0x2b6)]||!_0x4b419d[_0x6dadd9(0x2be)])return;let _0x56a781=_0x4b419d[_0x6dadd9(0x2b6)];Geoworld[_0x6dadd9(0x27c)][_0x6dadd9(0x22f)](_0x56a781,_0x4b419d[_0x6dadd9(0x2a5)],scratchPlane),scratchCartesian4['x']=(Geoworld[_0x6dadd9(0x1d5)][_0x6dadd9(0x227)](scratchPlane[_0x6dadd9(0x26f)]['x'])+_0x3a81a0[0x8])/_0x3a81a0[0x0],scratchCartesian4['y']=(Geoworld[_0x6dadd9(0x1d5)][_0x6dadd9(0x227)](scratchPlane[_0x6dadd9(0x26f)]['y'])+_0x3a81a0[0x9])/_0x3a81a0[0x5],scratchCartesian4['z']=-0x1,scratchCartesian4['w']=(0x1+_0x3a81a0[0xa])/_0x3a81a0[0xe],scratchClipPlane4d['x']=scratchPlane[_0x6dadd9(0x26f)]['x'],scratchClipPlane4d['y']=scratchPlane[_0x6dadd9(0x26f)]['y'],scratchClipPlane4d['z']=scratchPlane[_0x6dadd9(0x26f)]['z'],scratchClipPlane4d['w']=scratchPlane['distance'],Geoworld[_0x6dadd9(0x1d8)][_0x6dadd9(0x23c)](scratchClipPlane4d,0x2/Geoworld['Cartesian4']['dot'](scratchClipPlane4d,scratchCartesian4),scratchCartesian4),_0x3a81a0[0x2]=scratchCartesian4['x'],_0x3a81a0[0x6]=scratchCartesian4['y'],_0x3a81a0[0xa]=scratchCartesian4['z']+0x1,_0x3a81a0[0xe]=scratchCartesian4['w'];}function setProjection(_0xe7235e,_0x58639a){const _0x40700b=_0x464cd4;Geoworld[_0x40700b(0x27c)][_0x40700b(0x203)](_0x58639a,_0xe7235e[_0x40700b(0x232)]),_0xe7235e[_0x40700b(0x1ee)]=!![],_0xe7235e[_0x40700b(0x28d)]=!![],_0xe7235e[_0x40700b(0x251)]=!![],_0xe7235e['_modelViewProjectionDirty']=!![],_0xe7235e[_0x40700b(0x1fd)]=!![];}function _0x2b3e(_0x40b6d6,_0x18bf67){_0x40b6d6=_0x40b6d6-0x1be;let _0x105f1d=_0x105f[_0x40b6d6];return _0x105f1d;}function setInfiniteProjection(_0x1cc3c7,_0x3cc177){const _0x5bcf23=_0x464cd4;Geoworld[_0x5bcf23(0x27c)][_0x5bcf23(0x203)](_0x3cc177,_0x1cc3c7[_0x5bcf23(0x225)]),_0x1cc3c7['_modelViewInfiniteProjectionDirty']=!![];}Geoworld['UniformState'][_0x464cd4(0x1f2)][_0x464cd4(0x228)]=function(_0x3b9394){const _0x2d19be=_0x464cd4;let _0xf80b93=_0x3b9394[_0x2d19be(0x209)];Geoworld[_0x2d19be(0x27c)][_0x2d19be(0x203)](_0xf80b93,scratchMatrix4),modifyProjectionMatrix(_0x3b9394,scratchMatrix4),setProjection(this,scratchMatrix4),Geoworld[_0x2d19be(0x278)](_0x3b9394['infiniteProjectionMatrix'])&&setInfiniteProjection(this,_0x3b9394[_0x2d19be(0x280)]),this[_0x2d19be(0x265)]['x']=_0x3b9394[_0x2d19be(0x295)],this[_0x2d19be(0x265)]['y']=_0x3b9394['far'],this['_farDepthFromNearPlusOne']=_0x3b9394[_0x2d19be(0x298)]-_0x3b9394[_0x2d19be(0x295)]+0x1,this[_0x2d19be(0x2cc)]=Geoworld[_0x2d19be(0x1d5)][_0x2d19be(0x2b2)](this[_0x2d19be(0x2ac)]),this['_oneOverLog2FarDepthFromNearPlusOne']=0x1/this[_0x2d19be(0x2cc)],Geoworld[_0x2d19be(0x278)](_0x3b9394[_0x2d19be(0x243)])&&(_0x3b9394=_0x3b9394['_offCenterFrustum']),this[_0x2d19be(0x2d1)]['x']=_0x3b9394[_0x2d19be(0x2bd)],this[_0x2d19be(0x2d1)]['y']=_0x3b9394[_0x2d19be(0x29a)],this[_0x2d19be(0x2d1)]['z']=_0x3b9394[_0x2d19be(0x1ce)],this[_0x2d19be(0x2d1)]['w']=_0x3b9394[_0x2d19be(0x236)];};var GeoworldExt = {}; const _0x3bbb=['338632IDmvEP','8RpRNyN','748273oCyIpb','193121bpwgME','freeze','132117WDScDN','1JBKkCk','4eMUeeW','222648UdFYbV','1018274ckQszz','1EQrARK','1rySTBe','566157QPDqrN','13vRGEpu'];const _0x3a6ff3=_0x23c7;function _0x23c7(_0x451a5d,_0x20ec39){_0x451a5d=_0x451a5d-0xe7;let _0x3bbbd3=_0x3bbb[_0x451a5d];return _0x3bbbd3;}(function(_0x6b57f9,_0x57cd65){const _0x5717b5=_0x23c7;while(!![]){try{const _0x312b43=parseInt(_0x5717b5(0xef))*-parseInt(_0x5717b5(0xe8))+-parseInt(_0x5717b5(0xf1))*parseInt(_0x5717b5(0xeb))+parseInt(_0x5717b5(0xe7))*parseInt(_0x5717b5(0xed))+parseInt(_0x5717b5(0xf0))*parseInt(_0x5717b5(0xf2))+-parseInt(_0x5717b5(0xea))+parseInt(_0x5717b5(0xe9))*parseInt(_0x5717b5(0xec))+parseInt(_0x5717b5(0xee))*parseInt(_0x5717b5(0xf4));if(_0x312b43===_0x57cd65)break;else _0x6b57f9['push'](_0x6b57f9['shift']());}catch(_0x50ad5d){_0x6b57f9['push'](_0x6b57f9['shift']());}}}(_0x3bbb,0xe31ab));const ClampMode={'Space':0x0,'Ground':0x1,'S3mModel':0x2,'Raster':0x3};var _0x40dbac = Object[_0x3a6ff3(0xf3)](ClampMode); const _0x162e=['freeze','1267790ubDZkQ','121NtlkPB','2621294OhDJXs','47828KRdags','1392507SBUaGD','2854qrqpcD','710969veLnzR','56VExeiQ','11087kIAGUQ'];const _0x61ea4=_0x27dd;(function(_0x591163,_0x5794c1){const _0x349775=_0x27dd;while(!![]){try{const _0x81a7=-parseInt(_0x349775(0x1cc))+-parseInt(_0x349775(0x1ca))+parseInt(_0x349775(0x1c4))*parseInt(_0x349775(0x1c7))+parseInt(_0x349775(0x1cb))*parseInt(_0x349775(0x1c3))+-parseInt(_0x349775(0x1c6))+parseInt(_0x349775(0x1c9))+parseInt(_0x349775(0x1c8));if(_0x81a7===_0x5794c1)break;else _0x591163['push'](_0x591163['shift']());}catch(_0x4a70c2){_0x591163['push'](_0x591163['shift']());}}}(_0x162e,0xc31e7));function _0x27dd(_0x4924c1,_0x121d13){_0x4924c1=_0x4924c1-0x1c3;let _0x162e92=_0x162e[_0x4924c1];return _0x162e92;}const DrawMode={'Point':0x0,'Line':0x1,'Polygon':0x2};var _0x2fc05e = Object[_0x61ea4(0x1c5)](DrawMode); const _0x4c15=['344637XrciuL','deactivate','clear','Space','3083yHxhDw','pickPositionSupported','canvas','Event','removeInputAction','drawEvt','ScreenSpaceEventHandler','Cartesian3','activate','mode','polyline','455974JGsndc','raiseEvent','ColorType','movingEvt','slice','active','LEFT_CLICK','removeAll','hierarchy','handler','polygon','endPosition','entities','Material','Line','isDrawing','polylines','push','ORANGE','clone','show','1LOkUGc','1XjctVD','PolylineCollection','_activeEvt','Polygon','withAlpha','811081gvxkYz','MOUSE_MOVE','points','_clampMode','remove','setInputAction','411675tOTykm','28775KnBBBU','Point','Color','viewer','WHITE','_drawEvt','viewer\x20and\x20mode\x20is\x20required!','Cartesian2','positions','length','prototype','fromType','168124ynoHkE','#51ff00','pickPosition','fromCssColorString','139KgEgvm','clampToGroundPolylines','random','RIGHT_CLICK','point','S3mModel','primitives','your\x20browser\x20not\x20supported\x20pickPosition!','activeEvt','position','DeveloperError','Ground','PointPrimitiveCollection','add','ScreenSpaceEventType','scene'];const _0x2414e5=_0x531b;(function(_0x28ffce,_0x364673){const _0x26d39c=_0x531b;while(!![]){try{const _0x54d832=-parseInt(_0x26d39c(0x13f))*-parseInt(_0x26d39c(0x12b))+parseInt(_0x26d39c(0x14a))+parseInt(_0x26d39c(0x10f))*parseInt(_0x26d39c(0x11a))+parseInt(_0x26d39c(0x11b))+parseInt(_0x26d39c(0x127))+-parseInt(_0x26d39c(0x13b))+parseInt(_0x26d39c(0x10e))*-parseInt(_0x26d39c(0x114));if(_0x54d832===_0x364673)break;else _0x28ffce['push'](_0x28ffce['shift']());}catch(_0x23d4fa){_0x28ffce['push'](_0x28ffce['shift']());}}}(_0x4c15,0x525d7));let DrawHandler=function(_0x44dd68,_0x44e1d2,_0x1268a4){const _0x4a6487=_0x531b;if(!_0x44dd68||_0x44e1d2===undefined)throw new Geoworld[(_0x4a6487(0x135))](_0x4a6487(0x121));this[_0x4a6487(0x153)]=new Geoworld[(_0x4a6487(0x145))](_0x44dd68[_0x4a6487(0x13a)][_0x4a6487(0x141)]),this['viewer']=_0x44dd68,this['mode']=_0x44e1d2,this[_0x4a6487(0x117)]=Geoworld['defaultValue'](_0x1268a4,_0x40dbac[_0x4a6487(0x13e)]),this[_0x4a6487(0x108)]=![],this['active']=![],this[_0x4a6487(0x120)]=new Geoworld[(_0x4a6487(0x142))](),this[_0x4a6487(0x111)]=new Geoworld[(_0x4a6487(0x142))](),this[_0x4a6487(0x14d)]=new Geoworld[(_0x4a6487(0x142))](),this[_0x4a6487(0x109)]=undefined,this[_0x4a6487(0x149)]=undefined,this[_0x4a6487(0x154)]=undefined,this[_0x4a6487(0x116)]=undefined,this[_0x4a6487(0x12f)]=undefined;};Object['defineProperties'](DrawHandler[_0x2414e5(0x125)],{'drawEvt':{'get':function(){const _0x49a6fe=_0x2414e5;return this[_0x49a6fe(0x120)];}},'activeEvt':{'get':function(){const _0x411b0b=_0x2414e5;return this[_0x411b0b(0x111)];}}}),DrawHandler[_0x2414e5(0x125)][_0x2414e5(0x147)]=function(){const _0x11bb85=_0x2414e5;if(this['active']===!![])return;this[_0x11bb85(0x14f)]=!![];let _0x2de260=this;this['handler'][_0x11bb85(0x119)](function(_0x502d3b){clickHandler(_0x502d3b,_0x2de260);},Geoworld[_0x11bb85(0x139)][_0x11bb85(0x150)]),this[_0x11bb85(0x153)][_0x11bb85(0x119)](function(_0x176d9d){moveHandler(_0x176d9d,_0x2de260);},Geoworld[_0x11bb85(0x139)][_0x11bb85(0x115)]),this['handler'][_0x11bb85(0x119)](function(_0x2e7944){rclkHandler(_0x2e7944,_0x2de260);},Geoworld[_0x11bb85(0x139)][_0x11bb85(0x12e)]),this[_0x11bb85(0x133)]['raiseEvent'](!![]);},DrawHandler[_0x2414e5(0x125)][_0x2414e5(0x13c)]=function(){const _0x185ffa=_0x2414e5;this[_0x185ffa(0x14f)]=![],this[_0x185ffa(0x108)]=![],this[_0x185ffa(0x153)][_0x185ffa(0x143)](Geoworld[_0x185ffa(0x139)]['LEFT_CLICK']),this['handler'][_0x185ffa(0x143)](Geoworld[_0x185ffa(0x139)][_0x185ffa(0x115)]),this['handler'][_0x185ffa(0x143)](Geoworld['ScreenSpaceEventType'][_0x185ffa(0x12e)]),this['activeEvt'][_0x185ffa(0x14b)](![]);},DrawHandler[_0x2414e5(0x125)][_0x2414e5(0x13d)]=function(){const _0x5c558e=_0x2414e5;this[_0x5c558e(0x13c)](),this[_0x5c558e(0x109)]&&(this[_0x5c558e(0x109)][_0x5c558e(0x151)](),this[_0x5c558e(0x11e)][_0x5c558e(0x13a)][_0x5c558e(0x131)][_0x5c558e(0x118)](this[_0x5c558e(0x109)]),this['polylines']=undefined),this['polygon']&&(this[_0x5c558e(0x11e)][_0x5c558e(0x105)]['remove'](this[_0x5c558e(0x154)]),this[_0x5c558e(0x154)]=undefined),this['points']&&(this[_0x5c558e(0x116)][_0x5c558e(0x151)](),this[_0x5c558e(0x11e)][_0x5c558e(0x13a)]['primitives']['remove'](this[_0x5c558e(0x116)]),this[_0x5c558e(0x116)]=undefined);};function clickHandler(_0x4ee072,_0x1e5ff2){const _0x11acf2=_0x2414e5;let _0x5c0b70=_0x1e5ff2;if(_0x5c0b70&&_0x5c0b70[_0x11acf2(0x14f)]){let _0x36e3a1=_0x5c0b70['viewer'][_0x11acf2(0x13a)];if(!_0x36e3a1[_0x11acf2(0x140)]){console['log'](_0x11acf2(0x132));return;}let _0x43cffc=_0x36e3a1[_0x11acf2(0x129)](_0x4ee072[_0x11acf2(0x134)]);if(_0x43cffc){if(!_0x5c0b70['isDrawing']){_0x5c0b70[_0x11acf2(0x108)]=!![];switch(_0x5c0b70['mode']){case _0x2fc05e[_0x11acf2(0x11c)]:startDrawPoint(_0x43cffc,_0x5c0b70);break;case _0x2fc05e[_0x11acf2(0x107)]:startDrawLine(_0x43cffc,_0x5c0b70);break;case _0x2fc05e[_0x11acf2(0x112)]:startDrawPolygon(_0x43cffc,_0x5c0b70);break;}}else {let _0xdc909=new Geoworld[(_0x11acf2(0x122))](_0x4ee072[_0x11acf2(0x134)]['x'],_0x4ee072['position']['y']);switch(_0x5c0b70[_0x11acf2(0x148)]){case _0x2fc05e[_0x11acf2(0x107)]:processLine(_0xdc909,_0x5c0b70,!![]);break;case _0x2fc05e[_0x11acf2(0x112)]:processPolygon(_0xdc909,_0x5c0b70,!![]);break;}}}}}function startDrawPoint(_0x11f104,_0x490578){const _0x10837d=_0x2414e5;let _0x8a2de5=_0x490578;!_0x8a2de5[_0x10837d(0x116)]?(_0x8a2de5[_0x10837d(0x116)]=new Geoworld[(_0x10837d(0x137))](),_0x8a2de5[_0x10837d(0x12f)]=_0x8a2de5[_0x10837d(0x116)][_0x10837d(0x138)]({'position':_0x11f104,'pixelSize':0xa,'color':Geoworld[_0x10837d(0x11d)][_0x10837d(0x11f)]}),_0x8a2de5[_0x10837d(0x11e)][_0x10837d(0x13a)][_0x10837d(0x131)][_0x10837d(0x138)](_0x8a2de5[_0x10837d(0x116)])):_0x8a2de5['point'][_0x10837d(0x134)]=_0x11f104,_0x8a2de5['deactivate'](),_0x8a2de5[_0x10837d(0x144)][_0x10837d(0x14b)]({'object':_0x8a2de5[_0x10837d(0x12f)]});}function _0x531b(_0x418756,_0x537343){_0x418756=_0x418756-0x104;let _0x4c15eb=_0x4c15[_0x418756];return _0x4c15eb;}function startDrawLine(_0xa20e48,_0x326a16){const _0x891473=_0x2414e5;let _0x590d55=_0x326a16;!_0x590d55['polylines']?(_0x590d55[_0x891473(0x109)]=new Geoworld[(_0x891473(0x110))](),_0x590d55[_0x891473(0x149)]=_0x590d55[_0x891473(0x109)]['add']({'width':0x2,'positions':[_0xa20e48,_0xa20e48],'material':Geoworld[_0x891473(0x106)][_0x891473(0x126)](Geoworld[_0x891473(0x106)]['ColorType'],{'color':Geoworld[_0x891473(0x11d)][_0x891473(0x12a)](_0x891473(0x128))})}),_0x590d55['viewer'][_0x891473(0x13a)][_0x891473(0x131)][_0x891473(0x138)](_0x590d55[_0x891473(0x109)])):(_0x590d55[_0x891473(0x149)][_0x891473(0x10d)]=!![],_0x590d55[_0x891473(0x149)][_0x891473(0x123)]=[_0xa20e48,_0xa20e48]);}function startDrawPolygon(_0x4f67e0,_0x4ac5a6){const _0x78f01d=_0x2414e5;let _0x22202d=_0x4ac5a6;!_0x22202d[_0x78f01d(0x109)]?(_0x22202d['polylines']=new Geoworld[(_0x78f01d(0x110))](),_0x22202d[_0x78f01d(0x149)]=_0x22202d[_0x78f01d(0x109)][_0x78f01d(0x138)]({'id':'polyline-'+Math[_0x78f01d(0x12d)](),'width':0x2,'positions':[_0x4f67e0,_0x4f67e0],'material':Geoworld[_0x78f01d(0x106)]['fromType'](Geoworld[_0x78f01d(0x106)][_0x78f01d(0x14c)],{'color':Geoworld['Color']['fromCssColorString']('#51ff00')}),'loop':!![]}),_0x22202d[_0x78f01d(0x11e)]['scene'][_0x78f01d(0x131)][_0x78f01d(0x138)](_0x22202d[_0x78f01d(0x109)])):(_0x22202d[_0x78f01d(0x149)]['show']=!![],_0x22202d['polyline'][_0x78f01d(0x123)]=[_0x4f67e0,_0x4f67e0],_0x22202d[_0x78f01d(0x154)]&&(_0x22202d['polygon']['show']=![]));}function moveHandler(_0x27984e,_0x447635){const _0x50e8c2=_0x2414e5;let _0x378302=_0x447635;if(_0x378302&&_0x378302[_0x50e8c2(0x14f)]&&_0x378302[_0x50e8c2(0x108)]){let _0x18a3c5=new Geoworld['Cartesian2'](_0x27984e[_0x50e8c2(0x104)]['x'],_0x27984e[_0x50e8c2(0x104)]['y']);switch(_0x378302['mode']){case _0x2fc05e[_0x50e8c2(0x107)]:processLine(_0x18a3c5,_0x378302,![]);break;case _0x2fc05e[_0x50e8c2(0x112)]:processPolygon(_0x18a3c5,_0x378302,![]);break;}}_0x378302[_0x50e8c2(0x14d)][_0x50e8c2(0x14b)](new Geoworld['Cartesian2'](_0x27984e[_0x50e8c2(0x104)]['x'],_0x27984e[_0x50e8c2(0x104)]['y']));}function processLine(_0x4245ce,_0x35ccbb,_0x418e10){const _0x2e5942=_0x2414e5;let _0x59e4a5=_0x35ccbb,_0x1648d1=_0x59e4a5[_0x2e5942(0x11e)][_0x2e5942(0x13a)],_0x42fe1a=_0x1648d1[_0x2e5942(0x129)](_0x4245ce);if(!_0x42fe1a)return;let _0xe7ea72=_0x59e4a5['polyline']['positions'],_0x372ee1=_0xe7ea72[_0x2e5942(0x124)];_0x418e10?_0xe7ea72[_0x372ee1]=_0x42fe1a:_0xe7ea72[_0x372ee1-0x1]=_0x42fe1a,_0x59e4a5[_0x2e5942(0x149)][_0x2e5942(0x123)]=_0xe7ea72;}function processPolygon(_0x1e69ea,_0x2ebba8,_0x251b10){const _0x1bc262=_0x2414e5;let _0x3a57f2=_0x2ebba8,_0x5efc9a=_0x3a57f2[_0x1bc262(0x11e)][_0x1bc262(0x13a)],_0x569216=_0x5efc9a[_0x1bc262(0x129)](_0x1e69ea);if(!_0x569216)return;let _0x42e08b=_0x3a57f2['polyline'][_0x1bc262(0x123)],_0x134cdd=_0x42e08b[_0x1bc262(0x124)];_0x251b10?_0x42e08b[_0x134cdd]=_0x569216:_0x42e08b[_0x134cdd-0x1]=_0x569216,_0x3a57f2[_0x1bc262(0x149)]['positions']=_0x42e08b;}function rclkHandler(_0x2bb09e,_0x4216bd){const _0xd12e8a=_0x2414e5;let _0x50325f=_0x4216bd;if(_0x50325f&&_0x50325f[_0xd12e8a(0x14f)]&&_0x50325f[_0xd12e8a(0x108)]){_0x50325f[_0xd12e8a(0x13c)]();if(!_0x50325f['polyline'])return;_0x50325f[_0xd12e8a(0x149)][_0xd12e8a(0x123)]=_0x50325f['polyline'][_0xd12e8a(0x123)][_0xd12e8a(0x14e)](0x0,_0x50325f[_0xd12e8a(0x149)][_0xd12e8a(0x123)]['length']-0x1);if(_0x50325f[_0xd12e8a(0x148)]===_0x2fc05e[_0xd12e8a(0x112)]){if(_0x50325f[_0xd12e8a(0x149)][_0xd12e8a(0x123)]['length']<0x3){_0x50325f['polyline'][_0xd12e8a(0x123)][_0xd12e8a(0x124)]=0x0;return;}let _0x521dae=[]['concat'](_0x50325f[_0xd12e8a(0x149)][_0xd12e8a(0x123)]);!_0x50325f[_0xd12e8a(0x154)]&&(_0x50325f[_0xd12e8a(0x154)]=_0x50325f[_0xd12e8a(0x11e)][_0xd12e8a(0x105)][_0xd12e8a(0x138)]({'polygon':{'hierarchy':{'positions':_0x521dae},'material':Geoworld[_0xd12e8a(0x11d)][_0xd12e8a(0x10b)][_0xd12e8a(0x113)](0.5),'perPositionHeight':_0x40dbac[_0xd12e8a(0x13e)]===_0x50325f[_0xd12e8a(0x117)]}})),_0x50325f[_0xd12e8a(0x154)][_0xd12e8a(0x154)][_0xd12e8a(0x152)]=_0x521dae,_0x50325f['polygon'][_0xd12e8a(0x123)]=_0x521dae,_0x50325f['polygon'][_0xd12e8a(0x10d)]=!![],_0x50325f[_0xd12e8a(0x144)][_0xd12e8a(0x14b)]({'object':_0x50325f[_0xd12e8a(0x154)]});}else {if(_0x50325f['mode']===_0x2fc05e['Line']){let _0x548d8e=[];for(let _0x5329fa=0x0,_0x269015=_0x50325f[_0xd12e8a(0x149)][_0xd12e8a(0x123)][_0xd12e8a(0x124)];_0x5329fa<_0x269015;_0x5329fa++){_0x548d8e[_0xd12e8a(0x10a)](Geoworld[_0xd12e8a(0x146)][_0xd12e8a(0x10c)](_0x50325f[_0xd12e8a(0x149)][_0xd12e8a(0x123)][_0x5329fa]));}(_0x50325f[_0xd12e8a(0x117)]===_0x40dbac[_0xd12e8a(0x130)]||_0x50325f[_0xd12e8a(0x117)]===_0x40dbac[_0xd12e8a(0x136)])&&(!_0x50325f[_0xd12e8a(0x12c)]&&(_0x50325f[_0xd12e8a(0x12c)]=[]),_0x50325f[_0xd12e8a(0x12c)][_0xd12e8a(0x10a)](_0x50325f[_0xd12e8a(0x11e)][_0xd12e8a(0x105)][_0xd12e8a(0x138)]({'polyline':{'positions':_0x548d8e,'width':0x5,'material':Geoworld[_0xd12e8a(0x11d)][_0xd12e8a(0x12a)](_0xd12e8a(0x128)),'clampToGround':!![]}})),_0x50325f[_0xd12e8a(0x149)][_0xd12e8a(0x10d)]=![]),_0x50325f['drawEvt'][_0xd12e8a(0x14b)]({'object':_0x50325f[_0xd12e8a(0x149)]});}}}} const _0x1daf=['668151EwRdHM','25xnGDpb','56401fEpVvu','343302sJYhQC','783064wAklIc','38215SnaIOm','freeze','10RMcbiS','4AAcUtR','213757IFffHq','10799nkiGiN','37syduhm'];function _0x19d3(_0x1d4053,_0x54ce03){_0x1d4053=_0x1d4053-0x1c1;let _0x1daff3=_0x1daf[_0x1d4053];return _0x1daff3;}const _0x5c8366=_0x19d3;(function(_0x44eae4,_0x41b4fb){const _0x28dbee=_0x19d3;while(!![]){try{const _0x47c54c=-parseInt(_0x28dbee(0x1c9))*parseInt(_0x28dbee(0x1c5))+parseInt(_0x28dbee(0x1c6))*-parseInt(_0x28dbee(0x1cb))+parseInt(_0x28dbee(0x1c1))+-parseInt(_0x28dbee(0x1c2))*parseInt(_0x28dbee(0x1c3))+-parseInt(_0x28dbee(0x1c8))+parseInt(_0x28dbee(0x1c7))+parseInt(_0x28dbee(0x1cc))*parseInt(_0x28dbee(0x1c4));if(_0x47c54c===_0x41b4fb)break;else _0x44eae4['push'](_0x44eae4['shift']());}catch(_0x261c41){_0x44eae4['push'](_0x44eae4['shift']());}}}(_0x1daf,0x80d23));const MeasureMode={'Distance':0x0,'Area':0x1,'DVH':0x2};var _0x3ba59e = Object[_0x5c8366(0x1ca)](MeasureMode); const _0xe3e8=['active','_currentArea','canvas','subdivideLine','min','setInputAction','28cwfBcl','indices','position','computeArea','negate','polygon','Cartesian2','265515SJOdHm','rayPlane','scene','prototype','HorizontalOrigin','MeasureHandler.lineDisplayType','1729417Kgdnox','_labelPixelOffsetScaleByDistance','activeEvt','Color','fromCartesian','remove','ColorType','cross','Area','deactivate','tmpEntities','LEFT','globe','raiseEvent','ScreenSpaceEventType','defined','horizontalPolyline','_dblclickListener','epEntity','DVH','spEntity','getHeight','triangulate','_activeEvt','removeInputAction','RIGHT_CLICK','497553tSeGcQ','_areaLabel','_labelBackgroundColor','Space','1720600zvEHMc','#51ff00','_vLabel','#ffe500','endPoint','_accumulationDis','500\x2016px\x20sans-serif','defineProperties','endPosition','LabelStyle','lessThanOrEquals','subtract','1OptNQN','startPoint','primitives','100\x2020px\x20SimSun','_labelPixelOffset','activate','_polygon','polyline','MOUSE_MOVE','polylines','NON_OCCLUDED','concat','isDrawing','rgba(38,\x2038,\x2038,\x200.85)','normal','fromType','BLUE','LabelCollection','removeAll','fromPointNormal','_disLabel','WHITE','dirPolyline','fpEntity','518997WPKGQZ','_showMeasureResult','handler','PolygonGeometryLibrary','_accumulationArea','max','PolygonGeometry','Math','_lineDisplayType','BLACK','Cartographic','Ray','Plane','defaultValue','lineDisplayType','length','values','ORANGE','greaterThanOrEquals','fromRadians','push','FILL_AND_OUTLINE','typeOf','Ground','Distance','toCartesian','add','NearFarScalar','CallbackProperty','_lineColor','createGeometry','_hLabel','hierarchy','_fillColor','Material','fromCssColorString','MAX_VALUE','pickPosition','measureEvt','clampToGroundPolyline','distance','_capturePointColor','withAlpha','number','clampToGroundPolylinePositions','OCCLUDED','latitude','magnitude','toFixed','_accumulationPositions','32982SyVblt','startHeight','DeveloperError','attributes','888893FMwTdH','clone','Check','_currentDis','positions','S3mModel','PolylineCollection','plane','fromCache','unpackArray','lerp','show','entities','_capturePointSize','_lineWidth','mode','_distance','viewer','fromPositions','labels','_clampMode','longitude','corridor','chordLength','Event','negateNormal','IntersectionTests','_measureEvt','clear','Cartesian3','clampToGroundPolygonPositions','_enableDepthTest','PolygonPipeline'];const _0x26f58a=_0x1e8e;(function(_0x480fa0,_0x58042a){const _0x5f4f00=_0x1e8e;while(!![]){try{const _0x5db449=parseInt(_0x5f4f00(0x12f))+parseInt(_0x5f4f00(0xd9))*-parseInt(_0x5f4f00(0x104))+parseInt(_0x5f4f00(0x10b))+-parseInt(_0x5f4f00(0x12b))+parseInt(_0x5f4f00(0x8f))*parseInt(_0x5f4f00(0x111))+-parseInt(_0x5f4f00(0xdd))+-parseInt(_0x5f4f00(0xa7));if(_0x5db449===_0x58042a)break;else _0x480fa0['push'](_0x480fa0['shift']());}catch(_0x5c11fb){_0x480fa0['push'](_0x480fa0['shift']());}}}(_0xe3e8,0xd8741));function MeasureHandler(_0x35d02f,_0xb21f4d,_0x5424bc,_0x3eb589){const _0x2f01b0=_0x1e8e;if(!_0x35d02f||!Geoworld[_0x2f01b0(0x120)](_0xb21f4d))throw new Geoworld[(_0x2f01b0(0xdb))]('viewer\x20and\x20mode\x20is\x20required!');this[_0x2f01b0(0xa9)]=new Geoworld['ScreenSpaceEventHandler'](_0x35d02f['scene'][_0x2f01b0(0x100)]),this[_0x2f01b0(0xee)]=_0x35d02f,this[_0x2f01b0(0xf1)]=Geoworld[_0x2f01b0(0xb4)](_0x5424bc,_0x40dbac[_0x2f01b0(0x12e)]),this[_0x2f01b0(0xec)]=_0xb21f4d,this['isDrawing']=![],this[_0x2f01b0(0xfe)]=![],this[_0x2f01b0(0x11b)]=[],this[_0x2f01b0(0x12c)]=undefined,this[_0x2f01b0(0xa3)]=undefined,this['_vLabel']=undefined,this[_0x2f01b0(0xc6)]=undefined,this[_0x2f01b0(0xf8)]=new Geoworld['Event'](),this[_0x2f01b0(0x128)]=new Geoworld[(_0x2f01b0(0xf5))](),this[_0x2f01b0(0xfc)]=![],this['_labelBackgroundColor']=Geoworld[_0x2f01b0(0x114)][_0x2f01b0(0xca)](_0x2f01b0(0x9c)),this[_0x2f01b0(0x112)]=new Geoworld[(_0x2f01b0(0xc2))](0x96,0x3,0xe4e1c0,0.5),this[_0x2f01b0(0x93)]=new Geoworld[(_0x2f01b0(0x10a))](0xf,0x0),this['_lineColor']=Geoworld[_0x2f01b0(0x114)]['fromCssColorString'](_0x2f01b0(0x130)),this[_0x2f01b0(0xc8)]=Geoworld[_0x2f01b0(0x114)][_0x2f01b0(0xb8)][_0x2f01b0(0xd1)](0.5),this[_0x2f01b0(0xeb)]=0x2,this[_0x2f01b0(0x122)]=undefined,this['_showMeasureResult']=Geoworld[_0x2f01b0(0xb4)](_0x3eb589,!![]),this[_0x2f01b0(0xaf)]=LineDisplayType[_0x2f01b0(0x99)];}Object[_0x26f58a(0x136)](MeasureHandler[_0x26f58a(0x10e)],{'activeEvt':{'get':function(){const _0x356c55=_0x26f58a;return this[_0x356c55(0x128)];}},'measureEvt':{'get':function(){const _0x38569e=_0x26f58a;return this[_0x38569e(0xf8)];}},'disLabel':{'get':function(){const _0x22cf9f=_0x26f58a;return this[_0x22cf9f(0xa3)];}},'areaLabel':{'get':function(){return this['_areaLabel'];}},'hLabel':{'get':function(){const _0x49aa05=_0x26f58a;return this[_0x49aa05(0xc6)];}},'vLabel':{'get':function(){const _0x25e1cd=_0x26f58a;return this[_0x25e1cd(0x131)];}},'capturePointSize':{'get':function(){return this['viewer']['_capturePointSize'];},'set':function(_0x3bfc00){const _0x203095=_0x26f58a;this[_0x203095(0xee)][_0x203095(0xea)]=_0x3bfc00;}},'capturePointColor':{'get':function(){const _0x221e16=_0x26f58a;return this[_0x221e16(0xee)][_0x221e16(0xd0)];},'set':function(_0xb7e7fb){const _0x20b4d8=_0x26f58a;this[_0x20b4d8(0xee)][_0x20b4d8(0xd0)]=_0xb7e7fb;}},'lineColor':{'get':function(){return this['_lineColor'];},'set':function(_0x24814f){this['_lineColor']=_0x24814f;}},'fillColor':{'get':function(){const _0x35accc=_0x26f58a;return this[_0x35accc(0xc8)];},'set':function(_0x278d6a){const _0xe26d46=_0x26f58a;this[_0xe26d46(0xc8)]=_0x278d6a;}},'lineWidth':{'get':function(){return this['_lineWidth'];},'set':function(_0x227228){const _0x37ff88=_0x26f58a;this[_0x37ff88(0xeb)]=_0x227228;}},'lineDisplayType':{'get':function(){return this['_lineDisplayType'];},'set':function(_0x377d47){const _0x23bb73=_0x26f58a;Geoworld[_0x23bb73(0xdf)]['typeOf'][_0x23bb73(0xd2)][_0x23bb73(0xb9)](_0x23bb73(0x110),_0x377d47,0x0),Geoworld[_0x23bb73(0xdf)][_0x23bb73(0xbd)][_0x23bb73(0xd2)][_0x23bb73(0x8d)]('MeasureHandler.lineDisplayType',_0x377d47,0x2),this[_0x23bb73(0xaf)]=_0x377d47,this[_0x23bb73(0x98)]&&(this['polylines'][_0x23bb73(0xb5)]=_0x377d47);}}}),MeasureHandler[_0x26f58a(0x10e)][_0x26f58a(0x94)]=function(){const _0x5bd8c6=_0x26f58a;this['clear']();if(this[_0x5bd8c6(0xfe)])return;this[_0x5bd8c6(0xfe)]=!![];let _0x35047b=this;this[_0x5bd8c6(0xa9)]['setInputAction'](function(_0x235265){clickHandler$1(_0x235265,_0x35047b);},Geoworld['ScreenSpaceEventType']['LEFT_CLICK']),this['handler'][_0x5bd8c6(0x103)](function(_0x2642ba){moveHandler$1(_0x2642ba,_0x35047b);},Geoworld[_0x5bd8c6(0x11f)]['MOUSE_MOVE']),this['handler'][_0x5bd8c6(0x103)](function(_0x24eddc){rclkHandler$1(_0x24eddc,_0x35047b);},Geoworld[_0x5bd8c6(0x11f)][_0x5bd8c6(0x12a)]),this[_0x5bd8c6(0x113)]['raiseEvent'](!![]);},MeasureHandler['prototype']['deactivate']=function(){const _0x404344=_0x26f58a;this[_0x404344(0xfe)]&&this[_0x404344(0x113)][_0x404344(0x11e)](![]),this[_0x404344(0xfe)]=![],this[_0x404344(0x9b)]=![],this[_0x404344(0xa9)][_0x404344(0x129)](Geoworld[_0x404344(0x11f)]['LEFT_CLICK']),this[_0x404344(0xa9)][_0x404344(0x129)](Geoworld[_0x404344(0x11f)][_0x404344(0x97)]),this[_0x404344(0xa9)]['removeInputAction'](Geoworld[_0x404344(0x11f)][_0x404344(0x12a)]);},MeasureHandler[_0x26f58a(0x10e)][_0x26f58a(0xf9)]=function(){const _0x34cb01=_0x26f58a;this[_0x34cb01(0x11a)]();for(let _0x48850c=0x0,_0x51c4e1=this['tmpEntities']['length'];_0x48850c<_0x51c4e1;_0x48850c++){this[_0x34cb01(0xee)][_0x34cb01(0xe9)][_0x34cb01(0x116)](this['tmpEntities'][_0x48850c]);}this[_0x34cb01(0xce)]&&(this['viewer'][_0x34cb01(0xe9)][_0x34cb01(0x116)](this[_0x34cb01(0xce)]),this[_0x34cb01(0xce)]=null);this['tmpEntities']['length']=0x0;this[_0x34cb01(0x98)]&&(this[_0x34cb01(0x98)][_0x34cb01(0xa1)](),this[_0x34cb01(0xee)][_0x34cb01(0x10d)]['primitives']['remove'](this[_0x34cb01(0x98)]),this[_0x34cb01(0x98)]=undefined);this[_0x34cb01(0x125)]&&(this['viewer'][_0x34cb01(0xe9)][_0x34cb01(0x116)](this[_0x34cb01(0x125)]),this[_0x34cb01(0x125)]=undefined);this[_0x34cb01(0x123)]&&(this[_0x34cb01(0xee)][_0x34cb01(0xe9)][_0x34cb01(0x116)](this['epEntity']),this[_0x34cb01(0x123)]=undefined);this[_0x34cb01(0xa6)]&&(this[_0x34cb01(0xee)][_0x34cb01(0xe9)][_0x34cb01(0x116)](this[_0x34cb01(0xa6)]),this[_0x34cb01(0xa6)]=undefined);if(this[_0x34cb01(0xf0)])switch(this[_0x34cb01(0xec)]){case _0x3ba59e['Distance']:this[_0x34cb01(0xf0)][_0x34cb01(0x116)](this[_0x34cb01(0xa3)]);break;case _0x3ba59e[_0x34cb01(0x119)]:this[_0x34cb01(0xf0)][_0x34cb01(0x116)](this[_0x34cb01(0x12c)]);break;case _0x3ba59e['DVH']:this[_0x34cb01(0xf0)]['remove'](this[_0x34cb01(0xa3)]),this['labels']['remove'](this[_0x34cb01(0xc6)]),this[_0x34cb01(0xf0)][_0x34cb01(0x116)](this['_vLabel']);break;}this[_0x34cb01(0x109)]&&(this[_0x34cb01(0xee)][_0x34cb01(0xe9)][_0x34cb01(0x116)](this['polygon']),this[_0x34cb01(0x109)]=undefined),this['corridor']&&(this[_0x34cb01(0xee)][_0x34cb01(0xe9)][_0x34cb01(0x116)](this[_0x34cb01(0xf3)]),this[_0x34cb01(0xf3)]=undefined);};function clickHandler$1(_0x206a07,_0x3444c5){const _0x1c2951=_0x26f58a;let _0x411f96=_0x3444c5;if(_0x411f96&&_0x411f96[_0x1c2951(0xfe)]){let _0x3317e0=_0x411f96[_0x1c2951(0xee)]['scene'],_0x4bca42=_0x3317e0[_0x1c2951(0xcc)](_0x206a07[_0x1c2951(0x106)]);if(_0x4bca42){if(!_0x411f96[_0x1c2951(0x9b)]){_0x411f96[_0x1c2951(0x9b)]=!![];switch(_0x411f96[_0x1c2951(0xec)]){case _0x3ba59e[_0x1c2951(0xbf)]:startMeasureDis(_0x4bca42,_0x411f96);break;case _0x3ba59e[_0x1c2951(0x119)]:startMeasureArea(_0x4bca42,_0x411f96);break;case _0x3ba59e[_0x1c2951(0x124)]:startMeasureDVH(_0x4bca42,_0x411f96);break;}}else _0x411f96[_0x1c2951(0xec)]==_0x3ba59e[_0x1c2951(0x124)]?_0x411f96[_0x1c2951(0x11a)]():processClk(_0x4bca42,_0x411f96);}}}function moveHandler$1(_0x10dc1a,_0x812b8d){const _0x56c3f8=_0x26f58a;let _0x2c9437=_0x812b8d,_0x3421dd=_0x2c9437[_0x56c3f8(0xee)][_0x56c3f8(0x10d)],_0xa3aa7f=_0x3421dd[_0x56c3f8(0xcc)](_0x10dc1a[_0x56c3f8(0x137)]);if(_0x2c9437&&_0x2c9437['active']&&_0x2c9437['isDrawing']&&_0xa3aa7f)switch(_0x2c9437[_0x56c3f8(0xec)]){case _0x3ba59e[_0x56c3f8(0xbf)]:processDistance(_0xa3aa7f,_0x2c9437);break;case _0x3ba59e['Area']:processArea(_0xa3aa7f,_0x2c9437);break;case _0x3ba59e[_0x56c3f8(0x124)]:processDVH(_0xa3aa7f,_0x2c9437);break;}}function rclkHandler$1(_0x3cc3c9,_0x43787f){const _0x111d3e=_0x26f58a;let _0x423eea=_0x43787f;if(_0x423eea&&_0x423eea['active']&&_0x423eea[_0x111d3e(0x9b)]){_0x423eea[_0x111d3e(0x11a)]();let _0x5a8233;if(_0x423eea[_0x111d3e(0x96)]){_0x423eea[_0x111d3e(0xec)]===_0x3ba59e[_0x111d3e(0xbf)]?(_0x423eea[_0x111d3e(0x98)][_0x111d3e(0x116)](_0x423eea[_0x111d3e(0x96)]),_0x5a8233=_0x423eea[_0x111d3e(0xd8)],_0x423eea['polylines']['length']===0x0&&_0x423eea[_0x111d3e(0xee)][_0x111d3e(0xe9)][_0x111d3e(0x116)](_0x423eea['spEntity'])):(_0x423eea['polyline'][_0x111d3e(0xe1)]=_0x423eea['polyline'][_0x111d3e(0xe1)]['slice'](0x0,_0x423eea[_0x111d3e(0x96)][_0x111d3e(0xe1)][_0x111d3e(0xb6)]-0x1),_0x423eea['polyline']['positions'][_0x111d3e(0xb6)]===0x1&&_0x423eea['viewer']['entities']['remove'](_0x423eea[_0x111d3e(0x125)]),_0x5a8233=_0x423eea[_0x111d3e(0x96)][_0x111d3e(0xe1)]);_0x423eea['viewer']['entities'][_0x111d3e(0x116)](_0x423eea[_0x111d3e(0x123)]);if(!_0x423eea[_0x111d3e(0x109)]){(_0x423eea[_0x111d3e(0xf1)]===_0x40dbac[_0x111d3e(0xbe)]||_0x423eea[_0x111d3e(0xf1)]===_0x40dbac['S3mModel'])&&(_0x423eea['clampToGroundPolylinePositions']=_0x5a8233,_0x423eea[_0x111d3e(0x96)][_0x111d3e(0xe8)]=![]);_0x423eea[_0x111d3e(0xa3)][_0x111d3e(0x106)]=_0x5a8233[_0x5a8233[_0x111d3e(0xb6)]-0x1];let _0x36db6c=0x0;if(_0x43787f['_clampMode']===_0x40dbac[_0x111d3e(0xbe)])_0x36db6c=computeClampDistance(_0x423eea['viewer']['scene'],_0x423eea[_0x111d3e(0xd8)]);else for(let _0x470db9=0x0,_0x5d08dc=_0x5a8233[_0x111d3e(0xb6)]-0x1;_0x470db9<_0x5d08dc;_0x470db9++){_0x36db6c+=Geoworld[_0x111d3e(0xfa)][_0x111d3e(0xcf)](_0x5a8233[_0x470db9],_0x5a8233[_0x470db9+0x1]);}_0x423eea[_0x111d3e(0xa3)][_0x111d3e(0xe8)]=_0x36db6c!==0x0,_0x423eea[_0x111d3e(0xcd)][_0x111d3e(0x11e)]({'distance':_0x36db6c[_0x111d3e(0xd7)](0x8),'positions':_0x5a8233});}}if(_0x423eea[_0x111d3e(0x109)]){if(_0x5a8233[_0x111d3e(0xb6)]<0x3){_0x423eea[_0x111d3e(0x12c)][_0x111d3e(0xe8)]=![],_0x423eea[_0x111d3e(0xee)][_0x111d3e(0xe9)][_0x111d3e(0x116)](_0x423eea[_0x111d3e(0x125)]);for(let _0x117bef=0x0,_0x50aac7=_0x423eea[_0x111d3e(0x11b)][_0x111d3e(0xb6)];_0x117bef<_0x50aac7;_0x117bef++){_0x423eea[_0x111d3e(0xee)]['entities']['remove'](_0x423eea[_0x111d3e(0x11b)][_0x117bef]);}_0x423eea[_0x111d3e(0x11b)][_0x111d3e(0xb6)]=0x0,_0x423eea[_0x111d3e(0xee)][_0x111d3e(0xe9)][_0x111d3e(0x116)](_0x423eea[_0x111d3e(0x123)]),_0x423eea['polyline']['positions'][_0x111d3e(0xb6)]=0x0;}_0x423eea['_areaLabel']['show']=!![];(_0x423eea['_clampMode']==_0x40dbac['Ground']||_0x423eea['_clampMode']==_0x40dbac['S3mModel'])&&(_0x423eea[_0x111d3e(0x96)]['show']=![]);_0x423eea[_0x111d3e(0xfb)]=_0x423eea['polyline']['positions'],_0x423eea[_0x111d3e(0x109)]['show']=!![];if(_0x5a8233[_0x111d3e(0xb6)]>0x2){if(_0x423eea['_clampMode']!==_0x40dbac[_0x111d3e(0xbe)])_0x423eea['_areaLabel'][_0x111d3e(0x106)]=_0x423eea[_0x111d3e(0x96)]['positions'][_0x423eea[_0x111d3e(0x96)]['positions'][_0x111d3e(0xb6)]-0x1];else {let _0x1e5328=_0x423eea['tmpEntities'][_0x423eea[_0x111d3e(0x11b)][_0x111d3e(0xb6)]-0x1],_0x341587=_0x1e5328['_position']['_value'];_0x423eea['_areaLabel'][_0x111d3e(0x106)]=_0x341587;}if(_0x423eea[_0x111d3e(0xf1)]===_0x40dbac[_0x111d3e(0xbe)]){let _0x5a4584=computeClampArea(_0x423eea['viewer'][_0x111d3e(0x10d)],_0x423eea['polyline'][_0x111d3e(0xe1)]);_0x423eea['measureEvt'][_0x111d3e(0x11e)]({'area':_0x5a4584[_0x111d3e(0xd7)](0x8),'positions':_0x5a8233});return;}let _0x531e29=Geoworld[_0x111d3e(0xfd)][_0x111d3e(0x127)](_0x5a8233),_0x1825a3=_0x531e29[_0x111d3e(0xb6)]/0x3,_0x55a065,_0x12197c,_0x420109,_0x2c6c5a=0x0;for(let _0x561d15=0x0;_0x561d15<_0x1825a3;_0x561d15++){_0x55a065=_0x5a8233[_0x531e29[_0x561d15*0x3]],_0x12197c=_0x5a8233[_0x531e29[_0x561d15*0x3+0x1]],_0x420109=_0x5a8233[_0x531e29[_0x561d15*0x3+0x2]],v12Scratch=Geoworld[_0x111d3e(0xfa)]['subtract'](_0x12197c,_0x55a065,v12Scratch),v13Scratch=Geoworld[_0x111d3e(0xfa)][_0x111d3e(0x8e)](_0x420109,_0x55a065,v13Scratch),crossScratch=Geoworld[_0x111d3e(0xfa)][_0x111d3e(0x118)](v12Scratch,v13Scratch,crossScratch),_0x2c6c5a+=0.5*Geoworld['Cartesian3'][_0x111d3e(0xd6)](crossScratch);}_0x423eea['measureEvt'][_0x111d3e(0x11e)]({'area':_0x2c6c5a[_0x111d3e(0xd7)](0x8),'positions':_0x5a8233});}}}}function processClk(_0x54a9c1,_0x1b78c9){const _0x229cd1=_0x26f58a;let _0x545e69=_0x1b78c9;_0x545e69['mode']===_0x3ba59e[_0x229cd1(0xbf)]?(_0x545e69['polyline']=_0x545e69[_0x229cd1(0x98)][_0x229cd1(0xc1)]({'width':_0x545e69[_0x229cd1(0xeb)],'show':_0x545e69[_0x229cd1(0xa8)],'positions':[_0x54a9c1,_0x54a9c1],'material':Geoworld['Material']['fromType'](Geoworld[_0x229cd1(0xc9)][_0x229cd1(0x117)],{'color':_0x545e69[_0x229cd1(0xc4)]}),'clampToGround':!![]}),_0x1b78c9['_clampMode']===_0x40dbac[_0x229cd1(0xbe)]&&(_0x545e69[_0x229cd1(0x96)][_0x229cd1(0xe8)]=![],_0x545e69['_accumulationDis']=_0x545e69['_currentDis']),_0x545e69[_0x229cd1(0xd8)][_0x229cd1(0xbb)](_0x54a9c1)):(_0x545e69[_0x229cd1(0xec)]===_0x3ba59e[_0x229cd1(0x119)]&&(_0x545e69[_0x229cd1(0xab)]=_0x545e69[_0x229cd1(0xff)]),_0x545e69[_0x229cd1(0x96)][_0x229cd1(0xe1)][_0x229cd1(0xbb)](_0x54a9c1)),_0x545e69[_0x229cd1(0x109)]&&(_0x1b78c9[_0x229cd1(0xf1)]!==_0x40dbac['Ground']&&(_0x545e69[_0x229cd1(0x109)][_0x229cd1(0x95)][_0x229cd1(0xc7)]=_0x545e69[_0x229cd1(0x96)]['positions'])),_0x545e69['tmpEntities'][_0x229cd1(0xbb)](_0x545e69['viewer']['entities']['add']({'show':_0x545e69['_showMeasureResult'],'position':_0x54a9c1,'point':{'pixelSize':0x8,'color':Geoworld[_0x229cd1(0x114)][_0x229cd1(0xca)](_0x229cd1(0x132))}}));}let v12Scratch=new Geoworld['Cartesian3'](),v13Scratch=new Geoworld[(_0x26f58a(0xfa))](),crossScratch=new Geoworld[(_0x26f58a(0xfa))]();function _0x1e8e(_0x58c82e,_0x34165d){_0x58c82e=_0x58c82e-0x8d;let _0xe3e8f=_0xe3e8[_0x58c82e];return _0xe3e8f;}function processArea(_0xe979da,_0x26fd0f){const _0x500ca6=_0x26f58a;let _0x376a47=_0x26fd0f,_0x5a4c4b=_0x376a47[_0x500ca6(0xee)][_0x500ca6(0x10d)];if(!_0xe979da)return;_0x376a47[_0x500ca6(0x133)]=_0xe979da;let _0x5bba5b=_0x376a47[_0x500ca6(0x96)][_0x500ca6(0xe1)],_0x11f465=_0x5bba5b[_0x500ca6(0xb6)];_0x5bba5b[_0x11f465-0x1]=_0xe979da;_0x11f465>0x2&&(_0x376a47['_areaLabel']&&(_0x376a47[_0x500ca6(0x12c)][_0x500ca6(0xe8)]=!![]),_0x376a47[_0x500ca6(0xfb)]=_0x5bba5b);_0x376a47[_0x500ca6(0x96)][_0x500ca6(0xe1)]=_0x5bba5b;if(_0x5bba5b[_0x500ca6(0xb6)]>0x2){_0x376a47['epEntity'][_0x500ca6(0x106)]=_0xe979da,_0x376a47[_0x500ca6(0x12c)][_0x500ca6(0x106)]=_0xe979da,_0x376a47[_0x500ca6(0x12c)][_0x500ca6(0xe8)]=_0x26fd0f[_0x500ca6(0xf1)]!==_0x40dbac['Ground'];let _0x5898d7;if(_0x26fd0f['_clampMode']===_0x40dbac['Ground'])return;_0x5898d7=MeasureHandler[_0x500ca6(0x107)](_0x5bba5b),_0x376a47[_0x500ca6(0xcd)]['raiseEvent']({'area':_0x5898d7[_0x500ca6(0xd7)](0x8),'positions':_0x5bba5b});}}function startMeasureArea(_0x78b8c2,_0x2fd0a2){const _0x12acfc=_0x26f58a;let _0x36d0f3=_0x2fd0a2;_0x36d0f3['clampToGroundPolygonPositions']=[],_0x36d0f3[_0x12acfc(0x11b)]['length']=0x0;let _0x27532f=_0x36d0f3[_0x12acfc(0xfc)];_0x36d0f3[_0x12acfc(0x98)]=new Geoworld[(_0x12acfc(0xe3))](),_0x36d0f3[_0x12acfc(0x96)]=_0x36d0f3[_0x12acfc(0x98)]['add']({'width':_0x36d0f3[_0x12acfc(0xeb)],'positions':[_0x78b8c2,_0x78b8c2],'material':Geoworld[_0x12acfc(0xc9)][_0x12acfc(0x9e)](Geoworld['Material'][_0x12acfc(0x117)],{'color':_0x36d0f3[_0x12acfc(0xc4)]}),'loop':!![]}),_0x36d0f3[_0x12acfc(0xee)][_0x12acfc(0x10d)][_0x12acfc(0x91)][_0x12acfc(0xc1)](_0x36d0f3[_0x12acfc(0x98)]),_0x36d0f3[_0x12acfc(0x125)]=_0x36d0f3[_0x12acfc(0xee)][_0x12acfc(0xe9)][_0x12acfc(0xc1)]({'position':_0x78b8c2,'point':{'pixelSize':0x8,'color':Geoworld[_0x12acfc(0x114)][_0x12acfc(0xca)](_0x12acfc(0x132))}}),_0x36d0f3['epEntity']=_0x36d0f3[_0x12acfc(0xee)][_0x12acfc(0xe9)][_0x12acfc(0xc1)]({'position':_0x78b8c2,'point':{'pixelSize':0x8,'color':Geoworld['Color']['fromCssColorString'](_0x12acfc(0x132))}});let _0x5b915d=_0x36d0f3['viewer'][_0x12acfc(0x10d)][_0x12acfc(0x91)][_0x12acfc(0xc1)](new Geoworld[(_0x12acfc(0xa0))]({'depthTestEnable':![]}));_0x36d0f3[_0x12acfc(0x12c)]=_0x5b915d[_0x12acfc(0xc1)]({'position':_0x78b8c2,'font':_0x12acfc(0x92),'fillColor':Geoworld['Color'][_0x12acfc(0xa4)],'style':Geoworld[_0x12acfc(0x138)][_0x12acfc(0xbc)],'showBackground':!![],'outlineWidth':0x1,'outlineColor':Geoworld[_0x12acfc(0x114)][_0x12acfc(0x9f)],'pixelOffset':_0x36d0f3[_0x12acfc(0x93)],'text':'','show':_0x36d0f3[_0x12acfc(0xa8)],'horizontalOrigin':Geoworld[_0x12acfc(0x10f)]['LEFT']});let _0x46632b=_0x36d0f3['_clampMode'],_0x3a871b=_0x46632b===_0x40dbac[_0x12acfc(0x12e)];_0x36d0f3[_0x12acfc(0x109)]=_0x36d0f3[_0x12acfc(0xee)][_0x12acfc(0xe9)][_0x12acfc(0xc1)]({'polygon':{'hierarchy':new Geoworld[(_0x12acfc(0xc3))](function(){return {'positions':_0x36d0f3['clampToGroundPolygonPositions'],'holes':[]};},![]),'material':_0x36d0f3[_0x12acfc(0xc8)],'perPositionHeight':_0x3a871b},'show':![]}),_0x36d0f3[_0x12acfc(0xf0)]=_0x5b915d,_0x2fd0a2[_0x12acfc(0xf1)]===_0x40dbac[_0x12acfc(0xbe)]&&(_0x36d0f3['polyline'][_0x12acfc(0xe8)]=![],_0x36d0f3['polygon']['show']=!![]),_0x36d0f3[_0x12acfc(0x12c)][_0x12acfc(0xe8)]=![];}function startMeasureDis(_0xca2acb,_0x2fde04){const _0x3585bf=_0x26f58a;let _0x4fc5b3=_0x2fde04;_0x2fde04[_0x3585bf(0xf1)]===_0x40dbac[_0x3585bf(0xbe)]&&(_0x4fc5b3[_0x3585bf(0xd3)]=[],_0x4fc5b3[_0x3585bf(0xce)]=_0x4fc5b3[_0x3585bf(0xee)][_0x3585bf(0xe9)]['add']({'polyline':{'positions':new Geoworld[(_0x3585bf(0xc3))](function(){return _0x4fc5b3['clampToGroundPolylinePositions'];},![]),'width':_0x4fc5b3[_0x3585bf(0xeb)],'material':_0x4fc5b3[_0x3585bf(0xc4)],'clampToGround':!![]}}));_0x4fc5b3[_0x3585bf(0x11b)]['length']=0x0;if(!_0x4fc5b3[_0x3585bf(0x98)]){let _0x24cb0a=_0x4fc5b3[_0x3585bf(0xfc)];_0x4fc5b3['polylines']=new Geoworld['PolylineCollection']({'opaqueRS':RenderState[_0x3585bf(0xe5)]({'depthMask':_0x24cb0a,'depthTest':{'enabled':_0x24cb0a}}),'translucentRS':RenderState[_0x3585bf(0xe5)]({'depthMask':_0x24cb0a,'depthTest':{'enabled':_0x24cb0a}}),'lineDisplayType':_0x4fc5b3['_clampMode']===_0x40dbac[_0x3585bf(0xbe)]?LineDisplayType[_0x3585bf(0xd4)]:_0x4fc5b3[_0x3585bf(0xaf)]}),_0x4fc5b3[_0x3585bf(0x96)]=_0x4fc5b3[_0x3585bf(0x98)][_0x3585bf(0xc1)]({'width':_0x4fc5b3['_lineWidth'],'show':_0x4fc5b3[_0x3585bf(0xa8)],'positions':[_0xca2acb,_0xca2acb],'material':Geoworld['Material']['fromType'](Geoworld[_0x3585bf(0xc9)][_0x3585bf(0x117)],{'color':_0x4fc5b3[_0x3585bf(0xc4)]}),'clampToGround':!![]}),_0x4fc5b3[_0x3585bf(0xee)]['scene'][_0x3585bf(0x91)]['add'](_0x4fc5b3[_0x3585bf(0x98)]),_0x4fc5b3[_0x3585bf(0xd8)]=[_0xca2acb],_0x4fc5b3[_0x3585bf(0x134)]=0x0,_0x4fc5b3[_0x3585bf(0xe0)]=0x0,_0x4fc5b3[_0x3585bf(0x125)]=_0x4fc5b3[_0x3585bf(0xee)][_0x3585bf(0xe9)][_0x3585bf(0xc1)]({'position':_0xca2acb,'show':_0x4fc5b3[_0x3585bf(0xa8)],'point':{'pixelSize':0x8,'color':Geoworld['Color'][_0x3585bf(0xca)](_0x3585bf(0x132))}}),_0x4fc5b3['epEntity']=_0x4fc5b3[_0x3585bf(0xee)][_0x3585bf(0xe9)]['add']({'position':_0xca2acb,'show':_0x4fc5b3[_0x3585bf(0xa8)],'point':{'pixelSize':0x8,'color':Geoworld[_0x3585bf(0x114)][_0x3585bf(0xca)](_0x3585bf(0x132))}});let _0x195b9c=_0x4fc5b3[_0x3585bf(0xee)]['scene'][_0x3585bf(0x91)][_0x3585bf(0xc1)](new Geoworld[(_0x3585bf(0xa0))]({'depthTestEnable':![]}));_0x4fc5b3[_0x3585bf(0xa3)]=_0x195b9c[_0x3585bf(0xc1)]({'position':_0xca2acb,'font':_0x3585bf(0x92),'fillColor':Geoworld[_0x3585bf(0x114)][_0x3585bf(0xa4)],'style':Geoworld['LabelStyle']['FILL_AND_OUTLINE'],'showBackground':!![],'backgroundColor':_0x4fc5b3['_labelBackgroundColor'],'outlineWidth':0x1,'outlineColor':Geoworld[_0x3585bf(0x114)][_0x3585bf(0x9f)],'pixelOffset':_0x4fc5b3[_0x3585bf(0x93)],'text':'','show':_0x4fc5b3[_0x3585bf(0xa8)],'horizontalOrigin':Geoworld[_0x3585bf(0x10f)][_0x3585bf(0x11c)]}),_0x4fc5b3[_0x3585bf(0xf0)]=_0x195b9c;let _0x53e1db=_0x4fc5b3[_0x3585bf(0xf1)]==_0x40dbac[_0x3585bf(0xe2)]?!![]:![],_0x51ad34=Geoworld[_0x3585bf(0xfa)][_0x3585bf(0xde)](_0xca2acb);_0x4fc5b3['corridor']=_0x4fc5b3[_0x3585bf(0xee)][_0x3585bf(0xe9)][_0x3585bf(0xc1)]({'corridor':{'positions':[_0x51ad34,_0x51ad34],'width':0x14,'material':Geoworld[_0x3585bf(0x114)]['fromCssColorString'](_0x3585bf(0x130))},'clampToS3M':_0x53e1db,'show':![]});}_0x2fde04['_clampMode']===_0x40dbac[_0x3585bf(0xbe)]&&(_0x4fc5b3[_0x3585bf(0x96)]['show']=![]);}function processDistance(_0x3bffd6,_0x1f69ea){const _0x114786=_0x26f58a;let _0x20b5ac=_0x1f69ea,_0x4d776f=_0x20b5ac[_0x114786(0xee)][_0x114786(0x10d)];_0x20b5ac['endPoint']=_0x3bffd6;let _0x334b1a=_0x20b5ac['polyline'][_0x114786(0xe1)],_0x376620=_0x334b1a[_0x114786(0xb6)];_0x1f69ea[_0x114786(0xf1)]===_0x40dbac[_0x114786(0xbe)]&&(_0x20b5ac[_0x114786(0xec)]===_0x3ba59e['Distance']?_0x20b5ac[_0x114786(0xd3)]=_0x20b5ac[_0x114786(0xd8)][_0x114786(0x9a)]([_0x3bffd6]):_0x20b5ac[_0x114786(0xd3)]=_0x334b1a);_0x334b1a[_0x376620-0x1]=_0x3bffd6,_0x20b5ac[_0x114786(0x96)][_0x114786(0xe1)]=_0x334b1a,_0x20b5ac['epEntity'][_0x114786(0x106)]=_0x3bffd6;let _0x388af0=0x0,_0x165ea9=_0x20b5ac['_accumulationPositions'][_0x114786(0x9a)]([_0x3bffd6]);_0x20b5ac[_0x114786(0x96)][_0x114786(0xed)]=_0x388af0,_0x20b5ac[_0x114786(0xa3)]['position']=_0x3bffd6,_0x20b5ac['_disLabel'][_0x114786(0xe8)]=_0x1f69ea[_0x114786(0xf1)]!==_0x40dbac[_0x114786(0xbe)];if(_0x1f69ea[_0x114786(0xf1)]===_0x40dbac[_0x114786(0xbe)])return;else for(let _0x56b70f=0x0,_0x4f7a02=_0x165ea9['length']-0x1;_0x56b70f<_0x4f7a02;_0x56b70f++){_0x388af0+=Geoworld[_0x114786(0xfa)]['distance'](_0x165ea9[_0x56b70f],_0x165ea9[_0x56b70f+0x1]);}_0x20b5ac[_0x114786(0xcd)][_0x114786(0x11e)]({'distance':_0x388af0['toFixed'](0x8),'positions':_0x165ea9});}function startMeasureDVH(_0x209e03,_0x2af6b4){const _0x5a0ec6=_0x26f58a;let _0x486d53=_0x2af6b4;if(!_0x486d53['polylines']){let _0xa6993c=_0x486d53['_enableDepthTest'];_0x486d53[_0x5a0ec6(0x98)]=new Geoworld[(_0x5a0ec6(0xe3))]({'opaqueRS':RenderState[_0x5a0ec6(0xe5)]({'depthMask':_0xa6993c,'depthTest':{'enabled':_0xa6993c}}),'lineDisplayType':_0x486d53[_0x5a0ec6(0xaf)]}),_0x486d53[_0x5a0ec6(0x121)]=_0x486d53[_0x5a0ec6(0x98)][_0x5a0ec6(0xc1)]({'width':0x2,'show':_0x486d53[_0x5a0ec6(0xa8)],'positions':[_0x209e03,_0x209e03],'material':Geoworld[_0x5a0ec6(0xc9)][_0x5a0ec6(0x9e)](Geoworld[_0x5a0ec6(0xc9)][_0x5a0ec6(0x117)],{'color':_0x486d53[_0x5a0ec6(0xc4)]})}),_0x486d53['verticalPolyline']=_0x486d53[_0x5a0ec6(0x98)][_0x5a0ec6(0xc1)]({'width':0x2,'show':_0x486d53[_0x5a0ec6(0xa8)],'positions':[_0x209e03,_0x209e03],'material':Geoworld['Material'][_0x5a0ec6(0x9e)](Geoworld[_0x5a0ec6(0xc9)][_0x5a0ec6(0x117)],{'color':_0x486d53[_0x5a0ec6(0xc4)]})}),_0x486d53[_0x5a0ec6(0xa5)]=_0x486d53['polylines'][_0x5a0ec6(0xc1)]({'width':0x2,'show':_0x486d53[_0x5a0ec6(0xa8)],'positions':[_0x209e03,_0x209e03],'material':Geoworld['Material']['fromType'](Geoworld[_0x5a0ec6(0xc9)][_0x5a0ec6(0x117)],{'color':_0x486d53[_0x5a0ec6(0xc4)]})}),_0x486d53['viewer'][_0x5a0ec6(0x10d)][_0x5a0ec6(0x91)][_0x5a0ec6(0xc1)](_0x486d53[_0x5a0ec6(0x98)]),_0x486d53[_0x5a0ec6(0x125)]=_0x486d53['viewer'][_0x5a0ec6(0xe9)]['add']({'position':_0x209e03,'show':_0x486d53[_0x5a0ec6(0xa8)],'point':{'pixelSize':0x8,'color':Geoworld[_0x5a0ec6(0x114)]['fromCssColorString']('#ffe500')}}),_0x486d53[_0x5a0ec6(0x123)]=_0x486d53[_0x5a0ec6(0xee)]['entities'][_0x5a0ec6(0xc1)]({'position':_0x209e03,'show':_0x486d53[_0x5a0ec6(0xa8)],'point':{'pixelSize':0x8,'color':Geoworld[_0x5a0ec6(0x114)][_0x5a0ec6(0xca)](_0x5a0ec6(0x132))}}),_0x486d53[_0x5a0ec6(0xa6)]=_0x486d53['viewer']['entities'][_0x5a0ec6(0xc1)]({'position':_0x209e03,'show':_0x486d53[_0x5a0ec6(0xa8)],'point':{'pixelSize':0x8,'color':Geoworld[_0x5a0ec6(0x114)][_0x5a0ec6(0xca)]('#ffe500')}});let _0x18cbac=_0x486d53[_0x5a0ec6(0xee)]['scene']['primitives']['add'](new Geoworld[(_0x5a0ec6(0xa0))]({'depthTestEnable':![]}));_0x486d53[_0x5a0ec6(0xa3)]=_0x18cbac['add']({'position':_0x209e03,'font':_0x5a0ec6(0x135),'style':Geoworld[_0x5a0ec6(0x138)][_0x5a0ec6(0xbc)],'outlineWidth':0x1,'outlineColor':Geoworld[_0x5a0ec6(0x114)][_0x5a0ec6(0xb0)],'showBackground':!![],'backgroundColor':_0x486d53[_0x5a0ec6(0x12d)],'pixelOffset':_0x486d53[_0x5a0ec6(0x93)],'pixelOffsetScaleByDistance':_0x486d53['_labelPixelOffsetScaleByDistance'],'text':'','show':_0x486d53[_0x5a0ec6(0xa8)],'horizontalOrigin':Geoworld[_0x5a0ec6(0x10f)][_0x5a0ec6(0x11c)]}),_0x486d53[_0x5a0ec6(0x131)]=_0x18cbac['add']({'position':_0x209e03,'font':_0x5a0ec6(0x135),'style':Geoworld[_0x5a0ec6(0x138)]['FILL_AND_OUTLINE'],'outlineWidth':0x1,'outlineColor':Geoworld[_0x5a0ec6(0x114)][_0x5a0ec6(0xb0)],'showBackground':!![],'backgroundColor':_0x486d53[_0x5a0ec6(0x12d)],'pixelOffset':_0x486d53[_0x5a0ec6(0x93)],'pixelOffsetScaleByDistance':_0x486d53[_0x5a0ec6(0x112)],'text':'','show':_0x486d53[_0x5a0ec6(0xa8)],'horizontalOrigin':Geoworld['HorizontalOrigin'][_0x5a0ec6(0x11c)]}),_0x486d53[_0x5a0ec6(0xc6)]=_0x18cbac[_0x5a0ec6(0xc1)]({'position':_0x209e03,'font':'500\x2016px\x20sans-serif','style':Geoworld['LabelStyle'][_0x5a0ec6(0xbc)],'outlineWidth':0x1,'outlineColor':Geoworld['Color'][_0x5a0ec6(0xb0)],'showBackground':!![],'backgroundColor':_0x486d53[_0x5a0ec6(0x12d)],'pixelOffset':_0x486d53[_0x5a0ec6(0x93)],'pixelOffsetScaleByDistance':_0x486d53[_0x5a0ec6(0x112)],'text':'','show':_0x486d53[_0x5a0ec6(0xa8)],'horizontalOrigin':Geoworld[_0x5a0ec6(0x10f)]['LEFT']}),_0x486d53[_0x5a0ec6(0xf0)]=_0x18cbac;}let _0x12c305=new Geoworld[(_0x5a0ec6(0xfa))]();Geoworld['Cartesian3']['normalize'](_0x209e03,_0x12c305),_0x486d53[_0x5a0ec6(0xe4)]=Geoworld['Plane'][_0x5a0ec6(0xa2)](_0x209e03,_0x12c305),_0x486d53[_0x5a0ec6(0x90)]=_0x209e03,_0x486d53[_0x5a0ec6(0xda)]=Geoworld[_0x5a0ec6(0xb1)][_0x5a0ec6(0x115)](_0x209e03)['height'],_0x486d53[_0x5a0ec6(0x9d)]=_0x12c305;let _0x5c7d7d=new Geoworld[(_0x5a0ec6(0xfa))]();Geoworld[_0x5a0ec6(0xfa)][_0x5a0ec6(0x108)](_0x12c305,_0x5c7d7d),_0x486d53[_0x5a0ec6(0xf6)]=_0x5c7d7d,_0x486d53[_0x5a0ec6(0x125)][_0x5a0ec6(0x106)]=_0x209e03;}function processDVH(_0x4e66de,_0x5cfa52){const _0x524fe4=_0x26f58a;let _0x4753b0=_0x5cfa52,_0x213a1e=_0x4753b0[_0x524fe4(0xee)][_0x524fe4(0x10d)];if(!_0x4e66de)return;_0x4753b0[_0x524fe4(0x133)]=_0x4e66de;let _0x131a29=Geoworld[_0x524fe4(0xb1)][_0x524fe4(0x115)](_0x4e66de)['height'],_0x319f2b,_0x33ffe5;_0x131a29>_0x4753b0[_0x524fe4(0xda)]?(_0x319f2b=Geoworld[_0x524fe4(0xb3)][_0x524fe4(0xa2)](_0x4e66de,_0x4753b0[_0x524fe4(0x9d)]),_0x33ffe5=new Geoworld[(_0x524fe4(0xb2))](_0x4753b0[_0x524fe4(0x90)],_0x4753b0[_0x524fe4(0x9d)])):(_0x319f2b=_0x4753b0[_0x524fe4(0xe4)],_0x33ffe5=new Geoworld[(_0x524fe4(0xb2))](_0x4e66de,_0x4753b0[_0x524fe4(0x9d)]));let _0x3576cb=Geoworld[_0x524fe4(0xf7)][_0x524fe4(0x10c)](_0x33ffe5,_0x319f2b);if(!_0x3576cb){_0x33ffe5=new Geoworld['Ray'](_0x4e66de,_0x4753b0[_0x524fe4(0x9d)]),_0x3576cb=Geoworld[_0x524fe4(0xf7)][_0x524fe4(0x10c)](_0x33ffe5,_0x4753b0[_0x524fe4(0xe4)]);if(!_0x3576cb)return;}_0x4753b0[_0x524fe4(0x121)][_0x524fe4(0xe1)]=[_0x4753b0['startPoint'],_0x3576cb],_0x4753b0[_0x524fe4(0xa5)][_0x524fe4(0xe1)]=[_0x4753b0[_0x524fe4(0x90)],_0x4e66de],_0x4753b0['verticalPolyline'][_0x524fe4(0xe1)]=[_0x4e66de,_0x3576cb],_0x4753b0[_0x524fe4(0x123)][_0x524fe4(0x106)]=_0x4e66de,_0x4753b0[_0x524fe4(0xa6)]['position']=_0x3576cb;let _0x9bcc33=Geoworld['Cartesian3'][_0x524fe4(0xcf)](_0x4753b0[_0x524fe4(0x90)],_0x4e66de)[_0x524fe4(0xd7)](0x8),_0x4766fc=Geoworld[_0x524fe4(0xfa)]['distance'](_0x4753b0[_0x524fe4(0x90)],_0x3576cb)[_0x524fe4(0xd7)](0x8),_0x3f61a7=Geoworld['Cartesian3'][_0x524fe4(0xcf)](_0x4e66de,_0x3576cb)[_0x524fe4(0xd7)](0x8);_0x131a29>_0x4753b0[_0x524fe4(0xda)]?(Geoworld[_0x524fe4(0xfa)][_0x524fe4(0xe7)](_0x4753b0[_0x524fe4(0x90)],_0x4e66de,0.5,_0x4753b0[_0x524fe4(0xa3)][_0x524fe4(0x106)]),Geoworld['Cartesian3'][_0x524fe4(0xe7)](_0x4753b0[_0x524fe4(0x90)],_0x3576cb,0.5,_0x4753b0[_0x524fe4(0x131)]['position']),Geoworld['Cartesian3'][_0x524fe4(0xe7)](_0x4e66de,_0x3576cb,0.5,_0x4753b0[_0x524fe4(0xc6)][_0x524fe4(0x106)])):(Geoworld[_0x524fe4(0xfa)][_0x524fe4(0xe7)](_0x4753b0[_0x524fe4(0x90)],_0x4e66de,0.5,_0x4753b0[_0x524fe4(0xa3)]['position']),Geoworld['Cartesian3']['lerp'](_0x4e66de,_0x3576cb,0.5,_0x4753b0[_0x524fe4(0x131)]['position']),Geoworld[_0x524fe4(0xfa)]['lerp'](_0x4753b0[_0x524fe4(0x90)],_0x3576cb,0.5,_0x4753b0[_0x524fe4(0xc6)][_0x524fe4(0x106)]),_0x4766fc=Geoworld[_0x524fe4(0xfa)]['distance'](_0x4e66de,_0x3576cb)['toFixed'](0x8),_0x3f61a7=Geoworld[_0x524fe4(0xfa)][_0x524fe4(0xcf)](_0x4753b0[_0x524fe4(0x90)],_0x3576cb)[_0x524fe4(0xd7)](0x8)),_0x4753b0[_0x524fe4(0xcd)][_0x524fe4(0x11e)]({'distance':_0x9bcc33,'directionalPositions':_0x4753b0[_0x524fe4(0xa5)][_0x524fe4(0xe1)],'verticalHeight':_0x4766fc,'verticalPositions':_0x4753b0['verticalPolyline']['positions'],'horizontalDistance':_0x3f61a7,'horizontalPositions':_0x4753b0[_0x524fe4(0x121)]['positions']});}MeasureHandler['computeArea']=function(_0x30b1d4){const _0x5ce24f=_0x26f58a;let _0x43b854=Geoworld[_0x5ce24f(0xfd)][_0x5ce24f(0x127)](_0x30b1d4),_0x58c49a=_0x43b854[_0x5ce24f(0xb6)]/0x3,_0x2a935b,_0x3d5afe,_0x2a6c01,_0x5e9cc0=0x0;for(let _0x56ef3b=0x0;_0x56ef3b<_0x58c49a;_0x56ef3b++){_0x2a935b=_0x30b1d4[_0x43b854[_0x56ef3b*0x3]],_0x3d5afe=_0x30b1d4[_0x43b854[_0x56ef3b*0x3+0x1]],_0x2a6c01=_0x30b1d4[_0x43b854[_0x56ef3b*0x3+0x2]],v12Scratch=Geoworld['Cartesian3'][_0x5ce24f(0x8e)](_0x3d5afe,_0x2a935b,v12Scratch),v13Scratch=Geoworld[_0x5ce24f(0xfa)][_0x5ce24f(0x8e)](_0x2a6c01,_0x2a935b,v13Scratch),crossScratch=Geoworld['Cartesian3'][_0x5ce24f(0x118)](v12Scratch,v13Scratch,crossScratch),_0x5e9cc0+=0.5*Geoworld[_0x5ce24f(0xfa)][_0x5ce24f(0xd6)](crossScratch);}return _0x5e9cc0;};function computeClampArea(_0x48fbd1,_0x5e7394){const _0xaeaecc=_0x26f58a;let _0x4cbadc=Number[_0xaeaecc(0xcb)],_0x393fc3=-Number[_0xaeaecc(0xcb)],_0x39334b=Number['MAX_VALUE'],_0x2530d8=-Number[_0xaeaecc(0xcb)];for(let _0x398e4f=0x0;_0x398e4f<_0x5e7394['length'];_0x398e4f++){let _0x13c19b=Geoworld[_0xaeaecc(0xb1)]['fromCartesian'](_0x5e7394[_0x398e4f]);_0x4cbadc=Math['min'](_0x13c19b['longitude'],_0x4cbadc),_0x393fc3=Math[_0xaeaecc(0xac)](_0x13c19b['longitude'],_0x393fc3),_0x39334b=Math[_0xaeaecc(0x102)](_0x13c19b[_0xaeaecc(0xd5)],_0x39334b),_0x2530d8=Math['max'](_0x13c19b[_0xaeaecc(0xd5)],_0x2530d8);}let _0x304c64=Geoworld[_0xaeaecc(0xb1)]['toCartesian'](new Geoworld[(_0xaeaecc(0xb1))](_0x4cbadc,_0x39334b,0x0)),_0x50891a=Geoworld[_0xaeaecc(0xb1)]['toCartesian'](new Geoworld['Cartographic'](_0x393fc3,_0x2530d8,0x0)),_0x3e5092=Geoworld['Cartesian3']['angleBetween'](_0x304c64,_0x50891a),_0x59c936=Geoworld[_0xaeaecc(0xad)][_0xaeaecc(0xef)]({'positions':_0x5e7394,'granularity':_0x3e5092/0x20}),_0x2741cd=Geoworld[_0xaeaecc(0xad)][_0xaeaecc(0xc5)](_0x59c936),_0x16764e=0x0,_0x403176={};for(let _0x5ca9b2=0x0;_0x5ca9b2<_0x2741cd[_0xaeaecc(0x105)]['length'];_0x5ca9b2+=0x3){let _0x549aa0=_0x2741cd[_0xaeaecc(0x105)][_0x5ca9b2],_0xadff53;if(!_0x403176[_0x549aa0]){let _0x29413b=_0x2741cd[_0xaeaecc(0xdc)][_0xaeaecc(0x106)][_0xaeaecc(0xb7)][_0x549aa0*0x3],_0x2fecae=_0x2741cd[_0xaeaecc(0xdc)]['position'][_0xaeaecc(0xb7)][_0x549aa0*0x3+0x1],_0x1c494d=_0x2741cd[_0xaeaecc(0xdc)]['position'][_0xaeaecc(0xb7)][_0x549aa0*0x3+0x2];_0xadff53=new Geoworld['Cartesian3'](_0x29413b,_0x2fecae,_0x1c494d);let _0x287298=Geoworld['Cartographic']['fromCartesian'](_0xadff53),_0x38dc74=_0x48fbd1[_0xaeaecc(0x11d)][_0xaeaecc(0x126)](_0x287298);if(!_0x38dc74)continue;_0x287298=Geoworld[_0xaeaecc(0xb1)]['fromRadians'](_0x287298[_0xaeaecc(0xf2)],_0x287298[_0xaeaecc(0xd5)],_0x38dc74),_0xadff53=Geoworld[_0xaeaecc(0xb1)][_0xaeaecc(0xc0)](_0x287298),_0x403176[_0x549aa0]=Geoworld['Cartesian3'][_0xaeaecc(0xde)](_0xadff53);}else _0xadff53=_0x403176[_0x549aa0];let _0x255a0d=_0x2741cd[_0xaeaecc(0x105)][_0x5ca9b2+0x1],_0x309a62;if(!_0x403176[_0x255a0d]){let _0x441495=_0x2741cd[_0xaeaecc(0xdc)][_0xaeaecc(0x106)][_0xaeaecc(0xb7)][_0x255a0d*0x3],_0x135a22=_0x2741cd['attributes'][_0xaeaecc(0x106)][_0xaeaecc(0xb7)][_0x255a0d*0x3+0x1],_0x2338c0=_0x2741cd[_0xaeaecc(0xdc)][_0xaeaecc(0x106)][_0xaeaecc(0xb7)][_0x255a0d*0x3+0x2];_0x309a62=new Geoworld['Cartesian3'](_0x441495,_0x135a22,_0x2338c0);let _0x16cced=Geoworld[_0xaeaecc(0xb1)][_0xaeaecc(0x115)](_0x309a62),_0x2c7249=_0x48fbd1[_0xaeaecc(0x11d)][_0xaeaecc(0x126)](_0x16cced);if(!_0x2c7249)continue;_0x16cced=Geoworld[_0xaeaecc(0xb1)][_0xaeaecc(0xba)](_0x16cced[_0xaeaecc(0xf2)],_0x16cced[_0xaeaecc(0xd5)],_0x2c7249),_0x309a62=Geoworld[_0xaeaecc(0xb1)][_0xaeaecc(0xc0)](_0x16cced),_0x403176[_0x255a0d]=Geoworld[_0xaeaecc(0xfa)][_0xaeaecc(0xde)](_0x309a62);}else _0x309a62=_0x403176[_0x255a0d];let _0x19923=_0x2741cd['indices'][_0x5ca9b2+0x2],_0x46bc6a;if(!_0x403176[_0x19923]){let _0x97794c=_0x2741cd['attributes'][_0xaeaecc(0x106)][_0xaeaecc(0xb7)][_0x19923*0x3],_0x341274=_0x2741cd[_0xaeaecc(0xdc)]['position']['values'][_0x19923*0x3+0x1],_0x413fdc=_0x2741cd['attributes'][_0xaeaecc(0x106)]['values'][_0x19923*0x3+0x2];_0x46bc6a=new Geoworld['Cartesian3'](_0x97794c,_0x341274,_0x413fdc);let _0x413a2a=Geoworld[_0xaeaecc(0xb1)][_0xaeaecc(0x115)](_0x46bc6a),_0x243b67=_0x48fbd1['globe'][_0xaeaecc(0x126)](_0x413a2a);if(!_0x243b67)continue;_0x413a2a=Geoworld['Cartographic'][_0xaeaecc(0xba)](_0x413a2a[_0xaeaecc(0xf2)],_0x413a2a[_0xaeaecc(0xd5)],_0x243b67),_0x46bc6a=Geoworld[_0xaeaecc(0xb1)][_0xaeaecc(0xc0)](_0x413a2a),_0x403176[_0x19923]=Geoworld['Cartesian3']['clone'](_0x46bc6a);}else _0x46bc6a=_0x403176[_0x19923];v12Scratch=Geoworld[_0xaeaecc(0xfa)][_0xaeaecc(0x8e)](_0x309a62,_0xadff53,v12Scratch),v13Scratch=Geoworld[_0xaeaecc(0xfa)][_0xaeaecc(0x8e)](_0x46bc6a,_0xadff53,v13Scratch),crossScratch=Geoworld[_0xaeaecc(0xfa)][_0xaeaecc(0x118)](v12Scratch,v13Scratch,crossScratch),_0x16764e+=0.5*Geoworld[_0xaeaecc(0xfa)][_0xaeaecc(0xd6)](crossScratch);}return _0x16764e;}function computeClampDistance(_0x137c17,_0xcd5ca6){const _0xf06fa2=_0x26f58a;let _0x52b2b1=0x0,_0x565593=[],_0x5d1811=_0xcd5ca6[_0xf06fa2(0xb6)]-0x1;for(let _0x2c0673=0x0;_0x2c0673<_0x5d1811;_0x2c0673++){let _0x5aadb0=_0xcd5ca6[_0x2c0673],_0x55d139=_0xcd5ca6[_0x2c0673+0x1],_0x33765a=Geoworld[_0xf06fa2(0xfa)]['angleBetween'](_0x5aadb0,_0x55d139),_0x4b9b49=_0x33765a/0x40,_0xdf6d63=Geoworld[_0xf06fa2(0xae)][_0xf06fa2(0xf4)](_0x4b9b49,0x615299),_0x10b49d=Geoworld[_0xf06fa2(0xaa)][_0xf06fa2(0x101)](_0x5aadb0,_0x55d139,_0xdf6d63,_0x565593),_0x3e1835=Geoworld[_0xf06fa2(0xfa)][_0xf06fa2(0xe6)](_0x10b49d),_0x148c91=_0x3e1835['length']-0x1;for(let _0x23d67f=0x0;_0x23d67f<_0x148c91;_0x23d67f++){let _0x28a88f=_0x3e1835[_0x23d67f],_0x420fbb=Geoworld[_0xf06fa2(0xb1)][_0xf06fa2(0x115)](_0x28a88f),_0x200015=_0x137c17[_0xf06fa2(0x11d)][_0xf06fa2(0x126)](_0x420fbb);_0x420fbb=Geoworld[_0xf06fa2(0xb1)][_0xf06fa2(0xba)](_0x420fbb[_0xf06fa2(0xf2)],_0x420fbb[_0xf06fa2(0xd5)],_0x200015);let _0x39ff25=Geoworld[_0xf06fa2(0xb1)][_0xf06fa2(0xc0)](_0x420fbb),_0x240581=_0x3e1835[_0x23d67f+0x1];_0x420fbb=Geoworld[_0xf06fa2(0xb1)][_0xf06fa2(0x115)](_0x240581),_0x200015=_0x137c17[_0xf06fa2(0x11d)][_0xf06fa2(0x126)](_0x420fbb),_0x420fbb=Geoworld['Cartographic'][_0xf06fa2(0xba)](_0x420fbb[_0xf06fa2(0xf2)],_0x420fbb['latitude'],_0x200015);let _0x525023=Geoworld[_0xf06fa2(0xb1)][_0xf06fa2(0xc0)](_0x420fbb);_0x52b2b1+=Geoworld[_0xf06fa2(0xfa)][_0xf06fa2(0xcf)](_0x39ff25,_0x525023);}}return _0x52b2b1;} const _0x2dcd=['_tileHeight','_errorEvent','CellWidth','Bottom','config','queryNumericValue','length','_tileFormat','_rectangle','fetchXML','push','_resource','createIfNeeded','tileFormat','fetchImage','reject','419457SwGhUi','south','_readyPromise','west','textContent','http://www.supermap.com/SuperMapCache/sci3d','Bounds','Rectangle','236373CMbYKn','1125637nuCOaH','Levels','41HnFaTZ','defer','434265mMIiCp','Level','url','defaultValue','tilingScheme','1mCubzE','requestImage\x20must\x20not\x20be\x20called\x20before\x20the\x20imagery\x20provider\x20is\x20ready.','Resource','prototype','_url','png','tilingScheme\x20must\x20not\x20be\x20called\x20before\x20the\x20imagery\x20provider\x20is\x20ready.','Left','pickFeatures','north','_tileWidth','documentElement','positionToTileXY','when','getDerivedResource','358136WtypFK','104547RXbXfC','4DnVeXS','An\x20error\x20occurred\x20while\x20accessing\x20','east','_urlTemplate','rectangle','tileDiscardPolicy','data/index/{y}/{x}.{fileExtension}?level={level}','_credit','Top','DeveloperError','southwest','northeast','_tilingScheme','maximumLevel\x20must\x20not\x20be\x20called\x20before\x20the\x20imagery\x20provider\x20is\x20ready.','requestImage','resolution','tileHeight\x20must\x20not\x20be\x20called\x20before\x20the\x20imagery\x20provider\x20is\x20ready.','queryNodes','abs','toRadians','minimumLevel','getTileCredits','FileExtentName','minimumLevel\x20must\x20not\x20be\x20called\x20before\x20the\x20imagery\x20provider\x20is\x20ready.','_ready','queryFirstNode','CellHeight','defineProperties','credit','_minimumLevel','resolve','RuntimeError','_maximumLevel','Math'];const _0x5f1ab6=_0x11ef;(function(_0x441437,_0x2ede7d){const _0x53763=_0x11ef;while(!![]){try{const _0x59beff=-parseInt(_0x53763(0x88))+-parseInt(_0x53763(0x90))+-parseInt(_0x53763(0xa9))+parseInt(_0x53763(0xab))*parseInt(_0x53763(0x93))+parseInt(_0x53763(0x95))+parseInt(_0x53763(0x9a))*parseInt(_0x53763(0x91))+parseInt(_0x53763(0xaa));if(_0x59beff===_0x2ede7d)break;else _0x441437['push'](_0x441437['shift']());}catch(_0x2b5f56){_0x441437['push'](_0x441437['shift']());}}}(_0x2dcd,0x9ed97));function _0x11ef(_0x45857f,_0x37a308){_0x45857f=_0x45857f-0x79;let _0x2dcd11=_0x2dcd[_0x45857f];return _0x2dcd11;}function SuperMapImageryProvider(_0x3087d0){const _0x1efcdd=_0x11ef;_0x3087d0=Geoworld['defaultValue'](_0x3087d0,{});if(!_0x3087d0['url'])throw new Geoworld[(_0x1efcdd(0xb4))]('options.url\x20is\x20required.');this[_0x1efcdd(0x9e)]=Geoworld['appendForwardSlash'](_0x3087d0[_0x1efcdd(0x97)]),this[_0x1efcdd(0x83)]=Geoworld[_0x1efcdd(0x9c)][_0x1efcdd(0x84)](this['_url']),this[_0x1efcdd(0xae)]=undefined,this[_0x1efcdd(0x79)]=new Geoworld['Event'](),this[_0x1efcdd(0xa4)]=0x100,this[_0x1efcdd(0xcd)]=0x100,this[_0x1efcdd(0x7f)]=_0x3087d0[_0x1efcdd(0x85)]||_0x1efcdd(0x9f),this[_0x1efcdd(0xc8)]=Geoworld[_0x1efcdd(0x98)](_0x3087d0[_0x1efcdd(0xbf)],0x0),this[_0x1efcdd(0xcb)]=_0x3087d0['maximumLevel'],this[_0x1efcdd(0x80)]=undefined,this[_0x1efcdd(0xb7)]=_0x3087d0[_0x1efcdd(0x99)],this['_tileDiscardPolicy']=_0x3087d0[_0x1efcdd(0xb0)];let _0x3adedc=Geoworld[_0x1efcdd(0x98)](_0x3087d0[_0x1efcdd(0xc7)],'');typeof _0x3adedc==='string'&&(_0x3adedc=new Geoworld['Credit'](_0x3adedc));this[_0x1efcdd(0xb2)]=_0x3adedc,this[_0x1efcdd(0xc3)]=![],this[_0x1efcdd(0x8a)]=Geoworld[_0x1efcdd(0xa7)][_0x1efcdd(0x94)]();let _0x4ca441=this;function _0x5a9054(_0x4d56a1){const _0x22e5dd=_0x1efcdd;let _0x4c6245=_0x22e5dd(0x8d),_0x1a3119=_0x4d56a1[_0x22e5dd(0xa5)],_0x47e607=XMLParser[_0x22e5dd(0xc4)](_0x1a3119,_0x22e5dd(0x8e),_0x4c6245),_0xfc2276=XMLParser[_0x22e5dd(0x7d)](_0x47e607,_0x22e5dd(0xa1),_0x4c6245),_0xa7c2c8=XMLParser[_0x22e5dd(0x7d)](_0x47e607,'Right',_0x4c6245),_0x2dff5d=XMLParser[_0x22e5dd(0x7d)](_0x47e607,_0x22e5dd(0xb3),_0x4c6245),_0x37173e=XMLParser[_0x22e5dd(0x7d)](_0x47e607,_0x22e5dd(0x7b),_0x4c6245),_0x227238=XMLParser['queryStringValue'](_0x1a3119,_0x22e5dd(0xc1),_0x4c6245),_0x46839c=XMLParser[_0x22e5dd(0x7d)](_0x1a3119,_0x22e5dd(0x7a),_0x4c6245),_0x498204=XMLParser[_0x22e5dd(0x7d)](_0x1a3119,_0x22e5dd(0xc5),_0x4c6245),_0x182604=XMLParser[_0x22e5dd(0xc4)](_0x1a3119,_0x22e5dd(0x92),_0x4c6245),_0x7cc6c0=XMLParser[_0x22e5dd(0xbc)](_0x182604,_0x22e5dd(0x96),_0x4c6245),_0x365a89=[];for(let _0x594617=0x0,_0x2100f1=_0x7cc6c0[_0x22e5dd(0x7e)];_0x594617<_0x2100f1;_0x594617++){_0x365a89[_0x22e5dd(0x82)](parseInt(_0x7cc6c0[_0x594617][_0x22e5dd(0x8c)],0xa));}_0x4ca441[_0x22e5dd(0x7f)]=Geoworld[_0x22e5dd(0x98)](_0x227238,_0x22e5dd(0x9f)),_0x4ca441[_0x22e5dd(0xa4)]=Geoworld[_0x22e5dd(0x98)](_0x46839c,0x100),_0x4ca441[_0x22e5dd(0xcd)]=Geoworld['defaultValue'](_0x498204,0x100);let _0x4754e0=_0x365a89[_0x22e5dd(0x7e)];_0x4ca441['_minimumLevel']=Geoworld[_0x22e5dd(0x98)](_0x365a89[0x0],0x0),_0x4ca441[_0x22e5dd(0xcb)]=Geoworld[_0x22e5dd(0x98)](_0x4ca441[_0x22e5dd(0xcb)],_0x365a89[_0x4754e0-0x1]);!_0x4ca441['_tilingScheme']&&(_0x4ca441['_tilingScheme']=new Geoworld['GeographicTilingScheme']());let _0x46c587=_0x4ca441['_tilingScheme'];!_0x4ca441[_0x22e5dd(0x80)]&&_0xfc2276&&_0xa7c2c8&&_0x2dff5d&&_0x37173e&&(_0x4ca441['_rectangle']=new Geoworld[(_0x22e5dd(0x8f))](Geoworld[_0x22e5dd(0xcc)]['toRadians'](_0xfc2276),Geoworld['Math'][_0x22e5dd(0xbe)](_0x37173e),Geoworld['Math'][_0x22e5dd(0xbe)](_0xa7c2c8),Geoworld[_0x22e5dd(0xcc)][_0x22e5dd(0xbe)](_0x2dff5d)));_0x4ca441['_rectangle']['west']<_0x46c587['rectangle']['west']&&(_0x4ca441[_0x22e5dd(0x80)][_0x22e5dd(0x8b)]=_0x46c587[_0x22e5dd(0xaf)][_0x22e5dd(0x8b)]);_0x4ca441[_0x22e5dd(0x80)][_0x22e5dd(0xad)]>_0x46c587[_0x22e5dd(0xaf)][_0x22e5dd(0xad)]&&(_0x4ca441['_rectangle'][_0x22e5dd(0xad)]=_0x46c587['rectangle'][_0x22e5dd(0xad)]);_0x4ca441[_0x22e5dd(0x80)][_0x22e5dd(0x89)]<_0x46c587[_0x22e5dd(0xaf)][_0x22e5dd(0x89)]&&(_0x4ca441[_0x22e5dd(0x80)][_0x22e5dd(0x89)]=_0x46c587[_0x22e5dd(0xaf)][_0x22e5dd(0x89)]);_0x4ca441[_0x22e5dd(0x80)][_0x22e5dd(0xa3)]>_0x46c587['rectangle'][_0x22e5dd(0xa3)]&&(_0x4ca441['_rectangle'][_0x22e5dd(0xa3)]=_0x46c587[_0x22e5dd(0xaf)][_0x22e5dd(0xa3)]);let _0x36d9d1=_0x46c587['positionToTileXY'](Geoworld[_0x22e5dd(0x8f)][_0x22e5dd(0xb5)](_0x4ca441['_rectangle']),_0x4ca441[_0x22e5dd(0xc8)]),_0x323f95=_0x46c587[_0x22e5dd(0xa6)](Geoworld[_0x22e5dd(0x8f)][_0x22e5dd(0xb6)](_0x4ca441[_0x22e5dd(0x80)]),_0x4ca441[_0x22e5dd(0xc8)]),_0x4382f4=(Math[_0x22e5dd(0xbd)](_0x323f95['x']-_0x36d9d1['x'])+0x1)*(Math[_0x22e5dd(0xbd)](_0x323f95['y']-_0x36d9d1['y'])+0x1);_0x4382f4>0x4&&(_0x4ca441[_0x22e5dd(0xc8)]=0x0),_0x4ca441[_0x22e5dd(0xae)]=_0x4ca441[_0x22e5dd(0x9e)]+_0x22e5dd(0xb1),_0x4ca441['_ready']=!![],_0x4ca441[_0x22e5dd(0x8a)][_0x22e5dd(0xc9)](!![]);}function _0x1903fa(_0x5716fb){const _0x299569=_0x1efcdd;let _0x128d87=_0x299569(0xac)+_0x4ca441['_url']+'.';_0x4ca441[_0x299569(0x8a)][_0x299569(0x87)](new Geoworld[(_0x299569(0xca))](_0x128d87));}let _0x2cca78=this[_0x1efcdd(0x83)]['getDerivedResource']({'url':_0x1efcdd(0x7c)});Geoworld['when'](_0x2cca78[_0x1efcdd(0x81)](),_0x5a9054,_0x1903fa);}Object[_0x5f1ab6(0xc6)](SuperMapImageryProvider[_0x5f1ab6(0x9d)],{'url':{'get':function(){return this['_url'];}},'tileWidth':{'get':function(){const _0x5bbecf=_0x5f1ab6;if(!this['_ready'])throw new DeveloperError('tileWidth\x20must\x20not\x20be\x20called\x20before\x20the\x20imagery\x20provider\x20is\x20ready.');return this[_0x5bbecf(0xa4)];}},'tileHeight':{'get':function(){const _0x443868=_0x5f1ab6;if(!this[_0x443868(0xc3)])throw new DeveloperError(_0x443868(0xbb));return this[_0x443868(0xcd)];}},'tileFormat':{'get':function(){const _0x198a10=_0x5f1ab6;return this[_0x198a10(0x7f)];}},'maximumLevel':{'get':function(){const _0x84f957=_0x5f1ab6;if(!this[_0x84f957(0xc3)])throw new DeveloperError(_0x84f957(0xb8));return this[_0x84f957(0xba)]===0x1?this[_0x84f957(0xcb)]:this[_0x84f957(0xcb)]-0x1;}},'minimumLevel':{'get':function(){const _0x59b0d8=_0x5f1ab6;if(!this[_0x59b0d8(0xc3)])throw new DeveloperError(_0x59b0d8(0xc2));return this['_minimumLevel'];}},'tilingScheme':{'get':function(){const _0xfe16c9=_0x5f1ab6;if(!this[_0xfe16c9(0xc3)])throw new DeveloperError(_0xfe16c9(0xa0));return this[_0xfe16c9(0xb7)];}},'rectangle':{'get':function(){const _0x37cd71=_0x5f1ab6;if(!this[_0x37cd71(0xc3)])throw new DeveloperError('rectangle\x20must\x20not\x20be\x20called\x20before\x20the\x20imagery\x20provider\x20is\x20ready.');return this[_0x37cd71(0x80)];}},'errorEvent':{'get':function(){const _0x2fbfb5=_0x5f1ab6;return this[_0x2fbfb5(0x79)];}},'ready':{'get':function(){const _0xa15d6f=_0x5f1ab6;return this[_0xa15d6f(0xc3)];}},'credit':{'get':function(){const _0x9288f8=_0x5f1ab6;return this[_0x9288f8(0xb2)];}},'hasAlphaChannel':{'get':function(){return !![];}},'readyPromise':{'get':function(){return this['_readyPromise'];}},'tileDiscardPolicy':{'get':function(){return this['_tileDiscardPolicy'];}}}),SuperMapImageryProvider[_0x5f1ab6(0x9d)][_0x5f1ab6(0xc0)]=function(_0x4200dd,_0xabc996,_0x1b81f3){return undefined;};function loadImage(_0x2891d6,_0x3adf27){const _0xeec7e7=_0x5f1ab6;let _0x4c7c68=Geoworld[_0xeec7e7(0x9c)][_0xeec7e7(0x84)](_0x3adf27);if(_0x2891d6['tileDiscardPolicy'])return _0x4c7c68[_0xeec7e7(0x86)]({'preferBlob':!![],'preferImageBitmap':!![],'flipY':!![]});return _0x4c7c68[_0xeec7e7(0x86)]();}SuperMapImageryProvider['prototype'][_0x5f1ab6(0xb9)]=function(_0x2fd07a,_0xccf739,_0x542bd3,_0x143ccb){const _0xb52c68=_0x5f1ab6;if(!this['_ready'])throw new Geoworld[(_0xb52c68(0xb4))](_0xb52c68(0x9b));let _0x497719=this[_0xb52c68(0x83)][_0xb52c68(0xa8)]({'url':this[_0xb52c68(0xae)],'request':_0x143ccb,'templateValues':{'x':_0x2fd07a,'y':_0xccf739,'level':_0x542bd3,'fileExtension':this['_tileFormat']}});return loadImage(this,_0x497719);},SuperMapImageryProvider[_0x5f1ab6(0x9d)][_0x5f1ab6(0xa2)]=function(){return undefined;}; const _0x4328=['272089rYxiuz','hasVertexNormals\x20must\x20not\x20be\x20called\x20before\x20the\x20terrain\x20provider\x20is\x20ready.','promise','Event','TilesBounds','zigZagDeltaDecode','19oISVAR','startY','Credit','getNumberOfXTilesAtLevel','availability\x20must\x20not\x20be\x20called\x20before\x20the\x20terrain\x20provider\x20is\x20ready.','_maximumLevel','fetchXML','availability','string','_heightmapWidth','TerrainProvider','availabilityPromiseCache','statusCode','isTileAvailable','1qkJSWc','requestVertexNormals','application/vnd.quantized-mesh,application/octet-stream;q=0.9,*/*;q=0.01','hasMetadata','prototype','StartCol','getFloat32','resource','isHeightmap','version','queryChildNodes','Cartesian3','_scheme','otherwise','BYTES_PER_ELEMENT','available','getFloat64','QuantizedMeshTerrainData','2UZEenQ','_tilingScheme','Right','_availability','203pCAmQG','resolve','275194hAKluP','availabilityTilesLoaded','OrientedBoundingBox','credit\x20must\x20not\x20be\x20called\x20before\x20the\x20terrain\x20provider\x20is\x20ready.','subarray','_hasMetadata','createTypedArrayFromArrayBuffer','buffer','DeveloperError','_layers','_tileCredits','littleEndianExtensionSize','appendForwardSlash','_hasVertexNormals','requestMetadata','BoundingSphere','TileBounds','_credit','OCT_VERTEX_NORMALS','when','IndexDatatype','14TTqxUN','Top','getStringFromTypedArray','hasWaterMask','parse','availabilityLevels','TileAvailability','97uYvQLR','tileXYToRectangle','_requestWaterMask','reject','1.0.0','queryFirstNode','_ellipsoid','Bounds','22403wWcvID','1549RPxTtx','_hasWaterMask','fromRectangle','_requestMetadata','getLevelMaximumGeometricError','createIfNeeded','WATER_MASK','getNumberOfYTilesAtLevel','inflate','requestWaterMask','intersection','push','285066wRFVXx','url','addAvailableTileRange','config','defined','_rectangle','_errorEvent','startX','textContent','_requestVertexNormals','_levelZeroMaximumGeometricError','options.url\x20is\x20required.','indexOf','defineProperties','tms','endX','AttributeCompression','EndCol','defaultValue','credit','_readyPromise','length','floor','Rectangle','Resource','getDerivedResource','218675gZXeqE','tileUrlTemplates','level','hasMetadata\x20must\x20not\x20be\x20called\x20before\x20the\x20terrain\x20provider\x20is\x20ready.','fetchArrayBuffer','requestTileGeometry','2.1.0','queryNumericAttribute','requestTileGeometry\x20must\x20not\x20be\x20called\x20before\x20the\x20terrain\x20provider\x20is\x20ready.','ellipsoid','then','documentElement','StartRow','Levels','data/path/{z}/{x}/{y}.terrainz?v={version}','queryNumericValue','getUint32','1Fzfvzh','_ready','_levels','getEstimatedLevelZeroGeometricErrorForAHeightmap'];const _0x17943b=_0x21d7;(function(_0x55931f,_0xffe8e5){const _0x5f3792=_0x21d7;while(!![]){try{const _0x3321d4=-parseInt(_0x5f3792(0x178))+parseInt(_0x5f3792(0x14c))*parseInt(_0x5f3792(0x160))+-parseInt(_0x5f3792(0x176))*-parseInt(_0x5f3792(0x19d))+parseInt(_0x5f3792(0x194))*-parseInt(_0x5f3792(0x18d))+parseInt(_0x5f3792(0x19c))*-parseInt(_0x5f3792(0x152))+parseInt(_0x5f3792(0x1d4))*-parseInt(_0x5f3792(0x1c3))+-parseInt(_0x5f3792(0x172))*-parseInt(_0x5f3792(0x1a9));if(_0x3321d4===_0xffe8e5)break;else _0x55931f['push'](_0x55931f['shift']());}catch(_0x53f87a){_0x55931f['push'](_0x55931f['shift']());}}}(_0x4328,0x39908));function LayerInformation(_0x5b9a72){const _0x4db3fa=_0x21d7;this[_0x4db3fa(0x167)]=_0x5b9a72[_0x4db3fa(0x167)],this['version']=_0x5b9a72[_0x4db3fa(0x169)],this['isHeightmap']=_0x5b9a72[_0x4db3fa(0x168)],this['tileUrlTemplates']=_0x5b9a72['tileUrlTemplates'],this['availability']=_0x5b9a72['availability'],this['hasVertexNormals']=_0x5b9a72['hasVertexNormals'],this[_0x4db3fa(0x190)]=_0x5b9a72[_0x4db3fa(0x190)],this['hasMetadata']=_0x5b9a72[_0x4db3fa(0x163)],this[_0x4db3fa(0x192)]=_0x5b9a72[_0x4db3fa(0x192)],this[_0x4db3fa(0x179)]=_0x5b9a72[_0x4db3fa(0x179)],this[_0x4db3fa(0x183)]=_0x5b9a72[_0x4db3fa(0x183)],this[_0x4db3fa(0x179)]=_0x5b9a72[_0x4db3fa(0x179)],this[_0x4db3fa(0x15d)]={};}let QuantizedMeshExtensionIds={'OCT_VERTEX_NORMALS':0x1,'WATER_MASK':0x2,'METADATA':0x4};function SuperMapTerrainProvider(_0x436251){const _0x4e0182=_0x21d7;if(!Geoworld[_0x4e0182(0x1ad)](_0x436251)||!Geoworld[_0x4e0182(0x1ad)](_0x436251[_0x4e0182(0x1aa)]))throw new Geoworld[(_0x4e0182(0x180))](_0x4e0182(0x1b4));this['_heightmapWidth']=0x41,this['_heightmapStructure']=undefined,this[_0x4e0182(0x19e)]=![],this[_0x4e0182(0x185)]=![],this[_0x4e0182(0x19a)]=_0x436251[_0x4e0182(0x1cc)],this['_requestVertexNormals']=Geoworld[_0x4e0182(0x1bb)](_0x436251[_0x4e0182(0x161)],![]),this[_0x4e0182(0x196)]=Geoworld[_0x4e0182(0x1bb)](_0x436251[_0x4e0182(0x1a6)],![]),this[_0x4e0182(0x1a0)]=Geoworld['defaultValue'](_0x436251[_0x4e0182(0x186)],!![]),this[_0x4e0182(0x1af)]=new Geoworld[(_0x4e0182(0x14f))]();let _0xdd7c4c=_0x436251[_0x4e0182(0x1bc)];typeof _0xdd7c4c===_0x4e0182(0x15a)&&(_0xdd7c4c=new Geoworld[(_0x4e0182(0x154))](_0xdd7c4c));this[_0x4e0182(0x189)]=_0xdd7c4c,this[_0x4e0182(0x16c)]=_0x4e0182(0x1b7),this[_0x4e0182(0x175)]=undefined;let _0x4ee216=Geoworld['when']['defer']();this[_0x4e0182(0x1d5)]=![],this[_0x4e0182(0x1bd)]=_0x4ee216,this[_0x4e0182(0x182)]=undefined;let _0xdba63=this,_0xf8aa77,_0x4cad2=this[_0x4e0182(0x181)]=[],_0x48cbe5=[],_0xecdecb=0x0;Geoworld['when'](_0x436251[_0x4e0182(0x1aa)])[_0x4e0182(0x1cd)](function(_0x1889a2){const _0x10411d=_0x4e0182;_0xf8aa77=Geoworld[_0x10411d(0x1c1)][_0x10411d(0x1a2)](_0x1889a2),_0xf8aa77[_0x10411d(0x184)]();let _0x4364c2=_0xf8aa77[_0x10411d(0x1c2)]({'url':_0x10411d(0x1ac)});_0x4364c2[_0x10411d(0x158)]()['then'](_0x147aa5)[_0x10411d(0x16d)](_0x1ff218);})[_0x4e0182(0x16d)](function(_0x3129e7){const _0x54ce0c=_0x4e0182;_0x4ee216[_0x54ce0c(0x197)](_0x3129e7);});function _0x147aa5(_0x192df9){const _0x1f3608=_0x4e0182;let _0xdf44f1=_0x192df9[_0x1f3608(0x1ce)],_0x167738='data/path/{z}/{x}/{y}.terrainz?v={version}';_0xdba63['_tilingScheme']=new Geoworld['GeographicTilingScheme']({'numberOfLevelZeroTilesX':0x2,'numberOfLevelZeroTilesY':0x1,'ellipsoid':_0xdba63[_0x1f3608(0x19a)]}),_0xdba63[_0x1f3608(0x1b3)]=Geoworld[_0x1f3608(0x15c)][_0x1f3608(0x1d7)](_0xdba63[_0x1f3608(0x173)][_0x1f3608(0x1cc)],_0xdba63[_0x1f3608(0x15b)],_0xdba63[_0x1f3608(0x173)][_0x1f3608(0x155)](0x0));let _0x5810cb=XMLParser[_0x1f3608(0x199)](_0xdf44f1,_0x1f3608(0x19b),undefined),_0x2fdb40=XMLParser['queryNumericValue'](_0x5810cb,'Left',undefined),_0x282bb3=XMLParser[_0x1f3608(0x1d2)](_0x5810cb,_0x1f3608(0x174),undefined),_0x26103e=XMLParser[_0x1f3608(0x1d2)](_0x5810cb,'Bottom',undefined),_0x38c47e=XMLParser[_0x1f3608(0x1d2)](_0x5810cb,_0x1f3608(0x18e),undefined);Geoworld[_0x1f3608(0x1ad)](_0x2fdb40)&&Geoworld[_0x1f3608(0x1ad)](_0x282bb3)&&Geoworld[_0x1f3608(0x1ad)](_0x26103e)&&Geoworld[_0x1f3608(0x1ad)](_0x38c47e)&&(_0xdba63['_rectangle']=Geoworld[_0x1f3608(0x1c0)]['fromDegrees'](_0x2fdb40,_0x26103e,_0x282bb3,_0x38c47e));let _0x51cc86=XMLParser[_0x1f3608(0x199)](_0xdf44f1,_0x1f3608(0x1d0),undefined),_0x2ebe11=XMLParser['queryChildNodes'](_0x51cc86,'Level',undefined),_0x5b34aa=[];for(let _0x2ed53b=0x0,_0x55cb23=_0x2ebe11[_0x1f3608(0x1be)];_0x2ed53b<_0x55cb23;_0x2ed53b++){let _0x21ba05=parseInt(_0x2ebe11[_0x2ed53b][_0x1f3608(0x1b1)]);_0x5b34aa[_0x1f3608(0x1a8)](_0x21ba05);}let _0x485c8d=_0x5b34aa[0x0],_0x31ae57=_0x5b34aa[_0x5b34aa[_0x1f3608(0x1be)]-0x1];_0xdba63[_0x1f3608(0x1d6)]=_0x5b34aa;let _0x266500=XMLParser[_0x1f3608(0x199)](_0xdf44f1,'Available',undefined);if(_0x266500){let _0x59b833=XMLParser['queryChildNodes'](_0x266500,_0x1f3608(0x150),undefined),_0x7418b=_0x485c8d>0x0?_0x5b34aa[_0x1f3608(0x1be)]+0x1:_0x5b34aa[_0x1f3608(0x1be)],_0x323465=new Array(_0x7418b);for(let _0x3b1235=0x0;_0x3b1235<_0x485c8d;_0x3b1235++){_0x323465[_0x3b1235]=[];}for(let _0x18e36b=0x0,_0x2273ac=_0x59b833[_0x1f3608(0x1be)];_0x18e36b<_0x2273ac;_0x18e36b++){let _0x5587d0=_0x59b833[_0x18e36b],_0x4e7b91=XMLParser[_0x1f3608(0x1ca)](_0x5587d0,_0x1f3608(0x1c5),undefined),_0x49c414=[];_0x323465[_0x4e7b91]=_0x49c414;let _0xf2c012=XMLParser[_0x1f3608(0x16a)](_0x5587d0,_0x1f3608(0x188),undefined);for(let _0x5775b7=0x0,_0x5f0b94=_0xf2c012['length'];_0x5775b7<_0x5f0b94;_0x5775b7++){let _0x5263a2=_0xf2c012[_0x5775b7],_0x2c9583=XMLParser['queryNumericValue'](_0x5263a2,_0x1f3608(0x165),undefined),_0x19f1a6=XMLParser[_0x1f3608(0x1d2)](_0x5263a2,_0x1f3608(0x1cf),undefined),_0x565eb1=XMLParser['queryNumericValue'](_0x5263a2,_0x1f3608(0x1ba),undefined),_0x253f06=XMLParser[_0x1f3608(0x1d2)](_0x5263a2,'EndRow',undefined);_0x49c414[_0x1f3608(0x1a8)]({'startX':_0x2c9583,'startY':_0x19f1a6,'endX':_0x565eb1,'endY':_0x253f06});}}_0x323465[0x0]=[{'startX':0x0,'startY':0x0,'endX':0x1,'endY':0x1}];let _0x14fb00=new Geoworld[(_0x1f3608(0x193))](_0xdba63[_0x1f3608(0x173)],_0x31ae57);for(let _0x244070=0x0;_0x244070<_0x323465[_0x1f3608(0x1be)];++_0x244070){let _0x3ff6e1=_0x323465[_0x244070],_0x80775d=_0xdba63['_tilingScheme'][_0x1f3608(0x1a4)](_0x244070);!Geoworld[_0x1f3608(0x1ad)](_0x48cbe5[_0x244070])&&(_0x48cbe5[_0x244070]=[]);if(Geoworld[_0x1f3608(0x1ad)](_0x3ff6e1))for(let _0x57c96f=0x0;_0x57c96f<_0x3ff6e1['length'];++_0x57c96f){let _0x3c574e=_0x3ff6e1[_0x57c96f],_0x3c30e8=_0x80775d-_0x3c574e['endY']-0x1,_0x2a2c55=_0x80775d-_0x3c574e[_0x1f3608(0x153)]-0x1;_0x48cbe5[_0x244070][_0x1f3608(0x1a8)]([_0x3c574e[_0x1f3608(0x1b0)],_0x3c30e8,_0x3c574e[_0x1f3608(0x1b8)],_0x2a2c55]),_0x14fb00[_0x1f3608(0x1ab)](_0x244070,_0x3c574e['startX'],_0x3c30e8,_0x3c574e['endX'],_0x2a2c55);}}_0xdba63[_0x1f3608(0x175)]=_0x14fb00;}_0x4cad2[_0x1f3608(0x1a8)](new LayerInformation({'resource':_0xf8aa77,'version':'1.0.0','isHeightmap':![],'tileUrlTemplates':_0x167738,'availability':undefined,'hasVertexNormals':![],'hasWaterMask':![],'hasMetadata':![],'availabilityLevels':0x0,'availabilityTilesLoaded':![],'littleEndianExtensionSize':!![]}));let _0x4f8736=_0x48cbe5[_0x1f3608(0x1be)];if(_0x4f8736>0x0){let _0x5233bf=_0xdba63[_0x1f3608(0x175)]=new Geoworld[(_0x1f3608(0x193))](_0xdba63[_0x1f3608(0x173)],_0xecdecb);for(let _0x42a2b4=0x0;_0x42a2b4<_0x4f8736;++_0x42a2b4){let _0x1b3264=_0x48cbe5[_0x42a2b4];for(let _0x331242=0x0;_0x331242<_0x1b3264[_0x1f3608(0x1be)];++_0x331242){let _0x2a7e46=_0x1b3264[_0x331242];_0x5233bf[_0x1f3608(0x1ab)](_0x42a2b4,_0x2a7e46[0x0],_0x2a7e46[0x1],_0x2a7e46[0x2],_0x2a7e46[0x3]);}}}_0xdba63['_ready']=!![],_0xdba63[_0x1f3608(0x1bd)][_0x1f3608(0x177)](!![]);}function _0x1ff218(_0x3a7109){const _0x4f188d=_0x4e0182;Geoworld['defined'](_0x3a7109)&&_0x3a7109[_0x4f188d(0x15e)]===0x194&&_0x147aa5({'tilejson':_0x4f188d(0x1c9),'format':'quantized-mesh-1.0','version':_0x4f188d(0x198),'scheme':'tms','tiles':[_0x4f188d(0x1d1)]});}}Object[_0x17943b(0x1b6)](SuperMapTerrainProvider['prototype'],{'errorEvent':{'get':function(){const _0x4c4cc2=_0x17943b;return this[_0x4c4cc2(0x1af)];}},'credit':{'get':function(){const _0x4320e7=_0x17943b;if(!this['_ready'])throw new Geoworld[(_0x4320e7(0x180))](_0x4320e7(0x17b));return this['_credit'];}},'tilingScheme':{'get':function(){const _0x5883a6=_0x17943b;if(!this[_0x5883a6(0x1d5)])throw new Geoworld[(_0x5883a6(0x180))]('tilingScheme\x20must\x20not\x20be\x20called\x20before\x20the\x20terrain\x20provider\x20is\x20ready.');return this[_0x5883a6(0x173)];}},'ready':{'get':function(){const _0x2cf6ed=_0x17943b;return this[_0x2cf6ed(0x1d5)];}},'readyPromise':{'get':function(){const _0x2de4a9=_0x17943b;return this[_0x2de4a9(0x1bd)][_0x2de4a9(0x14e)];}},'hasWaterMask':{'get':function(){const _0x2c5d40=_0x17943b;if(!this['_ready'])throw new Geoworld[(_0x2c5d40(0x180))]('hasWaterMask\x20must\x20not\x20be\x20called\x20before\x20the\x20terrain\x20provider\x20is\x20ready.');return this['_hasWaterMask']&&this['_requestWaterMask'];}},'hasVertexNormals':{'get':function(){const _0x10b726=_0x17943b;if(!this['_ready'])throw new Geoworld[(_0x10b726(0x180))](_0x10b726(0x14d));return this[_0x10b726(0x185)]&&this['_requestVertexNormals'];}},'hasMetadata':{'get':function(){const _0x4f03c0=_0x17943b;if(!this['_ready'])throw new Geoworld[(_0x4f03c0(0x180))](_0x4f03c0(0x1c6));return this[_0x4f03c0(0x17d)]&&this[_0x4f03c0(0x1a0)];}},'requestVertexNormals':{'get':function(){const _0x5d3f33=_0x17943b;return this[_0x5d3f33(0x1b2)];}},'requestWaterMask':{'get':function(){const _0x3bdcf2=_0x17943b;return this[_0x3bdcf2(0x196)];}},'requestMetadata':{'get':function(){const _0x30bde5=_0x17943b;return this[_0x30bde5(0x1a0)];}},'availability':{'get':function(){const _0x19e72c=_0x17943b;if(!this[_0x19e72c(0x1d5)])throw new Geoworld['DeveloperError'](_0x19e72c(0x156));return this[_0x19e72c(0x175)];}}});function createQuantizedMeshTerrainData(_0x19e17,_0x5bc9aa,_0x2de153,_0x311abf,_0x4cf7cc,_0x4b2a74){const _0x3ea41c=_0x17943b;let _0x480a6c=_0x4b2a74[_0x3ea41c(0x183)],_0x122d91=0x0,_0x37fcb4=0x3,_0x19c480=_0x37fcb4+0x1,_0x49b38b=Float64Array[_0x3ea41c(0x16e)]*_0x37fcb4,_0x171529=Float64Array[_0x3ea41c(0x16e)]*_0x19c480,_0x3ef229=0x3,_0x36aab4=Uint16Array[_0x3ea41c(0x16e)]*_0x3ef229,_0x584197=0x3,_0x5c566e=Uint16Array[_0x3ea41c(0x16e)],_0x5e6133=_0x5c566e*_0x584197,_0x532efe=new DataView(_0x5bc9aa),_0x26cad5=new Geoworld[(_0x3ea41c(0x16b))](_0x532efe['getFloat64'](_0x122d91,!![]),_0x532efe['getFloat64'](_0x122d91+0x8,!![]),_0x532efe[_0x3ea41c(0x170)](_0x122d91+0x10,!![]));_0x122d91+=_0x49b38b;let _0x447490=_0x532efe[_0x3ea41c(0x166)](_0x122d91,!![]);_0x122d91+=Float32Array['BYTES_PER_ELEMENT'];let _0x36ba9c=_0x532efe[_0x3ea41c(0x166)](_0x122d91,!![]);_0x122d91+=Float32Array[_0x3ea41c(0x16e)];let _0x566b02=new Geoworld[(_0x3ea41c(0x187))](new Geoworld[(_0x3ea41c(0x16b))](_0x532efe[_0x3ea41c(0x170)](_0x122d91,!![]),_0x532efe['getFloat64'](_0x122d91+0x8,!![]),_0x532efe[_0x3ea41c(0x170)](_0x122d91+0x10,!![])),_0x532efe[_0x3ea41c(0x170)](_0x122d91+_0x49b38b,!![]));_0x122d91+=_0x171529;let _0x1c7324=new Geoworld[(_0x3ea41c(0x16b))](_0x532efe[_0x3ea41c(0x170)](_0x122d91,!![]),_0x532efe[_0x3ea41c(0x170)](_0x122d91+0x8,!![]),_0x532efe['getFloat64'](_0x122d91+0x10,!![]));_0x122d91+=_0x49b38b;let _0x4391d3=_0x532efe['getUint32'](_0x122d91,!![]);_0x122d91+=Uint32Array[_0x3ea41c(0x16e)];let _0x162393=new Uint16Array(_0x5bc9aa,_0x122d91,_0x4391d3*0x3);_0x122d91+=_0x4391d3*_0x36aab4;_0x4391d3>0x40*0x400&&(_0x5c566e=Uint32Array['BYTES_PER_ELEMENT'],_0x5e6133=_0x5c566e*_0x584197);let _0x40f913=_0x162393[_0x3ea41c(0x17c)](0x0,_0x4391d3),_0x52896b=_0x162393[_0x3ea41c(0x17c)](_0x4391d3,0x2*_0x4391d3),_0x393769=_0x162393['subarray'](_0x4391d3*0x2,0x3*_0x4391d3);Geoworld[_0x3ea41c(0x1b9)][_0x3ea41c(0x151)](_0x40f913,_0x52896b,_0x393769);_0x122d91%_0x5c566e!==0x0&&(_0x122d91+=_0x5c566e-_0x122d91%_0x5c566e);let _0x23a21b=_0x532efe['getUint32'](_0x122d91,!![]);_0x122d91+=Uint32Array[_0x3ea41c(0x16e)];let _0x177b63=Geoworld[_0x3ea41c(0x18c)][_0x3ea41c(0x17e)](_0x4391d3,_0x5bc9aa,_0x122d91,_0x23a21b*_0x584197);_0x122d91+=_0x23a21b*_0x5e6133;let _0x1a77ac=0x0,_0x1f8376=_0x177b63[_0x3ea41c(0x1be)];for(let _0xabbc2e=0x0;_0xabbc2e<_0x1f8376;++_0xabbc2e){let _0x1cabd1=_0x177b63[_0xabbc2e];_0x177b63[_0xabbc2e]=_0x1a77ac-_0x1cabd1,_0x1cabd1===0x0&&++_0x1a77ac;}let _0x2e8f9d=_0x532efe[_0x3ea41c(0x1d3)](_0x122d91,!![]);_0x122d91+=Uint32Array[_0x3ea41c(0x16e)];let _0x2d3a8d=Geoworld[_0x3ea41c(0x18c)][_0x3ea41c(0x17e)](_0x4391d3,_0x5bc9aa,_0x122d91,_0x2e8f9d);_0x122d91+=_0x2e8f9d*_0x5c566e;let _0x251763=_0x532efe[_0x3ea41c(0x1d3)](_0x122d91,!![]);_0x122d91+=Uint32Array['BYTES_PER_ELEMENT'];let _0x3d9fd4=Geoworld[_0x3ea41c(0x18c)][_0x3ea41c(0x17e)](_0x4391d3,_0x5bc9aa,_0x122d91,_0x251763);_0x122d91+=_0x251763*_0x5c566e;let _0xab359c=_0x532efe['getUint32'](_0x122d91,!![]);_0x122d91+=Uint32Array[_0x3ea41c(0x16e)];let _0x46a6e7=Geoworld[_0x3ea41c(0x18c)][_0x3ea41c(0x17e)](_0x4391d3,_0x5bc9aa,_0x122d91,_0xab359c);_0x122d91+=_0xab359c*_0x5c566e;let _0x5ef8eb=_0x532efe['getUint32'](_0x122d91,!![]);_0x122d91+=Uint32Array['BYTES_PER_ELEMENT'];let _0x1a9451=Geoworld[_0x3ea41c(0x18c)][_0x3ea41c(0x17e)](_0x4391d3,_0x5bc9aa,_0x122d91,_0x5ef8eb);_0x122d91+=_0x5ef8eb*_0x5c566e;let _0x53bd0b,_0x3ff24d;while(_0x122d91<_0x532efe['byteLength']){let _0x278098=_0x532efe['getUint8'](_0x122d91,!![]);_0x122d91+=Uint8Array[_0x3ea41c(0x16e)];let _0x188770=_0x532efe[_0x3ea41c(0x1d3)](_0x122d91,_0x480a6c);_0x122d91+=Uint32Array[_0x3ea41c(0x16e)];if(_0x278098===QuantizedMeshExtensionIds[_0x3ea41c(0x18a)]&&_0x19e17[_0x3ea41c(0x1b2)])_0x53bd0b=new Uint8Array(_0x5bc9aa,_0x122d91,_0x4391d3*0x2);else {if(_0x278098===QuantizedMeshExtensionIds[_0x3ea41c(0x1a3)]&&_0x19e17['_requestWaterMask'])_0x3ff24d=new Uint8Array(_0x5bc9aa,_0x122d91,_0x188770);else {if(_0x278098===QuantizedMeshExtensionIds['METADATA']&&_0x19e17[_0x3ea41c(0x1a0)]){let _0x3557eb=_0x532efe[_0x3ea41c(0x1d3)](_0x122d91,!![]);if(_0x3557eb>0x0){let _0x42d79b=Geoworld[_0x3ea41c(0x18f)](new Uint8Array(_0x5bc9aa),_0x122d91+Uint32Array['BYTES_PER_ELEMENT'],_0x3557eb),_0x481a08=JSON[_0x3ea41c(0x191)](_0x42d79b),_0x1344b4=_0x481a08[_0x3ea41c(0x16f)];if(Geoworld[_0x3ea41c(0x1ad)](_0x1344b4))for(let _0xe40d77=0x0;_0xe40d77<_0x1344b4[_0x3ea41c(0x1be)];++_0xe40d77){let _0x3877d2=_0x2de153+_0xe40d77+0x1,_0x2db8f9=_0x1344b4[_0xe40d77],_0x421296=_0x19e17[_0x3ea41c(0x173)]['getNumberOfYTilesAtLevel'](_0x3877d2);for(let _0x16e549=0x0;_0x16e549<_0x2db8f9[_0x3ea41c(0x1be)];++_0x16e549){let _0x51b999=_0x2db8f9[_0x16e549],_0x3f728d=_0x421296-_0x51b999['endY']-0x1,_0x27e512=_0x421296-_0x51b999['startY']-0x1;_0x19e17[_0x3ea41c(0x159)][_0x3ea41c(0x1ab)](_0x3877d2,_0x51b999['startX'],_0x3f728d,_0x51b999[_0x3ea41c(0x1b8)],_0x27e512),_0x4b2a74[_0x3ea41c(0x159)][_0x3ea41c(0x1ab)](_0x3877d2,_0x51b999[_0x3ea41c(0x1b0)],_0x3f728d,_0x51b999[_0x3ea41c(0x1b8)],_0x27e512);}}}_0x4b2a74['availabilityTilesLoaded'][_0x3ea41c(0x1ab)](_0x2de153,_0x311abf,_0x4cf7cc,_0x311abf,_0x4cf7cc);}}}_0x122d91+=_0x188770;}let _0x1a119c=_0x19e17[_0x3ea41c(0x1a1)](_0x2de153)*0x5,_0x35dc78=_0x19e17[_0x3ea41c(0x173)][_0x3ea41c(0x195)](_0x311abf,_0x4cf7cc,_0x2de153),_0x2c9ad6=Geoworld[_0x3ea41c(0x17a)][_0x3ea41c(0x19f)](_0x35dc78,_0x447490,_0x36ba9c,_0x19e17[_0x3ea41c(0x173)]['ellipsoid']);return new Geoworld[(_0x3ea41c(0x171))]({'center':_0x26cad5,'minimumHeight':_0x447490,'maximumHeight':_0x36ba9c,'boundingSphere':_0x566b02,'orientedBoundingBox':_0x2c9ad6,'horizonOcclusionPoint':_0x1c7324,'quantizedVertices':_0x162393,'encodedNormals':_0x53bd0b,'indices':_0x177b63,'westIndices':_0x2d3a8d,'southIndices':_0x3d9fd4,'eastIndices':_0x46a6e7,'northIndices':_0x1a9451,'westSkirtHeight':_0x1a119c,'southSkirtHeight':_0x1a119c,'eastSkirtHeight':_0x1a119c,'northSkirtHeight':_0x1a119c,'childTileMask':0xf,'waterMask':_0x3ff24d,'credits':_0x19e17['_tileCredits']});}SuperMapTerrainProvider['prototype'][_0x17943b(0x1c8)]=function(_0x2456c8,_0x279dd3,_0xa9d6d8,_0x48c1d3){const _0xfd42e8=_0x17943b;if(!this['_ready'])throw new Geoworld[(_0xfd42e8(0x180))](_0xfd42e8(0x1cb));if(_0xa9d6d8===0x0){let _0x185f4c=new Uint16Array(0x40*0x40*0x3);for(let _0x5ac382=0x0;_0x5ac382<0x40;_0x5ac382++){for(let _0x2dc575=0x0;_0x2dc575<0x40;_0x2dc575++){_0x185f4c[_0x5ac382*0x40+_0x2dc575]=Math['floor'](_0x5ac382*0x7fff/0x3f),_0x185f4c[0x40*0x40+_0x5ac382*0x40+_0x2dc575]=Math[_0xfd42e8(0x1bf)](_0x2dc575*0x7fff/0x3f),_0x185f4c[0x2*0x40*0x40+_0x5ac382*0x40+_0x2dc575]=0x0;}}let _0x3e500d=new Uint16Array(0x3f*0x3f*0x6);for(let _0x5b837b=0x0;_0x5b837b<0x3f;_0x5b837b++){for(let _0x55579e=0x0;_0x55579e<0x3f;_0x55579e++){_0x3e500d[0x6*(_0x5b837b*0x3f+_0x55579e)]=_0x5b837b*0x40+_0x55579e,_0x3e500d[0x6*(_0x5b837b*0x3f+_0x55579e)+0x1]=(_0x5b837b+0x1)*0x40+_0x55579e+0x1,_0x3e500d[0x6*(_0x5b837b*0x3f+_0x55579e)+0x2]=_0x5b837b*0x40+_0x55579e+0x1,_0x3e500d[0x6*(_0x5b837b*0x3f+_0x55579e)+0x3]=(_0x5b837b+0x1)*0x40+_0x55579e,_0x3e500d[0x6*(_0x5b837b*0x3f+_0x55579e)+0x4]=(_0x5b837b+0x1)*0x40+_0x55579e+0x1,_0x3e500d[0x6*(_0x5b837b*0x3f+_0x55579e)+0x5]=_0x5b837b*0x40+_0x55579e;}}let _0x41137f=new Uint16Array(0x0),_0x10cc03=new Geoworld[(_0xfd42e8(0x16b))](NaN,-Infinity,NaN),_0x51468a=new Geoworld[(_0xfd42e8(0x16b))](0x0,-3189068.5,0x0);return _0x2456c8===0x1&&(_0x51468a['y']=3189068.5,_0x10cc03['y']=Infinity),Geoworld[_0xfd42e8(0x18b)][_0xfd42e8(0x177)](new Geoworld[(_0xfd42e8(0x171))]({'center':_0x51468a,'minimumHeight':0x0,'maximumHeight':0x0,'boundingSphere':new Geoworld['BoundingSphere'](_0x51468a,9567205.5),'horizonOcclusionPoint':_0x10cc03,'quantizedVertices':_0x185f4c,'indices':_0x3e500d,'westIndices':_0x41137f,'southIndices':_0x41137f,'eastIndices':_0x41137f,'northIndices':_0x41137f,'westSkirtHeight':0x0,'southSkirtHeight':0x0,'eastSkirtHeight':0x0,'northSkirtHeight':0x0,'childTileMask':0xf,'invalid':![],'hasInvalid':![]}));}let _0xa1f19b=this[_0xfd42e8(0x181)],_0x5266b3,_0x4def6e=_0xa1f19b[_0xfd42e8(0x1be)];if(_0x4def6e===0x1)_0x5266b3=_0xa1f19b[0x0];else for(let _0x4d0480=0x0;_0x4d0480<_0x4def6e;++_0x4d0480){let _0x4f7e6e=_0xa1f19b[_0x4d0480];if(!Geoworld[_0xfd42e8(0x1ad)](_0x4f7e6e[_0xfd42e8(0x159)])||_0x4f7e6e[_0xfd42e8(0x159)][_0xfd42e8(0x15f)](_0xa9d6d8,_0x2456c8,_0x279dd3)){_0x5266b3=_0x4f7e6e;break;}}return requestTileGeometry(this,_0x2456c8,_0x279dd3,_0xa9d6d8,_0x5266b3,_0x48c1d3);};function requestTileGeometry(_0x3953df,_0x41a738,_0x53d00b,_0x3f7a7a,_0x206742,_0x407f8b){const _0x1e6b1a=_0x17943b;let _0x233cfb=_0x206742[_0x1e6b1a(0x1c4)],_0x4d63e4;if(!_0x3953df[_0x1e6b1a(0x16c)]||_0x3953df[_0x1e6b1a(0x16c)]===_0x1e6b1a(0x1b7)){let _0x480a30=_0x3953df['_tilingScheme'][_0x1e6b1a(0x1a4)](_0x3f7a7a);_0x4d63e4=_0x480a30-_0x53d00b-0x1;}else _0x4d63e4=_0x53d00b;let _0x52773b=_0x233cfb,_0xd9fb37=_0x206742[_0x1e6b1a(0x167)],_0x134ae1={'Accept':_0x1e6b1a(0x162)},_0x2baa9a=_0xd9fb37[_0x1e6b1a(0x1c2)]({'url':_0x52773b,'templateValues':{'version':_0x206742[_0x1e6b1a(0x169)],'z':_0x3f7a7a,'x':_0x41a738,'y':_0x4d63e4},'headers':_0x134ae1,'request':_0x407f8b})[_0x1e6b1a(0x1c7)]();if(!Geoworld['defined'](_0x2baa9a))return undefined;return _0x2baa9a['then'](function(_0x4040f2){const _0x110db2=_0x1e6b1a;return _0x4040f2=_0x2de58e[_0x110db2(0x1a5)](new Uint8Array(_0x4040f2))[_0x110db2(0x17f)],createQuantizedMeshTerrainData(_0x3953df,_0x4040f2,_0x3f7a7a,_0x41a738,_0x53d00b,_0x206742);});}function _0x21d7(_0x1729bd,_0x125457){_0x1729bd=_0x1729bd-0x14c;let _0x43289b=_0x4328[_0x1729bd];return _0x43289b;}SuperMapTerrainProvider[_0x17943b(0x164)]['getLevelMaximumGeometricError']=function(_0x11ae58){return this['_levelZeroMaximumGeometricError']/(0x1<<_0x11ae58);};let rectangleScratch=new Geoworld[(_0x17943b(0x1c0))]();SuperMapTerrainProvider[_0x17943b(0x164)]['getTileDataAvailable']=function(_0x4600f6,_0x39d854,_0x2e7938){const _0x5d56dc=_0x17943b;if(_0x2e7938!==0x0){if(this[_0x5d56dc(0x1d6)][_0x5d56dc(0x1b5)](_0x2e7938)!==-0x1){let _0x393e1d=this[_0x5d56dc(0x173)]['tileXYToRectangle'](_0x4600f6,_0x39d854,_0x2e7938),_0x56250d=Geoworld[_0x5d56dc(0x1c0)][_0x5d56dc(0x1a7)](this[_0x5d56dc(0x1ae)],_0x393e1d,rectangleScratch);return Geoworld[_0x5d56dc(0x1ad)](_0x56250d);}return ![];}if(!Geoworld[_0x5d56dc(0x1ad)](this[_0x5d56dc(0x175)]))return undefined;if(_0x2e7938>this[_0x5d56dc(0x175)][_0x5d56dc(0x157)])return ![];if(this[_0x5d56dc(0x175)][_0x5d56dc(0x15f)](_0x2e7938,_0x4600f6,_0x39d854))return !![];if(!this[_0x5d56dc(0x17d)])return ![];return ![];},SuperMapTerrainProvider['prototype']['loadTileDataAvailability']=function(_0x4c2b56,_0x5ba700,_0x460efd){}; const _0x40e8=['rect','clone','remove','EPSILON6','Math','prototype','toCssColorString','131lFWMrf','insert','beginPath','addColorStop','values','color','111EGbIiG','881ZSAtln','_dictTable','height','_imageBuffer','Color','fillStyle','_sortKey','2953oGxOGk','_hash','481931OpihPe','push','311WteUNQ','createElement','value','width','createLinearGradient','count','857731SZrXIM','removeAll','getColor','length','getItem','canvas','456358LYbBam','getContext','16941OwCZYh','4DlVdnx','get','893869hENILu','fill'];const _0x5296e5=_0x369c;function _0x369c(_0x5a10e4,_0x5cef5c){_0x5a10e4=_0x5a10e4-0xb0;let _0x40e8a4=_0x40e8[_0x5a10e4];return _0x40e8a4;}(function(_0x4239c5,_0x4ec432){const _0x3e8da1=_0x369c;while(!![]){try{const _0x228458=parseInt(_0x3e8da1(0xd3))+-parseInt(_0x3e8da1(0xd9))+-parseInt(_0x3e8da1(0xcb))+-parseInt(_0x3e8da1(0xbb))*parseInt(_0x3e8da1(0xc9))+-parseInt(_0x3e8da1(0xc2))*parseInt(_0x3e8da1(0xcd))+-parseInt(_0x3e8da1(0xc1))*parseInt(_0x3e8da1(0xdb))+parseInt(_0x3e8da1(0xb0))*parseInt(_0x3e8da1(0xb2));if(_0x228458===_0x4ec432)break;else _0x4239c5['push'](_0x4239c5['shift']());}catch(_0x9a9fba){_0x4239c5['push'](_0x4239c5['shift']());}}}(_0x40e8,0xe8d21));function ColorTable(){this['_dictTable']=new Geoworld['AssociativeArray'](),this['_imageBuffer']=new Uint8Array(0x4*0x40*0x400),this['_sortKey']=[];}function sortNumber(_0x3dafeb,_0x1f6d43){return _0x3dafeb-_0x1f6d43;}ColorTable['prototype'][_0x5296e5(0xd7)]=function(_0x4681cb){const _0x515e01=_0x5296e5;if(_0x4681cb>this[_0x515e01(0xc3)][_0x515e01(0xbf)][_0x515e01(0xd6)]-0x1)return null;let _0xf22896=_0x4681cb;for(let _0x20bc7d in this[_0x515e01(0xc3)][_0x515e01(0xca)]){if(_0xf22896>0x0){_0xf22896--;continue;}if(!_0x20bc7d)break;return {'altitude':_0x20bc7d,'color':this[_0x515e01(0xc3)][_0x515e01(0xb1)](_0x20bc7d)};}return null;},ColorTable['prototype'][_0x5296e5(0xd2)]=function(){const _0x1b3dcf=_0x5296e5;return this[_0x1b3dcf(0xc3)][_0x1b3dcf(0xbf)][_0x1b3dcf(0xd6)];},ColorTable[_0x5296e5(0xb9)][_0x5296e5(0xbc)]=function(_0x5c7f6c,_0x3e8583){const _0x1d42d6=_0x5296e5;let _0x6fa1dc=this['_dictTable'][_0x1d42d6(0xb1)](_0x5c7f6c);if(_0x6fa1dc)return;let _0x1223ea=Geoworld['Color']['clone'](_0x3e8583,new Geoworld[(_0x1d42d6(0xc6))]());this[_0x1d42d6(0xc3)]['set'](_0x5c7f6c,_0x1223ea);},ColorTable['prototype'][_0x5296e5(0xb6)]=function(_0x399f49){const _0x52236f=_0x5296e5;return this['_dictTable'][_0x52236f(0xb6)](_0x399f49);},ColorTable[_0x5296e5(0xb9)]['clear']=function(){const _0x4ff6cc=_0x5296e5;this['_dictTable'][_0x4ff6cc(0xd4)]();},ColorTable[_0x5296e5(0xb9)]['generateBuffer']=function(){const _0x5c3672=_0x5296e5;let _0x58ea4d=[];for(let _0x53197f in this[_0x5c3672(0xc3)]['_hash']){if(!_0x53197f)continue;let _0x379bf7=this[_0x5c3672(0xc3)]['get'](_0x53197f);_0x58ea4d[_0x5c3672(0xcc)]({'value':parseFloat(_0x53197f),'color':_0x379bf7});}if(_0x58ea4d[_0x5c3672(0xd6)]<0x2)return;for(let _0x43370b=0x0,_0x41be04=_0x58ea4d[_0x5c3672(0xd6)]-0x1;_0x43370b<_0x41be04;_0x43370b++){let _0x56d24b=_0x58ea4d[_0x43370b];for(let _0x1a456=_0x43370b+0x1;_0x1a456<_0x58ea4d[_0x5c3672(0xd6)];_0x1a456++){let _0x32b58a=_0x58ea4d[_0x1a456];if(_0x56d24b['value']>_0x32b58a[_0x5c3672(0xcf)]){let _0x15323a=Geoworld[_0x5c3672(0xb5)](_0x58ea4d[_0x43370b],!![]);_0x58ea4d[_0x43370b]=Geoworld['clone'](_0x58ea4d[_0x1a456],!![]),_0x58ea4d[_0x1a456]=_0x15323a,_0x56d24b=_0x58ea4d[_0x43370b];}}}let _0x40b626=_0x58ea4d[0x0][_0x5c3672(0xcf)],_0x5b5566=_0x58ea4d[_0x58ea4d[_0x5c3672(0xd6)]-0x1]['value'],_0x59a2cb=_0x5b5566-_0x40b626,_0x14ef2b=document[_0x5c3672(0xce)](_0x5c3672(0xd8));_0x14ef2b['width']=0x400*0x10,_0x14ef2b[_0x5c3672(0xc4)]=0x1;let _0x2d8cf3=_0x14ef2b[_0x5c3672(0xda)]('2d');_0x2d8cf3[_0x5c3672(0xbd)]();let _0x10b2af=_0x2d8cf3[_0x5c3672(0xd1)](0x0,0x0,0x400*0x10,0x0);for(let _0x10ebfd=0x0,_0x45a759=_0x58ea4d[_0x5c3672(0xd6)];_0x10ebfd<_0x45a759;_0x10ebfd++){_0x10b2af[_0x5c3672(0xbe)]((_0x58ea4d[_0x10ebfd][_0x5c3672(0xcf)]-_0x40b626)/_0x59a2cb,_0x58ea4d[_0x10ebfd][_0x5c3672(0xc0)][_0x5c3672(0xba)]());}_0x2d8cf3[_0x5c3672(0xc7)]=_0x10b2af,_0x2d8cf3[_0x5c3672(0xb4)](0x0,0x0,_0x14ef2b[_0x5c3672(0xd0)],_0x14ef2b[_0x5c3672(0xc4)]),_0x2d8cf3[_0x5c3672(0xb3)]();let _0x2d34c8=_0x2d8cf3['getImageData'](0x0,0x0,_0x14ef2b['width'],0x1)['data'];for(let _0x5708ca=0x0;_0x5708ca<0x10;_0x5708ca++){for(let _0x51db0e=0x0;_0x51db0e<0x400*0x4;_0x51db0e++){this['_imageBuffer'][_0x51db0e+_0x5708ca*0x400*0x4*0x4]=_0x2d34c8[_0x51db0e+_0x5708ca*0x400*0x4],this[_0x5c3672(0xc5)][_0x51db0e+_0x5708ca*0x400*0x4*0x4+0x400*0x4]=_0x2d34c8[_0x51db0e+_0x5708ca*0x400*0x4],this[_0x5c3672(0xc5)][_0x51db0e+_0x5708ca*0x400*0x4*0x4+0x400*0x4*0x2]=_0x2d34c8[_0x51db0e+_0x5708ca*0x400*0x4],this[_0x5c3672(0xc5)][_0x51db0e+_0x5708ca*0x400*0x4*0x4+0x400*0x4*0x3]=_0x2d34c8[_0x51db0e+_0x5708ca*0x400*0x4];}}for(let _0x361406 in this['_dictTable'][_0x5c3672(0xca)]){this[_0x5c3672(0xc8)][_0x5c3672(0xcc)](parseFloat(_0x361406));}return this['_sortKey']['sort'](sortNumber),_0x14ef2b;},ColorTable[_0x5296e5(0xb9)][_0x5296e5(0xd5)]=function(_0x40fa9d){const _0x35bed0=_0x5296e5;for(let _0x306b9a=0x0,_0x5d523a=this['_sortKey'][_0x35bed0(0xd6)];_0x306b9a<_0x5d523a;_0x306b9a++){if(this['_sortKey'][_0x306b9a]>=_0x40fa9d||Math['abs'](this[_0x35bed0(0xc8)][_0x306b9a]-_0x40fa9d)